summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-09-19 20:52:42 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-09-19 20:52:42 +0000
commit3f5ad7890fa10ec4811e9e1add99e131f1728524 (patch)
treed8bb1916dcc8437c1ec70826eef9e34a9f465cd7 /gdk
parent1e3c6144b40aeae501ef6c8c28110bdaa9ba3957 (diff)
downloadgtk+-3f5ad7890fa10ec4811e9e1add99e131f1728524.tar.gz
Fix usage of compat GTK_TYPE_ macros without including gtkobject.h.
Thu Sep 19 16:39:29 2002 Owen Taylor <otaylor@redhat.com> * 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.
Diffstat (limited to 'gdk')
-rw-r--r--gdk/x11/gdkevents-x11.c11
-rw-r--r--gdk/x11/gdkscreen-x11.h1
2 files changed, 11 insertions, 1 deletions
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;