diff --git a/data/gui/shortcuts_window.ui b/data/gui/shortcuts_window.ui
new file mode 100644
index 000000000..b93ec815f
--- /dev/null
+++ b/data/gui/shortcuts_window.ui
@@ -0,0 +1,285 @@
+
+
+
+
diff --git a/src/roster_window.py b/src/roster_window.py
index b169e0073..324b412e8 100644
--- a/src/roster_window.py
+++ b/src/roster_window.py
@@ -56,6 +56,7 @@ import tooltips
import message_control
import adhoc_commands
import features_window
+import shortcuts_window
import plugins
import plugins.gui
@@ -3852,8 +3853,7 @@ class RosterWindow:
'http://trac.gajim.org/wiki/GajimFaq')
def on_keyboard_shortcuts_menuitem_activate(self, widget):
- helpers.launch_browser_mailer('url',
- 'http://trac.gajim.org/wiki/KeyboardShortcuts')
+ shortcuts_window.show(self.window)
def on_features_menuitem_activate(self, widget):
features_window.FeaturesWindow()
diff --git a/src/shortcuts_window.py b/src/shortcuts_window.py
new file mode 100644
index 000000000..dd0bb1f14
--- /dev/null
+++ b/src/shortcuts_window.py
@@ -0,0 +1,50 @@
+# -*- coding:utf-8 -*-
+## src/shortcuts_window.py
+##
+## This file is part of Gajim.
+##
+## Gajim is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published
+## by the Free Software Foundation; version 3 only.
+##
+## Gajim is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Gajim. If not, see .
+##
+
+from gi.repository import Gtk
+
+import gtkgui_helpers
+
+from common import helpers
+
+__all__ = ['show']
+
+class ShortcutsWindow:
+ def __init__(self):
+ self.window = None
+
+ def show(self, parent=None):
+ if self.window is None:
+ builder = gtkgui_helpers.get_gtk_builder('shortcuts_window.ui')
+ self.window = builder.get_object('shortcuts_window')
+ self.window.connect('destroy', self._on_window_destroy)
+ self.window.set_transient_for(parent)
+ self.window.show_all()
+ self.window.present()
+
+ def _on_window_destroy(self, widget):
+ self.window = None
+
+def show_shortcuts_webpage(self, parent=None):
+ helpers.launch_browser_mailer('url',
+ 'https://dev.gajim.org/gajim/gajim/wikis/help/keyboardshortcuts')
+
+if (3, 19) <= (Gtk.get_major_version(), Gtk.get_minor_version()):
+ show = ShortcutsWindow().show
+else:
+ show = show_shortcuts_webpage