diff --git a/src/x11/screen.c b/src/x11/screen.c index 9648c7b..0b590ea 100644 --- a/src/x11/screen.c +++ b/src/x11/screen.c @@ -167,15 +167,15 @@ void randr_update(void) XRRFreeMonitors(m); } -void screen_check_event(XEvent event) +bool screen_check_event(XEvent *ev) { - if (XRRUpdateConfiguration(&event)) { + if (XRRUpdateConfiguration(ev)) { LOG_D("XEvent: processing 'RRScreenChangeNotify'"); randr_update(); - } else { - LOG_D("XEvent: Ignoring '%d'", event.type); + return true; } + return false; } void xinerama_update(void) diff --git a/src/x11/screen.h b/src/x11/screen.h index 1fc2033..fb83bb7 100644 --- a/src/x11/screen.h +++ b/src/x11/screen.h @@ -18,7 +18,7 @@ struct screen_info { void init_screens(void); void screen_dpi_xft_cache_purge(void); -void screen_check_event(XEvent event); +bool screen_check_event(XEvent *ev); struct screen_info *get_active_screen(void); double screen_dpi_get(struct screen_info *scr); diff --git a/src/x11/x.c b/src/x11/x.c index 07d658f..c26ed32 100644 --- a/src/x11/x.c +++ b/src/x11/x.c @@ -355,7 +355,10 @@ gboolean x_mainloop_fd_dispatch(GSource *source, GSourceFunc callback, gpointer } break; default: - screen_check_event(ev); + if (!screen_check_event(&ev)) { + LOG_D("XEvent: Ignoring '%d'", ev.type); + } + break; } }