diff options
author | Richard Grenville <pyxlcy@gmail.com> | 2012-11-08 19:39:13 +0800 |
---|---|---|
committer | Richard Grenville <pyxlcy@gmail.com> | 2012-11-08 19:45:39 +0800 |
commit | baed7f4b0c211ea2ff04bf9e009ab6e334dad3e4 (patch) | |
tree | 682ca4265a3f8534e2bb8fac33cba599aaccb90e /compton.c | |
parent | 798c631e2b3f08fd3d61b766f71507a896bbbe6f (diff) | |
download | tdebase-baed7f4b0c211ea2ff04bf9e009ab6e334dad3e4.tar.gz tdebase-baed7f4b0c211ea2ff04bf9e009ab6e334dad3e4.zip |
Bug fix: Shape update of opaque windows not handled correctly
- Fix a bug that causes rendering issues if a opaque window changes
shape.
- Remove abundant handling code in paint_preprocess() when generating
border_size as border_size() is no longer relying on
XFixesCreateRegionFromWindow() right now by default.
- Add extra code to print backtrace in DEBUG_ALLOC_REG.
- Move initialization of fade_time closer to first paint.
Diffstat (limited to 'compton.c')
-rw-r--r-- | compton.c | 16 |
1 files changed, 5 insertions, 11 deletions
@@ -1428,15 +1428,7 @@ paint_preprocess(Display *dpy, win *list) { // Fetch bounding region if (!w->border_size) { - // Build a border_size ourselves if window is not shaped, to avoid - // getting an invalid border_size region from X if the window is - // unmapped/destroyed - if (!w->bounding_shaped) { - w->border_size = win_get_region(dpy, w); - } - else if (IsUnmapped != w->a.map_state) { - w->border_size = border_size(dpy, w); - } + w->border_size = border_size(dpy, w); } // Fetch window extents @@ -3220,6 +3212,8 @@ ev_shape_notify(XShapeEvent *ev) { // Redo bounding shape detection and rounded corner detection win_update_shape(dpy, w); + + update_reg_ignore_expire(w); } /** @@ -4478,8 +4472,6 @@ main(int argc, char **argv) { get_cfg(argc, argv); - fade_time = get_time_ms(); - dpy = XOpenDisplay(opts.display); if (!dpy) { fprintf(stderr, "Can't open display\n"); @@ -4659,6 +4651,8 @@ main(int argc, char **argv) { reg_ignore_expire = True; + fade_time = get_time_ms(); + t = paint_preprocess(dpy, list); paint_all(dpy, None, t); |