summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Reveman <davidr@novell.com>2008-11-25 14:47:38 -0500
committerDavid Reveman <davidr@novell.com>2008-11-25 14:47:38 -0500
commit70e6f5c84e3c038ff50dd456aa5e9c4e7d7350d0 (patch)
treeb4b5ab50070ecb521afd5e6ddc6c89eadb0f2e30
parentd8beb9fd7011a6b13349306ee09f6abf61247936 (diff)
Add decor_update_box_property.
-rw-r--r--gtk/window-decorator/gtk-window-decorator.c81
1 files changed, 56 insertions, 25 deletions
diff --git a/gtk/window-decorator/gtk-window-decorator.c b/gtk/window-decorator/gtk-window-decorator.c
index 809f9a22..a9ee7a0b 100644
--- a/gtk/window-decorator/gtk-window-decorator.c
+++ b/gtk/window-decorator/gtk-window-decorator.c
@@ -480,32 +480,25 @@ static Window switcher_selected_window = None;
static XRenderPictFormat *xformat;
static void
-decor_update_blur_property (decor_t *d,
- int width,
- int height,
- Region top_region,
- int top_offset,
- Region bottom_region,
- int bottom_offset,
- Region left_region,
- int left_offset,
- Region right_region,
- int right_offset)
+decor_update_box_property (decor_t *d,
+ Atom property,
+ int value0,
+ int value1,
+ int width,
+ int height,
+ Region top_region,
+ int top_offset,
+ Region bottom_region,
+ int bottom_offset,
+ Region left_region,
+ int left_offset,
+ Region right_region,
+ int right_offset)
{
Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
long *data = NULL;
int size = 0;
- if (blur_type != BLUR_TYPE_ALL)
- {
- bottom_region = NULL;
- left_region = NULL;
- right_region = NULL;
-
- if (blur_type != BLUR_TYPE_TITLEBAR)
- top_region = NULL;
- }
-
if (top_region)
size += top_region->numRects;
if (bottom_region)
@@ -520,8 +513,8 @@ decor_update_blur_property (decor_t *d,
if (data)
{
- data[0] = 4;
- data[1] = 0;
+ data[0] = value0;
+ data[1] = value1;
decor_region_to_box_property (data + 2, width, height,
top_region, top_offset,
@@ -531,7 +524,7 @@ decor_update_blur_property (decor_t *d,
gdk_error_trap_push ();
XChangeProperty (xdisplay, d->prop_xid,
- win_blur_decor_atom,
+ property,
XA_INTEGER,
32, PropModeReplace, (guchar *) data,
2 + size * 6);
@@ -543,13 +536,51 @@ decor_update_blur_property (decor_t *d,
else
{
gdk_error_trap_push ();
- XDeleteProperty (xdisplay, d->prop_xid, win_blur_decor_atom);
+ XDeleteProperty (xdisplay, d->prop_xid, property);
gdk_display_sync (gdk_display_get_default ());
gdk_error_trap_pop ();
}
}
static void
+decor_update_blur_property (decor_t *d,
+ int width,
+ int height,
+ Region top_region,
+ int top_offset,
+ Region bottom_region,
+ int bottom_offset,
+ Region left_region,
+ int left_offset,
+ Region right_region,
+ int right_offset)
+{
+ if (blur_type != BLUR_TYPE_ALL)
+ {
+ bottom_region = NULL;
+ left_region = NULL;
+ right_region = NULL;
+
+ if (blur_type != BLUR_TYPE_TITLEBAR)
+ top_region = NULL;
+ }
+
+ decor_update_box_property (d,
+ win_blur_decor_atom,
+ 4, 0,
+ width,
+ height,
+ top_region,
+ top_offset,
+ bottom_region,
+ bottom_offset,
+ left_region,
+ left_offset,
+ right_region,
+ right_offset);
+}
+
+static void
decor_update_window_property (decor_t *d)
{
long data[256];