diff options
| author | John Smith <john.smith7545@yahoo.com> | 2012-09-06 02:25:16 +0000 |
|---|---|---|
| committer | John Smith <john.smith7545@yahoo.com> | 2012-09-06 02:25:16 +0000 |
| commit | 701002a149020e89d9023dbe56c6d0ccdb5c3aca (patch) | |
| tree | 13182f947b67738a1b2ee4595dce67b184a42be7 /src | |
| parent | Fix for 499965 : PS Output : Convert export area to radio buttons (diff) | |
| download | inkscape-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.cpp | 5 | ||||
| -rw-r--r-- | src/box3d-context.cpp | 5 | ||||
| -rw-r--r-- | src/event-context.cpp | 13 | ||||
| -rw-r--r-- | src/event-context.h | 1 | ||||
| -rw-r--r-- | src/gradient-context.cpp | 5 | ||||
| -rw-r--r-- | src/rect-context.cpp | 6 | ||||
| -rw-r--r-- | src/spiral-context.cpp | 5 | ||||
| -rw-r--r-- | src/spray-context.cpp | 6 | ||||
| -rw-r--r-- | src/star-context.cpp | 5 | ||||
| -rw-r--r-- | src/tweak-context.cpp | 6 | ||||
| -rw-r--r-- | src/ui/tool/multi-path-manipulator.cpp | 3 | ||||
| -rw-r--r-- | src/zoom-context.cpp | 6 |
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; } |
