diff --git a/src/core/widgets/base/sourceview/source_view.py b/src/core/widgets/base/sourceview/source_view.py index 869a7a7..df8eed1 100644 --- a/src/core/widgets/base/sourceview/source_view.py +++ b/src/core/widgets/base/sourceview/source_view.py @@ -88,6 +88,7 @@ class SourceView(SourceViewControllerMixin, GtkSource.View): self.connect("key-press-event", self._key_press_event) self.connect("key-release-event", self._key_release_event) self.connect("button-press-event", self._button_press_event) + self.connect("button-release-event", self._button_release_event) self.connect("scroll-event", self._scroll_event) buffer = self.get_buffer() diff --git a/src/core/widgets/base/sourceview/source_view_events.py b/src/core/widgets/base/sourceview/source_view_events.py index e462a1d..9cacd18 100644 --- a/src/core/widgets/base/sourceview/source_view_events.py +++ b/src/core/widgets/base/sourceview/source_view_events.py @@ -47,13 +47,23 @@ class SourceViewEvents(SourceViewDnDMixin, MarkEventsMixin, FileEventsMixin): def _button_press_event(self, widget = None, eve = None, user_data = None): - if eve.type == Gdk.EventType.BUTTON_PRESS and eve.button == 1 : # l-click + if eve.button == 1 : # l-click + ... + elif eve.button == 2: # m-click + ... + elif eve.button == 3: # r-click + ... + + def _button_release_event(self, widget = None, eve = None, user_data = None): + if eve.button == 1 : # l-click + self.keyboard_clear_marks() + if eve.state & Gdk.ModifierType.CONTROL_MASK: + self.go_to_call() + elif eve.button == 2: # m-click if eve.state & Gdk.ModifierType.CONTROL_MASK: self.button_press_insert_mark(eve) return True - else: - self.keyboard_clear_marks() - elif eve.type == Gdk.EventType.BUTTON_RELEASE and eve.button == 3: # r-click + elif eve.button == 3: # r-click ... def _scroll_event(self, widget, eve):