From eb4792128fff3886f0223a47f702e993d1a5a362 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 10 Feb 2013 01:20:38 +0100 Subject: [PATCH] x11: Pass the GdkScreen to the XSettingsClient --- gdk/x11/gdkscreen-x11.c | 3 +-- gdk/x11/xsettings-client.c | 23 ++++++++++++----------- gdk/x11/xsettings-client.h | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index cb26ee5ef..94f4705cd 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1731,8 +1731,7 @@ _gdk_x11_screen_init_events (GdkScreen *screen) /* Keep a flag to avoid extra notifies that we don't need */ x11_screen->xsettings_in_init = TRUE; - x11_screen->xsettings_client = xsettings_client_new (x11_screen->xdisplay, - x11_screen->screen_num, + x11_screen->xsettings_client = xsettings_client_new (screen, gdk_xsettings_notify_cb, gdk_xsettings_watch_cb, screen, diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c index 93d3bc1e5..1a92b68b0 100644 --- a/gdk/x11/xsettings-client.c +++ b/gdk/x11/xsettings-client.c @@ -25,7 +25,9 @@ #include "xsettings-client.h" -#include +#include +#include +#include #include #include @@ -37,8 +39,8 @@ struct _XSettingsClient { + GdkScreen *screen; Display *display; - int screen; XSettingsNotifyFunc notify; XSettingsWatchFunc watch; void *cb_data; @@ -453,8 +455,7 @@ check_manager_window (XSettingsClient *client) } XSettingsClient * -xsettings_client_new (Display *display, - int screen, +xsettings_client_new (GdkScreen *screen, XSettingsNotifyFunc notify, XSettingsWatchFunc watch, void *cb_data, @@ -470,8 +471,8 @@ xsettings_client_new (Display *display, if (!client) return NULL; - client->display = display; client->screen = screen; + client->display = gdk_x11_display_get_xdisplay (gdk_screen_get_display (screen)); client->notify = notify; client->watch = watch; client->cb_data = cb_data; @@ -480,12 +481,12 @@ xsettings_client_new (Display *display, client->manager_window = None; client->settings = NULL; - sprintf(buffer, "_XSETTINGS_S%d", screen); + sprintf(buffer, "_XSETTINGS_S%d", gdk_x11_screen_get_screen_number (screen)); atom_names[0] = buffer; atom_names[1] = "_XSETTINGS_SETTINGS"; atom_names[2] = "MANAGER"; - XInternAtoms (display, atom_names, 3, False, atoms); + XInternAtoms (client->display, atom_names, 3, False, atoms); client->selection_atom = atoms[0]; client->xsettings_atom = atoms[1]; @@ -493,10 +494,10 @@ xsettings_client_new (Display *display, /* Select on StructureNotify so we get MANAGER events */ - add_events (display, RootWindow (display, screen), StructureNotifyMask); + add_events (client->display, gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), StructureNotifyMask); if (client->watch) - client->watch (RootWindow (display, screen), True, StructureNotifyMask, + client->watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (screen)), True, StructureNotifyMask, client->cb_data); check_manager_window (client); @@ -523,7 +524,7 @@ void xsettings_client_destroy (XSettingsClient *client) { if (client->watch) - client->watch (RootWindow (client->display, client->screen), + client->watch (gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen)), False, 0, client->cb_data); if (client->manager_window && client->watch) client->watch (client->manager_window, False, 0, client->cb_data); @@ -549,7 +550,7 @@ xsettings_client_process_event (XSettingsClient *client, * times when the manager changes from A->B. But manager changes * are going to be pretty rare. */ - if (xev->xany.window == RootWindow (client->display, client->screen)) + if (xev->xany.window == gdk_x11_window_get_xid (gdk_screen_get_root_window (client->screen))) { if (xev->xany.type == ClientMessage && xev->xclient.message_type == client->manager_atom && diff --git a/gdk/x11/xsettings-client.h b/gdk/x11/xsettings-client.h index 348c68c73..cb6ab9b08 100644 --- a/gdk/x11/xsettings-client.h +++ b/gdk/x11/xsettings-client.h @@ -23,6 +23,7 @@ #ifndef XSETTINGS_CLIENT_H #define XSETTINGS_CLIENT_H +#include #include #ifdef __cplusplus @@ -111,8 +112,7 @@ void xsettings_setting_free (XSettingsSetting *setting) int xsettings_setting_equal (XSettingsSetting *setting_a, XSettingsSetting *setting_b); -XSettingsClient *xsettings_client_new (Display *display, - int screen, +XSettingsClient *xsettings_client_new (GdkScreen *screen, XSettingsNotifyFunc notify, XSettingsWatchFunc watch, void *cb_data, -- 2.43.2