diff options
author | Federico Mena Quintero <federico@gnome.org> | 2011-12-13 18:10:02 -0600 |
---|---|---|
committer | Federico Mena Quintero <federico@gnome.org> | 2011-12-13 18:13:46 -0600 |
commit | 625dac4492e7daf7fef46c8dc4990da5d786efad (patch) | |
tree | 6ffa60620a2dce432e448d806e7c169564f6590b | |
parent | 9868b796ec9d4761512d0a948bf0d6438be6702c (diff) | |
download | nautilus-625dac4492e7daf7fef46c8dc4990da5d786efad.tar.gz |
Add nautilus_properties_window_present_with_startup_id()
This lets us pass a startup_id string instead of a parent_widget; this will
be used from the Freedesktop DBus interface.
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
-rw-r--r-- | src/nautilus-properties-window.c | 36 | ||||
-rw-r--r-- | src/nautilus-properties-window.h | 3 |
2 files changed, 34 insertions, 5 deletions
diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c index 5d952fbd4..5267f3e79 100644 --- a/src/nautilus-properties-window.c +++ b/src/nautilus-properties-window.c @@ -158,6 +158,7 @@ typedef struct { GList *original_files; GList *target_files; GtkWidget *parent_widget; + char *startup_id; char *pending_key; GHashTable *pending_files; } StartupData; @@ -4634,7 +4635,8 @@ static StartupData * startup_data_new (GList *original_files, GList *target_files, const char *pending_key, - GtkWidget *parent_widget) + GtkWidget *parent_widget, + const char *startup_id) { StartupData *data; GList *l; @@ -4643,6 +4645,7 @@ startup_data_new (GList *original_files, data->original_files = nautilus_file_list_copy (original_files); data->target_files = nautilus_file_list_copy (target_files); data->parent_widget = parent_widget; + data->startup_id = g_strdup (startup_id); data->pending_key = g_strdup (pending_key); data->pending_files = g_hash_table_new (g_direct_hash, g_direct_equal); @@ -4661,6 +4664,7 @@ startup_data_free (StartupData *data) nautilus_file_list_free (data->target_files); g_hash_table_destroy (data->pending_files); g_free (data->pending_key); + g_free (data->startup_id); g_free (data); } @@ -4778,6 +4782,8 @@ create_properties_window (StartupData *startup_data) if (startup_data->parent_widget) gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (startup_data->parent_widget)); + else if (startup_data->startup_id) + gtk_window_set_startup_id (GTK_WINDOW (window), startup_data->startup_id); gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DIALOG); @@ -5004,9 +5010,10 @@ is_directory_ready_callback (NautilusFile *file, } -void -nautilus_properties_window_present (GList *original_files, - GtkWidget *parent_widget) +static void +prepare_properties_window (GList *original_files, + GtkWidget *parent_widget, + const char *startup_id) { GList *l, *next; GtkWidget *parent_window; @@ -5035,6 +5042,9 @@ nautilus_properties_window_present (GList *original_files, if (parent_widget) gtk_window_set_screen (existing_window, gtk_widget_get_screen (parent_widget)); + else if (startup_id) + gtk_window_set_startup_id (existing_window, startup_id); + gtk_window_present (existing_window); return; } @@ -5052,7 +5062,8 @@ nautilus_properties_window_present (GList *original_files, startup_data = startup_data_new (original_files, target_files, pending_key, - parent_widget); + parent_widget, + startup_id); nautilus_file_list_free (target_files); g_free(pending_key); @@ -5086,6 +5097,21 @@ nautilus_properties_window_present (GList *original_files, } } +void +nautilus_properties_window_present (GList *original_files, + GtkWidget *parent_widget) +{ + prepare_properties_window (original_files, parent_widget, NULL); +} + +void +nautilus_properties_window_present_with_startup_id (GList *original_files, + const char *startup_id) +{ + prepare_properties_window (original_files, NULL, startup_id); +} + + static void real_response (GtkDialog *dialog, int response) diff --git a/src/nautilus-properties-window.h b/src/nautilus-properties-window.h index 9d5a8a6f9..727573755 100644 --- a/src/nautilus-properties-window.h +++ b/src/nautilus-properties-window.h @@ -64,4 +64,7 @@ GType nautilus_properties_window_get_type (void); void nautilus_properties_window_present (GList *files, GtkWidget *parent_widget); +void nautilus_properties_window_present_with_startup_id (GList *files, + const char *startup_id); + #endif /* NAUTILUS_PROPERTIES_WINDOW_H */ |