summaryrefslogtreecommitdiffstats
path: root/compton.h
diff options
context:
space:
mode:
authorRichard Grenville <[email protected]>2012-11-01 10:43:15 +0800
committerRichard Grenville <[email protected]>2012-11-01 11:44:38 +0800
commit987c43bbd37cd654bb183807c2ee2dde6eed018e (patch)
tree6ac983836d9cacfaa6696d61f29783b7915f9de6 /compton.h
parent47f54a1cb78bb53552ea0a0277b1604d1eaad482 (diff)
downloadtdebase-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.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/compton.h b/compton.h
index 8d17dbacf..9ec61fcbb 100644
--- a/compton.h
+++ b/compton.h
@@ -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];