From 6c2165171ecef153db63b17bcd8ec4a20e866c91 Mon Sep 17 00:00:00 2001 From: yangchenguang Date: Thu, 13 Apr 2023 11:19:01 +0800 Subject: [PATCH 2/4] fix(*): update the xscreen size when x11 screen change size Signed-off-by: yangchenguang --- gdk/x11/gdkscreen-x11.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index bb4df05..6646ee4 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1186,9 +1186,10 @@ _gdk_x11_screen_size_changed (GdkScreen *screen, #ifdef HAVE_RANDR GdkX11Display *display_x11; #endif + Screen *xscreen = gdk_x11_screen_get_xscreen (screen); - width = gdk_x11_screen_get_width (screen); - height = gdk_x11_screen_get_height (screen); + width = xscreen->width; + height = xscreen->height; #ifdef HAVE_RANDR display_x11 = GDK_X11_DISPLAY (gdk_screen_get_display (screen)); @@ -1201,7 +1202,6 @@ _gdk_x11_screen_size_changed (GdkScreen *screen, if (event->type == ConfigureNotify) { XConfigureEvent *rcevent = (XConfigureEvent *) event; - Screen *xscreen = gdk_x11_screen_get_xscreen (screen); xscreen->width = rcevent->width; xscreen->height = rcevent->height; @@ -1212,9 +1212,12 @@ _gdk_x11_screen_size_changed (GdkScreen *screen, process_monitors_change (screen); - if (width != gdk_x11_screen_get_width (screen) || - height != gdk_x11_screen_get_height (screen)) + if (width != xscreen->width || + height != xscreen->height) + { + process_monitors_change (screen); g_signal_emit_by_name (screen, "size-changed"); + } } void -- 2.33.0