[gimp] app: Fix unique logic on windows



commit 45472ee08803f38548f0aa7dcdbfd764cb24290b
Author: Michael Henning <drawoc darkrefraction com>
Date:   Tue Jul 8 12:50:50 2014 -0400

    app: Fix unique logic on windows

 app/gui/gui-unique.c |    5 +++--
 app/unique.c         |   17 ++++++++++-------
 2 files changed, 13 insertions(+), 9 deletions(-)
---
diff --git a/app/gui/gui-unique.c b/app/gui/gui-unique.c
index 5c5d435..3cf65b0 100644
--- a/app/gui/gui-unique.c
+++ b/app/gui/gui-unique.c
@@ -35,6 +35,7 @@
 #include "core/gimpcontainer.h"
 
 #include "display/gimpdisplay.h"
+#include "display/gimpdisplayshell.h"
 
 #include "file/file-open.h"
 
@@ -173,7 +174,7 @@ gui_unique_win32_message_handler (HWND   hWnd,
               GFile          *file;
               IdleOpenData   *data;
 
-              file = g_file_new_for_path (copydata->lpData);
+              file = g_file_new_for_uri (copydata->lpData);
 
               data = idle_open_data_new (file,
                                          copydata->dwData != 0);
@@ -184,7 +185,7 @@ gui_unique_win32_message_handler (HWND   hWnd,
                                         data,
                                         (GClosureNotify) idle_open_data_free);
 
-              g_object_watch_closure (unique_gimp, closure);
+              g_object_watch_closure (G_OBJECT (unique_gimp), closure);
 
               source = g_idle_source_new ();
               g_source_set_priority (source, G_PRIORITY_LOW);
diff --git a/app/unique.c b/app/unique.c
index 160b161..55e63e1 100644
--- a/app/unique.c
+++ b/app/unique.c
@@ -166,28 +166,31 @@ gimp_unique_win32_open (const gchar **filenames,
       if (filenames)
         {
           gchar  *cwd   = g_get_current_dir ();
-          GError *error = NULL;
           gint    i;
 
           for (i = 0; filenames[i]; i++)
             {
-              gchar *uri;
-
-              uri = gimp_unique_filename_to_uri (filenames[i], cwd, &error);
+              GFile *file;
+              file = g_file_new_for_commandline_arg_and_cwd (filenames[i], cwd);
 
-              if (uri)
+              if (file)
                 {
+                  gchar *uri = g_file_get_uri (file);
+
                   copydata.lpData = uri;
                   copydata.cbData = strlen (uri) + 1;  /* size in bytes   */
                   copydata.dwData = (long) as_new;
 
                   SendMessage (window_handle,
                                WM_COPYDATA, (WPARAM) window_handle, (LPARAM) &copydata);
+
+                  g_free (uri);
+                  g_object_unref (file);
                 }
               else
                 {
-                  g_printerr ("conversion to uri failed: %s\n", error->message);
-                  g_clear_error (&error);
+                  g_printerr ("conversion to uri failed for '%s'\n",
+                              filenames[i]);
                 }
             }
 


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