summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJohn Smith <john.smith7545@yahoo.com>2012-09-06 02:25:16 +0000
committerJohn Smith <john.smith7545@yahoo.com>2012-09-06 02:25:16 +0000
commit701002a149020e89d9023dbe56c6d0ccdb5c3aca (patch)
tree13182f947b67738a1b2ee4595dce67b184a42be7 /src
parentFix for 499965 : PS Output : Convert export area to radio buttons (diff)
downloadinkscape-701002a149020e89d9023dbe56c6d0ccdb5c3aca.tar.gz
inkscape-701002a149020e89d9023dbe56c6d0ccdb5c3aca.zip
Fix for 580160 : Deleting a gradient stop using Shape tools deletes the object
(bzr r11655)
Diffstat (limited to 'src')
-rw-r--r--src/arc-context.cpp5
-rw-r--r--src/box3d-context.cpp5
-rw-r--r--src/event-context.cpp13
-rw-r--r--src/event-context.h1
-rw-r--r--src/gradient-context.cpp5
-rw-r--r--src/rect-context.cpp6
-rw-r--r--src/spiral-context.cpp5
-rw-r--r--src/spray-context.cpp6
-rw-r--r--src/star-context.cpp5
-rw-r--r--src/tweak-context.cpp6
-rw-r--r--src/ui/tool/multi-path-manipulator.cpp3
-rw-r--r--src/zoom-context.cpp6
12 files changed, 62 insertions, 4 deletions
diff --git a/src/arc-context.cpp b/src/arc-context.cpp
index c9bad6b4a..95ff05b37 100644
--- a/src/arc-context.cpp
+++ b/src/arc-context.cpp
@@ -370,6 +370,11 @@ static gint sp_arc_context_root_handler(SPEventContext *event_context, GdkEvent
// do not return true, so that space would work switching to selector
}
break;
+ case GDK_KEY_Delete:
+ case GDK_KEY_KP_Delete:
+ case GDK_KEY_BackSpace:
+ ret = event_context->deleteSelectedDrag(MOD__CTRL_ONLY);
+ break;
default:
break;
diff --git a/src/box3d-context.cpp b/src/box3d-context.cpp
index 405cfd11b..a58059e89 100644
--- a/src/box3d-context.cpp
+++ b/src/box3d-context.cpp
@@ -557,6 +557,11 @@ static gint sp_box3d_context_root_handler(SPEventContext *event_context, GdkEven
// do not return true, so that space would work switching to selector
}
break;
+ case GDK_KEY_Delete:
+ case GDK_KEY_KP_Delete:
+ case GDK_KEY_BackSpace:
+ ret = event_context->deleteSelectedDrag(MOD__CTRL_ONLY);
+ break;
default:
break;
diff --git a/src/event-context.cpp b/src/event-context.cpp
index 7a1710804..848865b95 100644
--- a/src/event-context.cpp
+++ b/src/event-context.cpp
@@ -897,6 +897,19 @@ void SPEventContext::enableGrDrag(bool enable) {
}
/**
+ * Delete a selected GrDrag point
+ */
+bool SPEventContext::deleteSelectedDrag(bool just_one) {
+
+ if (_grdrag && _grdrag->selected) {
+ _grdrag->deleteSelected(just_one);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+/**
* Calls virtual set() function of SPEventContext.
*/
void sp_event_context_read(SPEventContext *ec, gchar const *key) {
diff --git a/src/event-context.h b/src/event-context.h
index bd3fd1847..9cd754ffb 100644
--- a/src/event-context.h
+++ b/src/event-context.h
@@ -106,6 +106,7 @@ void sp_event_context_snap_delay_handler(SPEventContext *ec, gpointer const dse_
struct SPEventContext : public GObject {
void enableSelectionCue (bool enable=true);
void enableGrDrag (bool enable=true);
+ bool deleteSelectedDrag(bool just_one);
/// Desktop eventcontext stack
SPEventContext *next;
diff --git a/src/gradient-context.cpp b/src/gradient-context.cpp
index 05bea14b9..aa8c8b929 100644
--- a/src/gradient-context.cpp
+++ b/src/gradient-context.cpp
@@ -863,10 +863,7 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
case GDK_KEY_Delete:
case GDK_KEY_KP_Delete:
case GDK_KEY_BackSpace:
- if ( drag->selected ) {
- drag->deleteSelected(MOD__CTRL_ONLY);
- ret = TRUE;
- }
+ ret = event_context->deleteSelectedDrag(MOD__CTRL_ONLY);
break;
default:
break;
diff --git a/src/rect-context.cpp b/src/rect-context.cpp
index 43194a1ae..d96ddf09a 100644
--- a/src/rect-context.cpp
+++ b/src/rect-context.cpp
@@ -427,6 +427,12 @@ static gint sp_rect_context_root_handler(SPEventContext *event_context, GdkEvent
}
break;
+ case GDK_KEY_Delete:
+ case GDK_KEY_KP_Delete:
+ case GDK_KEY_BackSpace:
+ ret = event_context->deleteSelectedDrag(MOD__CTRL_ONLY);
+ break;
+
default:
break;
}
diff --git a/src/spiral-context.cpp b/src/spiral-context.cpp
index 0c25c9d47..f344a3d92 100644
--- a/src/spiral-context.cpp
+++ b/src/spiral-context.cpp
@@ -367,6 +367,11 @@ sp_spiral_context_root_handler(SPEventContext *event_context, GdkEvent *event)
// do not return true, so that space would work switching to selector
}
break;
+ case GDK_KEY_Delete:
+ case GDK_KEY_KP_Delete:
+ case GDK_KEY_BackSpace:
+ ret = event_context->deleteSelectedDrag(MOD__CTRL_ONLY);
+ break;
default:
break;
diff --git a/src/spray-context.cpp b/src/spray-context.cpp
index 8013d9e3a..bcdc69805 100644
--- a/src/spray-context.cpp
+++ b/src/spray-context.cpp
@@ -892,6 +892,12 @@ gint sp_spray_context_root_handler(SPEventContext *event_context, GdkEvent *even
case GDK_KEY_Control_L:
case GDK_KEY_Control_R:
break;
+ case GDK_KEY_Delete:
+ case GDK_KEY_KP_Delete:
+ case GDK_KEY_BackSpace:
+ ret = event_context->deleteSelectedDrag(MOD__CTRL_ONLY);
+ break;
+
default:
break;
}
diff --git a/src/star-context.cpp b/src/star-context.cpp
index a3bceb163..7861354e9 100644
--- a/src/star-context.cpp
+++ b/src/star-context.cpp
@@ -382,6 +382,11 @@ static gint sp_star_context_root_handler(SPEventContext *event_context, GdkEvent
// do not return true, so that space would work switching to selector
}
break;
+ case GDK_KEY_Delete:
+ case GDK_KEY_KP_Delete:
+ case GDK_KEY_BackSpace:
+ ret = event_context->deleteSelectedDrag(MOD__CTRL_ONLY);
+ break;
default:
break;
diff --git a/src/tweak-context.cpp b/src/tweak-context.cpp
index 09ba2bd88..0205fc703 100644
--- a/src/tweak-context.cpp
+++ b/src/tweak-context.cpp
@@ -1502,6 +1502,12 @@ sp_tweak_context_root_handler(SPEventContext *event_context,
case GDK_KEY_Control_R:
sp_tweak_switch_mode_temporarily(tc, TWEAK_MODE_SHRINK_GROW, MOD__SHIFT);
break;
+ case GDK_KEY_Delete:
+ case GDK_KEY_KP_Delete:
+ case GDK_KEY_BackSpace:
+ ret = event_context->deleteSelectedDrag(MOD__CTRL_ONLY);
+ break;
+
default:
break;
}
diff --git a/src/ui/tool/multi-path-manipulator.cpp b/src/ui/tool/multi-path-manipulator.cpp
index eca90f40f..1f074c8da 100644
--- a/src/ui/tool/multi-path-manipulator.cpp
+++ b/src/ui/tool/multi-path-manipulator.cpp
@@ -672,6 +672,9 @@ bool MultiPathManipulator::event(SPEventContext *event_context, GdkEvent *event)
// b) ctrl+del preserves shape (del_preserves_shape is false), and control is pressed
// Hence xor
deleteNodes(del_preserves_shape ^ held_control(event->key));
+
+ // Delete any selected gradient nodes as well
+ event_context->deleteSelectedDrag(held_control(event->key));
}
return true;
case GDK_KEY_c:
diff --git a/src/zoom-context.cpp b/src/zoom-context.cpp
index 58eefe97a..68f58614d 100644
--- a/src/zoom-context.cpp
+++ b/src/zoom-context.cpp
@@ -238,6 +238,12 @@ static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent
event_context->cursor_shape = cursor_zoom_out_xpm;
sp_event_context_update_cursor(event_context);
break;
+ case GDK_KEY_Delete:
+ case GDK_KEY_KP_Delete:
+ case GDK_KEY_BackSpace:
+ ret = event_context->deleteSelectedDrag(MOD__CTRL_ONLY);
+ break;
+
default:
break;
}