diff options
| author | bulia byak <buliabyak@gmail.com> | 2009-02-16 01:16:56 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2009-02-16 01:16:56 +0000 |
| commit | a59cb6955c69aa0a97c44995cc0ab1ad94c796de (patch) | |
| tree | 760cacbea0d06997b21db77ba6fbd0b1d985a7c9 /src | |
| parent | utilities for getting style at cursor, placing cursor at iterator or coordina... (diff) | |
| download | inkscape-a59cb6955c69aa0a97c44995cc0ab1ad94c796de.tar.gz inkscape-a59cb6955c69aa0a97c44995cc0ab1ad94c796de.zip | |
make doubleclick not only switch to text but also position cursor
(bzr r7300)
Diffstat (limited to 'src')
| -rw-r--r-- | src/select-context.cpp | 4 | ||||
| -rw-r--r-- | src/tools-switch.cpp | 3 | ||||
| -rw-r--r-- | src/tools-switch.h | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/select-context.cpp b/src/select-context.cpp index fd4e132e1..0e35c6546 100644 --- a/src/select-context.cpp +++ b/src/select-context.cpp @@ -430,7 +430,9 @@ sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event) sp_canvas_end_forced_full_redraws(desktop->canvas); } else { // switch tool - tools_switch_by_item (desktop, clicked_item); + Geom::Point const button_pt(event->button.x, event->button.y); + Geom::Point const p(desktop->w2d(button_pt)); + tools_switch_by_item (desktop, clicked_item, p); } } else { sp_select_context_up_one_layer(desktop); diff --git a/src/tools-switch.cpp b/src/tools-switch.cpp index f10b86f64..9fbc966c6 100644 --- a/src/tools-switch.cpp +++ b/src/tools-switch.cpp @@ -234,7 +234,7 @@ tools_switch(SPDesktop *dt, int num) } } -void tools_switch_by_item(SPDesktop *dt, SPItem *item) +void tools_switch_by_item(SPDesktop *dt, SPItem *item, Geom::Point const p) { if (SP_IS_RECT(item)) { tools_switch(dt, TOOLS_SHAPES_RECT); @@ -255,6 +255,7 @@ void tools_switch_by_item(SPDesktop *dt, SPItem *item) } } else if (SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item)) { tools_switch(dt, TOOLS_TEXT); + sp_text_context_place_cursor_at (SP_TEXT_CONTEXT(dt->event_context), SP_OBJECT(item), p); } else if (SP_IS_OFFSET(item)) { tools_switch(dt, TOOLS_NODES); } diff --git a/src/tools-switch.h b/src/tools-switch.h index 38b83b226..36dd8f80b 100644 --- a/src/tools-switch.h +++ b/src/tools-switch.h @@ -40,7 +40,7 @@ enum { int tools_isactive(SPDesktop *dt, unsigned num); int tools_active(SPDesktop *dt); void tools_switch(SPDesktop *dt, int num); -void tools_switch_by_item (SPDesktop *dt, SPItem *item); +void tools_switch_by_item (SPDesktop *dt, SPItem *item, Geom::Point const p); #endif /* !SEEN_TOOLS_SWITCH_H */ |
