summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2011-03-16 16:43:01 +0000
committerBastien Nocera <hadess@hadess.net>2011-03-16 16:45:56 +0000
commite98c9079eec9cd9f6f27dd7813d96d6ba536e6c2 (patch)
tree06d58ec9a20b304c2cf0fe12dce375c5297c9f4e /plugins
parent6e025e821a4d933054e0caaf2cac6ea335743992 (diff)
downloadgnome-settings-daemon-e98c9079eec9cd9f6f27dd7813d96d6ba536e6c2.tar.gz
plugins: Make sure we mop up stray idle handlers
Diffstat (limited to 'plugins')
-rw-r--r--plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c9
-rw-r--r--plugins/clipboard/gsd-clipboard-manager.c8
-rw-r--r--plugins/keyboard/gsd-keyboard-manager.c8
-rw-r--r--plugins/media-keys/gsd-media-keys-manager.c9
-rw-r--r--plugins/mouse/gsd-mouse-manager.c8
-rw-r--r--plugins/wacom/gsd-wacom-manager.c8
-rw-r--r--plugins/xsettings/gsd-xsettings-manager.c8
7 files changed, 50 insertions, 8 deletions
diff --git a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
index 7bf8d6a8..3414033d 100644
--- a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
+++ b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
@@ -52,6 +52,7 @@
struct GsdA11yKeyboardManagerPrivate
{
+ guint start_idle_id;
int xkbEventBase;
GdkDeviceManager *device_manager;
guint device_added_id;
@@ -968,17 +969,18 @@ start_a11y_keyboard_idle_cb (GsdA11yKeyboardManager *manager)
out:
gnome_settings_profile_end (NULL);
+ manager->priv->start_idle_id = 0;
+
return FALSE;
}
-
gboolean
gsd_a11y_keyboard_manager_start (GsdA11yKeyboardManager *manager,
GError **error)
{
gnome_settings_profile_start (NULL);
- g_idle_add ((GSourceFunc) start_a11y_keyboard_idle_cb, manager);
+ manager->priv->start_idle_id = g_idle_add ((GSourceFunc) start_a11y_keyboard_idle_cb, manager);
gnome_settings_profile_end (NULL);
@@ -1187,6 +1189,9 @@ gsd_a11y_keyboard_manager_finalize (GObject *object)
g_return_if_fail (a11y_keyboard_manager->priv != NULL);
+ if (a11y_keyboard_manager->priv->start_idle_id != 0)
+ g_source_remove (a11y_keyboard_manager->priv->start_idle_id);
+
G_OBJECT_CLASS (gsd_a11y_keyboard_manager_parent_class)->finalize (object);
}
diff --git a/plugins/clipboard/gsd-clipboard-manager.c b/plugins/clipboard/gsd-clipboard-manager.c
index d9f3fde0..73d49e45 100644
--- a/plugins/clipboard/gsd-clipboard-manager.c
+++ b/plugins/clipboard/gsd-clipboard-manager.c
@@ -51,6 +51,7 @@
struct GsdClipboardManagerPrivate
{
+ guint start_idle_id;
Display *display;
Window window;
Time timestamp;
@@ -920,6 +921,8 @@ start_clipboard_idle_cb (GsdClipboardManager *manager)
gnome_settings_profile_end (NULL);
+ manager->priv->start_idle_id = 0;
+
return FALSE;
}
@@ -929,7 +932,7 @@ gsd_clipboard_manager_start (GsdClipboardManager *manager,
{
gnome_settings_profile_start (NULL);
- g_idle_add ((GSourceFunc) start_clipboard_idle_cb, manager);
+ manager->priv->start_idle_id = g_idle_add ((GSourceFunc) start_clipboard_idle_cb, manager);
gnome_settings_profile_end (NULL);
@@ -1045,6 +1048,9 @@ gsd_clipboard_manager_finalize (GObject *object)
g_return_if_fail (clipboard_manager->priv != NULL);
+ if (clipboard_manager->priv->start_idle_id !=0)
+ g_source_remove (clipboard_manager->priv->start_idle_id);
+
G_OBJECT_CLASS (gsd_clipboard_manager_parent_class)->finalize (object);
}
diff --git a/plugins/keyboard/gsd-keyboard-manager.c b/plugins/keyboard/gsd-keyboard-manager.c
index 23e16d8f..9e995a82 100644
--- a/plugins/keyboard/gsd-keyboard-manager.c
+++ b/plugins/keyboard/gsd-keyboard-manager.c
@@ -72,6 +72,7 @@
struct GsdKeyboardManagerPrivate
{
+ guint start_idle_id;
GSettings *settings;
gboolean have_xkb;
gint xkb_event_base;
@@ -388,6 +389,8 @@ start_keyboard_idle_cb (GsdKeyboardManager *manager)
gnome_settings_profile_end (NULL);
+ manager->priv->start_idle_id = 0;
+
return FALSE;
}
@@ -397,7 +400,7 @@ gsd_keyboard_manager_start (GsdKeyboardManager *manager,
{
gnome_settings_profile_start (NULL);
- g_idle_add ((GSourceFunc) start_keyboard_idle_cb, manager);
+ manager->priv->start_idle_id = g_idle_add ((GSourceFunc) start_keyboard_idle_cb, manager);
gnome_settings_profile_end (NULL);
@@ -505,6 +508,9 @@ gsd_keyboard_manager_finalize (GObject *object)
g_return_if_fail (keyboard_manager->priv != NULL);
+ if (keyboard_manager->priv->start_idle_id != 0)
+ g_source_remove (keyboard_manager->priv->start_idle_id);
+
G_OBJECT_CLASS (gsd_keyboard_manager_parent_class)->finalize (object);
}
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
index cc0f81fc..8fe0387d 100644
--- a/plugins/media-keys/gsd-media-keys-manager.c
+++ b/plugins/media-keys/gsd-media-keys-manager.c
@@ -119,6 +119,8 @@ struct GsdMediaKeysManagerPrivate
GDBusConnection *connection;
GDBusProxy *xrandr_proxy;
GCancellable *cancellable;
+
+ guint start_idle_id;
};
static void gsd_media_keys_manager_class_init (GsdMediaKeysManagerClass *klass);
@@ -1398,6 +1400,8 @@ start_media_keys_idle_cb (GsdMediaKeysManager *manager)
gnome_settings_profile_end (NULL);
+ manager->priv->start_idle_id = 0;
+
return FALSE;
}
@@ -1431,7 +1435,7 @@ gsd_media_keys_manager_start (GsdMediaKeysManager *manager,
gnome_settings_profile_end ("gvc_mixer_control_new");
#endif /* HAVE_PULSE */
- g_idle_add ((GSourceFunc) start_media_keys_idle_cb, manager);
+ manager->priv->start_idle_id = g_idle_add ((GSourceFunc) start_media_keys_idle_cb, manager);
gnome_settings_profile_end (NULL);
@@ -1598,6 +1602,9 @@ gsd_media_keys_manager_finalize (GObject *object)
g_return_if_fail (media_keys_manager->priv != NULL);
+ if (media_keys_manager->priv->start_idle_id != 0)
+ g_source_remove (media_keys_manager->priv->start_idle_id);
+
G_OBJECT_CLASS (gsd_media_keys_manager_parent_class)->finalize (object);
}
diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c
index 18cafdf5..53df94bf 100644
--- a/plugins/mouse/gsd-mouse-manager.c
+++ b/plugins/mouse/gsd-mouse-manager.c
@@ -74,6 +74,7 @@
struct GsdMouseManagerPrivate
{
+ guint start_idle_id;
GSettings *touchpad_settings;
GSettings *mouse_settings;
GSettings *mouse_a11y_settings;
@@ -988,6 +989,8 @@ gsd_mouse_manager_idle_cb (GsdMouseManager *manager)
gnome_settings_profile_end (NULL);
+ manager->priv->start_idle_id = 0;
+
return FALSE;
}
@@ -997,7 +1000,7 @@ gsd_mouse_manager_start (GsdMouseManager *manager,
{
gnome_settings_profile_start (NULL);
- g_idle_add ((GSourceFunc) gsd_mouse_manager_idle_cb, manager);
+ manager->priv->start_idle_id = g_idle_add ((GSourceFunc) gsd_mouse_manager_idle_cb, manager);
gnome_settings_profile_end (NULL);
@@ -1046,6 +1049,9 @@ gsd_mouse_manager_finalize (GObject *object)
g_return_if_fail (mouse_manager->priv != NULL);
+ if (mouse_manager->priv->start_idle_id != 0)
+ g_source_remove (mouse_manager->priv->start_idle_id);
+
if (mouse_manager->priv->device_manager != NULL)
g_signal_handler_disconnect (mouse_manager->priv->device_manager, mouse_manager->priv->device_added_id);
diff --git a/plugins/wacom/gsd-wacom-manager.c b/plugins/wacom/gsd-wacom-manager.c
index 0d616e78..f447a074 100644
--- a/plugins/wacom/gsd-wacom-manager.c
+++ b/plugins/wacom/gsd-wacom-manager.c
@@ -75,6 +75,7 @@
struct GsdWacomManagerPrivate
{
+ guint start_idle_id;
GSettings *wacom_settings;
GSettings *stylus_settings;
GSettings *eraser_settings;
@@ -574,6 +575,8 @@ gsd_wacom_manager_idle_cb (GsdWacomManager *manager)
gnome_settings_profile_end (NULL);
+ manager->priv->start_idle_id = 0;
+
return FALSE;
}
@@ -583,7 +586,7 @@ gsd_wacom_manager_start (GsdWacomManager *manager,
{
gnome_settings_profile_start (NULL);
- g_idle_add ((GSourceFunc) gsd_wacom_manager_idle_cb, manager);
+ manager->priv->start_idle_id = g_idle_add ((GSourceFunc) gsd_wacom_manager_idle_cb, manager);
gnome_settings_profile_end (NULL);
@@ -640,6 +643,9 @@ gsd_wacom_manager_finalize (GObject *object)
g_return_if_fail (wacom_manager->priv != NULL);
+ if (wacom_manager->priv->start_idle_id != 0)
+ g_source_remove (wacom_manager->priv->start_idle_id);
+
G_OBJECT_CLASS (gsd_wacom_manager_parent_class)->finalize (object);
}
diff --git a/plugins/xsettings/gsd-xsettings-manager.c b/plugins/xsettings/gsd-xsettings-manager.c
index 5181c4ae..709d9f8f 100644
--- a/plugins/xsettings/gsd-xsettings-manager.c
+++ b/plugins/xsettings/gsd-xsettings-manager.c
@@ -87,6 +87,7 @@ struct _TranslationEntry {
struct GnomeXSettingsManagerPrivate
{
+ guint start_idle_id;
XSettingsManager **managers;
GHashTable *settings;
@@ -469,6 +470,8 @@ start_fontconfig_monitor_idle_cb (GnomeXSettingsManager *manager)
gnome_settings_profile_end (NULL);
+ manager->priv->start_idle_id = 0;
+
return FALSE;
}
@@ -479,7 +482,7 @@ start_fontconfig_monitor (GnomeXSettingsManager *manager)
fontconfig_cache_init ();
- g_idle_add ((GSourceFunc) start_fontconfig_monitor_idle_cb, manager);
+ manager->priv->start_idle_id = g_idle_add ((GSourceFunc) start_fontconfig_monitor_idle_cb, manager);
gnome_settings_profile_end (NULL);
}
@@ -804,6 +807,9 @@ gnome_xsettings_manager_finalize (GObject *object)
g_return_if_fail (xsettings_manager->priv != NULL);
+ if (xsettings_manager->priv->start_idle_id != 0)
+ g_source_remove (xsettings_manager->priv->start_idle_id);
+
G_OBJECT_CLASS (gnome_xsettings_manager_parent_class)->finalize (object);
}