[PATCH v2 2/3] shell: make {show,hide}_input_panels idempotent
Philipp Brüschweiler
blei42 at gmail.com
Mon Aug 13 05:35:06 PDT 2012
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
More information about the wayland-devel
mailing list