gtk_paned_set_position (GTK_PANED (impl->browse_widgets_hpaned), sidebar_width);
}
-static void
-save_dialog_geometry (GtkFileChooserDefault *impl)
-{
- GtkWindow *toplevel;
- int x, y, width, height;
- GSettings *settings;
-
- toplevel = get_toplevel (GTK_WIDGET (impl));
-
- if (!(toplevel && GTK_IS_FILE_CHOOSER_DIALOG (toplevel)))
- return;
-
- settings = _gtk_file_chooser_get_settings_for_widget (GTK_WIDGET (toplevel));
-
- gtk_window_get_position (toplevel, &x, &y);
- gtk_window_get_size (toplevel, &width, &height);
-
- g_settings_set (settings, SETTINGS_KEY_WINDOW_POSITION, "(ii)", x, y);
- g_settings_set (settings, SETTINGS_KEY_WINDOW_SIZE, "(ii)", width, height);
-}
-
static void
settings_save (GtkFileChooserDefault *impl)
{
g_settings_set_int (settings, SETTINGS_KEY_SIDEBAR_WIDTH,
gtk_paned_get_position (GTK_PANED (impl->browse_widgets_hpaned)));
- save_dialog_geometry (impl);
-
/* Now apply the settings */
g_settings_apply (settings);
}
GParamSpec *pspec);
static void gtk_file_chooser_dialog_map (GtkWidget *widget);
+static void gtk_file_chooser_dialog_unmap (GtkWidget *widget);
static void response_cb (GtkDialog *dialog,
gint response_id);
gobject_class->finalize = gtk_file_chooser_dialog_finalize;
widget_class->map = gtk_file_chooser_dialog_map;
+ widget_class->unmap = gtk_file_chooser_dialog_unmap;
gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_FILE_CHOOSER);
GTK_WIDGET_CLASS (gtk_file_chooser_dialog_parent_class)->map (widget);
}
+static void
+save_dialog_geometry (GtkFileChooserDialog *dialog)
+{
+ GtkWindow *window;
+ GSettings *settings;
+ int x, y, width, height;
+
+ settings = _gtk_file_chooser_get_settings_for_widget (GTK_WIDGET (dialog));
+
+ window = GTK_WINDOW (dialog);
+
+ gtk_window_get_position (window, &x, &y);
+ gtk_window_get_size (window, &width, &height);
+
+ g_settings_set (settings, SETTINGS_KEY_WINDOW_POSITION, "(ii)", x, y);
+ g_settings_set (settings, SETTINGS_KEY_WINDOW_SIZE, "(ii)", width, height);
+}
+
+/* GtkWidget::unmap handler */
+static void
+gtk_file_chooser_dialog_unmap (GtkWidget *widget)
+{
+ GtkFileChooserDialog *dialog = GTK_FILE_CHOOSER_DIALOG (widget);
+
+ save_dialog_geometry (dialog);
+
+ GTK_WIDGET_CLASS (gtk_file_chooser_dialog_parent_class)->unmap (widget);
+}
+
/* GtkDialog::response handler */
static void
response_cb (GtkDialog *dialog,