[polari] chatView: Don't extend interactive tags into margins



commit 15dc959423c28144cdf7e4674df323ca8b893025
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Feb 10 16:18:14 2016 +0100

    chatView: Don't extend interactive tags into margins
    
    Until now, margins neighboring interactive elements like links or
    status headers have been clickable as well. GTK+ now gives us API
    to check whether a position is over text, so use that to fix the
    issue.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=760842

 src/chatView.js |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)
---
diff --git a/src/chatView.js b/src/chatView.js
index 6cdfeb1..8e0a0b2 100644
--- a/src/chatView.js
+++ b/src/chatView.js
@@ -204,6 +204,9 @@ const ButtonTag = new Lang.Class({
     vfunc_event: function(object, event, iter) {
         let type = event.get_event_type();
 
+        if (!this._hover)
+            return Gdk.EVENT_PROPAGATE;
+
         if (type != Gdk.EventType.BUTTON_PRESS &&
             type != Gdk.EventType.BUTTON_RELEASE)
             return Gdk.EVENT_PROPAGATE;
@@ -658,12 +661,16 @@ const ChatView = new Lang.Class({
         let [, eventX, eventY] = event.get_coords();
         let [x, y] = view.window_to_buffer_coords(Gtk.TextWindowType.WIDGET,
                                                   eventX, eventY);
-        let iter = view.get_iter_at_location(x, y);
+        let [inside, iter] = view.get_iter_at_location(x, y);
 
-        let hoveredButtonTags = iter.get_tags().filter(
-            function(t) {
-                return t instanceof ButtonTag;
-            });
+        let hoveredButtonTags;
+        if (inside)
+            hoveredButtonTags = iter.get_tags().filter(
+                function(t) {
+                    return t instanceof ButtonTag;
+                });
+        else
+            hoveredButtonTags = [];
 
         hoveredButtonTags.forEach(
             function(t) {


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