X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;fp=openbox%2Fevent.c;h=f69267db60c63f1dcfed979fd567ad41a2345fed;hb=4145468a1984e1055a947ad957075ae51f70ca9c;hp=30bc656fbfb641724746a47ec6d655bb970a04c2;hpb=90cecafa3de2f118e550622932d1d30266c71226;p=chaz%2Fopenbox 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 }