Don't reenter gdk_window_process_updates_internal

Its not correct for recurse gdk_window_process_updates_internal, as
the outer instance will overdraw the inner. So, protect against
gdk_window_process_updates() being called while in an expose
handler.

This shouldn't be a repaint problem, as eventually the idle handler
will cause the updates to be processed.
This commit is contained in:
Alexander Larsson 2009-09-14 13:24:55 +02:00
parent 6716d46393
commit 130a7743e3

View File

@ -5278,7 +5278,11 @@ gdk_window_process_updates (GdkWindow *window,
if ((impl_window->update_area ||
impl_window->outstanding_moves) &&
!impl_window->update_freeze_count &&
!gdk_window_is_toplevel_frozen (window))
!gdk_window_is_toplevel_frozen (window) &&
/* Don't recurse into process_updates_internal, we'll
* do the update later when idle instead. */
impl_window->implicit_paint == NULL)
{
gdk_window_process_updates_internal ((GdkWindow *)impl_window);
gdk_window_remove_update_window ((GdkWindow *)impl_window);