summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog
diff options
context:
space:
mode:
authorEduard Braun <eduard.braun2@gmx.de>2017-07-11 17:52:26 +0000
committerEduard Braun <eduard.braun2@gmx.de>2017-07-11 17:52:26 +0000
commit558fb7230c83dfffc8994cacf7a2955beb3d88a1 (patch)
tree0a49236e2b0ce9626863f6f487acb99aea30e64d /src/ui/dialog
parentImprove revision format (diff)
parentOnly update shortcuts tree view once after updating (significantly reduces th... (diff)
downloadinkscape-558fb7230c83dfffc8994cacf7a2955beb3d88a1.tar.gz
inkscape-558fb7230c83dfffc8994cacf7a2955beb3d88a1.zip
Merge branch 'shortcuts' (!41)
Diffstat (limited to 'src/ui/dialog')
-rw-r--r--src/ui/dialog/dialog.cpp8
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp10
-rw-r--r--src/ui/dialog/objects.cpp8
-rw-r--r--src/ui/dialog/xml-tree.cpp8
4 files changed, 10 insertions, 24 deletions
diff --git a/src/ui/dialog/dialog.cpp b/src/ui/dialog/dialog.cpp
index 0f4f30ac0..9037e8377 100644
--- a/src/ui/dialog/dialog.cpp
+++ b/src/ui/dialog/dialog.cpp
@@ -287,13 +287,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 5ebad0746..13729cf0f 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -1535,7 +1535,7 @@ void InkscapePreferences::initKeyboardShortcuts(Gtk::TreeModel::iterator iter_ui
_page_keyshortcuts.add_line( false, _("Search:"), _kb_search, "", "", true);
_kb_store = Gtk::TreeStore::create( _kb_columns );
- _kb_store->set_sort_column (_kb_columns.id, Gtk::SORT_ASCENDING );
+ _kb_store->set_sort_column ( GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, Gtk::SORT_ASCENDING ); // only sort in onKBListKeyboardShortcuts()
_kb_filter = Gtk::TreeModelFilter::create(_kb_store);
_kb_filter->set_visible_func (sigc::mem_fun(*this, &InkscapePreferences::onKBSearchFilter));
@@ -1676,7 +1676,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
@@ -1812,7 +1812,7 @@ void InkscapePreferences::onKBListKeyboardShortcuts()
if (shortcut_id != GDK_KEY_VoidSymbol) {
gchar* str = sp_shortcut_get_label(shortcut_id);
if (str) {
- shortcut_label = str;
+ shortcut_label = Glib::Markup::escape_text(str);
g_free(str);
str = 0;
}
@@ -1833,6 +1833,10 @@ void InkscapePreferences::onKBListKeyboardShortcuts()
}
}
+ // re-order once after updating (then disable ordering again to increase performance)
+ _kb_store->set_sort_column (_kb_columns.id, Gtk::SORT_ASCENDING );
+ _kb_store->set_sort_column ( GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, Gtk::SORT_ASCENDING );
+
if (selected_id.empty()) {
_kb_tree.expand_to_path(_kb_store->get_path(_kb_store->get_iter("0:1")));
}
diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp
index a28c75514..dd8879dc1 100644
--- a/src/ui/dialog/objects.cpp
+++ b/src/ui/dialog/objects.cpp
@@ -704,13 +704,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 d39a4cb8d..83c0de45b 100644
--- a/src/ui/dialog/xml-tree.cpp
+++ b/src/ui/dialog/xml-tree.cpp
@@ -347,13 +347,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. */