1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 22:08:10 +00:00

LibGUI+WindowServer: Add a GResizeCorner widget.

This widget is automatically included in GStatusBar, but can be added in
any other place, too. When clicked (with the left button), it initiates a
window resize (using a WM request.)

In this patch I also fixed up some issues with override cursors being
cleared after the WindowServer finishes a drag or resize.
This commit is contained in:
Andreas Kling 2019-05-03 01:38:24 +02:00
parent 34c5db61aa
commit ea9a39a9f2
19 changed files with 189 additions and 26 deletions

View file

@ -116,14 +116,16 @@ public:
void tell_wm_listeners_window_icon_changed(WSWindow&);
void tell_wm_listeners_window_rect_changed(WSWindow&);
void start_window_resize(WSWindow&, const Point&, MouseButton);
void start_window_resize(WSWindow&, const WSMouseEvent&);
private:
void process_mouse_event(const WSMouseEvent&, WSWindow*& event_window);
bool process_ongoing_window_resize(const WSMouseEvent&, WSWindow*& event_window);
bool process_ongoing_window_drag(const WSMouseEvent&, WSWindow*& event_window);
void process_mouse_event(const WSMouseEvent&, WSWindow*& hovered_window);
bool process_ongoing_window_resize(const WSMouseEvent&, WSWindow*& hovered_window);
bool process_ongoing_window_drag(const WSMouseEvent&, WSWindow*& hovered_window);
void handle_menu_mouse_event(WSMenu&, const WSMouseEvent&);
void handle_menubar_mouse_event(const WSMouseEvent&);
void handle_close_button_mouse_event(WSWindow&, const WSMouseEvent&);
void start_window_resize(WSWindow&, const WSMouseEvent&);
void start_window_drag(WSWindow&, const WSMouseEvent&);
void handle_client_request(const WSAPIClientRequest&);
void set_hovered_window(WSWindow*);