aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2022-07-18 00:14:28 +0200
committerdec05eba <dec05eba@protonmail.com>2022-07-18 00:14:28 +0200
commita260f37c665df5d2fec5c0e440b54199134cfead (patch)
tree59bfe0bf32a9bb6ff56e067f9fdc48a4acd6adf3 /src
parentac823a51f955cbae52ff68271dda9c958d191d8d (diff)
Use expose instead of visibility event
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 0278da1..9bd814c 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -256,7 +256,6 @@ private: // X compositor
int x_fixes_event_base;
int x_fixes_error_base;
- int prev_visibility_state = VisibilityFullyObscured;
GLint pixmap_texture_width = 0;
GLint pixmap_texture_height = 0;
@@ -1059,12 +1058,9 @@ bool CMainApplication::HandleInput()
}
if(src_window_id) {
- if (XCheckTypedWindowEvent(x_display, src_window_id, VisibilityNotify, &xev)) {
- if((prev_visibility_state == VisibilityFullyObscured && xev.xvisibility.state != VisibilityFullyObscured) || (xev.xvisibility.state == prev_visibility_state)) {
- window_resize_time = SDL_GetTicks();
- window_resized = true;
- }
- prev_visibility_state = xev.xvisibility.state;
+ if (XCheckTypedWindowEvent(x_display, src_window_id, Expose, &xev) && xev.xexpose.count == 0) {
+ window_resize_time = SDL_GetTicks();
+ window_resized = true;
}
if (XCheckTypedWindowEvent(x_display, src_window_id, ConfigureNotify, &xev) && xev.xconfigure.window == src_window_id) {
@@ -1092,7 +1088,7 @@ bool CMainApplication::HandleInput()
}
Uint32 time_now = SDL_GetTicks();
- const int window_resize_timeout = 1000; /* 1.0 second */
+ const int window_resize_timeout = 1000; /* 1 second */
if((focused_window_changed && src_window_id) || (window_resized && time_now - window_resize_time >= window_resize_timeout)) {
XWindowAttributes xwa;
if(!XGetWindowAttributes(x_display, src_window_id, &xwa)) {
@@ -1104,7 +1100,7 @@ bool CMainApplication::HandleInput()
window_resized = false;
if(focused_window_changed) {
- XSelectInput(x_display, src_window_id, StructureNotifyMask|VisibilityChangeMask|KeyPressMask|KeyReleaseMask);
+ XSelectInput(x_display, src_window_id, StructureNotifyMask|ExposureMask|KeyPressMask|KeyReleaseMask);
XFixesSelectCursorInput(x_display, src_window_id, XFixesDisplayCursorNotifyMask);
}