projects
/
mikachu
/
openbox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'backport' into 3.4
[mikachu/openbox.git]
/
openbox
/
frame.c
diff --git
a/openbox/frame.c
b/openbox/frame.c
index
2cd905a
..
935cea5
100644
(file)
--- a/
openbox/frame.c
+++ b/
openbox/frame.c
@@
-267,25
+267,26
@@
void frame_adjust_theme(ObFrame *self)
set_theme_statics(self);
}
set_theme_statics(self);
}
-void frame_adjust_shape(ObFrame *self)
-{
#ifdef SHAPE
#ifdef SHAPE
+void frame_adjust_shape_kind(ObFrame *self, int kind)
+{
gint num;
XRectangle xrect[2];
gint num;
XRectangle xrect[2];
- if (!self->client->shaped) {
+ if (!((kind == ShapeBounding && self->client->shaped) ||
+ (kind == ShapeInput && self->client->shaped_input))) {
/* clear the shape on the frame window */
/* clear the shape on the frame window */
- XShapeCombineMask(ob_display, self->window,
ShapeBounding
,
+ XShapeCombineMask(ob_display, self->window,
kind
,
self->size.left,
self->size.top,
None, ShapeSet);
} else {
/* make the frame's shape match the clients */
self->size.left,
self->size.top,
None, ShapeSet);
} else {
/* make the frame's shape match the clients */
- XShapeCombineShape(ob_display, self->window,
ShapeBounding
,
+ XShapeCombineShape(ob_display, self->window,
kind
,
self->size.left,
self->size.top,
self->client->window,
self->size.left,
self->size.top,
self->client->window,
-
ShapeBounding
, ShapeSet);
+
kind
, ShapeSet);
num = 0;
if (self->decorations & OB_FRAME_DECOR_TITLEBAR) {
num = 0;
if (self->decorations & OB_FRAME_DECOR_TITLEBAR) {
@@
-308,9
+309,17
@@
void frame_adjust_shape(ObFrame *self)
}
XShapeCombineRectangles(ob_display, self->window,
}
XShapeCombineRectangles(ob_display, self->window,
-
ShapeBounding
, 0, 0, xrect, num,
+
kind
, 0, 0, xrect, num,
ShapeUnion, Unsorted);
}
ShapeUnion, Unsorted);
}
+}
+#endif
+
+void frame_adjust_shape(ObFrame *self)
+{
+#ifdef SHAPE
+ frame_adjust_shape_kind(self, ShapeBounding);
+ frame_adjust_shape_kind(self, ShapeInput);
#endif
}
#endif
}