mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-20 09:49:15 +03:00
Everywhere: Replace uses of GUI::Desktop's on_rect_change and remove it
This commit is contained in:
parent
5367bbb82c
commit
96b26ec125
Notes:
sideshowbarker
2024-07-18 20:51:10 +09:00
Author: https://github.com/linusg Commit: https://github.com/SerenityOS/serenity/commit/96b26ec1253 Pull-request: https://github.com/SerenityOS/serenity/pull/6099
@ -50,8 +50,6 @@ void Desktop::did_receive_screen_rect(Badge<WindowServerConnection>, const Gfx::
|
||||
if (m_rect == rect)
|
||||
return;
|
||||
m_rect = rect;
|
||||
if (on_rect_change)
|
||||
on_rect_change(rect);
|
||||
}
|
||||
|
||||
void Desktop::set_background_color(const StringView& background_color)
|
||||
|
@ -51,8 +51,6 @@ public:
|
||||
|
||||
void did_receive_screen_rect(Badge<WindowServerConnection>, const Gfx::IntRect&);
|
||||
|
||||
Function<void(const Gfx::IntRect&)> on_rect_change;
|
||||
|
||||
private:
|
||||
Gfx::IntRect m_rect;
|
||||
};
|
||||
|
@ -39,14 +39,14 @@ namespace NotificationServer {
|
||||
|
||||
static HashMap<u32, RefPtr<NotificationWindow>> s_windows;
|
||||
|
||||
void update_notification_window_locations()
|
||||
static void update_notification_window_locations(const Gfx::IntRect& screen_rect)
|
||||
{
|
||||
Gfx::IntRect last_window_rect;
|
||||
for (auto& window_entry : s_windows) {
|
||||
auto& window = window_entry.value;
|
||||
Gfx::IntPoint new_window_location;
|
||||
if (last_window_rect.is_null())
|
||||
new_window_location = GUI::Desktop::the().rect().top_right().translated(-window->rect().width() - 24, 26);
|
||||
new_window_location = screen_rect.top_right().translated(-window->rect().width() - 24, 26);
|
||||
else
|
||||
new_window_location = last_window_rect.bottom_left().translated(0, 10);
|
||||
if (window->rect().location() != new_window_location) {
|
||||
@ -117,7 +117,7 @@ NotificationWindow::NotificationWindow(i32 client_id, const String& text, const
|
||||
|
||||
on_close = [this] {
|
||||
s_windows.remove(m_id);
|
||||
update_notification_window_locations();
|
||||
update_notification_window_locations(GUI::Desktop::the().rect());
|
||||
};
|
||||
}
|
||||
|
||||
@ -149,4 +149,9 @@ void NotificationWindow::set_image(const Gfx::ShareableBitmap& image)
|
||||
}
|
||||
}
|
||||
|
||||
void NotificationWindow::screen_rect_change_event(GUI::ScreenRectChangeEvent& event)
|
||||
{
|
||||
update_notification_window_locations(event.rect());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -31,8 +31,6 @@
|
||||
|
||||
namespace NotificationServer {
|
||||
|
||||
void update_notification_window_locations();
|
||||
|
||||
class NotificationWindow final : public GUI::Window {
|
||||
C_OBJECT(NotificationWindow);
|
||||
|
||||
@ -49,6 +47,8 @@ public:
|
||||
private:
|
||||
NotificationWindow(i32 client_id, const String& text, const String& title, const Gfx::ShareableBitmap&);
|
||||
|
||||
virtual void screen_rect_change_event(GUI::ScreenRectChangeEvent&) override;
|
||||
|
||||
Gfx::IntRect m_original_rect;
|
||||
i32 m_id;
|
||||
|
||||
|
@ -25,12 +25,9 @@
|
||||
*/
|
||||
|
||||
#include "ClientConnection.h"
|
||||
#include "NotificationWindow.h"
|
||||
#include <LibCore/LocalServer.h>
|
||||
#include <LibGUI/Application.h>
|
||||
#include <LibGUI/Desktop.h>
|
||||
#include <LibGUI/WindowServerConnection.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(int argc, char** argv)
|
||||
@ -68,7 +65,5 @@ int main(int argc, char** argv)
|
||||
return 1;
|
||||
}
|
||||
|
||||
GUI::Desktop::the().on_rect_change = [](auto&) { NotificationServer::update_notification_window_locations(); };
|
||||
|
||||
return app->exec();
|
||||
}
|
||||
|
@ -79,8 +79,6 @@ TaskbarWindow::TaskbarWindow(NonnullRefPtr<GUI::Menu> start_menu)
|
||||
|
||||
on_screen_rect_change(GUI::Desktop::the().rect());
|
||||
|
||||
GUI::Desktop::the().on_rect_change = [this](const Gfx::IntRect& rect) { on_screen_rect_change(rect); };
|
||||
|
||||
auto& main_widget = set_main_widget<TaskbarWidget>();
|
||||
main_widget.set_layout<GUI::HorizontalBoxLayout>();
|
||||
main_widget.layout()->set_margins({ 3, 3, 3, 1 });
|
||||
@ -346,3 +344,8 @@ void TaskbarWindow::wm_event(GUI::WMEvent& event)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void TaskbarWindow::screen_rect_change_event(GUI::ScreenRectChangeEvent& event)
|
||||
{
|
||||
on_screen_rect_change(event.rect());
|
||||
}
|
||||
|
@ -49,6 +49,7 @@ private:
|
||||
::Window* find_window_owner(::Window&) const;
|
||||
|
||||
virtual void wm_event(GUI::WMEvent&) override;
|
||||
virtual void screen_rect_change_event(GUI::ScreenRectChangeEvent&) override;
|
||||
|
||||
void update_applet_area();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user