[gnome-shell] history: Allow events to bubble up when arrowing past the first/last item



commit 2c130c866889a39f29ffaff3c8773aa9a40318e6
Author: Florian MÃllner <fmuellner gnome org>
Date:   Mon Sep 17 20:50:27 2012 +0200

    history: Allow events to bubble up when arrowing past the first/last item
    
    Currently the HistoryManager consumes all arrow up/down key presses
    unconditionally. Change this to only consume the event if the entry
    text was actually changed, e.g. not when trying to move past the
    first/last item.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=682243

 js/misc/history.js |   22 ++++++++++------------
 1 files changed, 10 insertions(+), 12 deletions(-)
---
diff --git a/js/misc/history.js b/js/misc/history.js
index 5cb8282..5d499f8 100644
--- a/js/misc/history.js
+++ b/js/misc/history.js
@@ -41,24 +41,26 @@ const HistoryManager = new Lang.Class({
         this._historyIndex = this._history.length;
     },
 
-    prevItem: function(text) {
+    _setPrevItem: function(text) {
         if (this._historyIndex <= 0)
-            return text;
+            return false;
 
         if (text)
             this._history[this._historyIndex] = text;
         this._historyIndex--;
-        return this._indexChanged();
+        this._indexChanged();
+        return true;
     },
 
-    nextItem: function(text) {
+    _setNextItem: function(text) {
         if (this._historyIndex >= this._history.length)
-            return text;
+            return false;
 
         if (text)
             this._history[this._historyIndex] = text;
         this._historyIndex++;
-        return this._indexChanged();
+        this._indexChanged();
+        return true;
     },
 
     lastItem: function() {
@@ -83,11 +85,9 @@ const HistoryManager = new Lang.Class({
     _onEntryKeyPress: function(entry, event) {
         let symbol = event.get_key_symbol();
         if (symbol == Clutter.KEY_Up) {
-            this.prevItem(entry.get_text());
-            return true;
+            return this._setPrevItem(entry.get_text());
         } else if (symbol == Clutter.KEY_Down) {
-            this.nextItem(entry.get_text());
-            return true;
+            return this._setNextItem(entry.get_text());
         }
         return false;
     },
@@ -98,8 +98,6 @@ const HistoryManager = new Lang.Class({
 
         if (this._entry)
             this._entry.set_text(current);
-
-        return current;
     },
 
     _save: function() {



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