This prevents issues that arise when using multiple seats (at least
with the current implementation in text-backend.c).
---
 src/shell.c | 6 ++++++
 1 Datei geändert, 6 Zeilen hinzugefügt(+)

diff --git a/src/shell.c b/src/shell.c
index 87e688c..3dd2f6e 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -2541,6 +2541,9 @@ show_input_panels(struct wl_listener *listener, void 
*data)
        struct input_panel_surface *surface, *next;
        struct weston_surface *ws;
 
+       if (shell->showing_input_panels)
+               return;
+
        shell->showing_input_panels = true;
 
        wl_list_insert(&shell->panel_layer.link,
@@ -2565,6 +2568,9 @@ hide_input_panels(struct wl_listener *listener, void 
*data)
                             hide_input_panel_listener);
        struct weston_surface *surface, *next;
 
+       if (!shell->showing_input_panels)
+               return;
+
        shell->showing_input_panels = false;
 
        wl_list_remove(&shell->input_panel_layer.link);
-- 
1.7.11.4

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to