aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.cpp8
-rw-r--r--src/window_texture.c6
2 files changed, 9 insertions, 5 deletions
diff --git a/src/main.cpp b/src/main.cpp
index e822c80..a183976 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1094,8 +1094,12 @@ bool CMainApplication::HandleInput()
window_resize_time = SDL_GetTicks();
window_resized = false;
- XSelectInput(x_display, src_window_id, StructureNotifyMask|VisibilityChangeMask|KeyPressMask|KeyReleaseMask);
- XFixesSelectCursorInput(x_display, src_window_id, XFixesDisplayCursorNotifyMask);
+ if(focused_window_changed) {
+ XSelectInput(x_display, src_window_id, StructureNotifyMask|VisibilityChangeMask|KeyPressMask|KeyReleaseMask);
+ XFixesSelectCursorInput(x_display, src_window_id, XFixesDisplayCursorNotifyMask);
+ XFlush(x_display);
+ XSync(x_display, False);
+ }
focused_window_changed = false;
window_resized = false;
diff --git a/src/window_texture.c b/src/window_texture.c
index e162a25..0479254 100644
--- a/src/window_texture.c
+++ b/src/window_texture.c
@@ -167,9 +167,9 @@ int window_texture_on_resize(WindowTexture *self) {
cleanup:
if(texture_id != 0) glDeleteTextures(1, &texture_id);
- if(glx_pixmap) glXDestroyPixmap(self->display, self->glx_pixmap);
- if(glx_pixmap_bound) glXReleaseTexImageEXT(self->display, self->glx_pixmap, GLX_FRONT_EXT);
- if(pixmap) XFreePixmap(self->display, self->pixmap);
+ if(glx_pixmap) glXDestroyPixmap(self->display, glx_pixmap);
+ if(glx_pixmap_bound) glXReleaseTexImageEXT(self->display, glx_pixmap, GLX_FRONT_EXT);
+ if(pixmap) XFreePixmap(self->display, pixmap);
if(configs) XFree(configs);
return result;
}