X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fevent.c;h=8eb612a11859f1e9705198a129f44eaa882f5326;hb=7351d86443539fd60267baed129601d923e88269;hp=467af11c104a2d96c23845973dd4687e17205e38;hpb=e3134210d820340ef63bb5c21c9a56856147f0a9;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index 467af11c..8eb612a1 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -1567,9 +1567,22 @@ static void event_handle_client(ObClient *client, XEvent *e) default: ; #ifdef SHAPE - if (extensions_shape && e->type == extensions_shape_event_basep) { - client->shaped = ((XShapeEvent*)e)->shaped; - frame_adjust_shape(client->frame); + { + int kind; + if (extensions_shape && e->type == extensions_shape_event_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 }