Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1:Test
gtk2
gtk2-filechooser-mount-parent.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gtk2-filechooser-mount-parent.patch of Package gtk2
Index: gtk/gtkfilechooserdefault.c =================================================================== --- gtk/gtkfilechooserdefault.c (revision 21792) +++ gtk/gtkfilechooserdefault.c (working copy) @@ -6870,6 +6869,43 @@ }; static void +update_current_folder_mount_enclosing_volume_cb (GCancellable *cancellable, + GtkFileSystemVolume *volume, + const GError *error, + gpointer user_data) +{ + gboolean cancelled = g_cancellable_is_cancelled (cancellable); + struct UpdateCurrentFolderData *data = user_data; + GtkFileChooserDefault *impl = data->impl; + + + if (cancellable != impl->update_current_folder_cancellable) + goto out; + + impl->update_current_folder_cancellable = NULL; + + if (cancelled) + goto out; + + if (error) + { + error_changing_folder_dialog (data->impl, data->file, g_error_copy (error)); + impl->update_current_folder_cancellable = NULL; + impl->reload_state = RELOAD_EMPTY; + set_busy_cursor (impl, FALSE); + goto out; + } + + change_folder_and_display_error (impl, data->file, data->clear_entry); + +out: + g_object_unref (data->file); + g_free (data); + + g_object_unref (cancellable); +} + +static void update_current_folder_get_info_cb (GCancellable *cancellable, GFileInfo *info, const GError *error, @@ -6894,6 +6930,26 @@ { GFile *parent_file; + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_MOUNTED)) + { + GMountOperation *mount_operation; + GtkWidget *toplevel; + + g_object_unref (cancellable); + toplevel = gtk_widget_get_toplevel (GTK_WIDGET (impl)); + + mount_operation = gtk_mount_operation_new (GTK_WINDOW (toplevel)); + + impl->update_current_folder_cancellable = + _gtk_file_system_mount_enclosing_volume (impl->file_system, data->file, + mount_operation, + update_current_folder_mount_enclosing_volume_cb, + data); + set_busy_cursor (impl, TRUE); + + return; + } + if (!data->original_file) { data->original_file = g_object_ref (data->file);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor