summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
Diffstat (limited to 'openbox')
-rw-r--r--openbox/event.c2
-rw-r--r--openbox/frame.c11
2 files changed, 11 insertions, 2 deletions
diff --git a/openbox/event.c b/openbox/event.c
index b0a53dba..8a52402e 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -1695,10 +1695,12 @@ static void event_handle_client(ObClient *client, XEvent *e)
client->shaped = ((XShapeEvent*)e)->shaped;
kind = ShapeBounding;
break;
+#ifdef ShapeInput
case ShapeInput:
client->shaped_input = ((XShapeEvent*)e)->shaped;
kind = ShapeInput;
break;
+#endif
default:
g_assert_not_reached();
}
diff --git a/openbox/frame.c b/openbox/frame.c
index 8a9a5a64..db4b976d 100644
--- a/openbox/frame.c
+++ b/openbox/frame.c
@@ -276,9 +276,14 @@ void frame_adjust_shape_kind(ObFrame *self, int kind)
{
gint num;
XRectangle xrect[2];
+ gboolean shaped;
- if (!((kind == ShapeBounding && self->client->shaped) ||
- (kind == ShapeInput && self->client->shaped_input))) {
+ shaped = (kind == ShapeBounding && self->client->shaped);
+#ifdef ShapeInput
+ shaped |= (kind == ShapeInput && self->client->shaped_input);
+#endif
+
+ if (!shaped) {
/* clear the shape on the frame window */
XShapeCombineMask(obt_display, self->window, kind,
self->size.left,
@@ -323,8 +328,10 @@ void frame_adjust_shape(ObFrame *self)
{
#ifdef SHAPE
frame_adjust_shape_kind(self, ShapeBounding);
+#ifdef ShapeInput
frame_adjust_shape_kind(self, ShapeInput);
#endif
+#endif
}
void frame_adjust_area(ObFrame *self, gboolean moved,