summaryrefslogtreecommitdiff
path: root/openbox/event.c
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2009-01-29 22:45:47 +0100
committerMikael Magnusson <mikachu@gmail.com>2009-01-29 22:45:47 +0100
commit4145468a1984e1055a947ad957075ae51f70ca9c (patch)
tree923b1d6ae11d4ba0c471779229d2f76642bf4774 /openbox/event.c
parent90cecafa3de2f118e550622932d1d30266c71226 (diff)
parentd0829d4416d83fda4aa4ec8d5f0a7003b0a7f148 (diff)
Merge branch 'backport' into work
Conflicts: openbox/event.c openbox/frame.c
Diffstat (limited to 'openbox/event.c')
-rw-r--r--openbox/event.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/openbox/event.c b/openbox/event.c
index 30bc656f..f69267db 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -1576,11 +1576,24 @@ static void event_handle_client(ObClient *client, XEvent *e)
default:
;
#ifdef SHAPE
- if (obt_display_extension_shape &&
- e->type == obt_display_extension_shape_basep)
{
- client->shaped = ((XShapeEvent*)e)->shaped;
- frame_adjust_shape(client->frame);
+ int kind;
+ if (obt_display_extension_shape &&
+ e->type == obt_display_extension_shape_basep)
+ {
+ switch (((XShapeEvent*)e)->kind) {
+ case ShapeBounding:
+ case ShapeClip:
+ client->shaped = ((XShapeEvent*)e)->shaped;
+ kind = ShapeBounding;
+ break;
+ case ShapeInput:
+ client->shaped_input = ((XShapeEvent*)e)->shaped;
+ kind = ShapeInput;
+ break;
+ }
+ frame_adjust_shape_kind(client->frame, kind);
+ }
}
#endif
}