the sawfish window manager has ifdefs for this sort of situation.
I followed suit, and #ifdef'd it, and it now works for me.
patch attached.
Slight changes to the patch from danakj@orodu.net for readability
client->shaped = ((XShapeEvent*)e)->shaped;
kind = ShapeBounding;
break;
client->shaped = ((XShapeEvent*)e)->shaped;
kind = ShapeBounding;
break;
case ShapeInput:
client->shaped_input = ((XShapeEvent*)e)->shaped;
kind = ShapeInput;
break;
case ShapeInput:
client->shaped_input = ((XShapeEvent*)e)->shaped;
kind = ShapeInput;
break;
default:
g_assert_not_reached();
}
default:
g_assert_not_reached();
}
{
gint num;
XRectangle xrect[2];
{
gint num;
XRectangle xrect[2];
- 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,
/* clear the shape on the frame window */
XShapeCombineMask(obt_display, self->window, kind,
self->size.left,
{
#ifdef SHAPE
frame_adjust_shape_kind(self, ShapeBounding);
{
#ifdef SHAPE
frame_adjust_shape_kind(self, ShapeBounding);
frame_adjust_shape_kind(self, ShapeInput);
#endif
frame_adjust_shape_kind(self, ShapeInput);
#endif
}
void frame_adjust_area(ObFrame *self, gboolean moved,
}
void frame_adjust_area(ObFrame *self, gboolean moved,