[meld] Add ScrollLinkMap for diff scrolling in folder comparisons (bgo#729756)
- From: Kai Willadsen <kaiw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [meld] Add ScrollLinkMap for diff scrolling in folder comparisons (bgo#729756)
- Date: Mon, 2 Jun 2014 19:59:48 +0000 (UTC)
commit f064296ca0bf6e9efebde58e5afd063b71f34537
Author: Kai Willadsen <kai willadsen gmail com>
Date: Tue Jun 3 05:54:50 2014 +1000
Add ScrollLinkMap for diff scrolling in folder comparisons (bgo#729756)
In file comparisons, scrolling in the LinkMap flips between changes,
but does nothing in folder comparisons. While it's a bit weird to
have this behaviour on an otherwise blank widget, it doesn't hurt
anything and does feel somewhat more consistent.
data/ui/dirdiff.ui | 8 ++++----
meld/dirdiff.py | 3 +++
meld/linkmap.py | 17 +++++++++++++++++
3 files changed, 24 insertions(+), 4 deletions(-)
---
diff --git a/data/ui/dirdiff.ui b/data/ui/dirdiff.ui
index 9a24fed..4ee0f01 100644
--- a/data/ui/dirdiff.ui
+++ b/data/ui/dirdiff.ui
@@ -257,11 +257,11 @@
</packing>
</child>
<child>
- <object class="GtkDrawingArea" id="linkmap1">
+ <object class="ScrollLinkMap" id="linkmap1">
<property name="width_request">50</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="events">GDK_SCROLL_MASK</property>
<property name="vexpand">True</property>
</object>
<packing>
@@ -315,11 +315,11 @@
</packing>
</child>
<child>
- <object class="GtkDrawingArea" id="linkmap0">
+ <object class="ScrollLinkMap" id="linkmap0">
<property name="width_request">50</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="events">GDK_SCROLL_MASK</property>
<property name="vexpand">True</property>
</object>
<packing>
diff --git a/meld/dirdiff.py b/meld/dirdiff.py
index f08ca94..8037cbe 100644
--- a/meld/dirdiff.py
+++ b/meld/dirdiff.py
@@ -1398,6 +1398,9 @@ class DirDiff(melddoc.MeldDoc, gnomeglade.Component):
idx = 1 if i else 0
w.setup(scroll, self.get_state_traversal(idx), [self.fill_colors, self.line_colors])
+ for w in self.linkmap:
+ w.associate(self)
+
for widget in (
self.vbox[:n] + self.file_toolbar[:n] + self.diffmap[:n] +
self.linkmap[:n - 1] + self.dummy_toolbar_linkmap[:n - 1]):
diff --git a/meld/linkmap.py b/meld/linkmap.py
index be8082f..ede7e58 100644
--- a/meld/linkmap.py
+++ b/meld/linkmap.py
@@ -122,3 +122,20 @@ class LinkMap(Gtk.DrawingArea):
def do_scroll_event(self, event):
self.filediff.next_diff(event.direction)
+
+
+class ScrollLinkMap(Gtk.DrawingArea):
+
+ __gtype_name__ = "ScrollLinkMap"
+
+ def __init__(self):
+ self._setup = False
+
+ def associate(self, melddoc):
+ self.melddoc = melddoc
+ self._setup = True
+
+ def do_scroll_event(self, event):
+ if not self._setup:
+ return
+ self.melddoc.next_diff(event.direction)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]