diff options
author | Tim Janik <timj@gtk.org> | 1998-12-18 02:23:48 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1998-12-18 02:23:48 +0000 |
commit | d2dc06dae12bb67d85d3178b8de81ab576bc97b9 (patch) | |
tree | 4694800506b773d89929c7121e95739451984680 /gtk | |
parent | 11339ec5b383f25bdf9913cd9203da2b1fc4a0ca (diff) | |
download | gtk+-d2dc06dae12bb67d85d3178b8de81ab576bc97b9.tar.gz |
added gdk_flush() after g_main_run(), so we get the original behaviour
Fri Dec 18 01:32:59 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_main): added gdk_flush() after g_main_run(), so we
get the original behaviour back, i.e. the event queue needs to be flushed
after a main loop has been quitted.
(gtk_main): add/remove the current main loop to/from the main loop
before/after init/quit functions have been exected to preserve the
original gtk_main_quit() behaviour.
Thu Dec 17 23:48:29 1998 Tim Janik <timj@gtk.org>
* gdk/gdkevents.c (gdk_events_init): changed argument order in call
to g_main_add_poll() to match recent glib changes.
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkfilesel.c | 1 | ||||
-rw-r--r-- | gtk/gtkmain.c | 32 |
2 files changed, 18 insertions, 15 deletions
diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c index 0386dbbc47..a60db8ea5c 100644 --- a/gtk/gtkfilesel.c +++ b/gtk/gtkfilesel.c @@ -408,7 +408,6 @@ gtk_file_selection_init (GtkFileSelection *filesel) gtk_widget_show (list_hbox); /* The directories clist */ - dir_title[0] = _("Directories"); dir_title[1] = NULL; filesel->dir_list = gtk_clist_new_with_titles (1, (gchar**) dir_title); diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index ff595d51f0..55b6d2f0ff 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -432,12 +432,13 @@ gtk_main (void) GList *tmp_list; GList *functions; GtkInitFunction *init; - GMainLoop *loop; - GSList *tmp_node; gtk_main_loop_level++; + loop = g_main_new (TRUE); + main_loops = g_slist_prepend (main_loops, loop); + tmp_list = functions = init_functions; init_functions = NULL; @@ -450,19 +451,14 @@ gtk_main (void) g_free (init); } g_list_free (functions); - - loop = g_main_new (); - main_loops = g_slist_prepend (main_loops, loop); - - GDK_THREADS_LEAVE (); - g_main_run (loop); - GDK_THREADS_ENTER (); - - g_main_destroy (loop); - tmp_node = main_loops; - main_loops = g_slist_remove_link (main_loops, main_loops); - g_slist_free_1 (tmp_node); + if (g_main_is_running (main_loops->data)) + { + GDK_THREADS_LEAVE (); + g_main_run (loop); + GDK_THREADS_ENTER (); + gdk_flush (); + } if (quit_functions) { @@ -496,8 +492,14 @@ gtk_main (void) work->next = quit_functions; quit_functions = work; } + + gdk_flush (); } + main_loops = g_slist_remove (main_loops, loop); + + g_main_destroy (loop); + gtk_main_loop_level--; } @@ -510,6 +512,8 @@ gtk_main_level (void) void gtk_main_quit (void) { + g_return_if_fail (main_loops != NULL); + g_main_quit (main_loops->data); } |