summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog
diff options
context:
space:
mode:
authorEduard Braun <Eduard.Braun2@gmx.de>2017-06-18 17:54:03 +0000
committerEduard Braun <eduard.braun2@gmx.de>2017-06-23 21:55:03 +0000
commit46fd67ec49c3988db20db422061a2f52582c896c (patch)
treea302a68c1694ffa59872d0b50f611f97f68981ec /src/ui/dialog
parentMerge branch 'ui-files-for-ui-xml' (diff)
downloadinkscape-46fd67ec49c3988db20db422061a2f52582c896c.tar.gz
inkscape-46fd67ec49c3988db20db422061a2f52582c896c.zip
Improve and simplify shortcut handling.
Should fix many issues with unusuable keys, especially on non-English keyboard layouts.
Diffstat (limited to 'src/ui/dialog')
-rw-r--r--src/ui/dialog/dialog.cpp8
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp2
-rw-r--r--src/ui/dialog/objects.cpp8
-rw-r--r--src/ui/dialog/xml-tree.cpp8
4 files changed, 4 insertions, 22 deletions
diff --git a/src/ui/dialog/dialog.cpp b/src/ui/dialog/dialog.cpp
index 27a6e55d9..f36b13d9b 100644
--- a/src/ui/dialog/dialog.cpp
+++ b/src/ui/dialog/dialog.cpp
@@ -266,13 +266,7 @@ bool Dialog::_onEvent(GdkEvent *event)
bool Dialog::_onKeyPress(GdkEventKey *event)
{
unsigned int shortcut;
- shortcut = Inkscape::UI::Tools::get_group0_keyval(event) |
- ( event->state & GDK_SHIFT_MASK ?
- SP_SHORTCUT_SHIFT_MASK : 0 ) |
- ( event->state & GDK_CONTROL_MASK ?
- SP_SHORTCUT_CONTROL_MASK : 0 ) |
- ( event->state & GDK_MOD1_MASK ?
- SP_SHORTCUT_ALT_MASK : 0 );
+ shortcut = sp_shortcut_get_for_event((GdkEventKey*)event);
return sp_shortcut_invoke(shortcut, SP_ACTIVE_DESKTOP);
}
diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
index 646439613..43fac11aa 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -1679,7 +1679,7 @@ void InkscapePreferences::onKBTreeEdited (const Glib::ustring& path, guint accel
return;
}
- unsigned int const new_shortcut_id = sp_gdkmodifier_to_shortcut(accel_key, accel_mods, hardware_keycode);
+ unsigned int const new_shortcut_id = sp_shortcut_get_from_gdk_event(accel_key, accel_mods, hardware_keycode);
if (new_shortcut_id) {
// Delete current shortcut if it existed
diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp
index fd78fec90..92557b1a3 100644
--- a/src/ui/dialog/objects.cpp
+++ b/src/ui/dialog/objects.cpp
@@ -701,13 +701,7 @@ bool ObjectsPanel::_handleKeyEvent(GdkEventKey *event)
return false;
unsigned int shortcut;
- shortcut = Inkscape::UI::Tools::get_group0_keyval(event) |
- ( event->state & GDK_SHIFT_MASK ?
- SP_SHORTCUT_SHIFT_MASK : 0 ) |
- ( event->state & GDK_CONTROL_MASK ?
- SP_SHORTCUT_CONTROL_MASK : 0 ) |
- ( event->state & GDK_MOD1_MASK ?
- SP_SHORTCUT_ALT_MASK : 0 );
+ shortcut = sp_shortcut_get_for_event(event);
switch (shortcut) {
// how to get users key binding for the action “start-interactive-search” ??
diff --git a/src/ui/dialog/xml-tree.cpp b/src/ui/dialog/xml-tree.cpp
index fa35b092a..72aaadb9f 100644
--- a/src/ui/dialog/xml-tree.cpp
+++ b/src/ui/dialog/xml-tree.cpp
@@ -327,13 +327,7 @@ void XmlTree::attr_reset_context(gint attr)
bool XmlTree::sp_xml_tree_key_press(GdkEventKey *event)
{
- unsigned int shortcut = Inkscape::UI::Tools::get_group0_keyval (event) |
- ( event->state & GDK_SHIFT_MASK ?
- SP_SHORTCUT_SHIFT_MASK : 0 ) |
- ( event->state & GDK_CONTROL_MASK ?
- SP_SHORTCUT_CONTROL_MASK : 0 ) |
- ( event->state & GDK_MOD1_MASK ?
- SP_SHORTCUT_ALT_MASK : 0 );
+ unsigned int shortcut = sp_shortcut_get_for_event((GdkEventKey*)event);
/* fixme: if you need to add more xml-tree-specific callbacks, you should probably upgrade
* the sp_shortcut mechanism to take into account windows. */