Skip to content
Snippets Groups Projects
Commit c2d69774 authored by Philipp Hörist's avatar Philipp Hörist
Browse files

Use custom link handler in AboutDialog

Fixes #9525
parent 3bd5843f
No related branches found
No related tags found
No related merge requests found
......@@ -14,10 +14,12 @@
import nbxmpp
from gi.repository import Gdk
from gi.repository import Gtk
from gi.repository import GObject
from gajim.common import app
from gajim.common.helpers import launch_browser_mailer
from gajim.common.i18n import _
from gajim.common.const import DEVS_CURRENT
from gajim.common.const import DEVS_PAST
......@@ -65,3 +67,25 @@ class AboutDialog(Gtk.AboutDialog):
'response', lambda dialog, *args: Gtk.AboutDialog.do_close(dialog))
self.show()
self.connect('activate-link', self._on_activate_link)
# See https://gitlab.gnome.org/GNOME/gtk/issues/1561
self._connect_link_handler(self)
@staticmethod
def _on_activate_link(_label, uri):
# We have to use this, because the default GTK handler
# is not cross-platform compatible
launch_browser_mailer(None, uri)
return Gdk.EVENT_STOP
def _connect_link_handler(self, parent):
def _find_child(parent_):
if not hasattr(parent_, 'get_children'):
return
for child in parent_.get_children():
if isinstance(child, Gtk.Label):
if 'href' in child.get_label():
child.connect('activate-link', self._on_activate_link)
_find_child(child)
_find_child(parent)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment