diff options
author | Richard Grenville <pyxlcy@gmail.com> | 2014-03-11 07:22:23 +0800 |
---|---|---|
committer | Richard Grenville <pyxlcy@gmail.com> | 2014-03-11 07:22:23 +0800 |
commit | 53d0c5c015d438172957a1ca0f31e1fb6fa9b150 (patch) | |
tree | 8bb693dbf1b2b21052f9b59aa033b23e3259dd78 | |
parent | 9745bfe765a42d4183dbcf343e889e1cb7cf18a4 (diff) | |
download | tdebase-53d0c5c015d438172957a1ca0f31e1fb6fa9b150.tar.gz tdebase-53d0c5c015d438172957a1ca0f31e1fb6fa9b150.zip |
Misc: xr-glx-hybrid alias & minor fixes
- Add "xr-glx-hybrid" as an alias of "xr_glx_hybrid". (#163)
- Clear damage history in expose_root() and when root window size
changes. Unfortunately this doesn't fix #181.
-rw-r--r-- | common.h | 14 | ||||
-rw-r--r-- | compton.c | 2 |
2 files changed, 16 insertions, 0 deletions
@@ -1499,6 +1499,11 @@ parse_backend(session_t *ps, const char *str) { ps->o.backend = BKEND_XR_GLX_HYBRID; return true; } + // cju wants to use dashes + if (!strcasecmp(str, "xr-glx-hybrid")) { + ps->o.backend = BKEND_XR_GLX_HYBRID; + return true; + } printf_errf("(\"%s\"): Invalid backend argument.", str); return false; } @@ -1789,6 +1794,15 @@ free_region(session_t *ps, XserverRegion *p) { } /** + * Free all regions in ps->all_damage_last . + */ +static inline void +free_all_damage_last(session_t *ps) { + for (int i = 0; i < CGLX_MAX_BUFFER_AGE; ++i) + free_region(ps, &ps->all_damage_last[i]); +} + +/** * Crop a rectangle by another rectangle. * * psrc and pdst cannot be the same. @@ -2983,6 +2983,7 @@ configure_win(session_t *ps, XConfigureEvent *ce) { rebuild_screen_reg(ps); rebuild_shadow_exclude_reg(ps); + free_all_damage_last(ps); #ifdef CONFIG_VSYNC_OPENGL if (BKEND_GLX == ps->o.backend) @@ -3275,6 +3276,7 @@ error(Display __attribute__((unused)) *dpy, XErrorEvent *ev) { static void expose_root(session_t *ps, XRectangle *rects, int nrects) { + free_all_damage_last(ps); XserverRegion region = XFixesCreateRegion(ps->dpy, rects, nrects); add_damage(ps, region); } |