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);
+}
+