From 8f08a6abd400a84ad9461b4517aefb1507d229ed Mon Sep 17 00:00:00 2001 From: John Smith Date: Wed, 5 Sep 2012 13:00:15 +0900 Subject: Fix for 172236 : Dropper in Fill-Stroke dialog, changed to be a one time only pick (bzr r11652) --- src/dropper-context.cpp | 6 ++++++ src/event-context.cpp | 2 +- src/event-context.h | 2 ++ src/widgets/sp-color-notebook.cpp | 6 +++++- 4 files changed, 14 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/dropper-context.cpp b/src/dropper-context.cpp index ecbcc965b..6ac00887b 100644 --- a/src/dropper-context.cpp +++ b/src/dropper-context.cpp @@ -43,6 +43,7 @@ #include "dropper-context.h" #include "message-context.h" #include "verbs.h" +#include "event-context.h" using Inkscape::DocumentUndo; @@ -323,6 +324,11 @@ static gint sp_dropper_context_root_handler(SPEventContext *event_context, GdkEv _("Set picked color")); } + if (prefs->getBool("/tools/dropper/onetimepick", false)) { + prefs->setBool("/tools/dropper/onetimepick", false); + sp_toggle_dropper(desktop); + } + ret = TRUE; } break; diff --git a/src/event-context.cpp b/src/event-context.cpp index bb3619877..7a1710804 100644 --- a/src/event-context.cpp +++ b/src/event-context.cpp @@ -314,7 +314,7 @@ static void sp_toggle_selector(SPDesktop *dt) { * Toggles current tool between active tool and dropper tool. * Subroutine of sp_event_context_private_root_handler(). */ -static void sp_toggle_dropper(SPDesktop *dt) { +void sp_toggle_dropper(SPDesktop *dt) { if (!dt->event_context) return; diff --git a/src/event-context.h b/src/event-context.h index fdc6dd136..bd3fd1847 100644 --- a/src/event-context.h +++ b/src/event-context.h @@ -188,6 +188,8 @@ guint get_group0_keyval(GdkEventKey *event); SPItem *sp_event_context_find_item (SPDesktop *desktop, Geom::Point const &p, bool select_under, bool into_groups); SPItem *sp_event_context_over_item (SPDesktop *desktop, SPItem *item, Geom::Point const &p); +void sp_toggle_dropper(SPDesktop *dt); + ShapeEditor *sp_event_context_get_shape_editor (SPEventContext *ec); bool sp_event_context_knot_mouseover(SPEventContext *ec); diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index fec34c6e7..bafc75b18 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -39,6 +39,7 @@ #include "cms-system.h" #include "widgets/icon.h" #include "tools-switch.h" +#include "event-context.h" using Inkscape::CMSSystem; @@ -511,7 +512,10 @@ void ColorNotebook::_colorChanged() void ColorNotebook::_picker_clicked(GtkWidget *widget, SPColorNotebook *colorbook) { - tools_switch(SP_ACTIVE_DESKTOP, TOOLS_DROPPER); + // Set the dropper into a "one click" mode, so it reverts to the previous tool after a click + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->setBool("/tools/dropper/onetimepick", true); + sp_toggle_dropper(SP_ACTIVE_DESKTOP); } void ColorNotebook::_rgbaEntryChangedHook(GtkEntry *entry, SPColorNotebook *colorbook) -- cgit v1.2.3