[nautilus] window: port to G_DECLARE_*_TYPE decl



commit ff7e8f76256b8ed7bc6a2a0c1eb0ba00f477cfdd
Author: Waqar Ahmed <waqar 17a gmail com>
Date:   Fri May 5 19:55:40 2017 +0500

    window: port to G_DECLARE_*_TYPE decl
    
    This patch ports the manual definition of macros to G_Declare type
    declaration, which makes the code cleaner and easier to read and
    understand.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=782204

 src/nautilus-window.c |  522 +++++++++++++++++++++++++++++++++----------------
 src/nautilus-window.h |   34 +---
 2 files changed, 359 insertions(+), 197 deletions(-)
---
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index eeb362a..585a91f 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -93,7 +93,7 @@ static void close_slot (NautilusWindow     *window,
 
 #define NOTIFICATION_TIMEOUT 6 /*s */
 
-struct _NautilusWindowPrivate
+typedef struct
 {
     GtkWidget *notebook;
 
@@ -139,7 +139,7 @@ struct _NautilusWindowPrivate
 
     guint sidebar_width_handler_id;
     guint bookmarks_id;
-};
+} NautilusWindowPrivate;
 
 enum
 {
@@ -319,8 +319,11 @@ action_tab_previous (GSimpleAction *action,
                      gpointer       user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
 
-    nautilus_notebook_prev_page (NAUTILUS_NOTEBOOK (window->priv->notebook));
+    nautilus_notebook_prev_page (NAUTILUS_NOTEBOOK (priv->notebook));
 }
 
 static void
@@ -329,8 +332,11 @@ action_tab_next (GSimpleAction *action,
                  gpointer       user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
 
-    nautilus_notebook_next_page (NAUTILUS_NOTEBOOK (window->priv->notebook));
+    nautilus_notebook_next_page (NAUTILUS_NOTEBOOK (priv->notebook));
 }
 
 static void
@@ -339,8 +345,11 @@ action_tab_move_left (GSimpleAction *action,
                       gpointer       user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv;
 
-    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->priv->notebook), -1);
+    priv = nautilus_window_get_instance_private (window);
+
+    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (priv->notebook), -1);
 }
 
 static void
@@ -349,8 +358,11 @@ action_tab_move_right (GSimpleAction *action,
                        gpointer       user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
 
-    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->priv->notebook), 1);
+    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (priv->notebook), 1);
 }
 
 static void
@@ -359,10 +371,12 @@ action_go_to_tab (GSimpleAction *action,
                   gpointer       user_data)
 {
     NautilusWindow *window = NAUTILUS_WINDOW (user_data);
+    NautilusWindowPrivate *priv;
     GtkNotebook *notebook;
     gint16 num;
 
-    notebook = GTK_NOTEBOOK (window->priv->notebook);
+    priv = nautilus_window_get_instance_private (window);
+    notebook = GTK_NOTEBOOK (priv->notebook);
 
     num = g_variant_get_int32 (value);
     if (num < gtk_notebook_get_n_pages (notebook))
@@ -436,7 +450,11 @@ action_toggle_state_view_button (GSimpleAction *action,
 static void
 on_location_changed (NautilusWindow *window)
 {
-    gtk_places_sidebar_set_location (GTK_PLACES_SIDEBAR (window->priv->places_sidebar),
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    gtk_places_sidebar_set_location (GTK_PLACES_SIDEBAR (priv->places_sidebar),
                                      nautilus_window_slot_get_location (nautilus_window_get_active_slot 
(window)));
 }
 
@@ -459,8 +477,10 @@ notebook_switch_page_cb (GtkNotebook    *notebook,
 {
     NautilusWindowSlot *slot;
     GtkWidget *widget;
+    NautilusWindowPrivate *priv;
 
-    widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (window->priv->notebook), page_num);
+    priv = nautilus_window_get_instance_private (window);
+    widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), page_num);
     g_assert (widget != NULL);
 
     /* find slot corresponding to the target page */
@@ -545,25 +565,29 @@ nautilus_window_initialize_slot (NautilusWindow          *window,
                                  NautilusWindowSlot      *slot,
                                  NautilusWindowOpenFlags  flags)
 {
+    NautilusWindowPrivate *priv;
+
     g_assert (NAUTILUS_IS_WINDOW (window));
     g_assert (NAUTILUS_IS_WINDOW_SLOT (slot));
 
+    priv = nautilus_window_get_instance_private (window);
+
     connect_slot (window, slot);
 
-    g_signal_handlers_block_by_func (window->priv->notebook,
+    g_signal_handlers_block_by_func (priv->notebook,
                                      G_CALLBACK (notebook_switch_page_cb),
                                      window);
-    nautilus_notebook_add_tab (NAUTILUS_NOTEBOOK (window->priv->notebook),
+    nautilus_notebook_add_tab (NAUTILUS_NOTEBOOK (priv->notebook),
                                slot,
                                (flags & NAUTILUS_WINDOW_OPEN_SLOT_APPEND) != 0 ?
                                -1 :
-                               gtk_notebook_get_current_page (GTK_NOTEBOOK (window->priv->notebook)) + 1,
+                               gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)) + 1,
                                FALSE);
-    g_signal_handlers_unblock_by_func (window->priv->notebook,
+    g_signal_handlers_unblock_by_func (priv->notebook,
                                        G_CALLBACK (notebook_switch_page_cb),
                                        window);
 
-    window->priv->slots = g_list_append (window->priv->slots, slot);
+    priv->slots = g_list_append (priv->slots, slot);
     g_signal_emit (window, signals[SLOT_ADDED], 0, slot);
 }
 
@@ -654,27 +678,32 @@ bookmark_list_get_uri_index (GList *list,
 static void
 unset_focus_widget (NautilusWindow *window)
 {
-    if (window->priv->last_focus_widget != NULL)
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+    if (priv->last_focus_widget != NULL)
     {
-        g_object_remove_weak_pointer (G_OBJECT (window->priv->last_focus_widget),
-                                      (gpointer *) &window->priv->last_focus_widget);
-        window->priv->last_focus_widget = NULL;
+        g_object_remove_weak_pointer (G_OBJECT (priv->last_focus_widget),
+                                      (gpointer *) &priv->last_focus_widget);
+        priv->last_focus_widget = NULL;
     }
 }
 
 static void
 remember_focus_widget (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
     GtkWidget *focus_widget;
 
+    priv = nautilus_window_get_instance_private (window);
     focus_widget = gtk_window_get_focus (GTK_WINDOW (window));
     if (focus_widget != NULL)
     {
         unset_focus_widget (window);
 
-        window->priv->last_focus_widget = focus_widget;
+        priv->last_focus_widget = focus_widget;
         g_object_add_weak_pointer (G_OBJECT (focus_widget),
-                                   (gpointer *) &(window->priv->last_focus_widget));
+                                   (gpointer *) &(priv->last_focus_widget));
     }
 }
 
@@ -696,9 +725,13 @@ nautilus_window_grab_focus (GtkWidget *widget)
 static void
 restore_focus_widget (NautilusWindow *window)
 {
-    if (window->priv->last_focus_widget != NULL)
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    if (priv->last_focus_widget != NULL)
     {
-        gtk_widget_grab_focus (window->priv->last_focus_widget);
+        gtk_widget_grab_focus (priv->last_focus_widget);
         unset_focus_widget (window);
     }
 }
@@ -707,7 +740,11 @@ static void
 location_entry_cancel_callback (GtkWidget      *widget,
                                 NautilusWindow *window)
 {
-    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar), FALSE);
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (priv->toolbar), FALSE);
 
     restore_focus_widget (window);
 }
@@ -717,7 +754,11 @@ location_entry_location_changed_callback (GtkWidget      *widget,
                                           GFile          *location,
                                           NautilusWindow *window)
 {
-    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar), FALSE);
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (priv->toolbar), FALSE);
 
     restore_focus_widget (window);
 
@@ -729,20 +770,23 @@ close_slot (NautilusWindow     *window,
             NautilusWindowSlot *slot,
             gboolean            remove_from_notebook)
 {
+    NautilusWindowPrivate *priv;
     int page_num;
     GtkNotebook *notebook;
 
     g_assert (NAUTILUS_IS_WINDOW_SLOT (slot));
 
+    priv = nautilus_window_get_instance_private (window);
+
     DEBUG ("Closing slot %p", slot);
 
     disconnect_slot (window, slot);
 
-    window->priv->slots = g_list_remove (window->priv->slots, slot);
+    priv->slots = g_list_remove (priv->slots, slot);
 
     g_signal_emit (window, signals[SLOT_REMOVED], 0, slot);
 
-    notebook = GTK_NOTEBOOK (window->priv->notebook);
+    notebook = GTK_NOTEBOOK (priv->notebook);
 
     if (remove_from_notebook)
     {
@@ -833,6 +877,7 @@ nautilus_window_sync_allow_stop (NautilusWindow     *window,
     GAction *stop_action;
     GAction *reload_action;
     gboolean allow_stop, slot_is_active, slot_allow_stop;
+    NautilusWindowPrivate *priv;
 
     stop_action = g_action_map_lookup_action (G_ACTION_MAP (window),
                                               "stop");
@@ -843,6 +888,8 @@ nautilus_window_sync_allow_stop (NautilusWindow     *window,
     slot_allow_stop = nautilus_window_slot_get_allow_stop (slot);
     slot_is_active = (slot == nautilus_window_get_active_slot (window));
 
+    priv = nautilus_window_get_instance_private (window);
+
     if (!slot_is_active ||
         allow_stop != slot_allow_stop)
     {
@@ -858,9 +905,9 @@ nautilus_window_sync_allow_stop (NautilusWindow     *window,
 
         /* Avoid updating the notebook if we are calling on dispose or
          * on removal of a notebook tab */
-        if (nautilus_notebook_contains_slot (NAUTILUS_NOTEBOOK (window->priv->notebook), slot))
+        if (nautilus_notebook_contains_slot (NAUTILUS_NOTEBOOK (priv->notebook), slot))
         {
-            nautilus_notebook_sync_loading (NAUTILUS_NOTEBOOK (window->priv->notebook), slot);
+            nautilus_notebook_sync_loading (NAUTILUS_NOTEBOOK (priv->notebook), slot);
         }
     }
 }
@@ -868,21 +915,28 @@ nautilus_window_sync_allow_stop (NautilusWindow     *window,
 GtkWidget *
 nautilus_window_get_notebook (NautilusWindow *window)
 {
-    return window->priv->notebook;
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    return priv->notebook;
 }
 
 static gboolean
 save_sidebar_width_cb (gpointer user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
 
-    window->priv->sidebar_width_handler_id = 0;
+    priv->sidebar_width_handler_id = 0;
 
-    DEBUG ("Saving sidebar width: %d", window->priv->side_pane_width);
+    DEBUG ("Saving sidebar width: %d", priv->side_pane_width);
 
     g_settings_set_int (nautilus_window_state,
                         NAUTILUS_WINDOW_STATE_SIDEBAR_WIDTH,
-                        window->priv->side_pane_width);
+                        priv->side_pane_width);
 
     return FALSE;
 }
@@ -893,22 +947,23 @@ side_pane_size_allocate_callback (GtkWidget     *widget,
                                   GtkAllocation *allocation,
                                   gpointer       user_data)
 {
-    NautilusWindow *window;
+    NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv;
 
-    window = user_data;
+    priv = nautilus_window_get_instance_private (window);
 
-    if (window->priv->sidebar_width_handler_id != 0)
+    if (priv->sidebar_width_handler_id != 0)
     {
-        g_source_remove (window->priv->sidebar_width_handler_id);
-        window->priv->sidebar_width_handler_id = 0;
+        g_source_remove (priv->sidebar_width_handler_id);
+        priv->sidebar_width_handler_id = 0;
     }
 
-    if (allocation->width != window->priv->side_pane_width &&
+    if (allocation->width != priv->side_pane_width &&
         allocation->width > 1)
     {
-        window->priv->side_pane_width = allocation->width;
+        priv->side_pane_width = allocation->width;
 
-        window->priv->sidebar_width_handler_id =
+        priv->sidebar_width_handler_id =
             g_idle_add (save_sidebar_width_cb, window);
     }
 }
@@ -916,14 +971,18 @@ side_pane_size_allocate_callback (GtkWidget     *widget,
 static void
 setup_side_pane_width (NautilusWindow *window)
 {
-    g_return_if_fail (window->priv->sidebar != NULL);
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    g_return_if_fail (priv->sidebar != NULL);
 
-    window->priv->side_pane_width =
+    priv->side_pane_width =
         g_settings_get_int (nautilus_window_state,
                             NAUTILUS_WINDOW_STATE_SIDEBAR_WIDTH);
 
-    gtk_paned_set_position (GTK_PANED (window->priv->content_paned),
-                            window->priv->side_pane_width);
+    gtk_paned_set_position (GTK_PANED (priv->content_paned),
+                            priv->side_pane_width);
 }
 
 /* Callback used when the places sidebar changes location; we need to change the displayed folder */
@@ -1110,7 +1169,11 @@ void
 nautilus_window_start_dnd (NautilusWindow *window,
                            GdkDragContext *context)
 {
-    gtk_places_sidebar_set_drop_targets_visible (GTK_PLACES_SIDEBAR (window->priv->places_sidebar),
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    gtk_places_sidebar_set_drop_targets_visible (GTK_PLACES_SIDEBAR (priv->places_sidebar),
                                                  TRUE,
                                                  context);
 }
@@ -1119,7 +1182,11 @@ void
 nautilus_window_end_dnd (NautilusWindow *window,
                          GdkDragContext *context)
 {
-    gtk_places_sidebar_set_drop_targets_visible (GTK_PLACES_SIDEBAR (window->priv->places_sidebar),
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    gtk_places_sidebar_set_drop_targets_visible (GTK_PLACES_SIDEBAR (priv->places_sidebar),
                                                  FALSE,
                                                  context);
 }
@@ -1236,16 +1303,18 @@ action_properties (GSimpleAction *action,
                    gpointer       user_data)
 {
     NautilusWindow *window = NAUTILUS_WINDOW (user_data);
+    NautilusWindowPrivate *priv;
     GList *list;
     NautilusFile *file;
 
-    file = nautilus_file_get (window->priv->selected_file);
+    priv = nautilus_window_get_instance_private (window);
+    file = nautilus_file_get (priv->selected_file);
 
     list = g_list_append (NULL, file);
     nautilus_properties_window_present (list, GTK_WIDGET (window), NULL);
     nautilus_file_list_free (list);
 
-    g_clear_object (&window->priv->selected_file);
+    g_clear_object (&priv->selected_file);
 }
 
 static gboolean
@@ -1280,11 +1349,13 @@ action_format (GSimpleAction *action,
                gpointer       user_data)
 {
     NautilusWindow *window = NAUTILUS_WINDOW (user_data);
+    NautilusWindowPrivate *priv;
     GAppInfo *app_info;
     gchar *cmdline, *device_identifier, *xid_string;
     gint xid;
 
-    device_identifier = g_volume_get_identifier (window->priv->selected_volume,
+    priv = nautilus_window_get_instance_private (window);
+    device_identifier = g_volume_get_identifier (priv->selected_volume,
                                                  G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE);
     xid = (gint) gdk_x11_window_get_xid (gtk_widget_get_window (GTK_WIDGET (window)));
     xid_string = g_strdup_printf ("%d", xid);
@@ -1301,7 +1372,7 @@ action_format (GSimpleAction *action,
     g_free (device_identifier);
     g_free (xid_string);
     g_clear_object (&app_info);
-    g_clear_object (&window->priv->selected_volume);
+    g_clear_object (&priv->selected_volume);
 }
 
 static void
@@ -1322,12 +1393,15 @@ places_sidebar_populate_popup_cb (GtkPlacesSidebar *sidebar,
                                   gpointer          user_data)
 {
     NautilusWindow *window = NAUTILUS_WINDOW (user_data);
+    NautilusWindowPrivate *priv;
     GFile *trash;
     GtkWidget *menu_item;
     GAction *action;
 
-    g_clear_object (&window->priv->selected_file);
-    g_clear_object (&window->priv->selected_volume);
+    priv = nautilus_window_get_instance_private (window);
+
+    g_clear_object (&priv->selected_file);
+    g_clear_object (&priv->selected_volume);
 
     if (selected_file)
     {
@@ -1352,7 +1426,7 @@ places_sidebar_populate_popup_cb (GtkPlacesSidebar *sidebar,
 
         if (g_file_is_native (selected_file))
         {
-            window->priv->selected_file = g_object_ref (selected_file);
+            priv->selected_file = g_object_ref (selected_file);
             add_menu_separator (menu);
 
             menu_item = gtk_model_button_new ();
@@ -1373,7 +1447,7 @@ places_sidebar_populate_popup_cb (GtkPlacesSidebar *sidebar,
             g_object_set (menu_item, "text", _("_Format…"), NULL);
             if (selected_volume != NULL && G_IS_VOLUME (selected_volume))
             {
-                window->priv->selected_volume = g_object_ref (selected_volume);
+                priv->selected_volume = g_object_ref (selected_volume);
             }
             gtk_container_add (GTK_CONTAINER (menu), menu_item);
             gtk_widget_show (menu_item);
@@ -1390,65 +1464,80 @@ places_sidebar_populate_popup_cb (GtkPlacesSidebar *sidebar,
 static void
 nautilus_window_set_up_sidebar (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
     setup_side_pane_width (window);
-    g_signal_connect (window->priv->sidebar,
+    g_signal_connect (priv->sidebar,
                       "size-allocate",
                       G_CALLBACK (side_pane_size_allocate_callback),
                       window);
 
-    gtk_places_sidebar_set_open_flags (GTK_PLACES_SIDEBAR (window->priv->places_sidebar),
+    gtk_places_sidebar_set_open_flags (GTK_PLACES_SIDEBAR (priv->places_sidebar),
                                        (GTK_PLACES_OPEN_NORMAL
                                         | GTK_PLACES_OPEN_NEW_TAB
                                         | GTK_PLACES_OPEN_NEW_WINDOW));
 
-    g_signal_connect_swapped (window->priv->places_sidebar, "open-location",
+    g_signal_connect_swapped (priv->places_sidebar, "open-location",
                               G_CALLBACK (open_location_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "show-error-message",
+    g_signal_connect (priv->places_sidebar, "show-error-message",
                       G_CALLBACK (places_sidebar_show_error_message_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "drag-action-requested",
+    g_signal_connect (priv->places_sidebar, "drag-action-requested",
                       G_CALLBACK (places_sidebar_drag_action_requested_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "drag-action-ask",
+    g_signal_connect (priv->places_sidebar, "drag-action-ask",
                       G_CALLBACK (places_sidebar_drag_action_ask_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "drag-perform-drop",
+    g_signal_connect (priv->places_sidebar, "drag-perform-drop",
                       G_CALLBACK (places_sidebar_drag_perform_drop_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "populate-popup",
+    g_signal_connect (priv->places_sidebar, "populate-popup",
                       G_CALLBACK (places_sidebar_populate_popup_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "unmount",
+    g_signal_connect (priv->places_sidebar, "unmount",
                       G_CALLBACK (places_sidebar_unmount_operation_cb), window);
 }
 
 void
 nautilus_window_hide_sidebar (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
+
     DEBUG ("Called hide_sidebar()");
 
-    gtk_widget_hide (window->priv->sidebar);
+    priv = nautilus_window_get_instance_private (window);
+
+    gtk_widget_hide (priv->sidebar);
 }
 
 void
 nautilus_window_show_sidebar (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
+
     DEBUG ("Called show_sidebar()");
 
-    if (window->priv->disable_chrome)
+    priv = nautilus_window_get_instance_private (window);
+
+    if (priv->disable_chrome)
     {
         return;
     }
 
-    gtk_widget_show (window->priv->sidebar);
+    gtk_widget_show (priv->sidebar);
     setup_side_pane_width (window);
 }
 
 static inline NautilusWindowSlot *
 get_first_inactive_slot (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
     GList *l;
     NautilusWindowSlot *slot;
 
-    for (l = window->priv->slots; l != NULL; l = l->next)
+    priv = nautilus_window_get_instance_private (window);
+
+    for (l = priv->slots; l != NULL; l = l->next)
     {
         slot = NAUTILUS_WINDOW_SLOT (l->data);
-        if (slot != window->priv->active_slot)
+        if (slot != priv->active_slot)
         {
             return slot;
         }
@@ -1461,6 +1550,7 @@ void
 nautilus_window_slot_close (NautilusWindow     *window,
                             NautilusWindowSlot *slot)
 {
+    NautilusWindowPrivate *priv;
     NautilusWindowSlot *next_slot;
 
     DEBUG ("Requesting to remove slot %p from window %p", slot, window);
@@ -1469,7 +1559,9 @@ nautilus_window_slot_close (NautilusWindow     *window,
         return;
     }
 
-    if (window->priv->active_slot == slot)
+    priv = nautilus_window_get_instance_private (window);
+
+    if (priv->active_slot == slot)
     {
         next_slot = get_first_inactive_slot (window);
         nautilus_window_set_active_slot (window, next_slot);
@@ -1478,7 +1570,7 @@ nautilus_window_slot_close (NautilusWindow     *window,
     close_slot (window, slot, TRUE);
 
     /* If that was the last slot in the window, close the window. */
-    if (window->priv->slots == NULL)
+    if (priv->slots == NULL)
     {
         DEBUG ("Last slot removed, closing the window");
         nautilus_window_close (window);
@@ -1488,13 +1580,15 @@ nautilus_window_slot_close (NautilusWindow     *window,
 static void
 nautilus_window_sync_bookmarks (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
     gboolean can_bookmark = FALSE;
     NautilusWindowSlot *slot;
     NautilusBookmarkList *bookmarks;
     GAction *action;
     GFile *location;
 
-    slot = window->priv->active_slot;
+    priv = nautilus_window_get_instance_private (window);
+    slot = priv->active_slot;
     location = nautilus_window_slot_get_location (slot);
 
     if (location != NULL)
@@ -1511,12 +1605,14 @@ nautilus_window_sync_bookmarks (NautilusWindow *window)
 void
 nautilus_window_sync_location_widgets (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
     NautilusWindowSlot *slot;
     GFile *location;
     GAction *action;
     gboolean enabled;
 
-    slot = window->priv->active_slot;
+    priv = nautilus_window_get_instance_private (window);
+    slot = priv->active_slot;
     location = nautilus_window_slot_get_location (slot);
 
     /* Change the location bar and path bar to match the current location. */
@@ -1525,10 +1621,10 @@ nautilus_window_sync_location_widgets (NautilusWindow *window)
         GtkWidget *location_entry;
         GtkWidget *path_bar;
 
-        location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar));
+        location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (priv->toolbar));
         nautilus_location_entry_set_location (NAUTILUS_LOCATION_ENTRY (location_entry), location);
 
-        path_bar = nautilus_toolbar_get_path_bar (NAUTILUS_TOOLBAR (window->priv->toolbar));
+        path_bar = nautilus_toolbar_get_path_bar (NAUTILUS_TOOLBAR (priv->toolbar));
         nautilus_path_bar_set_path (NAUTILUS_PATH_BAR (path_bar), location);
     }
 
@@ -1546,13 +1642,16 @@ nautilus_window_sync_location_widgets (NautilusWindow *window)
 static GtkWidget *
 nautilus_window_ensure_location_entry (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
     GtkWidget *location_entry;
 
+    priv = nautilus_window_get_instance_private (window);
+
     remember_focus_widget (window);
 
-    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar), TRUE);
+    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (priv->toolbar), TRUE);
 
-    location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar));
+    location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (priv->toolbar));
     gtk_widget_grab_focus (location_entry);
 
     return location_entry;
@@ -1561,46 +1660,52 @@ nautilus_window_ensure_location_entry (NautilusWindow *window)
 static void
 remove_notifications (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
     GtkRevealerTransitionType transition_type;
 
+    priv = nautilus_window_get_instance_private (window);
     /* Hide it inmediatily so we can animate the new notification. */
-    transition_type = gtk_revealer_get_transition_type (GTK_REVEALER (window->priv->notification_delete));
-    gtk_revealer_set_transition_type (GTK_REVEALER (window->priv->notification_delete),
+    transition_type = gtk_revealer_get_transition_type (GTK_REVEALER (priv->notification_delete));
+    gtk_revealer_set_transition_type (GTK_REVEALER (priv->notification_delete),
                                       GTK_REVEALER_TRANSITION_TYPE_NONE);
-    gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_delete),
+    gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_delete),
                                    FALSE);
-    gtk_revealer_set_transition_type (GTK_REVEALER (window->priv->notification_delete),
+    gtk_revealer_set_transition_type (GTK_REVEALER (priv->notification_delete),
                                       transition_type);
-    if (window->priv->notification_delete_timeout_id != 0)
+    if (priv->notification_delete_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_delete_timeout_id);
-        window->priv->notification_delete_timeout_id = 0;
+        g_source_remove (priv->notification_delete_timeout_id);
+        priv->notification_delete_timeout_id = 0;
     }
 
-    transition_type = gtk_revealer_get_transition_type (GTK_REVEALER (window->priv->notification_operation));
-    gtk_revealer_set_transition_type (GTK_REVEALER (window->priv->notification_operation),
+    transition_type = gtk_revealer_get_transition_type (GTK_REVEALER (priv->notification_operation));
+    gtk_revealer_set_transition_type (GTK_REVEALER (priv->notification_operation),
                                       GTK_REVEALER_TRANSITION_TYPE_NONE);
-    gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_operation),
+    gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_operation),
                                    FALSE);
-    gtk_revealer_set_transition_type (GTK_REVEALER (window->priv->notification_operation),
+    gtk_revealer_set_transition_type (GTK_REVEALER (priv->notification_operation),
                                       transition_type);
-    if (window->priv->notification_operation_timeout_id != 0)
+    if (priv->notification_operation_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_operation_timeout_id);
-        window->priv->notification_operation_timeout_id = 0;
+        g_source_remove (priv->notification_operation_timeout_id);
+        priv->notification_operation_timeout_id = 0;
     }
 }
 
 static void
 hide_notification_delete (NautilusWindow *window)
 {
-    if (window->priv->notification_delete_timeout_id != 0)
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    if (priv->notification_delete_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_delete_timeout_id);
-        window->priv->notification_delete_timeout_id = 0;
+        g_source_remove (priv->notification_delete_timeout_id);
+        priv->notification_delete_timeout_id = 0;
     }
 
-    gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_delete), FALSE);
+    gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_delete), FALSE);
 }
 
 static void
@@ -1657,18 +1762,20 @@ static void
 nautilus_window_on_undo_changed (NautilusFileUndoManager *manager,
                                  NautilusWindow          *window)
 {
+    NautilusWindowPrivate *priv;
     NautilusFileUndoInfo *undo_info;
     NautilusFileUndoManagerState state;
     gchar *label;
     GList *files;
 
+    priv = nautilus_window_get_instance_private (window);
     undo_info = nautilus_file_undo_manager_get_action ();
     state = nautilus_file_undo_manager_get_state ();
 
     if (undo_info != NULL &&
         state == NAUTILUS_FILE_UNDO_MANAGER_STATE_UNDO &&
         nautilus_file_undo_info_get_op_type (undo_info) == NAUTILUS_FILE_UNDO_OP_MOVE_TO_TRASH &&
-        !window->priv->disable_chrome)
+        !priv->disable_chrome)
     {
         files = nautilus_file_undo_info_trash_get_files (NAUTILUS_FILE_UNDO_INFO_TRASH (undo_info));
 
@@ -1678,9 +1785,9 @@ nautilus_window_on_undo_changed (NautilusFileUndoManager *manager,
         if (g_list_length (files) > 0 && gtk_window_has_toplevel_focus (GTK_WINDOW (window)))
         {
             label = nautilus_window_notification_delete_get_label (undo_info, files);
-            gtk_label_set_markup (GTK_LABEL (window->priv->notification_delete_label), label);
-            gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_delete), TRUE);
-            window->priv->notification_delete_timeout_id = g_timeout_add_seconds (NOTIFICATION_TIMEOUT,
+            gtk_label_set_markup (GTK_LABEL (priv->notification_delete_label), label);
+            gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_delete), TRUE);
+            priv->notification_delete_timeout_id = g_timeout_add_seconds (NOTIFICATION_TIMEOUT,
                                                                                   (GSourceFunc) 
nautilus_window_on_notification_delete_timeout,
                                                                                   window);
             g_free (label);
@@ -1696,21 +1803,29 @@ nautilus_window_on_undo_changed (NautilusFileUndoManager *manager,
 static void
 hide_notification_operation (NautilusWindow *window)
 {
-    if (window->priv->notification_operation_timeout_id != 0)
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    if (priv->notification_operation_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_operation_timeout_id);
-        window->priv->notification_operation_timeout_id = 0;
+        g_source_remove (priv->notification_operation_timeout_id);
+        priv->notification_operation_timeout_id = 0;
     }
 
-    gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_operation), FALSE);
-    g_clear_object (&window->priv->folder_to_open);
+    gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_operation), FALSE);
+    g_clear_object (&priv->folder_to_open);
 }
 
 static void
 on_notification_operation_open_clicked (GtkWidget      *notification,
                                         NautilusWindow *window)
 {
-    nautilus_window_open_location_full (window, window->priv->folder_to_open,
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    nautilus_window_open_location_full (window, priv->folder_to_open,
                                         0, NULL, NULL);
     hide_notification_operation (window);
 }
@@ -1735,39 +1850,41 @@ nautilus_window_show_operation_notification (NautilusWindow *window,
                                              gchar          *main_label,
                                              GFile          *folder_to_open)
 {
+    NautilusWindowPrivate *priv;
     gchar *button_label;
     gchar *folder_name;
     NautilusFile *folder;
     GFile *current_location;
 
-    current_location = nautilus_window_slot_get_location (window->priv->active_slot);
+    priv = nautilus_window_get_instance_private (window);
+    current_location = nautilus_window_slot_get_location (priv->active_slot);
     if (gtk_window_has_toplevel_focus (GTK_WINDOW (window)) &&
-        !window->priv->disable_chrome)
+        !priv->disable_chrome)
     {
         remove_notifications (window);
-        gtk_label_set_text (GTK_LABEL (window->priv->notification_operation_label),
+        gtk_label_set_text (GTK_LABEL (priv->notification_operation_label),
                             main_label);
 
         if (g_file_equal (folder_to_open, current_location))
         {
-            gtk_widget_hide (window->priv->notification_operation_open);
+            gtk_widget_hide (priv->notification_operation_open);
         }
         else
         {
-            gtk_widget_show (window->priv->notification_operation_open);
-            window->priv->folder_to_open = g_object_ref (folder_to_open);
+            gtk_widget_show (priv->notification_operation_open);
+            priv->folder_to_open = g_object_ref (folder_to_open);
             folder = nautilus_file_get (folder_to_open);
             folder_name = nautilus_file_get_display_name (folder);
             button_label = g_strdup_printf (_("Open %s"), folder_name);
-            gtk_button_set_label (GTK_BUTTON (window->priv->notification_operation_open),
+            gtk_button_set_label (GTK_BUTTON (priv->notification_operation_open),
                                   button_label);
             nautilus_file_unref (folder);
             g_free (folder_name);
             g_free (button_label);
         }
 
-        gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_operation), TRUE);
-        window->priv->notification_operation_timeout_id = g_timeout_add_seconds (NOTIFICATION_TIMEOUT,
+        gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_operation), TRUE);
+        priv->notification_operation_timeout_id = g_timeout_add_seconds (NOTIFICATION_TIMEOUT,
                                                                                  (GSourceFunc) 
on_notification_operation_timeout,
                                                                                  window);
     }
@@ -1778,10 +1895,12 @@ path_bar_location_changed_callback (GtkWidget      *widget,
                                     GFile          *location,
                                     NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
     NautilusWindowSlot *slot;
     int i;
 
-    slot = window->priv->active_slot;
+    priv = nautilus_window_get_instance_private (window);
+    slot = priv->active_slot;
     /* check whether we already visited the target location */
     i = bookmark_list_get_uri_index (nautilus_window_slot_get_back_history (slot), location);
     if (i >= 0)
@@ -1808,8 +1927,11 @@ notebook_popup_menu_move_left_cb (GtkMenuItem *menuitem,
                                   gpointer     user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv;
 
-    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->priv->notebook), -1);
+    priv = nautilus_window_get_instance_private (window);
+
+    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (priv->notebook), -1);
 }
 
 static void
@@ -1817,8 +1939,11 @@ notebook_popup_menu_move_right_cb (GtkMenuItem *menuitem,
                                    gpointer     user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
 
-    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->priv->notebook), 1);
+    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (priv->notebook), 1);
 }
 
 static void
@@ -1826,9 +1951,11 @@ notebook_popup_menu_close_cb (GtkMenuItem *menuitem,
                               gpointer     user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv;
     NautilusWindowSlot *slot;
 
-    slot = window->priv->active_slot;
+    priv = nautilus_window_get_instance_private (window);
+    slot = priv->active_slot;
     nautilus_window_slot_close (window, slot);
 }
 
@@ -1836,12 +1963,14 @@ static void
 notebook_popup_menu_show (NautilusWindow *window,
                           GdkEventButton *event)
 {
+    NautilusWindowPrivate *priv;
     GtkWidget *popup;
     GtkWidget *item;
     gboolean can_move_left, can_move_right;
     NautilusNotebook *notebook;
 
-    notebook = NAUTILUS_NOTEBOOK (window->priv->notebook);
+    priv = nautilus_window_get_instance_private (window);
+    notebook = NAUTILUS_NOTEBOOK (priv->notebook);
 
     can_move_left = nautilus_notebook_can_reorder_current_child_relative (notebook, -1);
     can_move_right = nautilus_notebook_can_reorder_current_child_relative (notebook, 1);
@@ -1926,22 +2055,29 @@ notebook_popup_menu_cb (GtkWidget *widget,
 GtkWidget *
 nautilus_window_get_toolbar (NautilusWindow *window)
 {
-    return window->priv->toolbar;
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    return priv->toolbar;
 }
 
 static void
 setup_toolbar (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
     GtkWidget *path_bar;
     GtkWidget *location_entry;
 
-    g_object_set (window->priv->toolbar, "window", window, NULL);
+    priv = nautilus_window_get_instance_private (window);
+
+    g_object_set (priv->toolbar, "window", window, NULL);
     g_object_bind_property (window, "disable-chrome",
-                            window->priv->toolbar, "visible",
+                            priv->toolbar, "visible",
                             G_BINDING_INVERT_BOOLEAN);
 
     /* connect to the pathbar signals */
-    path_bar = nautilus_toolbar_get_path_bar (NAUTILUS_TOOLBAR (window->priv->toolbar));
+    path_bar = nautilus_toolbar_get_path_bar (NAUTILUS_TOOLBAR (priv->toolbar));
 
     g_signal_connect_object (path_bar, "path-clicked",
                              G_CALLBACK (path_bar_location_changed_callback), window, 0);
@@ -1949,7 +2085,7 @@ setup_toolbar (NautilusWindow *window)
                               G_CALLBACK (open_location_cb), window);
 
     /* connect to the location entry signals */
-    location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar));
+    location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (priv->toolbar));
 
     g_signal_connect_object (location_entry, "location-changed",
                              G_CALLBACK (location_entry_location_changed_callback), window, 0);
@@ -1964,16 +2100,18 @@ notebook_page_removed_cb (GtkNotebook *notebook,
                           gpointer     user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv;
     NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (page), *next_slot;
     gboolean dnd_slot;
 
+    priv = nautilus_window_get_instance_private (window);
     dnd_slot = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (slot), "dnd-window-slot"));
     if (!dnd_slot)
     {
         return;
     }
 
-    if (window->priv->active_slot == slot)
+    if (priv->active_slot == slot)
     {
         next_slot = get_first_inactive_slot (window);
         nautilus_window_set_active_slot (window, next_slot);
@@ -1989,10 +2127,12 @@ notebook_page_added_cb (GtkNotebook *notebook,
                         gpointer     user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv;
     NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (page);
     NautilusWindowSlot *dummy_slot;
     gboolean dnd_slot;
 
+    priv = nautilus_window_get_instance_private (window);
     dnd_slot = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (slot), "dnd-window-slot"));
     if (!dnd_slot)
     {
@@ -2003,12 +2143,12 @@ notebook_page_added_cb (GtkNotebook *notebook,
                        GINT_TO_POINTER (FALSE));
 
     nautilus_window_slot_set_window (slot, window);
-    window->priv->slots = g_list_append (window->priv->slots, slot);
+    priv->slots = g_list_append (priv->slots, slot);
     g_signal_emit (window, signals[SLOT_ADDED], 0, slot);
 
     nautilus_window_set_active_slot (window, slot);
 
-    dummy_slot = g_list_nth_data (window->priv->slots, 0);
+    dummy_slot = g_list_nth_data (priv->slots, 0);
     if (dummy_slot != NULL)
     {
         close_slot (window, dummy_slot, TRUE);
@@ -2026,6 +2166,7 @@ notebook_create_window_cb (GtkNotebook *notebook,
 {
     NautilusApplication *app;
     NautilusWindow *new_window;
+    NautilusWindowPrivate *priv;
     NautilusWindowSlot *slot;
 
     if (!NAUTILUS_IS_WINDOW_SLOT (page))
@@ -2036,6 +2177,7 @@ notebook_create_window_cb (GtkNotebook *notebook,
     app = NAUTILUS_APPLICATION (g_application_get_default ());
     new_window = nautilus_application_create_window
                      (app, gtk_widget_get_screen (GTK_WIDGET (notebook)));
+    priv = nautilus_window_get_instance_private (new_window);
 
     slot = NAUTILUS_WINDOW_SLOT (page);
     g_object_set_data (G_OBJECT (slot), "dnd-window-slot",
@@ -2043,31 +2185,35 @@ notebook_create_window_cb (GtkNotebook *notebook,
 
     gtk_window_set_position (GTK_WINDOW (new_window), GTK_WIN_POS_MOUSE);
 
-    return GTK_NOTEBOOK (new_window->priv->notebook);
+    return GTK_NOTEBOOK (priv->notebook);
 }
 
 static void
 setup_notebook (NautilusWindow *window)
 {
-    g_signal_connect (window->priv->notebook, "tab-close-request",
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    g_signal_connect (priv->notebook, "tab-close-request",
                       G_CALLBACK (notebook_tab_close_requested),
                       window);
-    g_signal_connect (window->priv->notebook, "popup-menu",
+    g_signal_connect (priv->notebook, "popup-menu",
                       G_CALLBACK (notebook_popup_menu_cb),
                       window);
-    g_signal_connect (window->priv->notebook, "switch-page",
+    g_signal_connect (priv->notebook, "switch-page",
                       G_CALLBACK (notebook_switch_page_cb),
                       window);
-    g_signal_connect (window->priv->notebook, "create-window",
+    g_signal_connect (priv->notebook, "create-window",
                       G_CALLBACK (notebook_create_window_cb),
                       window);
-    g_signal_connect (window->priv->notebook, "page-added",
+    g_signal_connect (priv->notebook, "page-added",
                       G_CALLBACK (notebook_page_added_cb),
                       window);
-    g_signal_connect (window->priv->notebook, "page-removed",
+    g_signal_connect (priv->notebook, "page-removed",
                       G_CALLBACK (notebook_page_removed_cb),
                       window);
-    g_signal_connect_after (window->priv->notebook, "button-press-event",
+    g_signal_connect_after (priv->notebook, "button-press-event",
                             G_CALLBACK (notebook_button_press_cb),
                             window);
 }
@@ -2167,10 +2313,12 @@ static void
 nautilus_window_constructed (GObject *self)
 {
     NautilusWindow *window;
+    NautilusWindowPrivate *priv;
     NautilusWindowSlot *slot;
     NautilusApplication *application;
 
     window = NAUTILUS_WINDOW (self);
+    priv = nautilus_window_get_instance_private (window);
 
     nautilus_profile_start (NULL);
 
@@ -2200,11 +2348,11 @@ nautilus_window_constructed (GObject *self)
     nautilus_window_initialize_slot (window, slot, 0);
     nautilus_window_set_active_slot (window, slot);
 
-    window->priv->bookmarks_id =
+    priv->bookmarks_id =
         g_signal_connect_swapped (nautilus_application_get_bookmarks (application), "changed",
                                   G_CALLBACK (nautilus_window_sync_bookmarks), window);
 
-    nautilus_toolbar_on_window_constructed (NAUTILUS_TOOLBAR (window->priv->toolbar));
+    nautilus_toolbar_on_window_constructed (NAUTILUS_TOOLBAR (priv->toolbar));
 
     nautilus_profile_end (NULL);
 }
@@ -2216,14 +2364,16 @@ nautilus_window_set_property (GObject      *object,
                               GParamSpec   *pspec)
 {
     NautilusWindow *window;
-
     window = NAUTILUS_WINDOW (object);
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
 
     switch (arg_id)
     {
         case PROP_DISABLE_CHROME:
         {
-            window->priv->disable_chrome = g_value_get_boolean (value);
+            priv->disable_chrome = g_value_get_boolean (value);
         }
         break;
 
@@ -2242,14 +2392,16 @@ nautilus_window_get_property (GObject    *object,
                               GParamSpec *pspec)
 {
     NautilusWindow *window;
-
     window = NAUTILUS_WINDOW (object);
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
 
     switch (arg_id)
     {
         case PROP_DISABLE_CHROME:
         {
-            g_value_set_boolean (value, window->priv->disable_chrome);
+            g_value_set_boolean (value, priv->disable_chrome);
         }
         break;
     }
@@ -2260,11 +2412,15 @@ sort_slots_active_last (NautilusWindowSlot *a,
                         NautilusWindowSlot *b,
                         NautilusWindow     *window)
 {
-    if (window->priv->active_slot == a)
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
+    if (priv->active_slot == a)
     {
         return 1;
     }
-    if (window->priv->active_slot == b)
+    if (priv->active_slot == b)
     {
         return -1;
     }
@@ -2285,16 +2441,18 @@ static void
 nautilus_window_destroy (GtkWidget *object)
 {
     NautilusWindow *window;
+    NautilusWindowPrivate *priv;
     NautilusApplication *application;
     GList *slots_copy;
 
     window = NAUTILUS_WINDOW (object);
+    priv = nautilus_window_get_instance_private (window);
 
     DEBUG ("Destroying window");
 
     /* close all slots safely */
-    slots_copy = g_list_copy (window->priv->slots);
-    if (window->priv->active_slot != NULL)
+    slots_copy = g_list_copy (priv->slots);
+    if (priv->active_slot != NULL)
     {
         /* Make sure active slot is last one to be closed, to avoid default activation
          * of others slots when closing the active one, see bug #741952  */
@@ -2304,16 +2462,16 @@ nautilus_window_destroy (GtkWidget *object)
     g_list_free (slots_copy);
 
     /* the slots list should now be empty */
-    g_assert (window->priv->slots == NULL);
+    g_assert (priv->slots == NULL);
 
-    window->priv->active_slot = NULL;
+    priv->active_slot = NULL;
 
-    if (window->priv->bookmarks_id != 0)
+    if (priv->bookmarks_id != 0)
     {
         application = NAUTILUS_APPLICATION (gtk_window_get_application (GTK_WINDOW (window)));
         g_signal_handler_disconnect (nautilus_application_get_bookmarks (application),
-                                     window->priv->bookmarks_id);
-        window->priv->bookmarks_id = 0;
+                                     priv->bookmarks_id);
+        priv->bookmarks_id = 0;
     }
 
     GTK_WIDGET_CLASS (nautilus_window_parent_class)->destroy (object);
@@ -2323,36 +2481,38 @@ static void
 nautilus_window_finalize (GObject *object)
 {
     NautilusWindow *window;
+    NautilusWindowPrivate *priv;
 
     window = NAUTILUS_WINDOW (object);
+    priv = nautilus_window_get_instance_private (window);
 
-    if (window->priv->sidebar_width_handler_id != 0)
+    if (priv->sidebar_width_handler_id != 0)
     {
-        g_source_remove (window->priv->sidebar_width_handler_id);
-        window->priv->sidebar_width_handler_id = 0;
+        g_source_remove (priv->sidebar_width_handler_id);
+        priv->sidebar_width_handler_id = 0;
     }
 
-    if (window->priv->notification_delete_timeout_id != 0)
+    if (priv->notification_delete_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_delete_timeout_id);
-        window->priv->notification_delete_timeout_id = 0;
+        g_source_remove (priv->notification_delete_timeout_id);
+        priv->notification_delete_timeout_id = 0;
     }
 
-    if (window->priv->notification_operation_timeout_id != 0)
+    if (priv->notification_operation_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_operation_timeout_id);
-        window->priv->notification_operation_timeout_id = 0;
+        g_source_remove (priv->notification_operation_timeout_id);
+        priv->notification_operation_timeout_id = 0;
     }
 
-    g_clear_object (&window->priv->selected_file);
-    g_clear_object (&window->priv->selected_volume);
+    g_clear_object (&priv->selected_file);
+    g_clear_object (&priv->selected_volume);
 
     g_signal_handlers_disconnect_by_func (nautilus_file_undo_manager_get (),
                                           G_CALLBACK (nautilus_window_on_undo_changed),
                                           window);
 
     /* nautilus_window_close() should have run */
-    g_assert (window->priv->slots == NULL);
+    g_assert (priv->slots == NULL);
 
     G_OBJECT_CLASS (nautilus_window_parent_class)->finalize (object);
 }
@@ -2395,10 +2555,13 @@ void
 nautilus_window_set_active_slot (NautilusWindow     *window,
                                  NautilusWindowSlot *new_slot)
 {
+    NautilusWindowPrivate *priv;
     NautilusWindowSlot *old_slot;
 
     g_assert (NAUTILUS_IS_WINDOW (window));
 
+    priv = nautilus_window_get_instance_private (window);
+
     if (new_slot)
     {
         g_assert ((window == nautilus_window_slot_get_window (new_slot)));
@@ -2420,12 +2583,12 @@ nautilus_window_set_active_slot (NautilusWindow     *window,
         nautilus_window_slot_set_active (old_slot, FALSE);
     }
 
-    window->priv->active_slot = new_slot;
+    priv->active_slot = new_slot;
 
     /* make new slot active, if it exists */
     if (new_slot)
     {
-        nautilus_toolbar_set_active_slot (NAUTILUS_TOOLBAR (window->priv->toolbar), new_slot);
+        nautilus_toolbar_set_active_slot (NAUTILUS_TOOLBAR (priv->toolbar), new_slot);
 
         /* inform slot & view */
         nautilus_window_slot_set_active (new_slot, TRUE);
@@ -2446,10 +2609,12 @@ nautilus_window_key_press_event (GtkWidget   *widget,
                                  GdkEventKey *event)
 {
     NautilusWindow *window;
+    NautilusWindowPrivate *priv;
     GtkWidget *focus_widget;
     int i;
 
     window = NAUTILUS_WINDOW (widget);
+    priv = nautilus_window_get_instance_private (window);
 
     focus_widget = gtk_window_get_focus (GTK_WINDOW (window));
     if (focus_widget != NULL && GTK_IS_EDITABLE (focus_widget))
@@ -2487,7 +2652,7 @@ nautilus_window_key_press_event (GtkWidget   *widget,
         return TRUE;
     }
 
-    if (nautilus_window_slot_handle_event (window->priv->active_slot, event))
+    if (nautilus_window_slot_handle_event (priv->active_slot, event))
     {
         return TRUE;
     }
@@ -2499,6 +2664,10 @@ void
 nautilus_window_sync_title (NautilusWindow     *window,
                             NautilusWindowSlot *slot)
 {
+    NautilusWindowPrivate *priv;
+
+    priv = nautilus_window_get_instance_private (window);
+
     if (NAUTILUS_WINDOW_CLASS (G_OBJECT_GET_CLASS (window))->sync_title != NULL)
     {
         NAUTILUS_WINDOW_CLASS (G_OBJECT_GET_CLASS (window))->sync_title (window, slot);
@@ -2511,7 +2680,7 @@ nautilus_window_sync_title (NautilusWindow     *window,
         gtk_window_set_title (GTK_WINDOW (window), nautilus_window_slot_get_title (slot));
     }
 
-    nautilus_notebook_sync_tab_label (NAUTILUS_NOTEBOOK (window->priv->notebook), slot);
+    nautilus_notebook_sync_tab_label (NAUTILUS_NOTEBOOK (priv->notebook), slot);
 }
 
 /**
@@ -2530,17 +2699,25 @@ nautilus_window_show (GtkWidget *widget)
 NautilusWindowSlot *
 nautilus_window_get_active_slot (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
+
     g_assert (NAUTILUS_IS_WINDOW (window));
 
-    return window->priv->active_slot;
+    priv = nautilus_window_get_instance_private (window);
+
+    return priv->active_slot;
 }
 
 GList *
 nautilus_window_get_slots (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv;
+
     g_assert (NAUTILUS_IS_WINDOW (window));
 
-    return window->priv->slots;
+    priv = nautilus_window_get_instance_private (window);
+
+    return priv->slots;
 }
 
 static gboolean
@@ -2641,20 +2818,21 @@ static void
 nautilus_window_init (NautilusWindow *window)
 {
     GtkWindowGroup *window_group;
+    NautilusWindowPrivate *priv;
 
-    window->priv = nautilus_window_get_instance_private (window);
+    priv = nautilus_window_get_instance_private (window);
 
     g_type_ensure (NAUTILUS_TYPE_TOOLBAR);
     g_type_ensure (NAUTILUS_TYPE_NOTEBOOK);
     gtk_widget_init_template (GTK_WIDGET (window));
 
-    g_signal_connect_object (window->priv->notification_delete_close, "clicked",
+    g_signal_connect_object (priv->notification_delete_close, "clicked",
                              G_CALLBACK (nautilus_window_on_notification_delete_close_clicked), window, 0);
-    g_signal_connect_object (window->priv->notification_delete_undo, "clicked",
+    g_signal_connect_object (priv->notification_delete_undo, "clicked",
                              G_CALLBACK (nautilus_window_on_notification_delete_undo_clicked), window, 0);
 
-    window->priv->slots = NULL;
-    window->priv->active_slot = NULL;
+    priv->slots = NULL;
+    priv->active_slot = NULL;
 
     gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (window)),
                                  "nautilus-window");
diff --git a/src/nautilus-window.h b/src/nautilus-window.h
index b6095f5..39b16e7 100644
--- a/src/nautilus-window.h
+++ b/src/nautilus-window.h
@@ -32,9 +32,7 @@
 #include "nautilus-bookmark.h"
 #include "nautilus-search-directory.h"
 
-typedef struct NautilusWindow NautilusWindow;
-typedef struct NautilusWindowClass NautilusWindowClass;
-typedef struct NautilusWindowDetails NautilusWindowDetails;
+G_BEGIN_DECLS
 
 typedef enum {
         NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND = 1 << 0,
@@ -44,6 +42,9 @@ typedef enum {
         NAUTILUS_WINDOW_OPEN_FLAG_DONT_MAKE_ACTIVE = 1 << 4
 } NautilusWindowOpenFlags;
 
+#define NAUTILUS_TYPE_WINDOW (nautilus_window_get_type ())
+G_DECLARE_DERIVABLE_TYPE (NautilusWindow, nautilus_window, NAUTILUS, WINDOW, GtkApplicationWindow);
+
 typedef gboolean (* NautilusWindowGoToCallback) (NautilusWindow *window,
                                                  GFile *location,
                                                  GError *error,
@@ -52,18 +53,6 @@ typedef gboolean (* NautilusWindowGoToCallback) (NautilusWindow *window,
 #include "nautilus-files-view.h"
 #include "nautilus-window-slot.h"
 
-#define NAUTILUS_TYPE_WINDOW nautilus_window_get_type()
-#define NAUTILUS_WINDOW(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_WINDOW, NautilusWindow))
-#define NAUTILUS_WINDOW_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_WINDOW, NautilusWindowClass))
-#define NAUTILUS_IS_WINDOW(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_WINDOW))
-#define NAUTILUS_IS_WINDOW_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_WINDOW))
-#define NAUTILUS_WINDOW_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), NAUTILUS_TYPE_WINDOW, NautilusWindowClass))
-
 #define NAUTILUS_WINDOW_SIDEBAR_PLACES "places"
 #define NAUTILUS_WINDOW_SIDEBAR_TREE "tree"
 
@@ -79,7 +68,8 @@ typedef gboolean (* NautilusWindowGoToCallback) (NautilusWindow *window,
 #define NAUTILUS_WINDOW_DEFAULT_HEIGHT         550
 
 
-struct NautilusWindowClass {
+struct _NautilusWindowClass
+{
         GtkApplicationWindowClass parent_spot;
 
        /* Function pointers for overriding, without corresponding signals */
@@ -93,15 +83,6 @@ struct NautilusWindowClass {
                                               GFile          *location);
 };
 
-typedef struct _NautilusWindowPrivate NautilusWindowPrivate;
-
-struct NautilusWindow {
-        GtkApplicationWindow parent_object;
-        
-        NautilusWindowPrivate *priv;
-};
-
-GType            nautilus_window_get_type             (void);
 NautilusWindow * nautilus_window_new                  (GdkScreen         *screen);
 void             nautilus_window_close                (NautilusWindow    *window);
 
@@ -159,4 +140,7 @@ void nautilus_window_search (NautilusWindow *window,
 void nautilus_window_initialize_slot (NautilusWindow          *window,
                                       NautilusWindowSlot      *slot,
                                       NautilusWindowOpenFlags  flags);
+
+G_END_DECLS
+
 #endif


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