[gnome-shell] [lg] split inspector event handlers out into separate functions



commit 1a50b94b198edeaf358d26c118af60426782c84d
Author: Dan Winship <danw gnome org>
Date:   Wed Jul 21 11:08:15 2010 -0400

    [lg] split inspector event handlers out into separate functions
    
    https://bugzilla.gnome.org/show_bug.cgi?id=624940

 js/ui/lookingGlass.js |   75 ++++++++++++++++++++++++++----------------------
 1 files changed, 41 insertions(+), 34 deletions(-)
---
diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js
index ea046ab..b2c8c66 100644
--- a/js/ui/lookingGlass.js
+++ b/js/ui/lookingGlass.js
@@ -371,48 +371,55 @@ Inspector.prototype = {
                                               vertical: false,
                                               y: primary.y + Math.floor(primary.height / 2),
                                               reactive: true });
+        this._eventHandler = eventHandler;
         eventHandler.connect('notify::allocation', Lang.bind(this, function () {
             eventHandler.x = primary.x + Math.floor((primary.width - eventHandler.width) / 2);
         }));
         Main.uiGroup.add_actor(eventHandler);
-        let displayText = new St.Label();
-        eventHandler.add(displayText, { expand: true });
-
-        let borderPaintTarget = null;
-        let borderPaintId = null;
-        eventHandler.connect('destroy', Lang.bind(this, function() {
-            if (borderPaintTarget != null)
-                borderPaintTarget.disconnect(borderPaintId);
-        }));
+        this._displayText = new St.Label();
+        eventHandler.add(this._displayText, { expand: true });
 
-        eventHandler.connect('button-press-event', Lang.bind(this, function (actor, event) {
-            Clutter.ungrab_pointer(eventHandler);
+        this._borderPaintTarget = null;
+        this._borderPaintId = null;
+        eventHandler.connect('destroy', Lang.bind(this, this._onDestroy));
 
-            let [stageX, stageY] = event.get_coords();
-            let target = global.stage.get_actor_at_pos(Clutter.PickMode.ALL,
-                                                       stageX,
-                                                       stageY);
-            this.emit('target', target, stageX, stageY);
-            eventHandler.destroy();
-            this.emit('closed');
-            return true;
-        }));
+        eventHandler.connect('button-press-event', Lang.bind(this, this._onButtonPressEvent));
 
-        eventHandler.connect('motion-event', Lang.bind(this, function (actor, event) {
-            let [stageX, stageY] = event.get_coords();
-            let target = global.stage.get_actor_at_pos(Clutter.PickMode.ALL,
-                                                       stageX,
-                                                       stageY);
-            let position = '[inspect x: ' + stageX + ' y: ' + stageY + ']';
-            displayText.text = '';
-            displayText.text = position + ' ' + target;
-            if (borderPaintTarget != null)
-                borderPaintTarget.disconnect(borderPaintId);
-            borderPaintTarget = target;
-            borderPaintId = Shell.add_hook_paint_red_border(target);
-            return true;
-        }));
+        eventHandler.connect('motion-event', Lang.bind(this, this._onMotionEvent));
         Clutter.grab_pointer(eventHandler);
+    },
+
+    _onDestroy: function() {
+        if (this._borderPaintTarget != null)
+            this._borderPaintTarget.disconnect(this._borderPaintId);
+    },
+
+    _onButtonPressEvent: function (actor, event) {
+        Clutter.ungrab_pointer(this._eventHandler);
+
+        let [stageX, stageY] = event.get_coords();
+        let target = global.stage.get_actor_at_pos(Clutter.PickMode.ALL,
+                                                   stageX,
+                                                   stageY);
+        this.emit('target', target, stageX, stageY);
+        this._eventHandler.destroy();
+        this.emit('closed');
+        return true;
+    },
+
+    _onMotionEvent: function (actor, event) {
+        let [stageX, stageY] = event.get_coords();
+        let target = global.stage.get_actor_at_pos(Clutter.PickMode.ALL,
+                                                   stageX,
+                                                   stageY);
+        let position = '[inspect x: ' + stageX + ' y: ' + stageY + ']';
+        this._displayText.text = '';
+        this._displayText.text = position + ' ' + target;
+        if (this._borderPaintTarget != null)
+            this._borderPaintTarget.disconnect(this._borderPaintId);
+        this._borderPaintTarget = target;
+        this._borderPaintId = Shell.add_hook_paint_red_border(target);
+        return true;
     }
 };
 



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