1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 23:37:36 +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

@ -62,6 +62,7 @@ public:
APISetWindowOverrideCursorRequest,
WMAPISetActiveWindowRequest,
WMAPISetWindowMinimizedRequest,
WMAPIStartWindowResizeRequest,
APIPopupMenuRequest,
APIDismissMenuRequest,
__End_API_Client_Requests,
@ -104,6 +105,23 @@ private:
int m_client_id { 0 };
};
class WSWMAPIStartWindowResizeRequest : public WSAPIClientRequest {
public:
WSWMAPIStartWindowResizeRequest(int client_id, int target_client_id, int target_window_id)
: WSAPIClientRequest(WSEvent::WMAPIStartWindowResizeRequest, client_id)
, m_target_client_id(target_client_id)
, m_target_window_id(target_window_id)
{
}
int target_client_id() const { return m_target_client_id; }
int target_window_id() const { return m_target_window_id; }
private:
int m_target_client_id;
int m_target_window_id;
};
class WSWMAPISetActiveWindowRequest : public WSAPIClientRequest {
public:
WSWMAPISetActiveWindowRequest(int client_id, int target_client_id, int target_window_id)