void _gdk_x11_screen_set_window_scale (GdkX11Screen *x11_screen, gint scale) { GdkX11Display *x11_display = GDK_X11_DISPLAY (x11_screen->display); GList *toplevels, *l; GdkWindow *root; int i; if (x11_screen->window_scale == scale) return; x11_screen->window_scale = scale; root = x11_screen->root_window; GDK_WINDOW_IMPL_X11 (root->impl)->window_scale = scale; toplevels = gdk_screen_get_toplevel_windows (GDK_SCREEN (x11_screen)); for (l = toplevels; l != NULL; l = l->next) { GdkWindow *window = l->data; _gdk_x11_window_set_window_scale (window, scale); } for (i = 0; i < x11_display->monitors->len; i++) { GdkMonitor *monitor = GDK_MONITOR (x11_display->monitors->pdata[i]); gdk_monitor_set_scale_factor (monitor, scale); } g_signal_emit_by_name (GDK_SCREEN (x11_screen), "monitors-changed"); }
void _gdk_x11_screen_set_window_scale (GdkX11Screen *x11_screen, gint scale) { GList *toplevels, *l; GdkWindow *root; if (x11_screen->window_scale == scale) return; x11_screen->window_scale = scale; root = x11_screen->root_window; GDK_WINDOW_IMPL_X11 (root->impl)->window_scale = scale; toplevels = gdk_screen_get_toplevel_windows (GDK_SCREEN (x11_screen)); for (l = toplevels; l != NULL; l = l->next) { GdkWindow *window = l->data; _gdk_x11_window_set_window_scale (window, scale); } g_signal_emit_by_name (GDK_SCREEN (x11_screen), "monitors-changed"); }