From 1749a85e96855240652cef423e90879b05118040 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Thu, 10 Jul 2014 13:29:20 -0400 Subject: [PATCH] frame: Only XSync when we're on the X11 compositor backend The only case we have is the case where the two X11 connections are the same. When on Wayland, the XSync is costly and expensive, and we should minimize it. --- src/core/frame.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/core/frame.c b/src/core/frame.c index 8901aad31..13cbbd209 100644 --- a/src/core/frame.c +++ b/src/core/frame.c @@ -26,6 +26,7 @@ #include "bell.h" #include #include "keybindings-private.h" +#include "backends/x11/meta-backend-x11.h" #define EVENT_MASK (SubstructureRedirectMask | \ StructureNotifyMask | SubstructureNotifyMask | \ @@ -159,10 +160,16 @@ meta_window_ensure_frame (MetaWindow *window) meta_ui_map_frame (frame->window->screen->ui, frame->xwindow); - /* Since the backend takes keygrabs on another connection, make sure - * to sync the GTK+ connection to ensure that the frame window has - * been created on the server at this point. */ - XSync (window->display->xdisplay, False); + { + MetaBackend *backend = meta_get_backend (); + if (META_IS_BACKEND_X11 (backend)) + { + /* Since the backend takes keygrabs on another connection, make sure + * to sync the GTK+ connection to ensure that the frame window has + * been created on the server at this point. */ + XSync (window->display->xdisplay, False); + } + } /* Move keybindings to frame instead of window */ meta_window_grab_keys (window);