[gimp/gimp-2-8] Bug 688715 - Unconfigured eraser should be set to eraser tool



commit 67a1f9e40c6839ab5103145b8bbe18cce6d53416
Author: Michael Natterer <mitch gimp org>
Date:   Fri Nov 23 01:17:52 2012 +0100

    Bug 688715 - Unconfigured eraser should be set to eraser tool
    
    I don't know what I tested before, but it didn't work. This patch does
    the magic in two places, one of which I missed.
    (cherry picked from commit 4e340b613bb7bf0730572bb123d67e9fb6671934)

 app/widgets/gimpdeviceinfo.c    |   21 +++++++++++++++++++++
 app/widgets/gimpdeviceinfo.h    |    2 ++
 app/widgets/gimpdevicemanager.c |   14 +-------------
 app/widgets/gimpdevices.c       |    2 ++
 4 files changed, 26 insertions(+), 13 deletions(-)
---
diff --git a/app/widgets/gimpdeviceinfo.c b/app/widgets/gimpdeviceinfo.c
index 3f5d3a5..1181935 100644
--- a/app/widgets/gimpdeviceinfo.c
+++ b/app/widgets/gimpdeviceinfo.c
@@ -34,6 +34,7 @@
 #include "core/gimpcurve-map.h"
 #include "core/gimpdatafactory.h"
 #include "core/gimpmarshal.h"
+#include "core/gimptoolinfo.h"
 
 #include "gimpdeviceinfo.h"
 
@@ -630,6 +631,26 @@ gimp_device_info_set_device (GimpDeviceInfo *info,
   gimp_device_info_changed (info);
 }
 
+void
+gimp_device_info_set_default_tool (GimpDeviceInfo *info)
+{
+  g_return_if_fail (GIMP_IS_DEVICE_INFO (info));
+
+  if (info->device &&
+      gdk_device_get_source (info->device) == GDK_SOURCE_ERASER)
+    {
+      GimpContainer *tools = GIMP_CONTEXT (info)->gimp->tool_info_list;
+      GimpToolInfo  *eraser;
+
+      eraser =
+        GIMP_TOOL_INFO (gimp_container_get_child_by_name (tools,
+                                                          "gimp-eraser-tool"));
+
+      if (eraser)
+        gimp_context_set_tool (GIMP_CONTEXT (info), eraser);
+    }
+}
+
 GdkInputMode
 gimp_device_info_get_mode (GimpDeviceInfo *info)
 {
diff --git a/app/widgets/gimpdeviceinfo.h b/app/widgets/gimpdeviceinfo.h
index 76ef200..a514f46 100644
--- a/app/widgets/gimpdeviceinfo.h
+++ b/app/widgets/gimpdeviceinfo.h
@@ -85,6 +85,8 @@ void             gimp_device_info_set_device        (GimpDeviceInfo  *info,
                                                      GdkDevice       *device,
                                                      GdkDisplay      *display);
 
+void             gimp_device_info_set_default_tool  (GimpDeviceInfo  *info);
+
 GdkInputMode     gimp_device_info_get_mode          (GimpDeviceInfo  *info);
 void             gimp_device_info_set_mode          (GimpDeviceInfo  *info,
                                                      GdkInputMode     mode);
diff --git a/app/widgets/gimpdevicemanager.c b/app/widgets/gimpdevicemanager.c
index e2cf988..264ae31 100644
--- a/app/widgets/gimpdevicemanager.c
+++ b/app/widgets/gimpdevicemanager.c
@@ -28,7 +28,6 @@
 
 #include "core/gimp.h"
 #include "core/gimpmarshal.h"
-#include "core/gimptoolinfo.h"
 
 #include "gimpdeviceinfo.h"
 #include "gimpdevicemanager.h"
@@ -330,18 +329,7 @@ gimp_device_manager_device_added (GdkDisplay        *gdk_display,
     {
       device_info = gimp_device_info_new (private->gimp, device, gdk_display);
 
-      if (gdk_device_get_source (device) == GDK_SOURCE_ERASER)
-        {
-          GimpContainer *tools = private->gimp->tool_info_list;
-          GimpToolInfo  *eraser;
-
-          eraser =
-            GIMP_TOOL_INFO (gimp_container_get_child_by_name (tools,
-                                                              "gimp-eraser-tool"));
-
-          if (eraser)
-            gimp_context_set_tool (GIMP_CONTEXT (device_info), eraser);
-        }
+      gimp_device_info_set_default_tool (device_info);
 
       gimp_container_add (GIMP_CONTAINER (manager), GIMP_OBJECT (device_info));
       g_object_unref (device_info);
diff --git a/app/widgets/gimpdevices.c b/app/widgets/gimpdevices.c
index 3de6b09..b03e075 100644
--- a/app/widgets/gimpdevices.c
+++ b/app/widgets/gimpdevices.c
@@ -118,6 +118,8 @@ gimp_devices_restore (Gimp *gimp)
 
       gimp_context_copy_properties (user_context, GIMP_CONTEXT (device_info),
                                     GIMP_DEVICE_INFO_CONTEXT_MASK);
+
+      gimp_device_info_set_default_tool (device_info);
     }
 
   filename = gimp_personal_rc_file ("devicerc");



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]