Use gdk_threads_add_idle instead of g_idle_add. Add a temporary check if

2008-05-17  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_impl_quartz_invalidate_maybe_recurse):
	(gdk_window_quartz_update_idle): Use gdk_threads_add_idle instead
	of g_idle_add. Add a temporary check if the window is already in
	the updates list, since update_area currently doesn't always match
	the backend's state, see bug #530801.

svn path=/trunk/; revision=20108
This commit is contained in:
Richard Hult 2008-05-17 07:26:41 +00:00 committed by Richard Hult
parent f0ded97ab4
commit 618b23a408
2 changed files with 17 additions and 5 deletions

View File

@ -1,3 +1,12 @@
2008-05-17 Richard Hult <richard@imendio.com>
* gdk/quartz/gdkwindow-quartz.c:
(gdk_window_impl_quartz_invalidate_maybe_recurse):
(gdk_window_quartz_update_idle): Use gdk_threads_add_idle instead
of g_idle_add. Add a temporary check if the window is already in
the updates list, since update_area currently doesn't always match
the backend's state, see bug #530801.
2008-05-13 Tor Lillqvist <tml@novell.com>
Bug 496958 - Wacom Bamboo doesn't function with GTK apps in Win32

View File

@ -393,9 +393,7 @@ gdk_window_quartz_process_all_updates (void)
static gboolean
gdk_window_quartz_update_idle (gpointer data)
{
GDK_THREADS_ENTER ();
gdk_window_quartz_process_all_updates ();
GDK_THREADS_LEAVE ();
return FALSE;
}
@ -422,12 +420,17 @@ gdk_window_impl_quartz_invalidate_maybe_recurse (GdkPaintable *paintable,
}
else
{
update_windows = g_slist_prepend (update_windows, window);
/* FIXME: When the update_window/update_area handling is abstracted in
* some way, we can remove this check. Currently it might be cleared
* in the generic code without us knowing, see bug #530801.
*/
if (!g_slist_find (update_windows, window))
update_windows = g_slist_prepend (update_windows, window);
private->update_area = visible_region;
if (update_idle == 0)
update_idle = g_idle_add_full (GDK_PRIORITY_REDRAW,
gdk_window_quartz_update_idle, NULL, NULL);
update_idle = gdk_threads_add_idle_full (GDK_PRIORITY_REDRAW,
gdk_window_quartz_update_idle, NULL, NULL);
}
}