new_info.width = obj->width;
new_info.height = obj->height;
- _gdk_x11_window_tmp_unset_bg (window, TRUE);
- _gdk_x11_window_tmp_unset_bg (obj->parent, FALSE);
+ _gdk_x11_window_tmp_unset_parent_bg (window, TRUE);
if (is_resize)
move_resize (window, &new_info);
else
move (window, &new_info);
- _gdk_x11_window_tmp_reset_bg (obj->parent, FALSE);
- _gdk_x11_window_tmp_reset_bg (window, TRUE);
+ _gdk_x11_window_tmp_reset_parent_bg (window, TRUE);
}
static Bool
!GDK_WINDOW_IS_MAPPED (window)))
return;
-
if (_gdk_window_has_impl (window) &&
GDK_WINDOW_IS_X11 (window) &&
private->window_type != GDK_WINDOW_ROOT &&
}
}
+void
+_gdk_x11_window_tmp_unset_parent_bg (GdkWindow *window,
+ gboolean recurse)
+{
+ GdkWindowObject *private;
+ private = (GdkWindowObject*) window;
+ _gdk_x11_window_tmp_unset_bg (_gdk_window_get_impl_window ((GdkWindow *)private->parent),
+ recurse);
+}
+
void
_gdk_x11_window_tmp_reset_bg (GdkWindow *window,
gboolean recurse)
}
}
+void
+_gdk_x11_window_tmp_reset_parent_bg (GdkWindow *window,
+ gboolean recurse)
+{
+ GdkWindowObject *private;
+ private = (GdkWindowObject*) window;
+ _gdk_x11_window_tmp_reset_bg (_gdk_window_get_impl_window ((GdkWindow *)private->parent),
+ recurse);
+}
+
static GdkColormap*
gdk_window_impl_x11_get_colormap (GdkDrawable *drawable)
{
return;
if (private->window_type == GDK_WINDOW_CHILD)
- start_window = (GdkWindow *)private->parent;
+ start_window = _gdk_window_get_impl_window ((GdkWindow *)private->parent);
else if (private->window_type == GDK_WINDOW_TEMP)
start_window = get_root (window);
return;
if (private->window_type == GDK_WINDOW_CHILD)
- start_window = (GdkWindow *)private->parent;
+ start_window = _gdk_window_get_impl_window ((GdkWindow *)private->parent);
else if (private->window_type == GDK_WINDOW_TEMP)
start_window = get_root (window);
impl = GDK_WINDOW_IMPL_X11 (window_private->impl);
_gdk_x11_window_tmp_unset_bg (window, TRUE);
- _gdk_x11_window_tmp_unset_bg ((GdkWindow *)old_parent_private, FALSE);
+ _gdk_x11_window_tmp_unset_parent_bg (window, FALSE);
XReparentWindow (GDK_WINDOW_XDISPLAY (window),
GDK_WINDOW_XID (window),
GDK_WINDOW_XID (new_parent),
parent_private->abs_x + x, parent_private->abs_y + y);
- _gdk_x11_window_tmp_reset_bg ((GdkWindow *)old_parent_private, FALSE);
+ _gdk_x11_window_tmp_reset_parent_bg (window, FALSE);
_gdk_x11_window_tmp_reset_bg (window, TRUE);
if (GDK_WINDOW_TYPE (new_parent) == GDK_WINDOW_FOREIGN)
: gdk_display_supports_input_shapes (GDK_WINDOW_DISPLAY (window)))
{
private->shaped = FALSE;
- _gdk_x11_window_tmp_unset_bg ((GdkWindow *)private->parent, TRUE);
+ if (shape == ShapeBounding)
+ _gdk_x11_window_tmp_unset_parent_bg (window, TRUE);
XShapeCombineMask (GDK_WINDOW_XDISPLAY (window),
GDK_WINDOW_XID (window),
shape,
0, 0,
None,
ShapeSet);
- _gdk_x11_window_tmp_reset_bg ((GdkWindow *)private->parent, TRUE);
+ if (shape == ShapeBounding)
+ _gdk_x11_window_tmp_reset_parent_bg (window, TRUE);
}
return;
}
0, 0,
&xrects, &n_rects);
-
- _gdk_x11_window_tmp_unset_bg ((GdkWindow *)private->parent, TRUE);
-
+ if (shape == ShapeBounding)
+ _gdk_x11_window_tmp_unset_parent_bg (window, TRUE);
XShapeCombineRectangles (GDK_WINDOW_XDISPLAY (window),
GDK_WINDOW_XID (window),
shape,
ShapeSet,
YXBanded);
- _gdk_x11_window_tmp_reset_bg ((GdkWindow *)private->parent, TRUE);
+ if (shape == ShapeBounding)
+ _gdk_x11_window_tmp_reset_parent_bg (window, TRUE);
g_free (xrects);
}
GType gdk_window_impl_x11_get_type (void);
-void gdk_x11_window_set_user_time (GdkWindow *window,
- guint32 timestamp);
-
-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_set_user_time (GdkWindow *window,
+ guint32 timestamp);
+
+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,
+ gboolean recurse);
+void _gdk_x11_window_tmp_reset_parent_bg (GdkWindow *window,
+ gboolean recurse);
GdkCursor *_gdk_x11_window_get_cursor (GdkWindow *window);
void _gdk_x11_window_get_offsets (GdkWindow *window,