[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