summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2021-11-13 12:18:14 +0100
committerAndreas Kling <kling@serenityos.org>2021-11-13 12:48:43 +0100
commit68dc2e62fb61f25113b3ab005df3faba9b4477b8 (patch)
treea989ba9dbe5cd161e84a9df85725705f2f153a69
parentd21dc1f45102d3ee1e9eeb3fb0ee600f9a3bc700 (diff)
downloadserenity-68dc2e62fb61f25113b3ab005df3faba9b4477b8.zip
WindowServer: Replace "Pin/Unpin Window" => "Always on Top"
-rw-r--r--Userland/Services/WindowServer/Window.cpp23
-rw-r--r--Userland/Services/WindowServer/Window.h10
-rw-r--r--Userland/Services/WindowServer/WindowManager.cpp4
-rw-r--r--Userland/Services/WindowServer/WindowManager.h2
-rw-r--r--Userland/Services/WindowServer/WindowStack.cpp22
-rw-r--r--Userland/Services/WindowServer/WindowStack.h2
6 files changed, 30 insertions, 33 deletions
diff --git a/Userland/Services/WindowServer/Window.cpp b/Userland/Services/WindowServer/Window.cpp
index fdb5301010..2391eb06e4 100644
--- a/Userland/Services/WindowServer/Window.cpp
+++ b/Userland/Services/WindowServer/Window.cpp
@@ -288,9 +288,6 @@ void Window::update_window_menu_items()
m_window_menu_close_item->set_enabled(m_closeable);
m_window_menu_move_item->set_enabled(m_minimized_state == WindowMinimizedState::None && !m_maximized && !m_fullscreen);
-
- if (m_window_menu_pin_item)
- m_window_menu_pin_item->set_text(m_pinned ? "Un-&Pin Window" : "&Pin Window");
}
void Window::set_minimized(bool minimized)
@@ -490,15 +487,15 @@ void Window::set_maximized(bool maximized, Optional<Gfx::IntPoint> fixed_point)
Core::EventLoop::current().post_event(*this, make<ResizeEvent>(m_rect));
set_default_positioned(false);
}
-void Window::set_pinned(bool pinned)
+void Window::set_always_on_top(bool always_on_top)
{
- if (m_pinned == pinned)
+ if (m_always_on_top == always_on_top)
return;
- m_pinned = pinned;
+ m_always_on_top = always_on_top;
update_window_menu_items();
- window_stack().move_pinned_windows_to_front();
+ window_stack().move_always_on_top_windows_to_front();
Compositor::the().invalidate_occlusions();
}
void Window::set_vertically_maximized()
@@ -809,10 +806,10 @@ void Window::ensure_window_menu()
m_window_menu->add_item(make<MenuItem>(*m_window_menu, MenuItem::Type::Separator));
if (!m_modal) {
- auto pin_item = make<MenuItem>(*m_window_menu, (unsigned)WindowMenuAction::TogglePinned, "&Pin Window");
- m_window_menu_pin_item = pin_item.ptr();
- m_window_menu_pin_item->set_icon(&pin_icon());
- m_window_menu_pin_item->set_checkable(true);
+ auto pin_item = make<MenuItem>(*m_window_menu, (unsigned)WindowMenuAction::ToggleAlwaysOnTop, "Always on &Top");
+ m_window_menu_always_on_top_item = pin_item.ptr();
+ m_window_menu_always_on_top_item->set_icon(&pin_icon());
+ m_window_menu_always_on_top_item->set_checkable(true);
m_window_menu->add_item(move(pin_item));
m_window_menu->add_item(make<MenuItem>(*m_window_menu, MenuItem::Type::Separator));
}
@@ -859,11 +856,11 @@ void Window::handle_window_menu_action(WindowMenuAction action)
invalidate_last_rendered_screen_rects();
break;
}
- case WindowMenuAction::TogglePinned: {
+ case WindowMenuAction::ToggleAlwaysOnTop: {
auto& item = *m_window_menu->item_by_identifier((unsigned)action);
auto new_is_checked = !item.is_checked();
item.set_checked(new_is_checked);
- WindowManager::the().set_pinned(*this, new_is_checked);
+ WindowManager::the().set_always_on_top(*this, new_is_checked);
break;
}
}
diff --git a/Userland/Services/WindowServer/Window.h b/Userland/Services/WindowServer/Window.h
index 3d796d196b..16eaea8dea 100644
--- a/Userland/Services/WindowServer/Window.h
+++ b/Userland/Services/WindowServer/Window.h
@@ -56,7 +56,7 @@ enum class WindowMenuAction {
ToggleMenubarVisibility,
Close,
Move,
- TogglePinned,
+ ToggleAlwaysOnTop,
};
enum class WindowMenuDefaultAction {
@@ -107,8 +107,8 @@ public:
bool is_maximized() const { return m_maximized; }
void set_maximized(bool, Optional<Gfx::IntPoint> fixed_point = {});
- bool is_pinned() const { return m_pinned; }
- void set_pinned(bool);
+ bool is_always_on_top() const { return m_always_on_top; }
+ void set_always_on_top(bool);
void set_vertically_maximized();
@@ -429,7 +429,7 @@ private:
bool m_invalidated_frame { true };
bool m_hit_testing_enabled { true };
bool m_modified { false };
- bool m_pinned { false };
+ bool m_always_on_top { false };
bool m_moving_to_another_stack { false };
bool m_invalidate_last_render_rects { false };
Vector<i32> m_stealable_by_client_ids;
@@ -459,7 +459,7 @@ private:
MenuItem* m_window_menu_maximize_item { nullptr };
MenuItem* m_window_menu_move_item { nullptr };
MenuItem* m_window_menu_close_item { nullptr };
- MenuItem* m_window_menu_pin_item { nullptr };
+ MenuItem* m_window_menu_always_on_top_item { nullptr };
MenuItem* m_window_menu_menubar_visibility_item { nullptr };
Optional<int> m_progress;
bool m_should_show_menubar { true };
diff --git a/Userland/Services/WindowServer/WindowManager.cpp b/Userland/Services/WindowServer/WindowManager.cpp
index 7f37ea7579..f882545d59 100644
--- a/Userland/Services/WindowServer/WindowManager.cpp
+++ b/Userland/Services/WindowServer/WindowManager.cpp
@@ -1994,10 +1994,10 @@ void WindowManager::maximize_windows(Window& window, bool maximized)
});
}
-void WindowManager::set_pinned(Window& window, bool pinned)
+void WindowManager::set_always_on_top(Window& window, bool always_on_top)
{
for_each_window_in_modal_stack(window, [&](auto& w, bool) {
- w.set_pinned(pinned);
+ w.set_always_on_top(always_on_top);
return IterationDecision::Continue;
});
}
diff --git a/Userland/Services/WindowServer/WindowManager.h b/Userland/Services/WindowServer/WindowManager.h
index d07ee34805..4b2eb47d3c 100644
--- a/Userland/Services/WindowServer/WindowManager.h
+++ b/Userland/Services/WindowServer/WindowManager.h
@@ -225,7 +225,7 @@ public:
void minimize_windows(Window&, bool);
void hide_windows(Window&, bool);
void maximize_windows(Window&, bool);
- void set_pinned(Window&, bool);
+ void set_always_on_top(Window&, bool);
template<typename Function>
IterationDecision for_each_window_in_modal_stack(Window& window, Function f)
diff --git a/Userland/Services/WindowServer/WindowStack.cpp b/Userland/Services/WindowServer/WindowStack.cpp
index 2ed107528d..7f307428e5 100644
--- a/Userland/Services/WindowServer/WindowStack.cpp
+++ b/Userland/Services/WindowServer/WindowStack.cpp
@@ -25,7 +25,7 @@ void WindowStack::add(Window& window)
m_windows.append(window);
window.set_window_stack({}, this);
- move_pinned_windows_to_front();
+ move_always_on_top_windows_to_front();
}
void WindowStack::add_to_back(Window& window)
@@ -56,30 +56,30 @@ void WindowStack::move_to_front(Window& window)
m_windows.remove(window);
m_windows.append(window);
- move_pinned_windows_to_front();
+ move_always_on_top_windows_to_front();
- if (window.is_pinned()) {
+ if (window.is_always_on_top()) {
m_windows.remove(window);
m_windows.append(window);
window.invalidate();
}
}
-void WindowStack::move_pinned_windows_to_front()
+void WindowStack::move_always_on_top_windows_to_front()
{
- Window::List pinned_list;
+ Window::List always_on_top_list;
for (auto iterator = m_windows.begin(); iterator != m_windows.end(); ++iterator) {
auto& window = *iterator;
- if (window.is_pinned()) {
+ if (window.is_always_on_top()) {
m_windows.remove(window);
- pinned_list.append(window);
+ always_on_top_list.append(window);
iterator = m_windows.begin();
}
}
- while (!pinned_list.is_empty()) {
- auto& window = *pinned_list.begin();
- pinned_list.remove(window);
+ while (!always_on_top_list.is_empty()) {
+ auto& window = *always_on_top_list.begin();
+ always_on_top_list.remove(window);
m_windows.append(window);
window.invalidate();
}
@@ -89,7 +89,7 @@ void WindowStack::move_all_windows(WindowStack& new_window_stack, Vector<Window*
{
VERIFY(this != &new_window_stack);
- move_pinned_windows_to_front();
+ move_always_on_top_windows_to_front();
if (move_to == MoveAllWindowsTo::Front) {
while (auto* window = m_windows.take_first()) {
diff --git a/Userland/Services/WindowServer/WindowStack.h b/Userland/Services/WindowServer/WindowStack.h
index a1fd6dddae..1fba705456 100644
--- a/Userland/Services/WindowServer/WindowStack.h
+++ b/Userland/Services/WindowServer/WindowStack.h
@@ -23,7 +23,7 @@ public:
void add_to_back(Window&);
void remove(Window&);
void move_to_front(Window&);
- void move_pinned_windows_to_front();
+ void move_always_on_top_windows_to_front();
enum class MoveAllWindowsTo {
Front,