From 56b25e2574cad338d5549561deb024301452b660 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 27 Oct 2016 06:37:02 +0200 Subject: [PATCH] x11: Remove code that temporarily unsets the background We don't set a background anymore, so we don't need to temporarily unset it. --- gdk/x11/gdkgeometry-x11.c | 4 - gdk/x11/gdkwindow-x11.c | 167 -------------------------------------- gdk/x11/gdkwindow-x11.h | 6 -- 3 files changed, 177 deletions(-) diff --git a/gdk/x11/gdkgeometry-x11.c b/gdk/x11/gdkgeometry-x11.c index a018fb136b..c5bfb7759e 100644 --- a/gdk/x11/gdkgeometry-x11.c +++ b/gdk/x11/gdkgeometry-x11.c @@ -71,16 +71,12 @@ _gdk_x11_window_move_resize_child (GdkWindow *window, * the window won't be visible anyway and thus it will be shaped * to nothing */ - _gdk_x11_window_tmp_unset_parent_bg (window); - _gdk_x11_window_tmp_unset_bg (window, TRUE); XMoveResizeWindow (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window), (window->x + window->parent->abs_x) * impl->window_scale, (window->y + window->parent->abs_y) * impl->window_scale, width * impl->window_scale, height * impl->window_scale); - _gdk_x11_window_tmp_reset_parent_bg (window); - _gdk_x11_window_tmp_reset_bg (window, TRUE); } static Bool diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 761bedbfe8..52dfd84608 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -617,113 +617,6 @@ gdk_x11_window_create_pixmap_surface (GdkWindow *window, return surface; } -static void -tmp_unset_bg (GdkWindow *window) -{ - GdkWindowImplX11 *impl; - - impl = GDK_WINDOW_IMPL_X11 (window->impl); - - impl->no_bg = TRUE; - - XSetWindowBackgroundPixmap (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XID (window), None); -} - -static void -tmp_reset_bg (GdkWindow *window) -{ - GdkWindowImplX11 *impl; - - impl = GDK_WINDOW_IMPL_X11 (window->impl); - - impl->no_bg = FALSE; - - XSetWindowBackground (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XID (window), 0); -} - -/* Unsetting and resetting window backgrounds. - * - * In many cases it is possible to avoid flicker by unsetting the - * background of windows. For example if the background of the - * parent window is unset when a window is unmapped, a brief flicker - * of background painting is avoided. - */ -void -_gdk_x11_window_tmp_unset_bg (GdkWindow *window, - gboolean recurse) -{ - g_return_if_fail (GDK_IS_WINDOW (window)); - - if (window->input_only || window->destroyed || - (window->window_type != GDK_WINDOW_ROOT && - !GDK_WINDOW_IS_MAPPED (window))) - return; - - if (_gdk_window_has_impl (window) && - GDK_WINDOW_IS_X11 (window) && - window->window_type != GDK_WINDOW_ROOT && - window->window_type != GDK_WINDOW_FOREIGN) - tmp_unset_bg (window); - - if (recurse) - { - GList *l; - - for (l = window->children; l != NULL; l = l->next) - _gdk_x11_window_tmp_unset_bg (l->data, TRUE); - } -} - -void -_gdk_x11_window_tmp_unset_parent_bg (GdkWindow *window) -{ - if (GDK_WINDOW_TYPE (window->parent) == GDK_WINDOW_ROOT) - return; - - window = _gdk_window_get_impl_window (window->parent); - _gdk_x11_window_tmp_unset_bg (window, FALSE); -} - -void -_gdk_x11_window_tmp_reset_bg (GdkWindow *window, - gboolean recurse) -{ - g_return_if_fail (GDK_IS_WINDOW (window)); - - if (window->input_only || window->destroyed || - (window->window_type != GDK_WINDOW_ROOT && - !GDK_WINDOW_IS_MAPPED (window))) - return; - - - if (_gdk_window_has_impl (window) && - GDK_WINDOW_IS_X11 (window) && - window->window_type != GDK_WINDOW_ROOT && - window->window_type != GDK_WINDOW_FOREIGN) - tmp_reset_bg (window); - - if (recurse) - { - GList *l; - - for (l = window->children; l != NULL; l = l->next) - _gdk_x11_window_tmp_reset_bg (l->data, TRUE); - } -} - -void -_gdk_x11_window_tmp_reset_parent_bg (GdkWindow *window) -{ - if (GDK_WINDOW_TYPE (window->parent) == GDK_WINDOW_ROOT) - return; - - window = _gdk_window_get_impl_window (window->parent); - - _gdk_x11_window_tmp_reset_bg (window, FALSE); -} - void _gdk_x11_screen_init_root_window (GdkScreen *screen) { @@ -1619,10 +1512,8 @@ gdk_window_x11_show (GdkWindow *window, gboolean already_mapped) GdkDisplay *display; GdkX11Display *display_x11; GdkToplevelX11 *toplevel; - GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl); Display *xdisplay = GDK_WINDOW_XDISPLAY (window); Window xwindow = GDK_WINDOW_XID (window); - gboolean unset_bg; if (!already_mapped) set_initial_hints (window); @@ -1639,19 +1530,8 @@ gdk_window_x11_show (GdkWindow *window, gboolean already_mapped) gdk_x11_window_set_user_time (window, display_x11->user_time); } - unset_bg = !window->input_only && - (window->window_type == GDK_WINDOW_CHILD || - impl->override_redirect) && - gdk_window_is_viewable (window); - - if (unset_bg) - _gdk_x11_window_tmp_unset_bg (window, TRUE); - XMapWindow (xdisplay, xwindow); - if (unset_bg) - _gdk_x11_window_tmp_reset_bg (window, TRUE); - /* Fullscreen on current monitor is the default, no need to apply this mode * when mapping a window. This also ensures that the default behavior remains * consistent with pre-fullscreen mode implementation. @@ -1660,23 +1540,6 @@ gdk_window_x11_show (GdkWindow *window, gboolean already_mapped) gdk_x11_window_apply_fullscreen_mode (window); } -static void -pre_unmap (GdkWindow *window) -{ - GdkWindow *start_window = NULL; - - if (window->input_only) - return; - - if (window->window_type == GDK_WINDOW_CHILD) - start_window = _gdk_window_get_impl_window ((GdkWindow *)window->parent); - else if (window->window_type == GDK_WINDOW_TEMP) - start_window = get_root (window); - - if (start_window) - _gdk_x11_window_tmp_unset_bg (start_window, TRUE); -} - static void post_unmap (GdkWindow *window) { @@ -1692,8 +1555,6 @@ post_unmap (GdkWindow *window) if (start_window) { - _gdk_x11_window_tmp_reset_bg (start_window, TRUE); - if (window->window_type == GDK_WINDOW_CHILD && window->parent) { GdkRectangle invalid_rect; @@ -1733,7 +1594,6 @@ gdk_window_x11_hide (GdkWindow *window) _gdk_window_clear_update_area (window); - pre_unmap (window); XUnmapWindow (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window)); post_unmap (window); @@ -1751,8 +1611,6 @@ gdk_window_x11_withdraw (GdkWindow *window) g_assert (!GDK_WINDOW_IS_MAPPED (window)); - pre_unmap (window); - XWithdrawWindow (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window), 0); @@ -1990,15 +1848,11 @@ gdk_window_x11_reparent (GdkWindow *window, impl = GDK_WINDOW_IMPL_X11 (window->impl); - _gdk_x11_window_tmp_unset_bg (window, TRUE); - _gdk_x11_window_tmp_unset_parent_bg (window); XReparentWindow (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window), GDK_WINDOW_XID (new_parent), (new_parent->abs_x + x) * impl->window_scale, (new_parent->abs_y + y) * impl->window_scale); - _gdk_x11_window_tmp_reset_parent_bg (window); - _gdk_x11_window_tmp_reset_bg (window, TRUE); if (WINDOW_IS_TOPLEVEL (window)) connect_frame_clock (window); @@ -3238,22 +3092,12 @@ do_shape_combine_region (GdkWindow *window, ? gdk_display_supports_shapes (GDK_WINDOW_DISPLAY (window)) : gdk_display_supports_input_shapes (GDK_WINDOW_DISPLAY (window))) { - if (shape == ShapeBounding) - { - _gdk_x11_window_tmp_unset_parent_bg (window); - _gdk_x11_window_tmp_unset_bg (window, TRUE); - } XShapeCombineMask (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window), shape, 0, 0, None, ShapeSet); - if (shape == ShapeBounding) - { - _gdk_x11_window_tmp_reset_parent_bg (window); - _gdk_x11_window_tmp_reset_bg (window, TRUE); - } } return; } @@ -3269,11 +3113,6 @@ do_shape_combine_region (GdkWindow *window, 0, 0, impl->window_scale, &xrects, &n_rects); - if (shape == ShapeBounding) - { - _gdk_x11_window_tmp_unset_parent_bg (window); - _gdk_x11_window_tmp_unset_bg (window, TRUE); - } XShapeCombineRectangles (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window), shape, @@ -3282,12 +3121,6 @@ do_shape_combine_region (GdkWindow *window, xrects, n_rects, ShapeSet, YXBanded); - - if (shape == ShapeBounding) - { - _gdk_x11_window_tmp_reset_parent_bg (window); - _gdk_x11_window_tmp_reset_bg (window, TRUE); - } g_free (xrects); } diff --git a/gdk/x11/gdkwindow-x11.h b/gdk/x11/gdkwindow-x11.h index 6bd9528588..166b7ca1e8 100644 --- a/gdk/x11/gdkwindow-x11.h +++ b/gdk/x11/gdkwindow-x11.h @@ -185,12 +185,6 @@ struct _GdkToplevelX11 GType gdk_window_impl_x11_get_type (void); GdkToplevelX11 *_gdk_x11_window_get_toplevel (GdkWindow *window); -void _gdk_x11_window_tmp_unset_bg (GdkWindow *window, - gboolean recurse); -void _gdk_x11_window_tmp_reset_bg (GdkWindow *window, - gboolean recurse); -void _gdk_x11_window_tmp_unset_parent_bg (GdkWindow *window); -void _gdk_x11_window_tmp_reset_parent_bg (GdkWindow *window); GdkCursor *_gdk_x11_window_get_cursor (GdkWindow *window);