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 @@ ...@@ -14,10 +14,12 @@
import nbxmpp import nbxmpp
from gi.repository import Gdk
from gi.repository import Gtk from gi.repository import Gtk
from gi.repository import GObject from gi.repository import GObject
from gajim.common import app from gajim.common import app
from gajim.common.helpers import launch_browser_mailer
from gajim.common.i18n import _ from gajim.common.i18n import _
from gajim.common.const import DEVS_CURRENT from gajim.common.const import DEVS_CURRENT
from gajim.common.const import DEVS_PAST from gajim.common.const import DEVS_PAST
...@@ -65,3 +67,25 @@ class AboutDialog(Gtk.AboutDialog): ...@@ -65,3 +67,25 @@ class AboutDialog(Gtk.AboutDialog):
'response', lambda dialog, *args: Gtk.AboutDialog.do_close(dialog)) 'response', lambda dialog, *args: Gtk.AboutDialog.do_close(dialog))
self.show() 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