xwayland: Use ConfigNotify screen hook instead of ResizeWindow
Preparation for later commits, no functional change intended. Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1300>
This commit is contained in:
parent
3a0fc2684a
commit
fa7b1c20c4
|
@ -1113,8 +1113,8 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
|||
xwl_screen->ClipNotify = pScreen->ClipNotify;
|
||||
pScreen->ClipNotify = xwl_clip_notify;
|
||||
|
||||
xwl_screen->ResizeWindow = pScreen->ResizeWindow;
|
||||
pScreen->ResizeWindow = xwl_resize_window;
|
||||
xwl_screen->ConfigNotify = pScreen->ConfigNotify;
|
||||
pScreen->ConfigNotify = xwl_config_notify;
|
||||
|
||||
xwl_screen->MoveWindow = pScreen->MoveWindow;
|
||||
pScreen->MoveWindow = xwl_move_window;
|
||||
|
|
|
@ -71,6 +71,7 @@ struct xwl_screen {
|
|||
ClipNotifyProcPtr ClipNotify;
|
||||
CreateScreenResourcesProcPtr CreateScreenResources;
|
||||
CloseScreenProcPtr CloseScreen;
|
||||
ConfigNotifyProcPtr ConfigNotify;
|
||||
CreateWindowProcPtr CreateWindow;
|
||||
RealizeWindowProcPtr RealizeWindow;
|
||||
UnrealizeWindowProcPtr UnrealizeWindow;
|
||||
|
@ -79,7 +80,6 @@ struct xwl_screen {
|
|||
SetWindowPixmapProcPtr SetWindowPixmap;
|
||||
ChangeWindowAttributesProcPtr ChangeWindowAttributes;
|
||||
ReparentWindowProcPtr ReparentWindow;
|
||||
ResizeWindowProcPtr ResizeWindow;
|
||||
MoveWindowProcPtr MoveWindow;
|
||||
|
||||
int (*GrabServer) (ClientPtr client);
|
||||
|
|
|
@ -1649,25 +1649,29 @@ xwl_clip_notify(WindowPtr window, int dx, int dy)
|
|||
xwl_window_update_surface_window(xwl_window);
|
||||
}
|
||||
|
||||
void
|
||||
xwl_resize_window(WindowPtr window,
|
||||
int
|
||||
xwl_config_notify(WindowPtr window,
|
||||
int x, int y,
|
||||
unsigned int width, unsigned int height,
|
||||
int width, int height, int bw,
|
||||
WindowPtr sib)
|
||||
{
|
||||
ScreenPtr screen = window->drawable.pScreen;
|
||||
struct xwl_screen *xwl_screen;
|
||||
struct xwl_window *xwl_window;
|
||||
Bool size_changed;
|
||||
int ret;
|
||||
|
||||
xwl_screen = xwl_screen_get(screen);
|
||||
xwl_window = xwl_window_from_window(window);
|
||||
|
||||
screen->ResizeWindow = xwl_screen->ResizeWindow;
|
||||
(*screen->ResizeWindow) (window, x, y, width, height, sib);
|
||||
xwl_screen->ResizeWindow = screen->ResizeWindow;
|
||||
screen->ResizeWindow = xwl_resize_window;
|
||||
size_changed = width != window->drawable.width || height != window->drawable.height;
|
||||
|
||||
if (xwl_window) {
|
||||
screen->ConfigNotify = xwl_screen->ConfigNotify;
|
||||
ret = screen->ConfigNotify(window, x, y, width, height, bw, sib);
|
||||
xwl_screen->ConfigNotify = screen->ConfigNotify;
|
||||
screen->ConfigNotify = xwl_config_notify;
|
||||
|
||||
if (size_changed && xwl_window) {
|
||||
if (xwl_window_get(window) || xwl_window_is_toplevel(window))
|
||||
xwl_window_check_resolution_change_emulation(xwl_window);
|
||||
if (window == screen->root) {
|
||||
|
@ -1682,6 +1686,8 @@ xwl_resize_window(WindowPtr window,
|
|||
xwl_window_check_fractional_scale_viewport(xwl_window, width, height);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -129,10 +129,10 @@ Bool xwl_realize_window(WindowPtr window);
|
|||
Bool xwl_unrealize_window(WindowPtr window);
|
||||
Bool xwl_change_window_attributes(WindowPtr window, unsigned long mask);
|
||||
void xwl_clip_notify(WindowPtr window, int dx, int dy);
|
||||
void xwl_resize_window(WindowPtr window,
|
||||
int x, int y,
|
||||
unsigned int width, unsigned int height,
|
||||
WindowPtr sib);
|
||||
int xwl_config_notify(WindowPtr window,
|
||||
int x, int y,
|
||||
int width, int height, int bw,
|
||||
WindowPtr sib);
|
||||
void xwl_move_window(WindowPtr window,
|
||||
int x, int y,
|
||||
WindowPtr next_sib,
|
||||
|
|
Loading…
Reference in New Issue