[gtk/modal-buttons: 2/9] filechooserbutton: Drop the Private struct



commit 9e068d3a46179609599dbffeb51fbd856f8aebf7
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Apr 12 23:57:49 2020 -0400

    filechooserbutton: Drop the Private struct

 gtk/gtkfilechooserbutton.c | 700 +++++++++++++++++++++------------------------
 1 file changed, 327 insertions(+), 373 deletions(-)
---
diff --git a/gtk/gtkfilechooserbutton.c b/gtk/gtkfilechooserbutton.c
index 92d5495570..090e829eb1 100644
--- a/gtk/gtkfilechooserbutton.c
+++ b/gtk/gtkfilechooserbutton.c
@@ -178,17 +178,7 @@ typedef struct _GtkFileChooserButtonClass   GtkFileChooserButtonClass;
 struct _GtkFileChooserButton
 {
   GtkWidget parent_instance;
-};
-
-struct _GtkFileChooserButtonClass
-{
-  GtkWidgetClass parent_class;
 
-  void (* file_set) (GtkFileChooserButton *fc);
-};
-
-typedef struct
-{
   GtkFileChooser *chooser;      /* Points to either dialog or native, depending on which is set */
   GtkWidget *dialog;            /* Set if you explicitly enable */
   GtkFileChooserNative *native; /* Otherwise this is set */
@@ -229,7 +219,14 @@ typedef struct
 
   /* Whether the next async callback from GIO should emit the "selection-changed" signal */
   guint  is_changing_selection        : 1;
-} GtkFileChooserButtonPrivate;
+};
+
+struct _GtkFileChooserButtonClass
+{
+  GtkWidgetClass parent_class;
+
+  void (* file_set) (GtkFileChooserButton *fc);
+};
 
 
 /* ********************* *
@@ -343,7 +340,6 @@ static guint file_chooser_button_signals[LAST_SIGNAL] = { 0 };
  * ******************* */
 
 G_DEFINE_TYPE_WITH_CODE (GtkFileChooserButton, gtk_file_chooser_button, GTK_TYPE_WIDGET,
-                         G_ADD_PRIVATE (GtkFileChooserButton)
                          G_IMPLEMENT_INTERFACE (GTK_TYPE_FILE_CHOOSER,
                                                 gtk_file_chooser_button_file_chooser_iface_init))
 
@@ -366,10 +362,9 @@ dnd_select_folder_get_info_cb (GCancellable *cancellable,
 {
   struct DndSelectFolderData *data = user_data;
   GtkFileChooserButton *button = data->button;
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   gboolean cancelled = g_cancellable_is_cancelled (cancellable);
 
-  if (cancellable != priv->dnd_select_folder_cancellable)
+  if (cancellable != button->dnd_select_folder_cancellable)
     {
       g_object_unref (data->button);
       g_object_unref (data->file);
@@ -380,7 +375,7 @@ dnd_select_folder_get_info_cb (GCancellable *cancellable,
       return;
     }
 
-  priv->dnd_select_folder_cancellable = NULL;
+  button->dnd_select_folder_cancellable = NULL;
 
   if (!cancelled && !error && info != NULL)
     {
@@ -414,7 +409,7 @@ dnd_select_folder_get_info_cb (GCancellable *cancellable,
 
   data->file = g_file_new_for_uri (data->uris[data->i]);
 
-  priv->dnd_select_folder_cancellable =
+  button->dnd_select_folder_cancellable =
     _gtk_file_system_get_info (data->file_system, data->file,
                                "standard::type",
                                dnd_select_folder_get_info_cb, user_data);
@@ -429,7 +424,6 @@ gtk_file_chooser_button_drop (GtkDropTarget        *target,
                               double                y,
                               GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   struct DndSelectFolderData *info;
   GFile *file;
 
@@ -440,16 +434,16 @@ gtk_file_chooser_button_drop (GtkDropTarget        *target,
   info->i = 0;
   info->uris = g_new0 (char *, 2);
   info->selected = FALSE;
-  info->file_system = priv->fs;
-  g_object_get (priv->chooser, "action", &info->action, NULL);
+  info->file_system = button->fs;
+  g_object_get (button->chooser, "action", &info->action, NULL);
 
   info->file = g_object_ref (file);
 
-  if (priv->dnd_select_folder_cancellable)
-    g_cancellable_cancel (priv->dnd_select_folder_cancellable);
+  if (button->dnd_select_folder_cancellable)
+    g_cancellable_cancel (button->dnd_select_folder_cancellable);
 
-  priv->dnd_select_folder_cancellable =
-    _gtk_file_system_get_info (priv->fs, info->file,
+  button->dnd_select_folder_cancellable =
+    _gtk_file_system_get_info (button->fs, info->file,
                                "standard::type",
                                dnd_select_folder_get_info_cb, info);
 
@@ -553,58 +547,57 @@ gtk_file_chooser_button_class_init (GtkFileChooserButtonClass * class)
 static void
 gtk_file_chooser_button_init (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GtkWidget *box;
   GtkWidget *icon;
   GtkDropTarget *target;
 
-  priv->button = gtk_button_new ();
-  g_signal_connect (priv->button, "clicked", G_CALLBACK (button_clicked_cb), button);
-  priv->image = gtk_image_new ();
-  priv->label = gtk_label_new (_(FALLBACK_DISPLAY_NAME));
-  gtk_label_set_xalign (GTK_LABEL (priv->label), 0.0f);
-  gtk_widget_set_hexpand (priv->label, TRUE);
+  button->button = gtk_button_new ();
+  g_signal_connect (button->button, "clicked", G_CALLBACK (button_clicked_cb), button);
+  button->image = gtk_image_new ();
+  button->label = gtk_label_new (_(FALLBACK_DISPLAY_NAME));
+  gtk_label_set_xalign (GTK_LABEL (button->label), 0.0f);
+  gtk_widget_set_hexpand (button->label, TRUE);
   icon = gtk_image_new_from_icon_name ("document-open-symbolic");
   box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-  gtk_widget_set_valign (priv->image, GTK_ALIGN_BASELINE);
-  gtk_container_add (GTK_CONTAINER (box), priv->image);
-  gtk_widget_set_valign (priv->label, GTK_ALIGN_BASELINE);
-  gtk_container_add (GTK_CONTAINER (box), priv->label);
+  gtk_widget_set_valign (button->image, GTK_ALIGN_BASELINE);
+  gtk_container_add (GTK_CONTAINER (box), button->image);
+  gtk_widget_set_valign (button->label, GTK_ALIGN_BASELINE);
+  gtk_container_add (GTK_CONTAINER (box), button->label);
   gtk_widget_set_valign (icon, GTK_ALIGN_BASELINE);
   gtk_container_add (GTK_CONTAINER (box), icon);
-  gtk_container_add (GTK_CONTAINER (priv->button), box);
+  gtk_container_add (GTK_CONTAINER (button->button), box);
 
-  gtk_widget_set_parent (priv->button, GTK_WIDGET (button));
+  gtk_widget_set_parent (button->button, GTK_WIDGET (button));
 
-  priv->model = GTK_TREE_MODEL (gtk_list_store_new (NUM_COLUMNS,
-                                                    G_TYPE_ICON,
-                                                    G_TYPE_STRING,
-                                                    G_TYPE_CHAR,
-                                                    G_TYPE_POINTER,
-                                                    G_TYPE_BOOLEAN,
-                                                    G_TYPE_POINTER));
+  button->model = GTK_TREE_MODEL (gtk_list_store_new (NUM_COLUMNS,
+                                                      G_TYPE_ICON,
+                                                      G_TYPE_STRING,
+                                                      G_TYPE_CHAR,
+                                                      G_TYPE_POINTER,
+                                                      G_TYPE_BOOLEAN,
+                                                      G_TYPE_POINTER));
 
-  priv->combo_box = gtk_combo_box_new ();
-  g_signal_connect (priv->combo_box, "changed", G_CALLBACK (combo_box_changed_cb), button);
-  priv->icon_cell = gtk_cell_renderer_pixbuf_new ();
-  priv->name_cell = gtk_cell_renderer_text_new ();
-  g_object_set (priv->name_cell, "xpad", 6, NULL);
+  button->combo_box = gtk_combo_box_new ();
+  g_signal_connect (button->combo_box, "changed", G_CALLBACK (combo_box_changed_cb), button);
+  button->icon_cell = gtk_cell_renderer_pixbuf_new ();
+  button->name_cell = gtk_cell_renderer_text_new ();
+  g_object_set (button->name_cell, "xpad", 6, NULL);
 
-  gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (priv->combo_box), priv->icon_cell, FALSE);
-  gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (priv->combo_box),
-                                  priv->icon_cell, "gicon", ICON_COLUMN, NULL);
+  gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (button->combo_box), button->icon_cell, FALSE);
+  gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (button->combo_box),
+                                  button->icon_cell, "gicon", ICON_COLUMN, NULL);
 
-  gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (priv->combo_box), priv->name_cell, FALSE);
-  gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (priv->combo_box),
-                                  priv->name_cell, "text", DISPLAY_NAME_COLUMN, NULL);
+  gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (button->combo_box), button->name_cell, FALSE);
+  gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (button->combo_box),
+                                  button->name_cell, "text", DISPLAY_NAME_COLUMN, NULL);
 
-  gtk_widget_hide (priv->combo_box);
-  gtk_widget_set_parent (priv->combo_box, GTK_WIDGET (button));
+  gtk_widget_hide (button->combo_box);
+  gtk_widget_set_parent (button->combo_box, GTK_WIDGET (button));
 
   /* Bookmarks manager */
-  priv->bookmarks_manager = _gtk_bookmarks_manager_new (bookmarks_changed_cb, button);
-  gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (priv->combo_box),
-                                     priv->name_cell, name_cell_data_func,
+  button->bookmarks_manager = _gtk_bookmarks_manager_new (bookmarks_changed_cb, button);
+  gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (button->combo_box),
+                                     button->name_cell, name_cell_data_func,
                                      NULL, NULL);
 
   /* DnD */
@@ -635,11 +628,9 @@ gtk_file_chooser_button_file_chooser_iface_init (GtkFileChooserIface *iface)
 static void
 emit_selection_changed_if_changing_selection (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
-
-  if (priv->is_changing_selection)
+  if (button->is_changing_selection)
     {
-      priv->is_changing_selection = FALSE;
+      button->is_changing_selection = FALSE;
       g_signal_emit_by_name (button, "selection-changed");
     }
 }
@@ -650,19 +641,18 @@ gtk_file_chooser_button_set_current_folder (GtkFileChooser    *chooser,
                                            GError           **error)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (chooser);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
-  if (priv->current_folder_while_inactive)
-    g_object_unref (priv->current_folder_while_inactive);
+  if (button->current_folder_while_inactive)
+    g_object_unref (button->current_folder_while_inactive);
 
-  priv->current_folder_while_inactive = g_object_ref (file);
+  button->current_folder_while_inactive = g_object_ref (file);
 
   update_combo_box (button);
 
   g_signal_emit_by_name (button, "current-folder-changed");
 
-  if (priv->active)
-    gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (priv->chooser), file, NULL);
+  if (button->active)
+    gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button->chooser), file, NULL);
 
   return TRUE;
 }
@@ -671,10 +661,9 @@ static GFile *
 gtk_file_chooser_button_get_current_folder (GtkFileChooser *chooser)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (chooser);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
-  if (priv->current_folder_while_inactive)
-    return g_object_ref (priv->current_folder_while_inactive);
+  if (button->current_folder_while_inactive)
+    return g_object_ref (button->current_folder_while_inactive);
   else
     return NULL;
 }
@@ -685,20 +674,19 @@ gtk_file_chooser_button_select_file (GtkFileChooser *chooser,
                                     GError        **error)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (chooser);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
-  if (priv->selection_while_inactive)
-    g_object_unref (priv->selection_while_inactive);
+  if (button->selection_while_inactive)
+    g_object_unref (button->selection_while_inactive);
 
-  priv->selection_while_inactive = g_object_ref (file);
+  button->selection_while_inactive = g_object_ref (file);
 
-  priv->is_changing_selection = TRUE;
+  button->is_changing_selection = TRUE;
 
   update_label_and_image (button);
   update_combo_box (button);
 
-  if (priv->active)
-    gtk_file_chooser_select_file (GTK_FILE_CHOOSER (priv->chooser), file, NULL);
+  if (button->active)
+    gtk_file_chooser_select_file (GTK_FILE_CHOOSER (button->chooser), file, NULL);
 
   return TRUE;
 }
@@ -706,15 +694,13 @@ gtk_file_chooser_button_select_file (GtkFileChooser *chooser,
 static void
 unselect_current_file (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
-
-  if (priv->selection_while_inactive)
+  if (button->selection_while_inactive)
     {
-      g_object_unref (priv->selection_while_inactive);
-      priv->selection_while_inactive = NULL;
+      g_object_unref (button->selection_while_inactive);
+      button->selection_while_inactive = NULL;
     }
 
-  priv->is_changing_selection = TRUE;
+  button->is_changing_selection = TRUE;
 
   update_label_and_image (button);
   update_combo_box (button);
@@ -725,44 +711,41 @@ gtk_file_chooser_button_unselect_file (GtkFileChooser *chooser,
                                       GFile          *file)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (chooser);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
-  if (g_file_equal (priv->selection_while_inactive, file))
+  if (g_file_equal (button->selection_while_inactive, file))
     unselect_current_file (button);
 
-  if (priv->active)
-    gtk_file_chooser_unselect_file (GTK_FILE_CHOOSER (priv->chooser), file);
+  if (button->active)
+    gtk_file_chooser_unselect_file (GTK_FILE_CHOOSER (button->chooser), file);
 }
 
 static void
 gtk_file_chooser_button_unselect_all (GtkFileChooser *chooser)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (chooser);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
   unselect_current_file (button);
 
-  if (priv->active)
-    gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (priv->chooser));
+  if (button->active)
+    gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (button->chooser));
 }
 
 static GFile *
 get_selected_file (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GFile *retval;
 
   retval = NULL;
 
-  if (priv->selection_while_inactive)
-    retval = priv->selection_while_inactive;
-  else if (priv->chooser && gtk_file_chooser_get_action (priv->chooser) == 
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)
+  if (button->selection_while_inactive)
+    retval = button->selection_while_inactive;
+  else if (button->chooser && gtk_file_chooser_get_action (button->chooser) == 
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)
     {
       /* If there is no "real" selection in SELECT_FOLDER mode, then we'll just return
        * the current folder, since that is what GtkFileChooserWidget would do.
        */
-      if (priv->current_folder_while_inactive)
-       retval = priv->current_folder_while_inactive;
+      if (button->current_folder_while_inactive)
+       retval = button->current_folder_while_inactive;
     }
 
   if (retval)
@@ -799,15 +782,14 @@ gtk_file_chooser_button_add_shortcut_folder (GtkFileChooser  *chooser,
   if (retval)
     {
       GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (chooser);
-      GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
       GtkTreeIter iter;
       gint pos;
 
       pos = model_get_type_position (button, ROW_TYPE_SHORTCUT);
-      pos += priv->n_shortcuts;
+      pos += button->n_shortcuts;
 
-      gtk_list_store_insert (GTK_LIST_STORE (priv->model), &iter, pos);
-      gtk_list_store_set (GTK_LIST_STORE (priv->model), &iter,
+      gtk_list_store_insert (GTK_LIST_STORE (button->model), &iter, pos);
+      gtk_list_store_set (GTK_LIST_STORE (button->model), &iter,
                          ICON_COLUMN, NULL,
                          DISPLAY_NAME_COLUMN, _(FALLBACK_DISPLAY_NAME),
                          TYPE_COLUMN, ROW_TYPE_SHORTCUT,
@@ -815,9 +797,9 @@ gtk_file_chooser_button_add_shortcut_folder (GtkFileChooser  *chooser,
                          IS_FOLDER_COLUMN, FALSE,
                          -1);
       set_info_for_file_at_iter (button, file, &iter);
-      priv->n_shortcuts++;
+      button->n_shortcuts++;
 
-      gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (priv->filter_model));
+      gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (button->filter_model));
     }
 
   return retval;
@@ -839,19 +821,18 @@ gtk_file_chooser_button_remove_shortcut_folder (GtkFileChooser  *chooser,
   if (retval)
     {
       GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (chooser);
-      GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
       GtkTreeIter iter;
       gint pos;
       gchar type;
 
       pos = model_get_type_position (button, ROW_TYPE_SHORTCUT);
-      gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, pos);
+      gtk_tree_model_iter_nth_child (button->model, &iter, NULL, pos);
 
       do
        {
          gpointer data;
 
-         gtk_tree_model_get (priv->model, &iter,
+         gtk_tree_model_get (button->model, &iter,
                              TYPE_COLUMN, &type,
                              DATA_COLUMN, &data,
                              -1);
@@ -860,15 +841,15 @@ gtk_file_chooser_button_remove_shortcut_folder (GtkFileChooser  *chooser,
              data && g_file_equal (data, file))
            {
              model_free_row_data (GTK_FILE_CHOOSER_BUTTON (chooser), &iter);
-             gtk_list_store_remove (GTK_LIST_STORE (priv->model), &iter);
-             priv->n_shortcuts--;
-             gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (priv->filter_model));
+             gtk_list_store_remove (GTK_LIST_STORE (button->model), &iter);
+             button->n_shortcuts--;
+             gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (button->filter_model));
              update_combo_box (GTK_FILE_CHOOSER_BUTTON (chooser));
              break;
            }
        }
       while (type == ROW_TYPE_SHORTCUT &&
-            gtk_tree_model_iter_next (priv->model, &iter));
+            gtk_tree_model_iter_next (button->model, &iter));
     }
 
   return retval;
@@ -883,65 +864,64 @@ static void
 gtk_file_chooser_button_constructed (GObject *object)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (object);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GSList *list;
 
   G_OBJECT_CLASS (gtk_file_chooser_button_parent_class)->constructed (object);
 
-  if (!priv->dialog)
+  if (!button->dialog)
     {
-      priv->native = gtk_file_chooser_native_new (NULL,
+      button->native = gtk_file_chooser_native_new (NULL,
                                                   NULL,
                                                  GTK_FILE_CHOOSER_ACTION_OPEN,
                                                  NULL,
                                                  NULL);
-      priv->chooser = GTK_FILE_CHOOSER (priv->native);
+      button->chooser = GTK_FILE_CHOOSER (button->native);
       gtk_file_chooser_button_set_title (button, _(DEFAULT_TITLE));
 
-      g_signal_connect (priv->native, "response",
+      g_signal_connect (button->native, "response",
                         G_CALLBACK (native_response_cb), object);
     }
   else /* dialog set */
     {
-      priv->chooser = GTK_FILE_CHOOSER (priv->dialog);
-      gtk_window_set_hide_on_close (GTK_WINDOW (priv->chooser), TRUE);
+      button->chooser = GTK_FILE_CHOOSER (button->dialog);
+      gtk_window_set_hide_on_close (GTK_WINDOW (button->chooser), TRUE);
 
-      if (!gtk_window_get_title (GTK_WINDOW (priv->dialog)))
+      if (!gtk_window_get_title (GTK_WINDOW (button->dialog)))
         gtk_file_chooser_button_set_title (button, _(DEFAULT_TITLE));
 
-      g_signal_connect (priv->dialog, "response",
+      g_signal_connect (button->dialog, "response",
                         G_CALLBACK (dialog_response_cb), object);
 
-      g_object_add_weak_pointer (G_OBJECT (priv->dialog),
-                                 (gpointer) (&priv->dialog));
+      g_object_add_weak_pointer (G_OBJECT (button->dialog),
+                                 (gpointer) (&button->dialog));
     }
 
   /* This is used, instead of the standard delegate, to ensure that signals are only
    * delegated when the OK button is pressed. */
-  g_object_set_qdata (object, GTK_FILE_CHOOSER_DELEGATE_QUARK, priv->chooser);
+  g_object_set_qdata (object, GTK_FILE_CHOOSER_DELEGATE_QUARK, button->chooser);
 
-  priv->fs =
-    g_object_ref (_gtk_file_chooser_get_file_system (priv->chooser));
+  button->fs =
+    g_object_ref (_gtk_file_chooser_get_file_system (button->chooser));
 
   model_add_special (button);
 
-  list = _gtk_file_system_list_volumes (priv->fs);
+  list = _gtk_file_system_list_volumes (button->fs);
   model_add_volumes (button, list);
   g_slist_free (list);
 
-  list = _gtk_bookmarks_manager_list_bookmarks (priv->bookmarks_manager);
+  list = _gtk_bookmarks_manager_list_bookmarks (button->bookmarks_manager);
   model_add_bookmarks (button, list);
   g_slist_free_full (list, g_object_unref);
 
   model_add_other (button);
 
-  priv->filter_model = gtk_tree_model_filter_new (priv->model, NULL);
-  gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (priv->filter_model),
+  button->filter_model = gtk_tree_model_filter_new (button->model, NULL);
+  gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (button->filter_model),
                                          filter_model_visible_func,
                                          object, NULL);
 
-  gtk_combo_box_set_model (GTK_COMBO_BOX (priv->combo_box), priv->filter_model);
-  gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (priv->combo_box),
+  gtk_combo_box_set_model (GTK_COMBO_BOX (button->combo_box), button->filter_model);
+  gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (button->combo_box),
                                        combo_box_row_separator_func,
                                        NULL, NULL);
 
@@ -949,11 +929,11 @@ gtk_file_chooser_button_constructed (GObject *object)
    * the label, image and combobox
    */
   g_object_set (object,
-               "action", gtk_file_chooser_get_action (GTK_FILE_CHOOSER (priv->chooser)),
+               "action", gtk_file_chooser_get_action (GTK_FILE_CHOOSER (button->chooser)),
                NULL);
 
-  priv->fs_volumes_changed_id =
-    g_signal_connect (priv->fs, "volumes-changed",
+  button->fs_volumes_changed_id =
+    g_signal_connect (button->fs, "volumes-changed",
                      G_CALLBACK (fs_volumes_changed_cb), object);
 
   update_label_and_image (button);
@@ -967,13 +947,12 @@ gtk_file_chooser_button_set_property (GObject      *object,
                                      GParamSpec   *pspec)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (object);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
   switch (param_id)
     {
     case PROP_DIALOG:
       /* Construct-only */
-      priv->dialog = g_value_get_object (value);
+      button->dialog = g_value_get_object (value);
       break;
     case PROP_WIDTH_CHARS:
       gtk_file_chooser_button_set_width_chars (GTK_FILE_CHOOSER_BUTTON (object),
@@ -999,20 +978,20 @@ gtk_file_chooser_button_set_property (GObject      *object,
           break;
        }
 
-      g_object_set_property (G_OBJECT (priv->chooser), pspec->name, value);
+      g_object_set_property (G_OBJECT (button->chooser), pspec->name, value);
       update_label_and_image (GTK_FILE_CHOOSER_BUTTON (object));
       update_combo_box (GTK_FILE_CHOOSER_BUTTON (object));
 
       switch (g_value_get_enum (value))
         {
         case GTK_FILE_CHOOSER_ACTION_OPEN:
-          gtk_widget_hide (priv->combo_box);
-          gtk_widget_show (priv->button);
+          gtk_widget_hide (button->combo_box);
+          gtk_widget_show (button->button);
           gtk_widget_queue_resize (GTK_WIDGET (button));
           break;
         case GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER:
-          gtk_widget_show (priv->combo_box);
-          gtk_widget_hide (priv->button);
+          gtk_widget_show (button->combo_box);
+          gtk_widget_hide (button->button);
           gtk_widget_queue_resize (GTK_WIDGET (button));
           break;
         default:
@@ -1025,7 +1004,7 @@ gtk_file_chooser_button_set_property (GObject      *object,
     case PROP_MODAL:
     case GTK_FILE_CHOOSER_PROP_FILTER:
     case GTK_FILE_CHOOSER_PROP_CREATE_FOLDERS:
-      g_object_set_property (G_OBJECT (priv->chooser), pspec->name, value);
+      g_object_set_property (G_OBJECT (button->chooser), pspec->name, value);
       break;
 
     case GTK_FILE_CHOOSER_PROP_SELECT_MULTIPLE:
@@ -1045,13 +1024,12 @@ gtk_file_chooser_button_get_property (GObject    *object,
                                      GParamSpec *pspec)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (object);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
   switch (param_id)
     {
     case PROP_WIDTH_CHARS:
       g_value_set_int (value,
-                      gtk_label_get_width_chars (GTK_LABEL (priv->label)));
+                      gtk_label_get_width_chars (GTK_LABEL (button->label)));
       break;
 
     case PROP_TITLE:
@@ -1060,7 +1038,7 @@ gtk_file_chooser_button_get_property (GObject    *object,
     case GTK_FILE_CHOOSER_PROP_FILTER:
     case GTK_FILE_CHOOSER_PROP_SELECT_MULTIPLE:
     case GTK_FILE_CHOOSER_PROP_CREATE_FOLDERS:
-      g_object_get_property (G_OBJECT (priv->chooser), pspec->name, value);
+      g_object_get_property (G_OBJECT (button->chooser), pspec->name, value);
       break;
 
     default:
@@ -1073,13 +1051,12 @@ static void
 gtk_file_chooser_button_finalize (GObject *object)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (object);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
-  g_clear_object (&priv->selection_while_inactive);
-  g_clear_object (&priv->current_folder_while_inactive);
+  g_clear_object (&button->selection_while_inactive);
+  g_clear_object (&button->current_folder_while_inactive);
 
-  gtk_widget_unparent (priv->button);
-  gtk_widget_unparent (priv->combo_box);
+  gtk_widget_unparent (button->button);
+  gtk_widget_unparent (button->combo_box);
 
   G_OBJECT_CLASS (gtk_file_chooser_button_parent_class)->finalize (object);
 }
@@ -1093,17 +1070,16 @@ gtk_file_chooser_button_state_flags_changed (GtkWidget     *widget,
                                              GtkStateFlags  previous_state)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (widget);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
   if (gtk_widget_get_state_flags (widget) & GTK_STATE_FLAG_DROP_ACTIVE)
     {
-      gtk_widget_set_state_flags (priv->button, GTK_STATE_FLAG_DROP_ACTIVE, FALSE);
-      gtk_widget_set_state_flags (priv->combo_box, GTK_STATE_FLAG_DROP_ACTIVE, FALSE);
+      gtk_widget_set_state_flags (button->button, GTK_STATE_FLAG_DROP_ACTIVE, FALSE);
+      gtk_widget_set_state_flags (button->combo_box, GTK_STATE_FLAG_DROP_ACTIVE, FALSE);
     }
   else
     {
-      gtk_widget_unset_state_flags (priv->button, GTK_STATE_FLAG_DROP_ACTIVE);
-      gtk_widget_unset_state_flags (priv->combo_box, GTK_STATE_FLAG_DROP_ACTIVE);
+      gtk_widget_unset_state_flags (button->button, GTK_STATE_FLAG_DROP_ACTIVE);
+      gtk_widget_unset_state_flags (button->combo_box, GTK_STATE_FLAG_DROP_ACTIVE);
     }
 
   GTK_WIDGET_CLASS (gtk_file_chooser_button_parent_class)->state_flags_changed (widget, previous_state);
@@ -1113,46 +1089,45 @@ static void
 gtk_file_chooser_button_destroy (GtkWidget *widget)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (widget);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GSList *l;
 
-  if (priv->model)
+  if (button->model)
     {
-      model_remove_rows (button, 0, gtk_tree_model_iter_n_children (priv->model, NULL));
-      g_clear_object (&priv->model);
+      model_remove_rows (button, 0, gtk_tree_model_iter_n_children (button->model, NULL));
+      g_clear_object (&button->model);
     }
 
-  g_clear_pointer (&priv->dialog, gtk_widget_destroy);
+  g_clear_pointer (&button->dialog, gtk_widget_destroy);
 
-  if (priv->native)
-    gtk_native_dialog_destroy (GTK_NATIVE_DIALOG (priv->native));
+  if (button->native)
+    gtk_native_dialog_destroy (GTK_NATIVE_DIALOG (button->native));
 
-  g_clear_object (&priv->native);
-  priv->chooser = NULL; /* Was either priv->dialog or priv->native! */
+  g_clear_object (&button->native);
+  button->chooser = NULL; /* Was either button->dialog or button->native! */
 
-  g_clear_pointer (&priv->dnd_select_folder_cancellable, g_cancellable_cancel);
-  g_clear_pointer (&priv->update_button_cancellable, g_cancellable_cancel);
+  g_clear_pointer (&button->dnd_select_folder_cancellable, g_cancellable_cancel);
+  g_clear_pointer (&button->update_button_cancellable, g_cancellable_cancel);
 
-  if (priv->change_icon_theme_cancellables)
+  if (button->change_icon_theme_cancellables)
     {
-      for (l = priv->change_icon_theme_cancellables; l; l = l->next)
+      for (l = button->change_icon_theme_cancellables; l; l = l->next)
         {
          GCancellable *cancellable = G_CANCELLABLE (l->data);
          g_cancellable_cancel (cancellable);
         }
-      g_slist_free (priv->change_icon_theme_cancellables);
-      priv->change_icon_theme_cancellables = NULL;
+      g_slist_free (button->change_icon_theme_cancellables);
+      button->change_icon_theme_cancellables = NULL;
     }
 
-  g_clear_object (&priv->filter_model);
+  g_clear_object (&button->filter_model);
 
-  if (priv->fs)
+  if (button->fs)
     {
-      g_signal_handler_disconnect (priv->fs, priv->fs_volumes_changed_id);
-      g_clear_object (&priv->fs);
+      g_signal_handler_disconnect (button->fs, button->fs_volumes_changed_id);
+      g_clear_object (&button->fs);
     }
 
-  g_clear_pointer (&priv->bookmarks_manager, _gtk_bookmarks_manager_free);
+  g_clear_pointer (&button->bookmarks_manager, _gtk_bookmarks_manager_free);
 
   GTK_WIDGET_CLASS (gtk_file_chooser_button_parent_class)->destroy (widget);
 }
@@ -1161,12 +1136,11 @@ static void
 gtk_file_chooser_button_show (GtkWidget *widget)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (widget);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
   if (GTK_WIDGET_CLASS (gtk_file_chooser_button_parent_class)->show)
     GTK_WIDGET_CLASS (gtk_file_chooser_button_parent_class)->show (widget);
 
-  if (priv->active)
+  if (button->active)
     open_dialog (GTK_FILE_CHOOSER_BUTTON (widget));
 }
 
@@ -1174,12 +1148,11 @@ static void
 gtk_file_chooser_button_hide (GtkWidget *widget)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (widget);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
-  if (priv->dialog)
-    gtk_widget_hide (priv->dialog);
-  else if (priv->native)
-    gtk_native_dialog_hide (GTK_NATIVE_DIALOG (priv->native));
+  if (button->dialog)
+    gtk_widget_hide (button->dialog);
+  else if (button->native)
+    gtk_native_dialog_hide (GTK_NATIVE_DIALOG (button->native));
 
   if (GTK_WIDGET_CLASS (gtk_file_chooser_button_parent_class)->hide)
     GTK_WIDGET_CLASS (gtk_file_chooser_button_parent_class)->hide (widget);
@@ -1196,15 +1169,14 @@ gtk_file_chooser_button_mnemonic_activate (GtkWidget *widget,
                                           gboolean   group_cycling)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (widget);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
-  switch (gtk_file_chooser_get_action (GTK_FILE_CHOOSER (priv->chooser)))
+  switch (gtk_file_chooser_get_action (GTK_FILE_CHOOSER (button->chooser)))
     {
     case GTK_FILE_CHOOSER_ACTION_OPEN:
-      gtk_widget_grab_focus (priv->button);
+      gtk_widget_grab_focus (button->button);
       break;
     case GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER:
-      return gtk_widget_mnemonic_activate (priv->combo_box, group_cycling);
+      return gtk_widget_mnemonic_activate (button->combo_box, group_cycling);
       break;
     case GTK_FILE_CHOOSER_ACTION_SAVE:
     default:
@@ -1231,13 +1203,13 @@ change_icon_theme_get_info_cb (GCancellable *cancellable,
   gboolean cancelled = g_cancellable_is_cancelled (cancellable);
   GIcon *icon;
   struct ChangeIconThemeData *data = user_data;
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (data->button);
+  GtkFileChooserButton *button = data->button;
 
-  if (!g_slist_find (priv->change_icon_theme_cancellables, cancellable))
+  if (!g_slist_find (button->change_icon_theme_cancellables, cancellable))
     goto out;
 
-  priv->change_icon_theme_cancellables =
-    g_slist_remove (priv->change_icon_theme_cancellables, cancellable);
+  button->change_icon_theme_cancellables =
+    g_slist_remove (button->change_icon_theme_cancellables, cancellable);
 
   if (cancelled || error)
     goto out;
@@ -1254,14 +1226,14 @@ change_icon_theme_get_info_cb (GCancellable *cancellable,
       path = gtk_tree_row_reference_get_path (data->row_ref);
       if (path)
         {
-          gtk_tree_model_get_iter (priv->model, &iter, path);
+          gtk_tree_model_get_iter (button->model, &iter, path);
           gtk_tree_path_free (path);
 
-          gtk_list_store_set (GTK_LIST_STORE (priv->model), &iter,
+          gtk_list_store_set (GTK_LIST_STORE (button->model), &iter,
                              ICON_COLUMN, icon,
                              -1);
 
-          g_object_set (priv->icon_cell,
+          g_object_set (button->icon_cell,
                        "width", width,
                        NULL);
         }
@@ -1279,22 +1251,21 @@ out:
 static void
 change_icon_theme (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GtkTreeIter iter;
   GSList *l;
   gint width = 0;
 
-  for (l = priv->change_icon_theme_cancellables; l; l = l->next)
+  for (l = button->change_icon_theme_cancellables; l; l = l->next)
     {
       GCancellable *cancellable = G_CANCELLABLE (l->data);
       g_cancellable_cancel (cancellable);
     }
-  g_slist_free (priv->change_icon_theme_cancellables);
-  priv->change_icon_theme_cancellables = NULL;
+  g_slist_free (button->change_icon_theme_cancellables);
+  button->change_icon_theme_cancellables = NULL;
 
   update_label_and_image (button);
 
-  gtk_tree_model_get_iter_first (priv->model, &iter);
+  gtk_tree_model_get_iter_first (button->model, &iter);
 
   do
     {
@@ -1303,7 +1274,7 @@ change_icon_theme (GtkFileChooserButton *button)
       gpointer data;
 
       type = ROW_TYPE_INVALID;
-      gtk_tree_model_get (priv->model, &iter,
+      gtk_tree_model_get (button->model, &iter,
                          TYPE_COLUMN, &type,
                          DATA_COLUMN, &data,
                          -1);
@@ -1324,17 +1295,17 @@ change_icon_theme (GtkFileChooserButton *button)
 
                  info = g_new0 (struct ChangeIconThemeData, 1);
                  info->button = g_object_ref (button);
-                 path = gtk_tree_model_get_path (priv->model, &iter);
-                 info->row_ref = gtk_tree_row_reference_new (priv->model, path);
+                 path = gtk_tree_model_get_path (button->model, &iter);
+                 info->row_ref = gtk_tree_row_reference_new (button->model, path);
                  gtk_tree_path_free (path);
 
                  cancellable =
-                   _gtk_file_system_get_info (priv->fs, data,
+                   _gtk_file_system_get_info (button->fs, data,
                                               "standard::icon",
                                               change_icon_theme_get_info_cb,
                                               info);
-                  priv->change_icon_theme_cancellables =
-                    g_slist_append (priv->change_icon_theme_cancellables, cancellable);
+                  button->change_icon_theme_cancellables =
+                    g_slist_append (button->change_icon_theme_cancellables, cancellable);
                   icon = NULL;
                }
              else
@@ -1361,16 +1332,16 @@ change_icon_theme (GtkFileChooserButton *button)
       if (icon)
        width = MAX (width, ICON_SIZE);
 
-      gtk_list_store_set (GTK_LIST_STORE (priv->model), &iter,
+      gtk_list_store_set (GTK_LIST_STORE (button->model), &iter,
                          ICON_COLUMN, icon,
                          -1);
 
       if (icon)
        g_object_unref (icon);
     }
-  while (gtk_tree_model_iter_next (priv->model, &iter));
+  while (gtk_tree_model_iter_next (button->model, &iter));
 
-  g_object_set (priv->icon_cell,
+  g_object_set (button->icon_cell,
                "width", width,
                NULL);
 }
@@ -1420,10 +1391,10 @@ set_info_get_info_cb (GCancellable *cancellable,
   GtkTreeIter iter;
   GCancellable *model_cancellable = NULL;
   struct SetDisplayNameData *data = callback_data;
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (data->button);
+  GtkFileChooserButton *button = data->button;
   gboolean is_folder;
 
-  if (!priv->model)
+  if (!button->model)
     /* button got destroyed */
     goto out;
 
@@ -1432,17 +1403,17 @@ set_info_get_info_cb (GCancellable *cancellable,
     /* Cancellable doesn't exist anymore in the model */
     goto out;
 
-  gtk_tree_model_get_iter (priv->model, &iter, path);
+  gtk_tree_model_get_iter (button->model, &iter, path);
   gtk_tree_path_free (path);
 
   /* Validate the cancellable */
-  gtk_tree_model_get (priv->model, &iter,
+  gtk_tree_model_get (button->model, &iter,
                      CANCELLABLE_COLUMN, &model_cancellable,
                      -1);
   if (cancellable != model_cancellable)
     goto out;
 
-  gtk_list_store_set (GTK_LIST_STORE (priv->model), &iter,
+  gtk_list_store_set (GTK_LIST_STORE (button->model), &iter,
                      CANCELLABLE_COLUMN, NULL,
                      -1);
 
@@ -1457,7 +1428,7 @@ set_info_get_info_cb (GCancellable *cancellable,
 
   is_folder = _gtk_file_info_consider_as_directory (info);
 
-  gtk_list_store_set (GTK_LIST_STORE (priv->model), &iter,
+  gtk_list_store_set (GTK_LIST_STORE (button->model), &iter,
                      ICON_COLUMN, icon,
                      DISPLAY_NAME_COLUMN, data->label,
                      IS_FOLDER_COLUMN, is_folder,
@@ -1480,24 +1451,23 @@ set_info_for_file_at_iter (GtkFileChooserButton *button,
                           GFile                *file,
                           GtkTreeIter          *iter)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   struct SetDisplayNameData *data;
   GtkTreePath *tree_path;
   GCancellable *cancellable;
 
   data = g_new0 (struct SetDisplayNameData, 1);
   data->button = g_object_ref (button);
-  data->label = _gtk_bookmarks_manager_get_bookmark_label (priv->bookmarks_manager, file);
+  data->label = _gtk_bookmarks_manager_get_bookmark_label (button->bookmarks_manager, file);
 
-  tree_path = gtk_tree_model_get_path (priv->model, iter);
-  data->row_ref = gtk_tree_row_reference_new (priv->model, tree_path);
+  tree_path = gtk_tree_model_get_path (button->model, iter);
+  data->row_ref = gtk_tree_row_reference_new (button->model, tree_path);
   gtk_tree_path_free (tree_path);
 
-  cancellable = _gtk_file_system_get_info (priv->fs, file,
+  cancellable = _gtk_file_system_get_info (button->fs, file,
                                           "standard::type,standard::icon,standard::display-name",
                                           set_info_get_info_cb, data);
 
-  gtk_list_store_set (GTK_LIST_STORE (priv->model), iter,
+  gtk_list_store_set (GTK_LIST_STORE (button->model), iter,
                      CANCELLABLE_COLUMN, cancellable,
                      -1);
 }
@@ -1507,48 +1477,47 @@ static gint
 model_get_type_position (GtkFileChooserButton *button,
                         RowType               row_type)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   gint retval = 0;
 
   if (row_type == ROW_TYPE_SPECIAL)
     return retval;
 
-  retval += priv->n_special;
+  retval += button->n_special;
 
   if (row_type == ROW_TYPE_VOLUME)
     return retval;
 
-  retval += priv->n_volumes;
+  retval += button->n_volumes;
 
   if (row_type == ROW_TYPE_SHORTCUT)
     return retval;
 
-  retval += priv->n_shortcuts;
+  retval += button->n_shortcuts;
 
   if (row_type == ROW_TYPE_BOOKMARK_SEPARATOR)
     return retval;
 
-  retval += priv->has_bookmark_separator;
+  retval += button->has_bookmark_separator;
 
   if (row_type == ROW_TYPE_BOOKMARK)
     return retval;
 
-  retval += priv->n_bookmarks;
+  retval += button->n_bookmarks;
 
   if (row_type == ROW_TYPE_CURRENT_FOLDER_SEPARATOR)
     return retval;
 
-  retval += priv->has_current_folder_separator;
+  retval += button->has_current_folder_separator;
 
   if (row_type == ROW_TYPE_CURRENT_FOLDER)
     return retval;
 
-  retval += priv->has_current_folder;
+  retval += button->has_current_folder;
 
   if (row_type == ROW_TYPE_OTHER_SEPARATOR)
     return retval;
 
-  retval += priv->has_other_separator;
+  retval += button->has_other_separator;
 
   if (row_type == ROW_TYPE_OTHER)
     return retval;
@@ -1563,12 +1532,11 @@ static void
 model_free_row_data (GtkFileChooserButton *button,
                     GtkTreeIter          *iter)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   gchar type;
   gpointer data;
   GCancellable *cancellable;
 
-  gtk_tree_model_get (priv->model, iter,
+  gtk_tree_model_get (button->model, iter,
                      TYPE_COLUMN, &type,
                      DATA_COLUMN, &data,
                      CANCELLABLE_COLUMN, &cancellable,
@@ -1605,10 +1573,10 @@ model_add_special_get_info_cb (GCancellable *cancellable,
   GIcon *icon;
   GCancellable *model_cancellable = NULL;
   struct ChangeIconThemeData *data = user_data;
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (data->button);
+  GtkFileChooserButton *button = data->button;
   gchar *name;
 
-  if (!priv->model)
+  if (!button->model)
     /* button got destroyed */
     goto out;
 
@@ -1617,16 +1585,17 @@ model_add_special_get_info_cb (GCancellable *cancellable,
     /* Cancellable doesn't exist anymore in the model */
     goto out;
 
-  gtk_tree_model_get_iter (priv->model, &iter, path);
+  gtk_tree_model_get_iter (button->model, &iter, path);
   gtk_tree_path_free (path);
 
-  gtk_tree_model_get (priv->model, &iter,
+  gtk_tree_model_get (button->model, &iter,
                      CANCELLABLE_COLUMN, &model_cancellable,
                      -1);
   if (cancellable != model_cancellable)
+ 
     goto out;
 
-  gtk_list_store_set (GTK_LIST_STORE (priv->model), &iter,
+  gtk_list_store_set (GTK_LIST_STORE (button->model), &iter,
                      CANCELLABLE_COLUMN, NULL,
                      -1);
 
@@ -1636,17 +1605,17 @@ model_add_special_get_info_cb (GCancellable *cancellable,
   icon = _gtk_file_info_get_icon (info, ICON_SIZE, gtk_widget_get_scale_factor (GTK_WIDGET (data->button)));
   if (icon)
     {
-      gtk_list_store_set (GTK_LIST_STORE (priv->model), &iter,
+      gtk_list_store_set (GTK_LIST_STORE (button->model), &iter,
                          ICON_COLUMN, icon,
                          -1);
       g_object_unref (icon);
     }
 
-  gtk_tree_model_get (priv->model, &iter,
+  gtk_tree_model_get (button->model, &iter,
                       DISPLAY_NAME_COLUMN, &name,
                       -1);
   if (!name)
-    gtk_list_store_set (GTK_LIST_STORE (priv->model), &iter,
+    gtk_list_store_set (GTK_LIST_STORE (button->model), &iter,
                        DISPLAY_NAME_COLUMN, g_file_info_get_display_name (info),
                        -1);
   g_free (name);
@@ -1662,7 +1631,6 @@ out:
 static void
 model_add_special (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   const gchar *homedir;
   const gchar *desktopdir;
   GtkListStore *store;
@@ -1670,7 +1638,7 @@ model_add_special (GtkFileChooserButton *button)
   GFile *file;
   gint pos;
 
-  store = GTK_LIST_STORE (priv->model);
+  store = GTK_LIST_STORE (button->model);
   pos = model_get_type_position (button, ROW_TYPE_SPECIAL);
 
   homedir = g_get_home_dir ();
@@ -1692,7 +1660,7 @@ model_add_special (GtkFileChooserButton *button)
                                                  tree_path);
       gtk_tree_path_free (tree_path);
 
-      cancellable = _gtk_file_system_get_info (priv->fs, file,
+      cancellable = _gtk_file_system_get_info (button->fs, file,
                                               "standard::icon,standard::display-name",
                                               model_add_special_get_info_cb, info);
 
@@ -1705,7 +1673,7 @@ model_add_special (GtkFileChooserButton *button)
                          CANCELLABLE_COLUMN, cancellable,
                          -1);
 
-      priv->n_special++;
+      button->n_special++;
     }
 
   desktopdir = g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP);
@@ -1730,7 +1698,7 @@ model_add_special (GtkFileChooserButton *button)
                                                  tree_path);
       gtk_tree_path_free (tree_path);
 
-      cancellable = _gtk_file_system_get_info (priv->fs, file,
+      cancellable = _gtk_file_system_get_info (button->fs, file,
                                               "standard::icon,standard::display-name",
                                               model_add_special_get_info_cb, info);
 
@@ -1743,7 +1711,7 @@ model_add_special (GtkFileChooserButton *button)
                          CANCELLABLE_COLUMN, cancellable,
                          -1);
 
-      priv->n_special++;
+      button->n_special++;
     }
 }
 
@@ -1751,7 +1719,6 @@ static void
 model_add_volumes (GtkFileChooserButton *button,
                    GSList               *volumes)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GtkListStore *store;
   gint pos;
   GSList *l;
@@ -1759,7 +1726,7 @@ model_add_volumes (GtkFileChooserButton *button,
   if (!volumes)
     return;
 
-  store = GTK_LIST_STORE (priv->model);
+  store = GTK_LIST_STORE (button->model);
   pos = model_get_type_position (button, ROW_TYPE_VOLUME);
 
   for (l = volumes; l; l = l->next)
@@ -1786,7 +1753,7 @@ model_add_volumes (GtkFileChooserButton *button,
         g_object_unref (icon);
       g_free (display_name);
 
-      priv->n_volumes++;
+      button->n_volumes++;
       pos++;
     }
 }
@@ -1795,7 +1762,6 @@ static void
 model_add_bookmarks (GtkFileChooserButton *button,
                     GSList               *bookmarks)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GtkListStore *store;
   GtkTreeIter iter;
   gint pos;
@@ -1804,7 +1770,7 @@ model_add_bookmarks (GtkFileChooserButton *button,
   if (!bookmarks)
     return;
 
-  store = GTK_LIST_STORE (priv->model);
+  store = GTK_LIST_STORE (button->model);
   pos = model_get_type_position (button, ROW_TYPE_BOOKMARK);
 
   for (l = bookmarks; l; l = l->next)
@@ -1835,7 +1801,7 @@ model_add_bookmarks (GtkFileChooserButton *button,
           * If we switch to a better bookmarks file format (XBEL), we
           * should use mime info to get a better icon.
           */
-         label = _gtk_bookmarks_manager_get_bookmark_label (priv->bookmarks_manager, file);
+         label = _gtk_bookmarks_manager_get_bookmark_label (button->bookmarks_manager, file);
          if (!label)
            label = _gtk_file_chooser_label_for_file (file);
 
@@ -1855,12 +1821,12 @@ model_add_bookmarks (GtkFileChooserButton *button,
            g_object_unref (icon);
        }
 
-      priv->n_bookmarks++;
+      button->n_bookmarks++;
       pos++;
     }
 
-  if (priv->n_bookmarks > 0 &&
-      !priv->has_bookmark_separator)
+  if (button->n_bookmarks > 0 &&
+      !button->has_bookmark_separator)
     {
       pos = model_get_type_position (button, ROW_TYPE_BOOKMARK_SEPARATOR);
 
@@ -1872,7 +1838,7 @@ model_add_bookmarks (GtkFileChooserButton *button,
                          DATA_COLUMN, NULL,
                          IS_FOLDER_COLUMN, FALSE,
                          -1);
-      priv->has_bookmark_separator = TRUE;
+      button->has_bookmark_separator = TRUE;
     }
 }
 
@@ -1880,7 +1846,6 @@ static void
 model_update_current_folder (GtkFileChooserButton *button,
                             GFile                *file)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GtkListStore *store;
   GtkTreeIter iter;
   gint pos;
@@ -1888,9 +1853,9 @@ model_update_current_folder (GtkFileChooserButton *button,
   if (!file)
     return;
 
-  store = GTK_LIST_STORE (priv->model);
+  store = GTK_LIST_STORE (button->model);
 
-  if (!priv->has_current_folder_separator)
+  if (!button->has_current_folder_separator)
     {
       pos = model_get_type_position (button, ROW_TYPE_CURRENT_FOLDER_SEPARATOR);
       gtk_list_store_insert (store, &iter, pos);
@@ -1901,18 +1866,18 @@ model_update_current_folder (GtkFileChooserButton *button,
                          DATA_COLUMN, NULL,
                          IS_FOLDER_COLUMN, FALSE,
                          -1);
-      priv->has_current_folder_separator = TRUE;
+      button->has_current_folder_separator = TRUE;
     }
 
   pos = model_get_type_position (button, ROW_TYPE_CURRENT_FOLDER);
-  if (!priv->has_current_folder)
+  if (!button->has_current_folder)
     {
       gtk_list_store_insert (store, &iter, pos);
-      priv->has_current_folder = TRUE;
+      button->has_current_folder = TRUE;
     }
   else
     {
-      gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, pos);
+      gtk_tree_model_iter_nth_child (button->model, &iter, NULL, pos);
       model_free_row_data (button, &iter);
     }
 
@@ -1937,7 +1902,7 @@ model_update_current_folder (GtkFileChooserButton *button,
        * If we switch to a better bookmarks file format (XBEL), we
        * should use mime info to get a better icon.
        */
-      label = _gtk_bookmarks_manager_get_bookmark_label (priv->bookmarks_manager, file);
+      label = _gtk_bookmarks_manager_get_bookmark_label (button->bookmarks_manager, file);
       if (!label)
        label = _gtk_file_chooser_label_for_file (file);
 
@@ -1963,13 +1928,12 @@ model_update_current_folder (GtkFileChooserButton *button,
 static void
 model_add_other (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GtkListStore *store;
   GtkTreeIter iter;
   gint pos;
   GIcon *icon;
 
-  store = GTK_LIST_STORE (priv->model);
+  store = GTK_LIST_STORE (button->model);
   pos = model_get_type_position (button, ROW_TYPE_OTHER_SEPARATOR);
   icon = g_themed_icon_new ("document-open-symbolic");
 
@@ -1981,7 +1945,7 @@ model_add_other (GtkFileChooserButton *button)
                       DATA_COLUMN, NULL,
                       IS_FOLDER_COLUMN, FALSE,
                       -1);
-  priv->has_other_separator = TRUE;
+  button->has_other_separator = TRUE;
   pos++;
 
   gtk_list_store_insert (store, &iter, pos);
@@ -2001,19 +1965,18 @@ model_remove_rows (GtkFileChooserButton *button,
                   gint                  pos,
                   gint                  n_rows)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GtkListStore *store;
 
   if (!n_rows)
     return;
 
-  store = GTK_LIST_STORE (priv->model);
+  store = GTK_LIST_STORE (button->model);
 
   do
     {
       GtkTreeIter iter;
 
-      if (!gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, pos))
+      if (!gtk_tree_model_iter_nth_child (button->model, &iter, NULL, pos))
        g_assert_not_reached ();
 
       model_free_row_data (button, &iter);
@@ -2044,7 +2007,6 @@ filter_model_visible_func (GtkTreeModel *model,
                           gpointer      user_data)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (user_data);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   gchar type;
   gpointer data;
   gboolean retval, is_folder;
@@ -2066,7 +2028,7 @@ filter_model_visible_func (GtkTreeModel *model,
     case ROW_TYPE_SPECIAL:
     case ROW_TYPE_SHORTCUT:
     case ROW_TYPE_BOOKMARK:
-      retval = test_if_file_is_visible (priv->fs, data, is_folder);
+      retval = test_if_file_is_visible (button->fs, data, is_folder);
       break;
     case ROW_TYPE_VOLUME:
       retval = TRUE;
@@ -2119,22 +2081,20 @@ combo_box_row_separator_func (GtkTreeModel *model,
 static void
 select_combo_box_row_no_notify (GtkFileChooserButton *button, int pos)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GtkTreeIter iter, filter_iter;
 
-  gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, pos);
-  gtk_tree_model_filter_convert_child_iter_to_iter (GTK_TREE_MODEL_FILTER (priv->filter_model),
+  gtk_tree_model_iter_nth_child (button->model, &iter, NULL, pos);
+  gtk_tree_model_filter_convert_child_iter_to_iter (GTK_TREE_MODEL_FILTER (button->filter_model),
                                                    &filter_iter, &iter);
 
-  g_signal_handlers_block_by_func (priv->combo_box, combo_box_changed_cb, button);
-  gtk_combo_box_set_active_iter (GTK_COMBO_BOX (priv->combo_box), &filter_iter);
-  g_signal_handlers_unblock_by_func (priv->combo_box, combo_box_changed_cb, button);
+  g_signal_handlers_block_by_func (button->combo_box, combo_box_changed_cb, button);
+  gtk_combo_box_set_active_iter (GTK_COMBO_BOX (button->combo_box), &filter_iter);
+  g_signal_handlers_unblock_by_func (button->combo_box, combo_box_changed_cb, button);
 }
 
 static void
 update_combo_box (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GFile *file;
   GtkTreeIter iter;
   gboolean row_found;
@@ -2143,7 +2103,7 @@ update_combo_box (GtkFileChooserButton *button)
 
   row_found = FALSE;
 
-  gtk_tree_model_get_iter_first (priv->filter_model, &iter);
+  gtk_tree_model_get_iter_first (button->filter_model, &iter);
 
   do
     {
@@ -2153,7 +2113,7 @@ update_combo_box (GtkFileChooserButton *button)
       type = ROW_TYPE_INVALID;
       data = NULL;
 
-      gtk_tree_model_get (priv->filter_model, &iter,
+      gtk_tree_model_get (button->filter_model, &iter,
                          TYPE_COLUMN, &type,
                          DATA_COLUMN, &data,
                          -1);
@@ -2185,13 +2145,13 @@ update_combo_box (GtkFileChooserButton *button)
 
       if (row_found)
        {
-         g_signal_handlers_block_by_func (priv->combo_box, combo_box_changed_cb, button);
-         gtk_combo_box_set_active_iter (GTK_COMBO_BOX (priv->combo_box),
+         g_signal_handlers_block_by_func (button->combo_box, combo_box_changed_cb, button);
+         gtk_combo_box_set_active_iter (GTK_COMBO_BOX (button->combo_box),
                                         &iter);
-         g_signal_handlers_unblock_by_func (priv->combo_box, combo_box_changed_cb, button);
+         g_signal_handlers_unblock_by_func (button->combo_box, combo_box_changed_cb, button);
        }
     }
-  while (!row_found && gtk_tree_model_iter_next (priv->filter_model, &iter));
+  while (!row_found && gtk_tree_model_iter_next (button->filter_model, &iter));
 
   if (!row_found)
     {
@@ -2210,7 +2170,7 @@ update_combo_box (GtkFileChooserButton *button)
          pos = model_get_type_position (button, ROW_TYPE_OTHER_SEPARATOR);
        }
 
-      gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (priv->filter_model));
+      gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (button->filter_model));
 
       select_combo_box_row_no_notify (button, pos);
     }
@@ -2229,21 +2189,20 @@ update_label_get_info_cb (GCancellable *cancellable,
   gboolean cancelled = g_cancellable_is_cancelled (cancellable);
   GIcon *icon;
   GtkFileChooserButton *button = data;
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
-  if (cancellable != priv->update_button_cancellable)
+  if (cancellable != button->update_button_cancellable)
     goto out;
 
-  priv->update_button_cancellable = NULL;
+  button->update_button_cancellable = NULL;
 
   if (cancelled || error)
     goto out;
 
-  gtk_label_set_text (GTK_LABEL (priv->label), g_file_info_get_display_name (info));
+  gtk_label_set_text (GTK_LABEL (button->label), g_file_info_get_display_name (info));
 
   icon = _gtk_file_info_get_icon (info, ICON_SIZE, gtk_widget_get_scale_factor (GTK_WIDGET (button)));
-  gtk_image_set_from_gicon (GTK_IMAGE (priv->image), icon);
-  gtk_image_set_pixel_size (GTK_IMAGE (priv->image), ICON_SIZE);
+  gtk_image_set_from_gicon (GTK_IMAGE (button->image), icon);
+  gtk_image_set_pixel_size (GTK_IMAGE (button->image), ICON_SIZE);
   if (icon)
     g_object_unref (icon);
 
@@ -2257,7 +2216,6 @@ out:
 static void
 update_label_and_image (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   gchar *label_text;
   GFile *file;
   gboolean done_changing_selection;
@@ -2267,17 +2225,17 @@ update_label_and_image (GtkFileChooserButton *button)
   label_text = NULL;
   done_changing_selection = FALSE;
 
-  if (priv->update_button_cancellable)
+  if (button->update_button_cancellable)
     {
-      g_cancellable_cancel (priv->update_button_cancellable);
-      priv->update_button_cancellable = NULL;
+      g_cancellable_cancel (button->update_button_cancellable);
+      button->update_button_cancellable = NULL;
     }
 
   if (file)
     {
       GtkFileSystemVolume *volume = NULL;
 
-      volume = _gtk_file_system_get_volume_for_file (priv->fs, file);
+      volume = _gtk_file_system_get_volume_for_file (button->fs, file);
       if (volume)
         {
           GFile *base_file;
@@ -2289,8 +2247,8 @@ update_label_and_image (GtkFileChooserButton *button)
 
               label_text = _gtk_file_system_volume_get_display_name (volume);
               icon = _gtk_file_system_volume_get_icon (volume);
-              gtk_image_set_from_gicon (GTK_IMAGE (priv->image), icon);
-              gtk_image_set_pixel_size (GTK_IMAGE (priv->image), ICON_SIZE);
+              gtk_image_set_from_gicon (GTK_IMAGE (button->image), icon);
+              gtk_image_set_pixel_size (GTK_IMAGE (button->image), ICON_SIZE);
               if (icon)
                 g_object_unref (icon);
             }
@@ -2309,8 +2267,8 @@ update_label_and_image (GtkFileChooserButton *button)
 
       if (g_file_is_native (file))
         {
-          priv->update_button_cancellable =
-            _gtk_file_system_get_info (priv->fs, file,
+          button->update_button_cancellable =
+            _gtk_file_system_get_info (button->fs, file,
                                        "standard::icon,standard::display-name",
                                        update_label_get_info_cb,
                                        g_object_ref (button));
@@ -2319,10 +2277,10 @@ update_label_and_image (GtkFileChooserButton *button)
         {
           GIcon *icon;
 
-          label_text = _gtk_bookmarks_manager_get_bookmark_label (priv->bookmarks_manager, file);
+          label_text = _gtk_bookmarks_manager_get_bookmark_label (button->bookmarks_manager, file);
           icon = g_themed_icon_new ("text-x-generic");
-          gtk_image_set_from_gicon (GTK_IMAGE (priv->image), icon);
-          gtk_image_set_pixel_size (GTK_IMAGE (priv->image), ICON_SIZE);
+          gtk_image_set_from_gicon (GTK_IMAGE (button->image), icon);
+          gtk_image_set_pixel_size (GTK_IMAGE (button->image), ICON_SIZE);
           if (icon)
             g_object_unref (icon);
 
@@ -2342,13 +2300,13 @@ out:
 
   if (label_text)
     {
-      gtk_label_set_text (GTK_LABEL (priv->label), label_text);
+      gtk_label_set_text (GTK_LABEL (button->label), label_text);
       g_free (label_text);
     }
   else
     {
-      gtk_label_set_text (GTK_LABEL (priv->label), _(FALLBACK_DISPLAY_NAME));
-      gtk_image_set_from_gicon (GTK_IMAGE (priv->image), NULL);
+      gtk_label_set_text (GTK_LABEL (button->label), _(FALLBACK_DISPLAY_NAME));
+      gtk_image_set_from_gicon (GTK_IMAGE (button->image), NULL);
     }
 
   if (done_changing_selection)
@@ -2366,20 +2324,19 @@ fs_volumes_changed_cb (GtkFileSystem *fs,
                       gpointer       user_data)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (user_data);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GSList *volumes;
 
   model_remove_rows (user_data,
                     model_get_type_position (user_data, ROW_TYPE_VOLUME),
-                    priv->n_volumes);
+                    button->n_volumes);
 
-  priv->n_volumes = 0;
+  button->n_volumes = 0;
 
   volumes = _gtk_file_system_list_volumes (fs);
   model_add_volumes (user_data, volumes);
   g_slist_free (volumes);
 
-  gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (priv->filter_model));
+  gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (button->filter_model));
 
   update_label_and_image (user_data);
   update_combo_box (user_data);
@@ -2389,19 +2346,18 @@ static void
 bookmarks_changed_cb (gpointer user_data)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (user_data);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GSList *bookmarks;
 
-  bookmarks = _gtk_bookmarks_manager_list_bookmarks (priv->bookmarks_manager);
+  bookmarks = _gtk_bookmarks_manager_list_bookmarks (button->bookmarks_manager);
   model_remove_rows (user_data,
                     model_get_type_position (user_data, ROW_TYPE_BOOKMARK_SEPARATOR),
-                    priv->n_bookmarks + priv->has_bookmark_separator);
-  priv->has_bookmark_separator = FALSE;
-  priv->n_bookmarks = 0;
+                    button->n_bookmarks + button->has_bookmark_separator);
+  button->has_bookmark_separator = FALSE;
+  button->n_bookmarks = 0;
   model_add_bookmarks (user_data, bookmarks);
   g_slist_free_full (bookmarks, g_object_unref);
 
-  gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (priv->filter_model));
+  gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (button->filter_model));
 
   update_label_and_image (user_data);
   update_combo_box (user_data);
@@ -2410,95 +2366,90 @@ bookmarks_changed_cb (gpointer user_data)
 static void
 save_inactive_state (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
-
-  if (priv->current_folder_while_inactive)
-    g_object_unref (priv->current_folder_while_inactive);
+  if (button->current_folder_while_inactive)
+    g_object_unref (button->current_folder_while_inactive);
 
-  if (priv->selection_while_inactive)
-    g_object_unref (priv->selection_while_inactive);
+  if (button->selection_while_inactive)
+    g_object_unref (button->selection_while_inactive);
 
-  priv->current_folder_while_inactive = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER 
(priv->chooser));
-  priv->selection_while_inactive = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (priv->chooser));
+  button->current_folder_while_inactive = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER 
(button->chooser));
+  button->selection_while_inactive = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (button->chooser));
 }
 
 static void
 restore_inactive_state (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
+  if (button->current_folder_while_inactive)
+    gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button->chooser), 
button->current_folder_while_inactive, NULL);
 
-  if (priv->current_folder_while_inactive)
-    gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (priv->chooser), 
priv->current_folder_while_inactive, NULL);
-
-  if (priv->selection_while_inactive)
-    gtk_file_chooser_select_file (GTK_FILE_CHOOSER (priv->chooser), priv->selection_while_inactive, NULL);
+  if (button->selection_while_inactive)
+    gtk_file_chooser_select_file (GTK_FILE_CHOOSER (button->chooser), button->selection_while_inactive, 
NULL);
   else
-    gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (priv->chooser));
+    gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (button->chooser));
 }
 
 /* Dialog */
 static void
 open_dialog (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GtkWidget *toplevel;
 
   toplevel = GTK_WIDGET (gtk_widget_get_root (GTK_WIDGET (button)));
 
   /* Setup the dialog parent to be chooser button's toplevel, and be modal
      as needed. */
-  if (priv->dialog != NULL)
+  if (button->dialog != NULL)
     {
-      if (!gtk_widget_get_visible (priv->dialog))
+      if (!gtk_widget_get_visible (button->dialog))
         {
           if (GTK_IS_WINDOW (toplevel))
             {
               gboolean modal;
 
-              if (GTK_WINDOW (toplevel) != gtk_window_get_transient_for (GTK_WINDOW (priv->dialog)))
-                gtk_window_set_transient_for (GTK_WINDOW (priv->dialog),
+              if (GTK_WINDOW (toplevel) != gtk_window_get_transient_for (GTK_WINDOW (button->dialog)))
+                gtk_window_set_transient_for (GTK_WINDOW (button->dialog),
                                               GTK_WINDOW (toplevel));
 
-              g_object_get (priv->dialog, "modal", &modal, NULL);
-              gtk_window_set_modal (GTK_WINDOW (priv->dialog),
+              g_object_get (button->dialog, "modal", &modal, NULL);
+              gtk_window_set_modal (GTK_WINDOW (button->dialog),
                                     modal | gtk_window_get_modal (GTK_WINDOW (toplevel)));
             }
         }
     }
   else
     {
-      if (!gtk_native_dialog_get_visible (GTK_NATIVE_DIALOG (priv->native)))
+      if (!gtk_native_dialog_get_visible (GTK_NATIVE_DIALOG (button->native)))
         {
           if (GTK_IS_WINDOW (toplevel))
             {
               gboolean modal;
 
-              if (GTK_WINDOW (toplevel) != gtk_native_dialog_get_transient_for (GTK_NATIVE_DIALOG 
(priv->native)))
-                gtk_native_dialog_set_transient_for (GTK_NATIVE_DIALOG (priv->native),
+              if (GTK_WINDOW (toplevel) != gtk_native_dialog_get_transient_for (GTK_NATIVE_DIALOG 
(button->native)))
+                gtk_native_dialog_set_transient_for (GTK_NATIVE_DIALOG (button->native),
                                                      GTK_WINDOW (toplevel));
 
-              g_object_get (priv->native, "modal", &modal, NULL);
-              gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (priv->native),
+              g_object_get (button->native, "modal", &modal, NULL);
+              gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (button->native),
                                            modal | gtk_window_get_modal (GTK_WINDOW (toplevel)));
             }
         }
     }
 
-  if (!priv->active)
+  if (!button->active)
     {
       restore_inactive_state (button);
-      priv->active = TRUE;
+      button->active = TRUE;
     }
 
-  gtk_widget_set_sensitive (priv->combo_box, FALSE);
-  if (priv->dialog)
+  gtk_widget_set_sensitive (button->combo_box, FALSE);
+  if (button->dialog)
     {
       G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-      gtk_window_present (GTK_WINDOW (priv->dialog));
+      gtk_window_present (GTK_WINDOW (button->dialog));
       G_GNUC_END_IGNORE_DEPRECATIONS
     }
   else
-    gtk_native_dialog_show (GTK_NATIVE_DIALOG (priv->native));
+    gtk_native_dialog_show (GTK_NATIVE_DIALOG (button->native));
 }
 
 /* Combo Box */
@@ -2507,7 +2458,6 @@ combo_box_changed_cb (GtkComboBox *combo_box,
                      gpointer     user_data)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (user_data);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
   GtkTreeIter iter;
   gboolean file_was_set;
 
@@ -2521,7 +2471,7 @@ combo_box_changed_cb (GtkComboBox *combo_box,
       type = ROW_TYPE_INVALID;
       data = NULL;
 
-      gtk_tree_model_get (priv->filter_model, &iter,
+      gtk_tree_model_get (button->filter_model, &iter,
                          TYPE_COLUMN, &type,
                          DATA_COLUMN, &data,
                          -1);
@@ -2577,8 +2527,6 @@ static void
 common_response_cb (GtkFileChooserButton *button,
                    gint       response)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
-
   if (response == GTK_RESPONSE_ACCEPT ||
       response == GTK_RESPONSE_OK)
     {
@@ -2592,13 +2540,13 @@ common_response_cb (GtkFileChooserButton *button,
       restore_inactive_state (button);
     }
 
-  if (priv->active)
-    priv->active = FALSE;
+  if (button->active)
+    button->active = FALSE;
 
   update_label_and_image (button);
   update_combo_box (button);
 
-  gtk_widget_set_sensitive (priv->combo_box, TRUE);
+  gtk_widget_set_sensitive (button->combo_box, TRUE);
 }
 
 
@@ -2608,11 +2556,10 @@ dialog_response_cb (GtkDialog *dialog,
                    gpointer   user_data)
 {
   GtkFileChooserButton *button = GTK_FILE_CHOOSER_BUTTON (user_data);
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
 
   common_response_cb (button, response);
 
-  gtk_widget_hide (priv->dialog);
+  gtk_widget_hide (button->dialog);
 
   if (response == GTK_RESPONSE_ACCEPT ||
       response == GTK_RESPONSE_OK)
@@ -2700,14 +2647,12 @@ void
 gtk_file_chooser_button_set_title (GtkFileChooserButton *button,
                                   const gchar          *title)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
-
   g_return_if_fail (GTK_IS_FILE_CHOOSER_BUTTON (button));
 
-  if (priv->dialog)
-    gtk_window_set_title (GTK_WINDOW (priv->dialog), title);
+  if (button->dialog)
+    gtk_window_set_title (GTK_WINDOW (button->dialog), title);
   else
-    gtk_native_dialog_set_title (GTK_NATIVE_DIALOG (priv->native), title);
+    gtk_native_dialog_set_title (GTK_NATIVE_DIALOG (button->native), title);
   g_object_notify (G_OBJECT (button), "title");
 }
 
@@ -2723,14 +2668,12 @@ gtk_file_chooser_button_set_title (GtkFileChooserButton *button,
 const gchar *
 gtk_file_chooser_button_get_title (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
-
   g_return_val_if_fail (GTK_IS_FILE_CHOOSER_BUTTON (button), NULL);
 
-  if (priv->dialog)
-    return gtk_window_get_title (GTK_WINDOW (priv->dialog));
+  if (button->dialog)
+    return gtk_window_get_title (GTK_WINDOW (button->dialog));
   else
-    return gtk_native_dialog_get_title (GTK_NATIVE_DIALOG (priv->native));
+    return gtk_native_dialog_get_title (GTK_NATIVE_DIALOG (button->native));
 }
 
 /**
@@ -2744,11 +2687,9 @@ gtk_file_chooser_button_get_title (GtkFileChooserButton *button)
 gint
 gtk_file_chooser_button_get_width_chars (GtkFileChooserButton *button)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
-
   g_return_val_if_fail (GTK_IS_FILE_CHOOSER_BUTTON (button), -1);
 
-  return gtk_label_get_width_chars (GTK_LABEL (priv->label));
+  return gtk_label_get_width_chars (GTK_LABEL (button->label));
 }
 
 /**
@@ -2762,14 +2703,19 @@ void
 gtk_file_chooser_button_set_width_chars (GtkFileChooserButton *button,
                                         gint                  n_chars)
 {
-  GtkFileChooserButtonPrivate *priv = gtk_file_chooser_button_get_instance_private (button);
-
   g_return_if_fail (GTK_IS_FILE_CHOOSER_BUTTON (button));
 
-  gtk_label_set_width_chars (GTK_LABEL (priv->label), n_chars);
+  gtk_label_set_width_chars (GTK_LABEL (button->label), n_chars);
   g_object_notify (G_OBJECT (button), "width-chars");
 }
 
+/**
+ * gtk_file_chooser_button_set_modal:
+ * @button: a #GtkFileChooserButton
+ * @modal: %TRUE to make the dialog modal
+ *
+ * Sets whether the dialog should be modal.
+ */
 void
 gtk_file_chooser_button_set_modal (GtkFileChooserButton *button,
                                    gboolean              modal)
@@ -2779,6 +2725,14 @@ gtk_file_chooser_button_set_modal (GtkFileChooserButton *button,
   g_object_set (button, "modal", modal, NULL);
 }
 
+/**
+ * gtk_file_chooser_button_get_modal:
+ * @button: a #GtkFileChooserButton
+ *
+ * Gets whether the dialog is modal.
+ *
+ * Returns: %TRUE if the dialog is modal
+ */
 gboolean
 gtk_file_chooser_button_get_modal (GtkFileChooserButton *button)
 {


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