diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-06-21 05:49:08 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-06-21 05:49:08 +0000 |
| commit | 15cabcb16a188912f49e99885896ed7ad7a13925 (patch) | |
| tree | b7decc45d6bdbe23f367c7a3867349bb7714a902 /openbox/frame.c | |
| parent | 4c5034aaebc560e1c18af597009577b842081df9 (diff) | |
only enable automatic composite redirection for the client windows, not the frames. maybe this will avoid screen artifacts with the crap server support
Diffstat (limited to 'openbox/frame.c')
| -rw-r--r-- | openbox/frame.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/openbox/frame.c b/openbox/frame.c index 0b852456..25a9214b 100644 --- a/openbox/frame.c +++ b/openbox/frame.c @@ -288,6 +288,12 @@ void frame_adjust_shape(ObFrame *self) self->client->window, ShapeBounding, ShapeSet); + /* shape the offscreen buffer to match the window */ + if (self->pixmap) + XShapeCombineShape(ob_display, self->pixmap, ShapeBounding, + 0, 0, self->client->window, + ShapeBounding, ShapeSet); + num = 0; if (self->decorations & OB_FRAME_DECOR_TITLEBAR) { xrect[0].x = 0; @@ -313,10 +319,6 @@ void frame_adjust_shape(ObFrame *self) ShapeUnion, Unsorted); } - if (self->pixmap) - XShapeCombineShape(ob_display, self->pixmap, ShapeBounding, - 0, 0, self->window, ShapeBounding, ShapeSet); - #endif } @@ -923,6 +925,9 @@ void frame_grab_client(ObFrame *self) /* reparent the client to the frame */ XReparentWindow(ob_display, self->client->window, self->window, 0, 0); + /* enable the offscreen composite buffer for the client window */ + composite_enable_for_window(self->client->window); + /* When reparenting the client window, it is usually not mapped yet, since this occurs from a MapRequest. However, in the case where Openbox is @@ -1754,7 +1759,7 @@ static void frame_get_offscreen_buffer(ObFrame *self) frame_free_offscreen_buffer(self); if (self->visible || frame_iconify_animating(self)) { - self->pixmap = composite_get_window_pixmap(self->window); + self->pixmap = composite_get_window_pixmap(self->client->window); /* self->picture = composite_create_picture(self->window, wattrib.visual, |
