[meld/deprecation-cleanup: 2/48] vcview: Update popup handling for 3.22 deprecations
- From: Kai Willadsen <kaiw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [meld/deprecation-cleanup: 2/48] vcview: Update popup handling for 3.22 deprecations
- Date: Sun, 2 Dec 2018 02:42:18 +0000 (UTC)
commit 5c9d81ef661fcc8fc63573d0d69f64171682ddfc
Author: Kai Willadsen <kai willadsen gmail com>
Date: Thu Nov 29 06:26:32 2018 +1000
vcview: Update popup handling for 3.22 deprecations
Normally I wouldn't care that much, but these dump CRITICALs to the
terminal *constantly* under Wayland, which is extremely annoying.
meld/vcview.py | 33 ++++++++++++++++++++++-----------
1 file changed, 22 insertions(+), 11 deletions(-)
---
diff --git a/meld/vcview.py b/meld/vcview.py
index b8ad2c69..12ed6289 100644
--- a/meld/vcview.py
+++ b/meld/vcview.py
@@ -493,25 +493,36 @@ class VcView(MeldDoc, Component):
self.emit("create-diff",
[Gio.File.new_for_path(d) for d in diffs], kwargs)
- def popup_treeview_menu(self, widget, event):
- if event:
- button = event.button
- time = event.time
- else:
- button = 0
- time = Gtk.get_current_event_time()
- self.popup_menu.popup(None, None, None, None, button, time)
-
def on_treeview_popup_menu(self, treeview):
- self.popup_treeview_menu(treeview, None)
+ cursor_path, cursor_col = treeview.get_cursor()
+ if not cursor_path:
+ self.popup_menu.popup_at_pointer(Gtk.get_current_event())
+ return True
+
+ # We always want to pop up to the right of the first column,
+ # ignoring the actual cursor column location.
+ rect = treeview.get_background_area(
+ cursor_path, treeview.get_column(0))
+
+ self.popup_menu.popup_at_rect(
+ treeview.get_bin_window(),
+ rect,
+ Gdk.Gravity.SOUTH_EAST,
+ Gdk.Gravity.NORTH_WEST,
+ Gtk.get_current_event(),
+ )
return True
def on_button_press_event(self, treeview, event):
if (event.triggers_context_menu() and
event.type == Gdk.EventType.BUTTON_PRESS):
+
+ treeview.grab_focus()
+
path = treeview.get_path_at_pos(int(event.x), int(event.y))
if path is None:
return False
+
selection = treeview.get_selection()
model, rows = selection.get_selected_rows()
@@ -520,7 +531,7 @@ class VcView(MeldDoc, Component):
selection.select_path(path[0])
treeview.set_cursor(path[0])
- self.popup_treeview_menu(treeview, event)
+ self.popup_menu.popup_at_pointer(event)
return True
return False
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]