From e79d924588523732d13b582a46962246c8a9670d Mon Sep 17 00:00:00 2001 From: Uli Schlachter Date: Sun, 15 Apr 2018 10:43:25 +0200 Subject: x11 backend: Ignore expose if frame is pending When resizing rootston with the mouse, the result is really slow. One can see that rootston needs quite a while for drawing the newly visible area. This is because every single expose event is handled on its own and causes (apparently) a full repaint or at least a swap. This commit improves things by only causing a new frame if none is pending already. With this change, there is almost no delay in rootston drawing the newly visible area. Signed-off-by: Uli Schlachter --- backend/x11/backend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backend/x11/backend.c') diff --git a/backend/x11/backend.c b/backend/x11/backend.c index 768d00f7..089b3822 100644 --- a/backend/x11/backend.c +++ b/backend/x11/backend.c @@ -74,7 +74,7 @@ static void handle_x11_event(struct wlr_x11_backend *x11, xcb_expose_event_t *ev = (xcb_expose_event_t *)event; struct wlr_x11_output *output = x11_output_from_window_id(x11, ev->window); - if (output != NULL) { + if (output != NULL && !output->wlr_output.frame_pending) { wlr_output_send_frame(&output->wlr_output); } break; -- cgit v1.2.3