diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.cpp | 8 | ||||
-rw-r--r-- | src/window_texture.c | 6 |
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; } |