+
+ def on_drawingarea_button_press_event(self, widget, event, data=None):
+ if event.button == 1:
+ self.current_pressed_uri = None
+ self.button1_pressed = True
+ uri, layout, index = self.ptrpos_to_uri(event.x, event.y)
+ if uri is not None and layout is not None and index is not None:
+ self.current_pressed_uri = (uri, layout, index)
+ elif event.button == 3:
+ time = event.time
+ uri, layout, index = self.ptrpos_to_uri(event.x, event.y)
+ if uri is not None and layout is not None and index is not None:
+ self.menu_openuri.show()
+ self.menu_copylinkaddress.show()
+ self.menu_separator_link.show()
+ self.menu_openuri.uri = uri
+ self.menu_copylinkaddress.uri = uri
+ else:
+ self.menu_openuri.hide()
+ self.menu_copylinkaddress.hide()
+ self.menu_separator_link.hide()
+ self.menu_openuri.uri = None
+ self.menu_copylinkaddress.uri = None
+
+ self.menu_copyselection.hide()
+ self.menu_openasuri.hide()
+ self.menu_separator_selection.hide()
+
+ self.popupmenu.popup(None, None, None, event.button, time)
+ return True
+
+
+ def on_drawingarea_button_release_event(self, widget, event, data=None):
+ if event.button == 1:
+ button1_pressed = self.button1_pressed
+ self.button1_pressed = False
+
+ if button1_pressed and self.current_pressed_uri is not None:
+ uri, layout, index = self.ptrpos_to_uri(event.x, event.y)
+ p_uri, p_layout, p_index = self.current_pressed_uri
+ self.current_preesed_uri = None
+ if uri == p_uri and layout == p_layout and index == p_index:
+ self.on_uri_clicked(uri)