summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dropper-context.cpp6
-rw-r--r--src/event-context.cpp2
-rw-r--r--src/event-context.h2
-rw-r--r--src/widgets/sp-color-notebook.cpp6
4 files changed, 14 insertions, 2 deletions
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)