From 3f5ad7890fa10ec4811e9e1add99e131f1728524 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Thu, 19 Sep 2002 20:52:42 +0000 Subject: Fix usage of compat GTK_TYPE_ macros without including gtkobject.h. Thu Sep 19 16:39:29 2002 Owen Taylor * gtk/gtksettings.h (GTK_SETTINGS_GET_CLASS): Fix usage of compat GTK_TYPE_ macros without including gtkobject.h. * gdk/x11/gdkevents-x11.[ch]: Set a flag when initializing to avoid having extra settings-notify events sent when not needed. --- gdk/x11/gdkevents-x11.c | 11 ++++++++++- gdk/x11/gdkscreen-x11.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'gdk') diff --git a/gdk/x11/gdkevents-x11.c b/gdk/x11/gdkevents-x11.c index 9fbca311c3..adff9561a7 100644 --- a/gdk/x11/gdkevents-x11.c +++ b/gdk/x11/gdkevents-x11.c @@ -146,12 +146,16 @@ void _gdk_x11_events_init_screen (GdkScreen *screen) { GdkScreenX11 *screen_x11 = GDK_SCREEN_X11 (screen); - + + /* Keep a flag to avoid extra notifies that we don't need + */ + screen_x11->xsettings_in_init = TRUE; screen_x11->xsettings_client = xsettings_client_new (screen_x11->xdisplay, screen_x11->screen_num, gdk_xsettings_notify_cb, gdk_xsettings_watch_cb, screen); + screen_x11->xsettings_in_init = FALSE; } void @@ -2212,8 +2216,12 @@ gdk_xsettings_notify_cb (const char *name, { GdkEvent new_event; GdkScreen *screen = data; + GdkScreenX11 *screen_x11 = data; int i; + if (screen_x11->xsettings_in_init) + return; + new_event.type = GDK_SETTING; new_event.setting.window = gdk_screen_get_root_window (screen); new_event.setting.send_event = FALSE; @@ -2226,6 +2234,7 @@ gdk_xsettings_notify_cb (const char *name, break; } + if (!new_event.setting.name) return; diff --git a/gdk/x11/gdkscreen-x11.h b/gdk/x11/gdkscreen-x11.h index e96c6c0432..2575f0def0 100644 --- a/gdk/x11/gdkscreen-x11.h +++ b/gdk/x11/gdkscreen-x11.h @@ -71,6 +71,7 @@ struct _GdkScreenX11 /* X settings */ XSettingsClient *xsettings_client; + guint xsettings_in_init : 1; /* Xinerama */ gint num_monitors; -- cgit v1.2.1