summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/objects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/dialog/objects.cpp')
-rw-r--r--src/ui/dialog/objects.cpp63
1 files changed, 36 insertions, 27 deletions
diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp
index 95302387f..61ce3ada3 100644
--- a/src/ui/dialog/objects.cpp
+++ b/src/ui/dialog/objects.cpp
@@ -30,6 +30,7 @@
#include "helper/action.h"
#include "inkscape.h"
#include "layer-manager.h"
+#include "shortcuts.h"
#include "sp-clippath.h"
#include "sp-mask.h"
#include "sp-root.h"
@@ -692,7 +693,41 @@ void ObjectsPanel::_setLockedIter( const Gtk::TreeModel::iterator& iter, const b
*/
bool ObjectsPanel::_handleKeyEvent(GdkEventKey *event)
{
+ if (!_desktop)
+ 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 );
+
+ switch (shortcut) {
+ // how to get users key binding for the action “start-interactive-search” ??
+ // ctrl+f is just the default
+ case GDK_KEY_f | SP_SHORTCUT_CONTROL_MASK:
+ return false;
+ break;
+ // shall we slurp ctrl+w to close panel?
+
+ // defocus:
+ case GDK_KEY_Escape:
+ if (_desktop->canvas) {
+ gtk_widget_grab_focus (GTK_WIDGET(_desktop->canvas));
+ return true;
+ }
+ break;
+ }
+ // invoke user defined shortcuts first
+ bool done = sp_shortcut_invoke(shortcut, _desktop);
+ if (done)
+ return true;
+
+ // handle events for the treeview
bool empty = _desktop->selection->isEmpty();
switch (Inkscape::UI::Tools::get_group0_keyval(event)) {
@@ -711,36 +746,10 @@ bool ObjectsPanel::_handleKeyEvent(GdkEventKey *event)
return true;
}
return false;
- }
- break;
- case GDK_KEY_Home:
- //Move item(s) to top of containing group/layer
- _fireAction( empty ? SP_VERB_LAYER_TO_TOP : SP_VERB_SELECTION_TO_FRONT );
- break;
- case GDK_KEY_End:
- //Move item(s) to bottom of containing group/layer
- _fireAction( empty ? SP_VERB_LAYER_TO_BOTTOM : SP_VERB_SELECTION_TO_BACK );
- break;
- case GDK_KEY_Page_Up:
- {
- //Move item(s) up in containing group/layer
- int ch = event->state & GDK_SHIFT_MASK ? SP_VERB_LAYER_MOVE_TO_NEXT : SP_VERB_SELECTION_STACK_UP;
- _fireAction( empty ? SP_VERB_LAYER_RAISE : ch );
break;
}
- case GDK_KEY_Page_Down:
- {
- //Move item(s) down in containing group/layer
- int ch = event->state & GDK_SHIFT_MASK ? SP_VERB_LAYER_MOVE_TO_PREV : SP_VERB_SELECTION_STACK_DOWN;
- _fireAction( empty ? SP_VERB_LAYER_LOWER : ch );
- break;
- }
-
- //TODO: Handle Ctrl-A, etc.
- default:
- return false;
}
- return true;
+ return false;
}
/**