From 30fa764c9050ba182ca681e63c0eb38323896cb7 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Mon, 17 Oct 2016 18:02:50 +0200 Subject: [PATCH] core: Ensure there is an unique pad OSD actor We kind of rely on the ::show-pad-osd handler to destroy the previous actor. Just prevent the emission of multiple signals till the actor has been destroyed. https://bugzilla.gnome.org/show_bug.cgi?id=771067 --- src/core/display.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/core/display.c b/src/core/display.c index 42a530f6c..7ae3a2837 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -3110,13 +3110,14 @@ meta_display_request_pad_osd (MetaDisplay *display, WacomDevice *wacom_device; #endif - input_settings = meta_backend_get_input_settings (meta_get_backend ()); - + /* Avoid emitting the signal while there is an OSD being currently + * displayed, the first OSD will have to be dismissed before showing + * any other one. + */ if (display->current_pad_osd) - { - clutter_actor_destroy (display->current_pad_osd); - display->current_pad_osd = NULL; - } + return; + + input_settings = meta_backend_get_input_settings (meta_get_backend ()); if (input_settings) {