gtk3/fix-update-the-xscreen-size-when-x11-screen-change-s.patch

55 lines
1.7 KiB
Diff

From 6c2165171ecef153db63b17bcd8ec4a20e866c91 Mon Sep 17 00:00:00 2001
From: yangchenguang <yangchenguang@kylinsec.com.cn>
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 <yangchenguang@kylinsec.com.cn>
---
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