mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:57:36 +00:00
WindowServer: Add WindowType::Desktop
This new window type can be used to implement a desktop file manager for example. :^)
This commit is contained in:
parent
88908be350
commit
3d31f2e44b
4 changed files with 12 additions and 2 deletions
|
@ -39,6 +39,7 @@ enum class WindowType {
|
||||||
Menubar,
|
Menubar,
|
||||||
MenuApplet,
|
MenuApplet,
|
||||||
Notification,
|
Notification,
|
||||||
|
Desktop,
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -446,6 +446,10 @@ OwnPtr<Messages::WindowServer::CreateWindowResponse> ClientConnection::handle(co
|
||||||
window->set_title(message.title());
|
window->set_title(message.title());
|
||||||
if (!message.fullscreen())
|
if (!message.fullscreen())
|
||||||
window->set_rect(message.rect());
|
window->set_rect(message.rect());
|
||||||
|
if (window->type() == WindowType::Desktop) {
|
||||||
|
window->set_rect(Screen::the().rect());
|
||||||
|
window->recalculate_rect();
|
||||||
|
}
|
||||||
window->set_show_titlebar(message.show_titlebar());
|
window->set_show_titlebar(message.show_titlebar());
|
||||||
window->set_opacity(message.opacity());
|
window->set_opacity(message.opacity());
|
||||||
window->set_size_increment(message.size_increment());
|
window->set_size_increment(message.size_increment());
|
||||||
|
|
|
@ -309,6 +309,8 @@ IterationDecision WindowManager::for_each_visible_window_of_type_from_back_to_fr
|
||||||
template<typename Callback>
|
template<typename Callback>
|
||||||
IterationDecision WindowManager::for_each_visible_window_from_back_to_front(Callback callback)
|
IterationDecision WindowManager::for_each_visible_window_from_back_to_front(Callback callback)
|
||||||
{
|
{
|
||||||
|
if (for_each_visible_window_of_type_from_back_to_front(WindowType::Desktop, callback) == IterationDecision::Break)
|
||||||
|
return IterationDecision::Break;
|
||||||
if (for_each_visible_window_of_type_from_back_to_front(WindowType::Normal, callback) == IterationDecision::Break)
|
if (for_each_visible_window_of_type_from_back_to_front(WindowType::Normal, callback) == IterationDecision::Break)
|
||||||
return IterationDecision::Break;
|
return IterationDecision::Break;
|
||||||
if (for_each_visible_window_of_type_from_back_to_front(WindowType::Taskbar, callback) == IterationDecision::Break)
|
if (for_each_visible_window_of_type_from_back_to_front(WindowType::Taskbar, callback) == IterationDecision::Break)
|
||||||
|
@ -356,13 +358,15 @@ IterationDecision WindowManager::for_each_visible_window_from_front_to_back(Call
|
||||||
return IterationDecision::Break;
|
return IterationDecision::Break;
|
||||||
if (for_each_visible_window_of_type_from_front_to_back(WindowType::Menubar, callback) == IterationDecision::Break)
|
if (for_each_visible_window_of_type_from_front_to_back(WindowType::Menubar, callback) == IterationDecision::Break)
|
||||||
return IterationDecision::Break;
|
return IterationDecision::Break;
|
||||||
if (for_each_visible_window_of_type_from_back_to_front(WindowType::Notification, callback) == IterationDecision::Break)
|
if (for_each_visible_window_of_type_from_front_to_back(WindowType::Notification, callback) == IterationDecision::Break)
|
||||||
return IterationDecision::Break;
|
return IterationDecision::Break;
|
||||||
if (for_each_visible_window_of_type_from_front_to_back(WindowType::Tooltip, callback) == IterationDecision::Break)
|
if (for_each_visible_window_of_type_from_front_to_back(WindowType::Tooltip, callback) == IterationDecision::Break)
|
||||||
return IterationDecision::Break;
|
return IterationDecision::Break;
|
||||||
if (for_each_visible_window_of_type_from_front_to_back(WindowType::Taskbar, callback) == IterationDecision::Break)
|
if (for_each_visible_window_of_type_from_front_to_back(WindowType::Taskbar, callback) == IterationDecision::Break)
|
||||||
return IterationDecision::Break;
|
return IterationDecision::Break;
|
||||||
return for_each_visible_window_of_type_from_front_to_back(WindowType::Normal, callback);
|
if (for_each_visible_window_of_type_from_front_to_back(WindowType::Normal, callback) == IterationDecision::Break)
|
||||||
|
return IterationDecision::Break;
|
||||||
|
return for_each_visible_window_of_type_from_front_to_back(WindowType::Desktop, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Callback>
|
template<typename Callback>
|
||||||
|
|
|
@ -37,4 +37,5 @@ enum class WindowType {
|
||||||
Menubar,
|
Menubar,
|
||||||
MenuApplet,
|
MenuApplet,
|
||||||
Notification,
|
Notification,
|
||||||
|
Desktop,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue