[gnome-shell/gnome-3-28] runDialog: Use ClutterText::activate for enter handling



commit af50a7829f6a44e84b75047c97e4bdfcbf84ed48
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Aug 15 13:39:58 2018 +0000

    runDialog: Use ClutterText::activate for enter handling
    
    Instead of consuming the event in front of the input method. Enter
    is sometimes overriden by those, so it seems better to let the IM
    handle the key event, and react later to it if it got propagated
    anyway. That is what ::activate does, so use this signal.
    
    This used to work before ClutterInputMethod/InputFocus because the
    IM received the events directly from stage captured events. This
    is not the case anymore.
    
    Closes: #440
    
    
    (cherry picked from commit 3ab9e9e8adfb2093ade470c26ecb761dde89fe49)

 js/ui/runDialog.js | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)
---
diff --git a/js/ui/runDialog.js b/js/ui/runDialog.js
index 82deab5a3..1b9e26008 100644
--- a/js/ui/runDialog.js
+++ b/js/ui/runDialog.js
@@ -114,18 +114,16 @@ var RunDialog = new Lang.Class({
 
         this._history = new History.HistoryManager({ gsettingsKey: HISTORY_KEY,
                                                      entry: this._entryText });
+        this._entryText.connect('activate', (o) => {
+            this.popModal();
+            this._run(o.get_text(),
+                      Clutter.get_current_event().get_state() & Clutter.ModifierType.CONTROL_MASK);
+            if (!this._commandError ||
+                !this.pushModal())
+                this.close();
+        });
         this._entryText.connect('key-press-event', (o, e) => {
             let symbol = e.get_key_symbol();
-            if (symbol == Clutter.Return || symbol == Clutter.KP_Enter) {
-                this.popModal();
-                this._run(o.get_text(),
-                          e.get_state() & Clutter.ModifierType.CONTROL_MASK);
-                if (!this._commandError ||
-                    !this.pushModal())
-                    this.close();
-
-                return Clutter.EVENT_STOP;
-            }
             if (symbol == Clutter.Tab) {
                 let text = o.get_text();
                 let prefix;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]