summaryrefslogtreecommitdiffstats
path: root/src/gradient-context.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gradient-context.cpp')
-rw-r--r--src/gradient-context.cpp133
1 files changed, 91 insertions, 42 deletions
diff --git a/src/gradient-context.cpp b/src/gradient-context.cpp
index e10e42610..54f4bdfc1 100644
--- a/src/gradient-context.cpp
+++ b/src/gradient-context.cpp
@@ -48,6 +48,55 @@
#include "document-undo.h"
#include "verbs.h"
+#if !GTK_CHECK_VERSION(2,22,0)
+#define GDK_KEY_Up 0xff52
+#define GDK_KEY_KP_Up 0xff97
+#define GDK_KEY_Down 0xff54
+#define GDK_KEY_KP_Down 0xff99
+#define GDK_KEY_Left 0xff51
+#define GDK_KEY_KP_Left 0xff96
+#define GDK_KEY_Right 0xff53
+#define GDK_KEY_KP_Right 0xff98
+#define GDK_KEY_Home 0xff50
+#define GDK_KEY_KP_Home 0xff95
+#define GDK_KEY_End 0xff57
+#define GDK_KEY_KP_End 0xff9c
+#define GDK_KEY_a 0x061
+#define GDK_KEY_A 0x041
+#define GDK_KEY_l 0x06c
+#define GDK_KEY_L 0x04c
+#define GDK_KEY_r 0x072
+#define GDK_KEY_R 0x052
+#define GDK_KEY_x 0x078
+#define GDK_KEY_X 0x058
+#define GDK_KEY_z 0x07a
+#define GDK_KEY_Z 0x05a
+#define GDK_KEY_Escape 0xff1b
+#define GDK_KEY_Control_L 0xffe3
+#define GDK_KEY_Control_R 0xffe4
+#define GDK_KEY_Alt_L 0xffe9
+#define GDK_KEY_Alt_R 0xffea
+#define GDK_KEY_Shift_L 0xffe1
+#define GDK_KEY_Shift_R 0xffe2
+#define GDK_KEY_Meta_L 0xffe7
+#define GDK_KEY_Meta_R 0xffe8
+#define GDK_KEY_KP_0 0xffb0
+#define GDK_KEY_KP_1 0xffb1
+#define GDK_KEY_KP_2 0xffb2
+#define GDK_KEY_KP_3 0xffb3
+#define GDK_KEY_KP_4 0xffb4
+#define GDK_KEY_KP_5 0xffb5
+#define GDK_KEY_KP_6 0xffb6
+#define GDK_KEY_KP_7 0xffb7
+#define GDK_KEY_KP_8 0xffb8
+#define GDK_KEY_KP_9 0xffb9
+#define GDK_KEY_Insert 0xff63
+#define GDK_KEY_KP_Insert 0xff9e
+#define GDK_KEY_Delete 0xffff
+#define GDK_KEY_KP_Delete 0xff9f
+#define GDK_KEY_BackSpace 0xff08
+#endif
+
using Inkscape::DocumentUndo;
static void sp_gradient_context_class_init(SPGradientContextClass *klass);
@@ -713,45 +762,45 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
break;
case GDK_KEY_PRESS:
switch (get_group0_keyval (&event->key)) {
- case GDK_Alt_L:
- case GDK_Alt_R:
- case GDK_Control_L:
- case GDK_Control_R:
- case GDK_Shift_L:
- case GDK_Shift_R:
- case GDK_Meta_L: // Meta is when you press Shift+Alt (at least on my machine)
- case GDK_Meta_R:
+ case GDK_KEY_Alt_L:
+ case GDK_KEY_Alt_R:
+ case GDK_KEY_Control_L:
+ case GDK_KEY_Control_R:
+ case GDK_KEY_Shift_L:
+ case GDK_KEY_Shift_R:
+ case GDK_KEY_Meta_L: // Meta is when you press Shift+Alt (at least on my machine)
+ case GDK_KEY_Meta_R:
sp_event_show_modifier_tip (event_context->defaultMessageContext(), event,
_("<b>Ctrl</b>: snap gradient angle"),
_("<b>Shift</b>: draw gradient around the starting point"),
NULL);
break;
- case GDK_x:
- case GDK_X:
+ case GDK_KEY_x:
+ case GDK_KEY_X:
if (MOD__ALT_ONLY) {
desktop->setToolboxFocusTo ("altx-grad");
ret = TRUE;
}
break;
- case GDK_A:
- case GDK_a:
+ case GDK_KEY_A:
+ case GDK_KEY_a:
if (MOD__CTRL_ONLY && drag->isNonEmpty()) {
drag->selectAll();
ret = TRUE;
}
break;
- case GDK_L:
- case GDK_l:
+ case GDK_KEY_L:
+ case GDK_KEY_l:
if (MOD__CTRL_ONLY && drag->isNonEmpty() && drag->hasSelection()) {
sp_gradient_simplify(rc, 1e-4);
ret = TRUE;
}
break;
- case GDK_Escape:
+ case GDK_KEY_Escape:
if (drag->selected) {
drag->deselectAll();
} else {
@@ -761,9 +810,9 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
//TODO: make dragging escapable by Esc
break;
- case GDK_Left: // move handle left
- case GDK_KP_Left:
- case GDK_KP_4:
+ case GDK_KEY_Left: // move handle left
+ case GDK_KEY_KP_Left:
+ case GDK_KEY_KP_4:
if (!MOD__CTRL) { // not ctrl
gint mul = 1 + gobble_key_events(
get_group0_keyval(&event->key), 0); // with any mask
@@ -778,9 +827,9 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
ret = TRUE;
}
break;
- case GDK_Up: // move handle up
- case GDK_KP_Up:
- case GDK_KP_8:
+ case GDK_KEY_Up: // move handle up
+ case GDK_KEY_KP_Up:
+ case GDK_KEY_KP_8:
if (!MOD__CTRL) { // not ctrl
gint mul = 1 + gobble_key_events(
get_group0_keyval(&event->key), 0); // with any mask
@@ -795,9 +844,9 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
ret = TRUE;
}
break;
- case GDK_Right: // move handle right
- case GDK_KP_Right:
- case GDK_KP_6:
+ case GDK_KEY_Right: // move handle right
+ case GDK_KEY_KP_Right:
+ case GDK_KEY_KP_6:
if (!MOD__CTRL) { // not ctrl
gint mul = 1 + gobble_key_events(
get_group0_keyval(&event->key), 0); // with any mask
@@ -812,9 +861,9 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
ret = TRUE;
}
break;
- case GDK_Down: // move handle down
- case GDK_KP_Down:
- case GDK_KP_2:
+ case GDK_KEY_Down: // move handle down
+ case GDK_KEY_KP_Down:
+ case GDK_KEY_KP_2:
if (!MOD__CTRL) { // not ctrl
gint mul = 1 + gobble_key_events(
get_group0_keyval(&event->key), 0); // with any mask
@@ -829,8 +878,8 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
ret = TRUE;
}
break;
- case GDK_r:
- case GDK_R:
+ case GDK_KEY_r:
+ case GDK_KEY_R:
if (MOD__SHIFT_ONLY) {
// First try selected dragger
if (drag && drag->selected) {
@@ -848,16 +897,16 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
}
break;
- case GDK_Insert:
- case GDK_KP_Insert:
+ case GDK_KEY_Insert:
+ case GDK_KEY_KP_Insert:
// with any modifiers:
sp_gradient_context_add_stops_between_selected_stops (rc);
ret = TRUE;
break;
- case GDK_Delete:
- case GDK_KP_Delete:
- case GDK_BackSpace:
+ case GDK_KEY_Delete:
+ case GDK_KEY_KP_Delete:
+ case GDK_KEY_BackSpace:
if ( drag->selected ) {
drag->deleteSelected(MOD__CTRL_ONLY);
ret = TRUE;
@@ -869,14 +918,14 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
break;
case GDK_KEY_RELEASE:
switch (get_group0_keyval (&event->key)) {
- case GDK_Alt_L:
- case GDK_Alt_R:
- case GDK_Control_L:
- case GDK_Control_R:
- case GDK_Shift_L:
- case GDK_Shift_R:
- case GDK_Meta_L: // Meta is when you press Shift+Alt
- case GDK_Meta_R:
+ case GDK_KEY_Alt_L:
+ case GDK_KEY_Alt_R:
+ case GDK_KEY_Control_L:
+ case GDK_KEY_Control_R:
+ case GDK_KEY_Shift_L:
+ case GDK_KEY_Shift_R:
+ case GDK_KEY_Meta_L: // Meta is when you press Shift+Alt
+ case GDK_KEY_Meta_R:
event_context->defaultMessageContext()->clear();
break;
default: