Commit afc19eb4 authored by Alexander Larsson's avatar Alexander Larsson

Send expose events on foreign windows

F-Spot needs this as it draws on a foreign (screensaver) window, which
used to work.

I believe this is safe, because in all typical cases the expose
mask will not be set, so we won't do anything, and its what we used to
do.
parent 402d60e5
......@@ -5023,12 +5023,17 @@ _gdk_window_process_updates_recurse (GdkWindow *window,
g_object_unref (window);
}
else if (private->bg_pixmap != GDK_NO_BG)
else if (private->bg_pixmap != GDK_NO_BG &&
private->window_type != GDK_WINDOW_FOREIGN)
{
/* No exposure mask set, so nothing will be drawn, the
* app relies on the background being what it specified
* for the window. So, we need to clear this manually.
*
* For foreign windows if expose is not set that generally
* means some other client paints them, so don't clear
* there.
*
* We use begin/end_paint around the clear so that we can
* piggyback on the implicit paint */
......@@ -5066,8 +5071,7 @@ gdk_window_process_updates_internal (GdkWindow *window)
GdkRegion *update_area = private->update_area;
private->update_area = NULL;
if (_gdk_event_func && gdk_window_is_viewable (window) &&
private->window_type != GDK_WINDOW_FOREIGN)
if (_gdk_event_func && gdk_window_is_viewable (window))
{
GdkRegion *expose_region;
gboolean end_implicit;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment