changeset cd400898c3d5 in /home/hg/repos/gajim
branches: gtk3 details:http://hg.gajim.org/gajim?cmd=changeset;node=cd400898c3d5 description: remove call to deprecated get_pointer()
diffstat:
src/conversation_textview.py | 51 ++++++++++++++++++++++--------------------- src/disco.py | 8 ++++-- src/filetransfers_window.py | 21 ++++++++++++------ src/groupchat_control.py | 7 ++++- src/htmltextview.py | 40 ++++++++++++++++++---------------- src/roster_window.py | 6 +++- src/tooltips.py | 3 +- 7 files changed, 77 insertions(+), 59 deletions(-)
diffs (truncated from 310 to 300 lines):
diff -r e5fe671be26b -r cd400898c3d5 src/conversation_textview.py --- a/src/conversation_textview.py Mon Jul 29 13:44:37 2013 +0200 +++ b/src/conversation_textview.py Mon Jul 29 14:38:09 2013 +0200 @@ -651,9 +651,11 @@ GLib.idle_add(self.scroll_to_end)
def show_xep0184_warning_tooltip(self): - pointer = self.tv.get_pointer() - x, y = self.tv.window_to_buffer_coords(Gtk.TextWindowType.TEXT, - pointer[1], pointer[2]) + w = self.tv.get_window(Gtk.TextWindowType.TEXT) + device = w.get_display().get_device_manager().get_client_pointer() + pointer = w.get_device_position(device) + x = pointer[1] + y = pointer[2] tags = self.tv.get_iter_at_location(x, y).get_tags() tag_table = self.tv.get_buffer().get_tag_table() xep0184_warning = False @@ -663,16 +665,18 @@ break if xep0184_warning and not self.xep0184_warning_tooltip.win: # check if the current pointer is still over the line - position = self.tv.get_window(Gtk.TextWindowType.TEXT).get_origin()[1:] - self.xep0184_warning_tooltip.show_tooltip(_('This icon indicates that ' - 'this message has not yet\nbeen received by the remote end. ' - "If this icon stays\nfor a long time, it's likely the message got " - 'lost.'), 8, position[1] + pointer[2]) + position = w.get_origin()[1:] + self.xep0184_warning_tooltip.show_tooltip(_('This icon indicates ' + 'that this message has not yet\nbeen received by the remote ' + "end. If this icon stays\nfor a long time, it's likely the " + 'message got lost.'), 8, position[1] + y)
def show_line_tooltip(self): - pointer = self.tv.get_pointer() - x, y = self.tv.window_to_buffer_coords(Gtk.TextWindowType.TEXT, - pointer[0], pointer[1]) + w = self.tv.get_window(Gtk.TextWindowType.TEXT) + device = w.get_display().get_device_manager().get_client_pointer() + pointer = w.get_device_position(device) + x = pointer[1] + y = pointer[2] tags = self.tv.get_iter_at_location(x, y).get_tags() tag_table = self.tv.get_buffer().get_tag_table() over_line = False @@ -682,10 +686,10 @@ break if over_line and not self.line_tooltip.win: # check if the current pointer is still over the line - position = self.tv.get_window(Gtk.TextWindowType.TEXT).get_origin()[1:] + position = w.get_origin()[1:] self.line_tooltip.show_tooltip(_('Text below this line is what has ' - 'been said since the\nlast time you paid attention to this group ' - 'chat'), 8, position[1] + pointer[1]) + 'been said since the\nlast time you paid attention to this ' + 'group chat'), 8, position[1] + y)
def on_textview_draw(self, widget, ctx): return @@ -719,14 +723,14 @@ """ Change the cursor to a hand when we are over a mail or an url """ - pointer_x, pointer_y = self.tv.get_window(Gtk.TextWindowType.TEXT).\ - get_pointer()[1:3] + w = self.tv.get_window(Gtk.TextWindowType.TEXT) + device = w.get_display().get_device_manager().get_client_pointer() + pointer = w.get_device_position(device) x, y = self.tv.window_to_buffer_coords(Gtk.TextWindowType.TEXT, - pointer_x, pointer_y) + pointer[1], pointer[2]) tags = self.tv.get_iter_at_location(x, y).get_tags() if self.change_cursor: - self.tv.get_window(Gtk.TextWindowType.TEXT).set_cursor( - Gdk.Cursor.new(Gdk.CursorType.XTERM)) + w.set_cursor(Gdk.Cursor.new(Gdk.CursorType.XTERM)) self.change_cursor = False tag_table = self.tv.get_buffer().get_tag_table() over_line = False @@ -735,8 +739,7 @@ for tag in tags: if tag in (tag_table.lookup('url'), tag_table.lookup('mail'), \ tag_table.lookup('xmpp'), tag_table.lookup('sth_at_sth')): - self.tv.get_window(Gtk.TextWindowType.TEXT).set_cursor( - Gdk.Cursor.new(Gdk.CursorType.HAND2)) + w.set_cursor(Gdk.Cursor.new(Gdk.CursorType.HAND2)) self.change_cursor = True elif tag == tag_table.lookup('focus-out-line'): over_line = True @@ -754,14 +757,12 @@ if over_line and not self.line_tooltip.win: self.line_tooltip.timeout = GLib.timeout_add(500, self.show_line_tooltip) - self.tv.get_window(Gtk.TextWindowType.TEXT).set_cursor( - Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR)) + w.set_cursor(Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR)) self.change_cursor = True if xep0184_warning and not self.xep0184_warning_tooltip.win: self.xep0184_warning_tooltip.timeout = GLib.timeout_add(500, self.show_xep0184_warning_tooltip) - self.tv.get_window(Gtk.TextWindowType.TEXT).set_cursor( - Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR)) + w.set_cursor(Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR)) self.change_cursor = True
def clear(self, tv = None): diff -r e5fe671be26b -r cd400898c3d5 src/disco.py --- a/src/disco.py Mon Jul 29 13:44:37 2013 +0200 +++ b/src/disco.py Mon Jul 29 14:38:09 2013 +0200 @@ -1272,15 +1272,17 @@
def _show_tooltip(self, state): view = self.window.services_treeview - pointer = view.get_pointer() - props = view.get_path_at_pos(pointer[0], pointer[1]) + w = view.get_window() + device = w.get_display().get_device_manager().get_client_pointer() + pointer = w.get_device_position(device) + props = view.get_path_at_pos(pointer[1], pointer[2]) # check if the current pointer is at the same path # as it was before setting the timeout if props and self.tooltip.id == props[0]: # bounding rectangle of coordinates for the cell within the treeview rect = view.get_cell_area(props[0], props[1]) # position of the treeview on the screen - position = view.get_window().get_origin()[1:] + position = w.get_origin()[1:] self.tooltip.show_tooltip(state, rect.height, position[1] + rect.y) else: self.tooltip.hide_tooltip() diff -r e5fe671be26b -r cd400898c3d5 src/filetransfers_window.py --- a/src/filetransfers_window.py Mon Jul 29 13:44:37 2013 +0200 +++ b/src/filetransfers_window.py Mon Jul 29 14:38:09 2013 +0200 @@ -753,9 +753,11 @@ self.window.show_all()
def on_transfers_list_motion_notify_event(self, widget, event): - pointer = self.tree.get_pointer() + w = self.tree.get_window() + device = w.get_display().get_device_manager().get_client_pointer() + pointer = w.get_device_position(device) props = widget.get_path_at_pos(int(event.x), int(event.y)) - self.height_diff = pointer[1] - int(event.y) + self.height_diff = pointer[2] - int(event.y) if self.tooltip.timeout > 0: if not props or self.tooltip.id != props[0]: self.tooltip.hide_tooltip() @@ -780,8 +782,11 @@ self.height_diff = int(event.y) elif self.height_diff is 0: return - pointer = self.tree.get_pointer() - props = self.tree.get_path_at_pos(pointer[0], pointer[1] - self.height_diff) + w = self.tree.get_window() + device = w.get_display().get_device_manager().get_client_pointer() + pointer = w.get_device_position(device) + props = self.tree.get_path_at_pos(pointer[1], + pointer[2] - self.height_diff) if self.tooltip.timeout > 0: if not props or self.tooltip.id == props[0]: self.tooltip.hide_tooltip() @@ -953,9 +958,11 @@ if self.height_diff == 0: self.tooltip.hide_tooltip() return - pointer = self.tree.get_pointer() - props = self.tree.get_path_at_pos(pointer[0], - pointer[1] - self.height_diff) + w = self.tree.get_window() + device = w.get_display().get_device_manager().get_client_pointer() + pointer = w.get_device_position(device) + props = self.tree.get_path_at_pos(pointer[1], + pointer[2] - self.height_diff) # check if the current pointer is at the same path # as it was before setting the timeout if props and self.tooltip.id == props[0]: diff -r e5fe671be26b -r cd400898c3d5 src/groupchat_control.py --- a/src/groupchat_control.py Mon Jul 29 13:44:37 2013 +0200 +++ b/src/groupchat_control.py Mon Jul 29 14:38:09 2013 +0200 @@ -2685,12 +2685,15 @@ # control has been destroyed since tooltip was requested return pointer = self.list_treeview.get_pointer() - props = self.list_treeview.get_path_at_pos(pointer[0], pointer[1]) + w = self.list_treeview.get_window() + device = w.get_display().get_device_manager().get_client_pointer() + pointer = w.get_device_position(device) + props = self.list_treeview.get_path_at_pos(pointer[1], pointer[2]) # check if the current pointer is at the same path # as it was before setting the timeout if props and self.tooltip.id == props[0]: rect = self.list_treeview.get_cell_area(props[0], props[1]) - position = self.list_treeview.get_window().get_origin()[1:] + position = w.get_origin()[1:] self.tooltip.show_tooltip(contact, rect.height, position[1] + rect.y) else: diff -r e5fe671be26b -r cd400898c3d5 src/htmltextview.py --- a/src/htmltextview.py Mon Jul 29 13:44:37 2013 +0200 +++ b/src/htmltextview.py Mon Jul 29 14:38:09 2013 +0200 @@ -867,8 +867,11 @@ def show_tooltip(self, tag): if not self.tooltip.win: # check if the current pointer is still over the line - x, y = self.get_window(Gtk.TextWindowType.TEXT).get_pointer()[1:3] - x, y = self.window_to_buffer_coords(Gtk.TextWindowType.TEXT, x, y) + w = self.get_window(Gtk.TextWindowType.TEXT) + device = w.get_display().get_device_manager().get_client_pointer() + pointer = w.get_device_position(device) + x = pointer[1] + y = pointer[2] tags = self.get_iter_at_location(x, y).get_tags() is_over_anchor = False for tag_ in tags: @@ -879,13 +882,15 @@ return text = getattr(tag, 'title', False) if text: - pointer = self.get_pointer() - position = self.get_window(Gtk.TextWindowType.TEXT).get_origin()[1:] - self.tooltip.show_tooltip(text, 8, position[1] + pointer[2]) + position = w.get_origin()[1:] + self.tooltip.show_tooltip(text, 8, position[1] + y)
def __motion_notify_event(self, widget, event): - x, y = widget.get_window(Gtk.TextWindowType.TEXT).get_pointer()[1:3] - x, y = widget.window_to_buffer_coords(Gtk.TextWindowType.TEXT, x, y) + w = widget.get_window(Gtk.TextWindowType.TEXT) + device = w.get_display().get_device_manager().get_client_pointer() + pointer = w.get_device_position(device) + x = pointer[1] + y = pointer[2] tags = widget.get_iter_at_location(x, y).get_tags() anchor_tags = [tag for tag in tags if getattr(tag, 'is_anchor', False)] if self.tooltip.timeout != 0: @@ -893,14 +898,12 @@ if not anchor_tags: self.tooltip.hide_tooltip() if not self._changed_cursor and anchor_tags: - window = widget.get_window(Gtk.TextWindowType.TEXT) - window.set_cursor(Gdk.Cursor.new(Gdk.CursorType.HAND2)) + w.set_cursor(Gdk.Cursor.new(Gdk.CursorType.HAND2)) self._changed_cursor = True self.tooltip.timeout = GLib.timeout_add(500, self.show_tooltip, anchor_tags[0]) elif self._changed_cursor and not anchor_tags: - window = widget.get_window(Gtk.TextWindowType.TEXT) - window.set_cursor(Gdk.Cursor.new(Gdk.CursorType.XTERM)) + w.set_cursor(Gdk.Cursor.new(Gdk.CursorType.XTERM)) self._changed_cursor = False return False
@@ -995,21 +998,20 @@ Change the cursor to a hand when we are over a mail or an url """ global change_cursor - pointer_x, pointer_y = htmlview.tv.get_window(Gtk.TextWindowType.TEXT).\ - get_pointer()[1:3] - x, y = htmlview.tv.window_to_buffer_coords(Gtk.TextWindowType.TEXT, - pointer_x, pointer_y) + w = htmlview.tv.get_window(Gtk.TextWindowType.TEXT) + device = w.get_display().get_device_manager().get_client_pointer() + pointer = w.get_device_position(device) + x = pointer[1] + y = pointer[2] tags = htmlview.tv.get_iter_at_location(x, y).get_tags() if change_cursor: - htmlview.tv.get_window(Gtk.TextWindowType.TEXT).set_cursor( - Gdk.Cursor.new(Gdk.CursorType.XTERM)) + w.set_cursor(Gdk.Cursor.new(Gdk.CursorType.XTERM)) change_cursor = None tag_table = htmlview.tv.get_buffer().get_tag_table() for tag in tags: try: if tag.is_anchor: - htmlview.tv.get_window(Gtk.TextWindowType.TEXT).set_cursor( - Gdk.Cursor.new(Gdk.CursorType.HAND2)) + w.set_cursor(Gdk.Cursor.new(Gdk.CursorType.HAND2)) change_cursor = tag elif tag == tag_table.lookup('focus-out-line'): over_line = True diff -r e5fe671be26b -r cd400898c3d5 src/roster_window.py --- a/src/roster_window.py Mon Jul 29 13:44:37 2013 +0200 +++ b/src/roster_window.py Mon Jul 29 14:38:09 2013 +0200 @@ -2049,8 +2049,10 @@ vb.set_no_show_all(True)
def show_tooltip(self, contact): - pointer = self.tree.get_pointer() - props = self.tree.get_path_at_pos(pointer[0], pointer[1]) + device = self.tree.get_window().get_display().get_device_manager().\ + get_client_pointer() + pointer = self.tree.get_window().get_device_position(device) + props = self.tree.get_path_at_pos(pointer[1], pointer[2]) # check if the current pointer is at the same path # as it was before setting the timeout if props and self.tooltip.id == props[0]: diff -r e5fe671be26b -r cd400898c3d5 src/tooltips.py --- a/src/tooltips.py Mon Jul 29 13:44:37 2013 +0200 +++ b/src/tooltips.py Mon Jul 29 14:38:09 2013 +0200