gimp r26183 - in trunk: . app app/gui
- From: neo svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r26183 - in trunk: . app app/gui
- Date: Sun, 13 Jul 2008 19:04:38 +0000 (UTC)
Author: neo
Date: Sun Jul 13 19:04:38 2008
New Revision: 26183
URL: http://svn.gnome.org/viewvc/gimp?rev=26183&view=rev
Log:
2008-07-13 Sven Neumann <sven gimp org>
* app/unique.c
* app/gui/gui-unique.c: on Win32, if the gimp binary is started
without filenames, raise the toolbox, just as we do in the DBus
code path.
Modified:
trunk/ChangeLog
trunk/app/gui/gui-unique.c
trunk/app/unique.c
Modified: trunk/app/gui/gui-unique.c
==============================================================================
--- trunk/app/gui/gui-unique.c (original)
+++ trunk/app/gui/gui-unique.c Sun Jul 13 19:04:38 2008
@@ -128,12 +128,16 @@
static IdleOpenData *
idle_open_data_new (const gchar *name,
+ gint len,
gboolean as_new)
{
- IdleOpenData *data = g_slice_new (IdleOpenData);
+ IdleOpenData *data = g_slice_new0 (IdleOpenData);
- data->name = g_strdup (name);
- data->as_new = as_new;
+ if (len > 0)
+ {
+ data->name = g_strdup (name);
+ data->as_new = as_new;
+ }
return data;
}
@@ -148,7 +152,19 @@
static gboolean
gui_unique_win32_idle_open (IdleOpenData *data)
{
- file_open_from_command_line (unique_gimp, data->name, data->as_new);
+ if (data->name)
+ {
+ file_open_from_command_line (unique_gimp, data->name, data->as_new);
+ }
+ else
+ {
+ /* raise the toolbox */
+ const GList *managers = gimp_ui_managers_from_name ("<Image>");
+
+ if (managers)
+ gimp_ui_manager_activate_action (managers->data,
+ "dialogs", "dialogs-toolbox");
+ }
return FALSE;
}
@@ -163,27 +179,28 @@
switch (uMsg)
{
case WM_COPYDATA:
- {
- COPYDATASTRUCT *copydata = (COPYDATASTRUCT *) lParam;
-
- if (unique_gimp && copydata->cbData > 0)
- {
- GSource *source;
- GClosure *closure;
- IdleOpenData *data = idle_open_data_new (copydata->lpData, copydata->dwData != 0);
-
- closure = g_cclosure_new (G_CALLBACK (gui_unique_win32_idle_open),
- data,
- (GClosureNotify) idle_open_data_free);
-
- g_object_watch_closure (unique_gimp, closure);
-
- source = g_idle_source_new ();
- g_source_set_closure (source, closure);
- g_source_attach (source, NULL);
- g_source_unref (source);
- }
- }
+ if (unique_gimp)
+ {
+ COPYDATASTRUCT *copydata = (COPYDATASTRUCT *) lParam;
+ GSource *source;
+ GClosure *closure;
+ IdleOpenData *data;
+
+ data = idle_open_data_new (copydata->lpData,
+ copydata->cbData,
+ copydata->dwData != 0);
+
+ closure = g_cclosure_new (G_CALLBACK (gui_unique_win32_idle_open),
+ data,
+ (GClosureNotify) idle_open_data_free);
+
+ g_object_watch_closure (unique_gimp, closure);
+
+ source = g_idle_source_new ();
+ g_source_set_closure (source, closure);
+ g_source_attach (source, NULL);
+ g_source_unref (source);
+ }
return TRUE;
default:
Modified: trunk/app/unique.c
==============================================================================
--- trunk/app/unique.c (original)
+++ trunk/app/unique.c Sun Jul 13 19:04:38 2008
@@ -188,32 +188,43 @@
if (window_handle)
{
- COPYDATASTRUCT copydata;
- gchar *cwd = g_get_current_dir ();
- GError *error = NULL;
- gint i;
-
- for (i = 0; filenames && filenames[i]; i++)
- {
- gchar *uri = gimp_unique_filename_to_uri (filenames[i], cwd, &error);
-
- if (uri)
- {
- copydata.lpData = uri;
- copydata.cbData = strlen (uri) + 1; /* size in bytes */
- copydata.dwData = (long) as_new;
-
- SendMessage (window_handle,
- WM_COPYDATA, window_handle, ©data);
- }
- else
- {
- g_printerr ("conversion to uri failed: %s\n", error->message);
- g_clear_error (&error);
- }
- }
+ COPYDATASTRUCT copydata = { 0, };
- g_free (cwd);
+ 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);
+
+ if (uri)
+ {
+ copydata.lpData = uri;
+ copydata.cbData = strlen (uri) + 1; /* size in bytes */
+ copydata.dwData = (long) as_new;
+
+ SendMessage (window_handle,
+ WM_COPYDATA, window_handle, ©data);
+ }
+ else
+ {
+ g_printerr ("conversion to uri failed: %s\n", error->message);
+ g_clear_error (&error);
+ }
+ }
+
+ g_free (cwd);
+ }
+ else
+ {
+ SendMessage (window_handle,
+ WM_COPYDATA, window_handle, ©data);
+ }
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]