summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorSam Spilsbury <sam.spilsbury@canonical.com>2011-02-01 17:26:11 +0800
committerSam Spilsbury <sam.spilsbury@canonical.com>2011-02-01 17:26:11 +0800
commit4ae95852e53075caed1558620127f0c1405fe474 (patch)
tree12396907cfded0311fa4afc7064d3afc9b7a9241 /gtk
parenteda4ce59d1010289f1cdd62e4ce03a3517dd61da (diff)
downloadcompiz-with-glib-mainloop-4ae95852e53075caed1558620127f0c1405fe474.tar.gz
compiz-with-glib-mainloop-4ae95852e53075caed1558620127f0c1405fe474.tar.bz2
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
Diffstat (limited to 'gtk')
-rw-r--r--gtk/window-decorator/decorator.c3
-rw-r--r--gtk/window-decorator/decorprops.c3
-rw-r--r--gtk/window-decorator/metacity.c3
3 files changed, 7 insertions, 2 deletions
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);