diff options
author | Richard Grenville <[email protected]> | 2012-11-01 10:43:15 +0800 |
---|---|---|
committer | Richard Grenville <[email protected]> | 2012-11-01 11:44:38 +0800 |
commit | 987c43bbd37cd654bb183807c2ee2dde6eed018e (patch) | |
tree | 6ac983836d9cacfaa6696d61f29783b7915f9de6 /compton.h | |
parent | 47f54a1cb78bb53552ea0a0277b1604d1eaad482 (diff) | |
download | tdebase-987c43bbd37cd654bb183807c2ee2dde6eed018e.tar.gz tdebase-987c43bbd37cd654bb183807c2ee2dde6eed018e.zip |
Improvement: border_size & ConfigureNotify & VSync changes
- Run XSync() before the final paint to catch VBlank better. Stolen from
Xfwm4 VSync patch.
- Add --vsync-aggressive that sends out the final painting request
earlier, simulating xfwm4 VSync patch. But this thing does have the
possibility of breaking VSync, I think...
- Change handling of ConfigureNotify to avoid freeing w->extents and
w->border_size if possible.
- Change logic in paint_prepreprocess() to use win_get_region() for
border_size generation instead of border_size() if the window is not
shaped to try to avoid some BadRegion error messages when a window
loses its border_size then is unmapped, about which Adys complained in
#25.
- Detect if w->border_size is None before using it in various places.
Practically the effect is pretty limited because
XFixesCreateRegionFromWindow() usually returns an invalid X ID instead
of None on error.
- Fix a bug that rounded corner detection could fail if the window size
is changed by a ConfigureNotify immediately.
Diffstat (limited to 'compton.h')
-rw-r--r-- | compton.h | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -115,6 +115,8 @@ extern struct timeval time_start; // Window size is changed #define WFLAG_SIZE_CHANGE 0x0001 +// Window size/position is changed +#define WFLAG_POS_CHANGE 0x0002 /** * Types @@ -280,7 +282,7 @@ typedef struct _win { struct _win *prev_trans; } win; -typedef enum _vsync_t { +typedef enum { VSYNC_NONE, VSYNC_DRM, VSYNC_OPENGL, @@ -317,6 +319,8 @@ typedef struct _options { vsync_t vsync; /// Whether to enable double buffer. Bool dbe; + /// Whether to do VSync aggressively. + Bool vsync_aggressive; // Shadow Bool wintype_shadow[NUM_WINTYPES]; |