summaryrefslogtreecommitdiff
path: root/gui/simple-greeter/greeter-main.c
diff options
context:
space:
mode:
authorWilliam Jon McCann <jmccann@redhat.com>2008-04-15 21:01:32 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2008-04-15 21:01:32 +0000
commita92ab2b9dc5d73a2274f50fa1dde5a0020c52282 (patch)
treeae6f0d0f6bcb620312f3e394c7177539139b2576 /gui/simple-greeter/greeter-main.c
parent121811b5b853e27f870eb598ff3c4ecd7d790317 (diff)
downloadgdm-a92ab2b9dc5d73a2274f50fa1dde5a0020c52282.tar.gz
Use glib main loop directly instead of running gtk_main before we run
2008-04-15 William Jon McCann <jmccann@redhat.com> * gui/simple-greeter/greeter-main.c: (filter_watch), (filter_timeout), (assistive_registry_start): Use glib main loop directly instead of running gtk_main before we run gtk_init. svn path=/trunk/; revision=6153
Diffstat (limited to 'gui/simple-greeter/greeter-main.c')
-rw-r--r--gui/simple-greeter/greeter-main.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/gui/simple-greeter/greeter-main.c b/gui/simple-greeter/greeter-main.c
index 58f9a2e6..a8ea69d8 100644
--- a/gui/simple-greeter/greeter-main.c
+++ b/gui/simple-greeter/greeter-main.c
@@ -101,13 +101,14 @@ assistive_registry_launch (void)
static GdkFilterReturn
filter_watch (GdkXEvent *xevent,
GdkEvent *event,
- gpointer data)
+ GMainLoop *loop)
{
XEvent *xev = (XEvent *)xevent;
if (xev->xany.type == PropertyNotify
&& xev->xproperty.atom == AT_SPI_IOR) {
- gtk_main_quit ();
+ g_debug ("a11y registry started");
+ g_main_loop_quit (loop);
return GDK_FILTER_REMOVE;
}
@@ -116,11 +117,11 @@ filter_watch (GdkXEvent *xevent,
}
static gboolean
-filter_timeout (gpointer data)
+filter_timeout (GMainLoop *loop)
{
g_warning ("The accessibility registry was not found.");
- gtk_main_quit ();
+ g_main_loop_quit (loop);
return FALSE;
}
@@ -130,30 +131,36 @@ assistive_registry_start (void)
{
GdkWindow *root;
guint tid;
+ GMainLoop *loop;
gdm_profile_start (NULL);
+ g_debug ("Starting a11y registry");
+
root = gdk_get_default_root_window ();
if ( ! AT_SPI_IOR) {
AT_SPI_IOR = XInternAtom (GDK_DISPLAY (), "AT_SPI_IOR", False);
}
- gdk_window_set_events (root, GDK_PROPERTY_CHANGE_MASK);
+ gdk_window_set_events (root, GDK_PROPERTY_CHANGE_MASK);
if ( ! assistive_registry_launch ()) {
g_warning ("The accessibility registry could not be started.");
return;
}
- gdk_window_add_filter (root, filter_watch, NULL);
- tid = g_timeout_add_seconds (5, filter_timeout, NULL);
+ loop = g_main_loop_new (NULL, FALSE);
+ gdk_window_add_filter (root, (GdkFilterFunc)filter_watch, loop);
+ tid = g_timeout_add_seconds (5, (GSourceFunc)filter_timeout, loop);
- gtk_main ();
+ g_main_loop_run (loop);
- gdk_window_remove_filter (root, filter_watch, NULL);
+ gdk_window_remove_filter (root, (GdkFilterFunc)filter_watch, loop);
g_source_remove (tid);
+ g_main_loop_unref (loop);
+
gdm_profile_end (NULL);
}