void _gdk_x11_screen_size_changed (GdkX11Screen *screen, const XEvent *event) { #ifdef HAVE_RANDR GdkX11Display *display_x11; display_x11 = GDK_X11_DISPLAY (GDK_SCREEN_DISPLAY (screen)); if (display_x11->have_randr13 && event->type == ConfigureNotify) return; XRRUpdateConfiguration ((XEvent *) event); #else if (event->type != ConfigureNotify) return; #endif process_monitors_change (screen); }
void _gdk_x11_screen_size_changed (GdkScreen *screen, XEvent *event) { gint width, height; #ifdef HAVE_RANDR GdkX11Display *display_x11; #endif width = gdk_screen_get_width (screen); height = gdk_screen_get_height (screen); #ifdef HAVE_RANDR display_x11 = GDK_X11_DISPLAY (gdk_screen_get_display (screen)); if (display_x11->have_randr13 && event->type == ConfigureNotify) return; XRRUpdateConfiguration (event); #else if (event->type == ConfigureNotify) { XConfigureEvent *rcevent = (XConfigureEvent *) event; Screen *xscreen = gdk_x11_screen_get_xscreen (screen); xscreen->width = rcevent->width; xscreen->height = rcevent->height; } else return; #endif process_monitors_change (screen); if (width != gdk_screen_get_width (screen) || height != gdk_screen_get_height (screen)) g_signal_emit_by_name (screen, "size-changed"); }