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
Notes:
sideshowbarker
2024-07-19 07:30:08 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/3d31f2e44bd
4 changed files with 12 additions and 2 deletions
|
@ -39,6 +39,7 @@ enum class WindowType {
|
|||
Menubar,
|
||||
MenuApplet,
|
||||
Notification,
|
||||
Desktop,
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -446,6 +446,10 @@ OwnPtr<Messages::WindowServer::CreateWindowResponse> ClientConnection::handle(co
|
|||
window->set_title(message.title());
|
||||
if (!message.fullscreen())
|
||||
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_opacity(message.opacity());
|
||||
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>
|
||||
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)
|
||||
return 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;
|
||||
if (for_each_visible_window_of_type_from_front_to_back(WindowType::Menubar, callback) == 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;
|
||||
if (for_each_visible_window_of_type_from_front_to_back(WindowType::Tooltip, callback) == IterationDecision::Break)
|
||||
return IterationDecision::Break;
|
||||
if (for_each_visible_window_of_type_from_front_to_back(WindowType::Taskbar, callback) == 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>
|
||||
|
|
|
@ -37,4 +37,5 @@ enum class WindowType {
|
|||
Menubar,
|
||||
MenuApplet,
|
||||
Notification,
|
||||
Desktop,
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue