From ac823a51f955cbae52ff68271dda9c958d191d8d Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 17 Jul 2022 23:48:14 +0200 Subject: Readd bspwm (and i3) fix when changing workspace --- TODO | 1 + src/main.cpp | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 TODO diff --git a/TODO b/TODO new file mode 100644 index 0000000..e60dcdc --- /dev/null +++ b/TODO @@ -0,0 +1 @@ +Use libmpv. Make stereo audio follow headset rotation in 180/360 mode (assume facing forward is the default audio mode). diff --git a/src/main.cpp b/src/main.cpp index 592e3dd..0278da1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -256,6 +256,7 @@ 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,9 +1060,11 @@ bool CMainApplication::HandleInput() if(src_window_id) { if (XCheckTypedWindowEvent(x_display, src_window_id, VisibilityNotify, &xev)) { - // TODO: Re-enable. This currently spams visibility notify change - //window_resize_time = SDL_GetTicks(); - //window_resized = true; + 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, ConfigureNotify, &xev) && xev.xconfigure.window == src_window_id) { @@ -1089,7 +1092,7 @@ bool CMainApplication::HandleInput() } Uint32 time_now = SDL_GetTicks(); - const int window_resize_timeout = 500; /* 0.5 seconds */ + const int window_resize_timeout = 1000; /* 1.0 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)) { -- cgit v1.2.3