summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlex Valavanis <valavanisalex@gmail.com>2012-04-08 00:17:30 +0000
committerAlex Valavanis <valavanisalex@gmail.com>2012-04-08 00:17:30 +0000
commit736d7a269f58740a3c724914abc016542f05a16c (patch)
treea982dbbcd974402473ba312eef7be696aa043d04 /src
parentcircle tool: fix shift click to reset to full circle for start angle node (diff)
downloadinkscape-736d7a269f58740a3c724914abc016542f05a16c.tar.gz
inkscape-736d7a269f58740a3c724914abc016542f05a16c.zip
More GDK key macro fixes, and some cursor referencing
(bzr r11180)
Diffstat (limited to 'src')
-rw-r--r--src/connector-context.cpp23
-rw-r--r--src/knot.h24
-rw-r--r--src/tweak-context.cpp179
-rw-r--r--src/ui/widget/registered-widget.h2
-rw-r--r--src/zoom-context.cpp28
5 files changed, 178 insertions, 78 deletions
diff --git a/src/connector-context.cpp b/src/connector-context.cpp
index 1c631c446..cf8d73bd2 100644
--- a/src/connector-context.cpp
+++ b/src/connector-context.cpp
@@ -194,6 +194,13 @@
using Inkscape::DocumentUndo;
+#if !GTK_CHECK_VERSION(2,22,0)
+#define GDK_KEY_Return 0xff0d
+#define GDK_KEY_KP_Enter 0xff8d
+#define GDK_KEY_Escape 0xff1b
+#define GDK_KEY_Delete 0xffff
+#endif
+
static void sp_connector_context_class_init(SPConnectorContextClass *klass);
static void sp_connector_context_init(SPConnectorContext *conn_context);
static void sp_connector_context_dispose(GObject *object);
@@ -1156,15 +1163,15 @@ connector_handle_key_press(SPConnectorContext *const cc, guint const keyval)
if ( cc->mode == SP_CONNECTOR_CONTEXT_DRAWING_MODE )
{
switch (keyval) {
- case GDK_Return:
- case GDK_KP_Enter:
+ case GDK_KEY_Return:
+ case GDK_KEY_KP_Enter:
if (cc->npoints != 0) {
spcc_connector_finish(cc);
cc->state = SP_CONNECTOR_CONTEXT_IDLE;
ret = TRUE;
}
break;
- case GDK_Escape:
+ case GDK_KEY_Escape:
if (cc->state == SP_CONNECTOR_CONTEXT_REROUTING) {
SPDesktop *desktop = SP_EVENT_CONTEXT_DESKTOP(cc);
@@ -1195,7 +1202,7 @@ connector_handle_key_press(SPConnectorContext *const cc, guint const keyval)
switch ( cc->state )
{
case SP_CONNECTOR_CONTEXT_DRAGGING:
- if ( keyval == GDK_Escape )
+ if ( keyval == GDK_KEY_Escape )
{
// Cancel connection point dragging
@@ -1209,7 +1216,7 @@ connector_handle_key_press(SPConnectorContext *const cc, guint const keyval)
_("Connection point drag cancelled."));
ret = TRUE;
}
- else if ( keyval == GDK_Return || keyval == GDK_KP_Enter )
+ else if ( keyval == GDK_KEY_Return || keyval == GDK_KEY_KP_Enter )
{
// Put connection point at current position
@@ -1233,7 +1240,7 @@ connector_handle_key_press(SPConnectorContext *const cc, guint const keyval)
}
break;
case SP_CONNECTOR_CONTEXT_NEWCONNPOINT:
- if ( keyval == GDK_Escape )
+ if ( keyval == GDK_KEY_Escape )
{
// Just destroy the knot
g_object_unref( cc->selected_handle );
@@ -1241,7 +1248,7 @@ connector_handle_key_press(SPConnectorContext *const cc, guint const keyval)
cc->state = SP_CONNECTOR_CONTEXT_IDLE;
ret = TRUE;
}
- else if ( keyval == GDK_Return || keyval == GDK_KP_Enter )
+ else if ( keyval == GDK_KEY_Return || keyval == GDK_KEY_KP_Enter )
{
SPDesktop *desktop = SP_EVENT_CONTEXT_DESKTOP(cc);
SPDocument *doc = sp_desktop_document(desktop);
@@ -1272,7 +1279,7 @@ connector_handle_key_press(SPConnectorContext *const cc, guint const keyval)
break;
case SP_CONNECTOR_CONTEXT_IDLE:
- if ( keyval == GDK_Delete && cc->selected_handle )
+ if ( keyval == GDK_KEY_Delete && cc->selected_handle )
{
cc->active_shape->avoidRef->deleteConnectionPoint(cc->connpthandles[cc->selected_handle]);
cc->selected_handle = NULL;
diff --git a/src/knot.h b/src/knot.h
index 73bb226c6..02f21c917 100644
--- a/src/knot.h
+++ b/src/knot.h
@@ -100,27 +100,51 @@ struct SPKnot : GObject {
}
inline void setCursor (GdkCursor* normal, GdkCursor* mouseover, GdkCursor* dragging) {
if (cursor[SP_KNOT_STATE_NORMAL]) {
+#if GTK_CHECK_VERSION(3,0,0)
+ g_object_unref(cursor[SP_KNOT_STATE_NORMAL]);
+#else
gdk_cursor_unref(cursor[SP_KNOT_STATE_NORMAL]);
+#endif
}
cursor[SP_KNOT_STATE_NORMAL] = normal;
if (normal) {
+#if GTK_CHECK_VERSION(3,0,0)
+ g_object_ref(normal);
+#else
gdk_cursor_ref(normal);
+#endif
}
if (cursor[SP_KNOT_STATE_MOUSEOVER]) {
+#if GTK_CHECK_VERSION(3,0,0)
+ g_object_unref(cursor[SP_KNOT_STATE_MOUSEOVER]);
+#else
gdk_cursor_unref(cursor[SP_KNOT_STATE_MOUSEOVER]);
+#endif
}
cursor[SP_KNOT_STATE_MOUSEOVER] = mouseover;
if (mouseover) {
+#if GTK_CHECK_VERSION(3,0,0)
+ g_object_ref(mouseover);
+#else
gdk_cursor_ref(mouseover);
+#endif
}
if (cursor[SP_KNOT_STATE_DRAGGING]) {
+#if GTK_CHECK_VERSION(3,0,0)
+ g_object_unref(cursor[SP_KNOT_STATE_DRAGGING]);
+#else
gdk_cursor_unref(cursor[SP_KNOT_STATE_DRAGGING]);
+#endif
}
cursor[SP_KNOT_STATE_DRAGGING] = dragging;
if (dragging) {
+#if GTK_CHECK_VERSION(3,0,0)
+ g_object_ref(dragging);
+#else
gdk_cursor_ref(dragging);
+#endif
}
}
diff --git a/src/tweak-context.cpp b/src/tweak-context.cpp
index 3d4bde2ac..112711d3b 100644
--- a/src/tweak-context.cpp
+++ b/src/tweak-context.cpp
@@ -81,6 +81,65 @@ using Inkscape::DocumentUndo;
#define DYNA_MIN_WIDTH 1.0e-6
+#if !GTK_CHECK_VERSION(2,22,0)
+#define GDK_KEY_M 0x04d
+#define GDK_KEY_m 0x06d
+#define GDK_KEY_0 0x030
+#define GDK_KEY_1 0x031
+#define GDK_KEY_2 0x032
+#define GDK_KEY_3 0x033
+#define GDK_KEY_4 0x034
+#define GDK_KEY_5 0x035
+#define GDK_KEY_6 0x036
+#define GDK_KEY_7 0x037
+#define GDK_KEY_8 0x038
+#define GDK_KEY_9 0x039
+#define GDK_KEY_I 0x049
+#define GDK_KEY_i 0x069
+#define GDK_KEY_Z 0x05a
+#define GDK_KEY_z 0x07a
+#define GDK_KEY_less 0x03c
+#define GDK_KEY_comma 0x02c
+#define GDK_KEY_greater 0x03e
+#define GDK_KEY_period 0x02e
+#define GDK_KEY_bracketleft 0x05b
+#define GDK_KEY_bracketright 0x05d
+#define GDK_KEY_d 0x064
+#define GDK_KEY_D 0x044
+#define GDK_KEY_P 0x050
+#define GDK_KEY_p 0x070
+#define GDK_KEY_S 0x053
+#define GDK_KEY_s 0x073
+#define GDK_KEY_a 0x061
+#define GDK_KEY_A 0x041
+#define GDK_KEY_R 0x052
+#define GDK_KEY_r 0x072
+#define GDK_KEY_c 0x063
+#define GDK_KEY_C 0x043
+#define GDK_KEY_J 0x04a
+#define GDK_KEY_j 0x06a
+#define GDK_KEY_b 0x062
+#define GDK_KEY_B 0x042
+#define GDK_KEY_Up 0xff52
+#define GDK_KEY_Left 0xff51
+#define GDK_KEY_Right 0xff53
+#define GDK_KEY_Down 0xff54
+#define GDK_KEY_KP_Left 0xff96
+#define GDK_KEY_KP_Up 0xff97
+#define GDK_KEY_KP_Right 0xff98
+#define GDK_KEY_KP_Down 0xff99
+#define GDK_KEY_KP_Home 0xff95
+#define GDK_KEY_KP_End 0xff9c
+#define GDK_KEY_Home 0xff50
+#define GDK_KEY_End 0xff57
+#define GDK_KEY_X 0x058
+#define GDK_KEY_x 0x078
+#define GDK_KEY_Shift_L 0xffe1
+#define GDK_KEY_Shift_R 0xffe2
+#define GDK_KEY_Control_L 0xffe3
+#define GDK_KEY_Control_R 0xffe4
+#endif
+
static void sp_tweak_context_class_init(SPTweakContextClass *klass);
static void sp_tweak_context_init(SPTweakContext *ddc);
static void sp_tweak_context_dispose(GObject *object);
@@ -1322,112 +1381,112 @@ sp_tweak_context_root_handler(SPEventContext *event_context,
case GDK_KEY_PRESS:
{
switch (get_group0_keyval (&event->key)) {
- case GDK_m:
- case GDK_M:
- case GDK_0:
+ case GDK_KEY_m:
+ case GDK_KEY_M:
+ case GDK_KEY_0:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_MOVE, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_i:
- case GDK_I:
- case GDK_1:
+ case GDK_KEY_i:
+ case GDK_KEY_I:
+ case GDK_KEY_1:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_MOVE_IN_OUT, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_z:
- case GDK_Z:
- case GDK_2:
+ case GDK_KEY_z:
+ case GDK_KEY_Z:
+ case GDK_KEY_2:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_MOVE_JITTER, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_less:
- case GDK_comma:
- case GDK_greater:
- case GDK_period:
- case GDK_3:
+ case GDK_KEY_less:
+ case GDK_KEY_comma:
+ case GDK_KEY_greater:
+ case GDK_KEY_period:
+ case GDK_KEY_3:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_SCALE, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_bracketright:
- case GDK_bracketleft:
- case GDK_4:
+ case GDK_KEY_bracketright:
+ case GDK_KEY_bracketleft:
+ case GDK_KEY_4:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_ROTATE, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_d:
- case GDK_D:
- case GDK_5:
+ case GDK_KEY_d:
+ case GDK_KEY_D:
+ case GDK_KEY_5:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_MORELESS, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_p:
- case GDK_P:
- case GDK_6:
+ case GDK_KEY_p:
+ case GDK_KEY_P:
+ case GDK_KEY_6:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_PUSH, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_s:
- case GDK_S:
- case GDK_7:
+ case GDK_KEY_s:
+ case GDK_KEY_S:
+ case GDK_KEY_7:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_SHRINK_GROW, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_a:
- case GDK_A:
- case GDK_8:
+ case GDK_KEY_a:
+ case GDK_KEY_A:
+ case GDK_KEY_8:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_ATTRACT_REPEL, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_r:
- case GDK_R:
- case GDK_9:
+ case GDK_KEY_r:
+ case GDK_KEY_R:
+ case GDK_KEY_9:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_ROUGHEN, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_c:
- case GDK_C:
+ case GDK_KEY_c:
+ case GDK_KEY_C:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_COLORPAINT, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_j:
- case GDK_J:
+ case GDK_KEY_j:
+ case GDK_KEY_J:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_COLORJITTER, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_b:
- case GDK_B:
+ case GDK_KEY_b:
+ case GDK_KEY_B:
if (MOD__SHIFT_ONLY) {
sp_tweak_switch_mode(tc, TWEAK_MODE_BLUR, MOD__SHIFT);
ret = TRUE;
}
break;
- case GDK_Up:
- case GDK_KP_Up:
+ case GDK_KEY_Up:
+ case GDK_KEY_KP_Up:
if (!MOD__CTRL_ONLY) {
tc->force += 0.05;
if (tc->force > 1.0) {
@@ -1437,8 +1496,8 @@ sp_tweak_context_root_handler(SPEventContext *event_context,
ret = TRUE;
}
break;
- case GDK_Down:
- case GDK_KP_Down:
+ case GDK_KEY_Down:
+ case GDK_KEY_KP_Down:
if (!MOD__CTRL_ONLY) {
tc->force -= 0.05;
if (tc->force < 0.0) {
@@ -1448,8 +1507,8 @@ sp_tweak_context_root_handler(SPEventContext *event_context,
ret = TRUE;
}
break;
- case GDK_Right:
- case GDK_KP_Right:
+ case GDK_KEY_Right:
+ case GDK_KEY_KP_Right:
if (!MOD__CTRL_ONLY) {
tc->width += 0.01;
if (tc->width > 1.0) {
@@ -1460,8 +1519,8 @@ sp_tweak_context_root_handler(SPEventContext *event_context,
ret = TRUE;
}
break;
- case GDK_Left:
- case GDK_KP_Left:
+ case GDK_KEY_Left:
+ case GDK_KEY_KP_Left:
if (!MOD__CTRL_ONLY) {
tc->width -= 0.01;
if (tc->width < 0.01) {
@@ -1472,35 +1531,35 @@ sp_tweak_context_root_handler(SPEventContext *event_context,
ret = TRUE;
}
break;
- case GDK_Home:
- case GDK_KP_Home:
+ case GDK_KEY_Home:
+ case GDK_KEY_KP_Home:
tc->width = 0.01;
desktop->setToolboxAdjustmentValue ("altx-tweak", tc->width * 100);
sp_tweak_update_area(tc);
ret = TRUE;
break;
- case GDK_End:
- case GDK_KP_End:
+ case GDK_KEY_End:
+ case GDK_KEY_KP_End:
tc->width = 1.0;
desktop->setToolboxAdjustmentValue ("altx-tweak", tc->width * 100);
sp_tweak_update_area(tc);
ret = TRUE;
break;
- case GDK_x:
- case GDK_X:
+ case GDK_KEY_x:
+ case GDK_KEY_X:
if (MOD__ALT_ONLY) {
desktop->setToolboxFocusTo ("altx-tweak");
ret = TRUE;
}
break;
- case GDK_Shift_L:
- case GDK_Shift_R:
+ case GDK_KEY_Shift_L:
+ case GDK_KEY_Shift_R:
sp_tweak_update_cursor(tc, true);
break;
- case GDK_Control_L:
- case GDK_Control_R:
+ case GDK_KEY_Control_L:
+ case GDK_KEY_Control_R:
sp_tweak_switch_mode_temporarily(tc, TWEAK_MODE_SHRINK_GROW, MOD__SHIFT);
break;
default:
@@ -1511,12 +1570,12 @@ sp_tweak_context_root_handler(SPEventContext *event_context,
case GDK_KEY_RELEASE: {
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
switch (get_group0_keyval(&event->key)) {
- case GDK_Shift_L:
- case GDK_Shift_R:
+ case GDK_KEY_Shift_L:
+ case GDK_KEY_Shift_R:
sp_tweak_update_cursor(tc, false);
break;
- case GDK_Control_L:
- case GDK_Control_R:
+ case GDK_KEY_Control_L:
+ case GDK_KEY_Control_R:
sp_tweak_switch_mode (tc, prefs->getInt("/tools/tweak/mode"), MOD__SHIFT);
tc->_message_context->clear();
break;
diff --git a/src/ui/widget/registered-widget.h b/src/ui/widget/registered-widget.h
index 52a44114d..2f8c51f51 100644
--- a/src/ui/widget/registered-widget.h
+++ b/src/ui/widget/registered-widget.h
@@ -12,11 +12,11 @@
#ifndef INKSCAPE_UI_WIDGET_REGISTERED_WIDGET__H_
#define INKSCAPE_UI_WIDGET_REGISTERED_WIDGET__H_
+#include "ui/widget/scalar.h"
#include <2geom/affine.h>
#include "xml/node.h"
#include "registry.h"
-#include "ui/widget/scalar.h"
#include "ui/widget/scalar-unit.h"
#include "ui/widget/point.h"
#include "ui/widget/text.h"
diff --git a/src/zoom-context.cpp b/src/zoom-context.cpp
index 45de37652..6676733d7 100644
--- a/src/zoom-context.cpp
+++ b/src/zoom-context.cpp
@@ -25,6 +25,16 @@
#include "zoom-context.h"
+#if !GTK_CHECK_VERSION(2,22,0)
+#define GDK_KEY_Escape 0xff1b
+#define GDK_KEY_Up 0xff52
+#define GDK_KEY_Down 0xff54
+#define GDK_KEY_KP_Up 0xff97
+#define GDK_KEY_KP_Down 0xff99
+#define GDK_KEY_Shift_L 0xffe1
+#define GDK_KEY_Shift_R 0xffe2
+#endif
+
static void sp_zoom_context_class_init(SPZoomContextClass *klass);
static void sp_zoom_context_init(SPZoomContext *zoom_context);
static void sp_zoom_context_setup(SPEventContext *ec);
@@ -215,22 +225,22 @@ static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent
}
case GDK_KEY_PRESS:
switch (get_group0_keyval (&event->key)) {
- case GDK_Escape:
+ case GDK_KEY_Escape:
Inkscape::Rubberband::get(desktop)->stop();
xp = yp = 0;
escaped = true;
ret = TRUE;
break;
- case GDK_Up:
- case GDK_Down:
- case GDK_KP_Up:
- case GDK_KP_Down:
+ case GDK_KEY_Up:
+ case GDK_KEY_Down:
+ case GDK_KEY_KP_Up:
+ case GDK_KEY_KP_Down:
// prevent the zoom field from activation
if (!MOD__CTRL_ONLY)
ret = TRUE;
break;
- case GDK_Shift_L:
- case GDK_Shift_R:
+ case GDK_KEY_Shift_L:
+ case GDK_KEY_Shift_R:
event_context->cursor_shape = cursor_zoom_out_xpm;
sp_event_context_update_cursor(event_context);
break;
@@ -240,8 +250,8 @@ static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent
break;
case GDK_KEY_RELEASE:
switch (get_group0_keyval (&event->key)) {
- case GDK_Shift_L:
- case GDK_Shift_R:
+ case GDK_KEY_Shift_L:
+ case GDK_KEY_Shift_R:
event_context->cursor_shape = cursor_zoom_xpm;
sp_event_context_update_cursor(event_context);
break;