From 4ae95852e53075caed1558620127f0c1405fe474 Mon Sep 17 00:00:00 2001 From: Sam Spilsbury Date: Tue, 1 Feb 2011 17:26:11 +0800 Subject: Allow semantic difference between frame window geometry and frame size. Rationale: some window decorators or themes might want to specify a border input area that is slightly larger than the visible borders on screen (eg for enhanced resize handles, a11y purposes, etc) or the theme might want to specify some additional decoration which should affect placement but should not be interacted with. In this case we have a priv->border and priv->input window property. priv->border specifies the actual semantic size of the window decoration that should affect placement and priv->input specifies the extents of the frame window past the client. Fixes LP: #710271 --- gtk/window-decorator/decorator.c | 3 +++ gtk/window-decorator/decorprops.c | 3 ++- gtk/window-decorator/metacity.c | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'gtk/window-decorator') diff --git a/gtk/window-decorator/decorator.c b/gtk/window-decorator/decorator.c index 68eb22f..3bcaddd 100644 --- a/gtk/window-decorator/decorator.c +++ b/gtk/window-decorator/decorator.c @@ -748,6 +748,7 @@ update_default_decorations (GdkScreen *screen) decor_quads_to_property (data, no_border_shadow->pixmap, &_shadow_extents, &_shadow_extents, + &_shadow_extents, &_shadow_extents, 0, 0, quads, nQuad); XChangeProperty (xdisplay, xroot, @@ -820,6 +821,7 @@ update_default_decorations (GdkScreen *screen) XRenderFreePicture (xdisplay, d.picture); decor_quads_to_property (data, GDK_PIXMAP_XID (d.pixmap), + &extents, &extents, &extents, &extents, 0, 0, quads, nQuad); XChangeProperty (xdisplay, xroot, @@ -847,6 +849,7 @@ update_default_decorations (GdkScreen *screen) XRenderFreePicture (xdisplay, d.picture); decor_quads_to_property (data, GDK_PIXMAP_XID (d.pixmap), + &extents, &extents, &extents, &extents, 0, 0, quads, nQuad); XChangeProperty (xdisplay, xroot, diff --git a/gtk/window-decorator/decorprops.c b/gtk/window-decorator/decorprops.c index 68b6ed5..b6b3820 100644 --- a/gtk/window-decorator/decorprops.c +++ b/gtk/window-decorator/decorprops.c @@ -36,7 +36,7 @@ decor_update_window_property (decor_t *d) else { decor_quads_to_property (data, GDK_PIXMAP_XID (d->pixmap), - &extents, &extents, + &extents, &extents, &extents, &extents, ICON_SPACE + d->button_width, 0, quads, nQuad); @@ -111,6 +111,7 @@ decor_update_switcher_property (decor_t *d) decor_quads_to_property (data, GDK_PIXMAP_XID (d->pixmap), &_switcher_extents, &_switcher_extents, + &_switcher_extents, &_switcher_extents, 0, 0, quads, nQuad); style = gtk_widget_get_style (style_window_rgba); diff --git a/gtk/window-decorator/metacity.c b/gtk/window-decorator/metacity.c index bbef354..204b608 100644 --- a/gtk/window-decorator/metacity.c +++ b/gtk/window-decorator/metacity.c @@ -69,7 +69,8 @@ decor_update_meta_window_property (decor_t *d, decor_gen_window_property (data, &extents, &max_extents, 20, 20); else decor_quads_to_property (data, GDK_PIXMAP_XID (d->pixmap), - &extents, &max_extents, + &extents, &extents, + &max_extents, &max_extents, ICON_SPACE + d->button_width, 0, quads, nQuad); -- cgit v1.1