Mercurial > pidgin
diff src/gtkutils.c @ 13434:ffd724befbf8
[gaim-migrate @ 15809]
Cleanup the busy cursor handling code to eliminate a bunch of these loops:
while (gtk_events_pending())
gtk_main_iteration();
They seem like a race condition waiting to happen. This code is also simpler,
and more generic.
This leaves only one such loop, in src/gtkblist.c's gaim_gtk_blist_expand_contact_cb().
committer: Tailor Script <tailor@pidgin.im>
| author | Richard Laager <rlaager@wiktel.com> |
|---|---|
| date | Tue, 07 Mar 2006 05:48:54 +0000 |
| parents | 1299f8f51b07 |
| children | 689f652480f7 |
line wrap: on
line diff
--- a/src/gtkutils.c Tue Mar 07 05:09:51 2006 +0000 +++ b/src/gtkutils.c Tue Mar 07 05:48:54 2006 +0000 @@ -2180,3 +2180,29 @@ g_signal_connect(G_OBJECT(entry), "destroy", G_CALLBACK(screenname_autocomplete_destroyed_cb), NULL); } +void gaim_gtk_set_cursor(GtkWidget *widget, GdkCursorType cursor_type) +{ + GdkCursor *cursor; + + if (widget == NULL) + return; + + cursor = gdk_cursor_new(GDK_WATCH); + gdk_window_set_cursor(widget->window, cursor); + gdk_cursor_unref(cursor); + +#if GTK_CHECK_VERSION(2,4,0) + gdk_display_flush(gdk_drawable_get_display(GDK_DRAWABLE(widget->window))); +#else + gdk_flush(); +#endif +} + +void gaim_gtk_clear_cursor(GtkWidget *widget) +{ + if (widget == NULL) + return; + + gdk_window_set_cursor(widget->window, NULL); +} +
