[nautilus] Don't initialize the desktop link monitor when it isn't needed
- From: William Jon McCann <mccann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] Don't initialize the desktop link monitor when it isn't needed
- Date: Wed, 29 Aug 2012 18:44:07 +0000 (UTC)
commit b96e70d89e89f69cc40c87b4381c84d5a2eb0f1d
Author: William Jon McCann <jmccann redhat com>
Date: Wed Aug 29 13:03:42 2012 -0400
Don't initialize the desktop link monitor when it isn't needed
.../nautilus-desktop-link-monitor.c | 10 +--
.../nautilus-desktop-link-monitor.h | 2 +
src/nautilus-application.c | 69 ++++++++++----------
3 files changed, 41 insertions(+), 40 deletions(-)
---
diff --git a/libnautilus-private/nautilus-desktop-link-monitor.c b/libnautilus-private/nautilus-desktop-link-monitor.c
index abbbe6b..07beba6 100644
--- a/libnautilus-private/nautilus-desktop-link-monitor.c
+++ b/libnautilus-private/nautilus-desktop-link-monitor.c
@@ -58,12 +58,10 @@ G_DEFINE_TYPE (NautilusDesktopLinkMonitor, nautilus_desktop_link_monitor, G_TYPE
static NautilusDesktopLinkMonitor *the_link_monitor = NULL;
-static void
-destroy_desktop_link_monitor (void)
+void
+nautilus_desktop_link_monitor_shutdown (void)
{
- if (the_link_monitor != NULL) {
- g_object_unref (the_link_monitor);
- }
+ g_clear_object (&the_link_monitor);
}
NautilusDesktopLinkMonitor *
@@ -71,7 +69,7 @@ nautilus_desktop_link_monitor_get (void)
{
if (the_link_monitor == NULL) {
g_object_new (NAUTILUS_TYPE_DESKTOP_LINK_MONITOR, NULL);
- eel_debug_call_at_shutdown (destroy_desktop_link_monitor);
+ eel_debug_call_at_shutdown (nautilus_desktop_link_monitor_shutdown);
}
return the_link_monitor;
}
diff --git a/libnautilus-private/nautilus-desktop-link-monitor.h b/libnautilus-private/nautilus-desktop-link-monitor.h
index c9865cd..4dca437 100644
--- a/libnautilus-private/nautilus-desktop-link-monitor.h
+++ b/libnautilus-private/nautilus-desktop-link-monitor.h
@@ -54,6 +54,8 @@ typedef struct {
GType nautilus_desktop_link_monitor_get_type (void);
NautilusDesktopLinkMonitor * nautilus_desktop_link_monitor_get (void);
+void nautilus_desktop_link_monitor_shutdown (void);
+
void nautilus_desktop_link_monitor_delete_link (NautilusDesktopLinkMonitor *monitor,
NautilusDesktopLink *link,
GtkWidget *parent_view);
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index d03acc2..fa1f4f4 100644
--- a/src/nautilus-application.c
+++ b/src/nautilus-application.c
@@ -494,25 +494,6 @@ nautilus_application_create_desktop_windows (NautilusApplication *application)
}
}
-static void
-nautilus_application_open_desktop (NautilusApplication *application)
-{
- if (nautilus_application_desktop_windows == NULL) {
- nautilus_application_create_desktop_windows (application);
- }
-}
-
-static void
-nautilus_application_close_desktop (void)
-{
- if (nautilus_application_desktop_windows != NULL) {
- g_list_foreach (nautilus_application_desktop_windows,
- (GFunc) gtk_widget_destroy, NULL);
- g_list_free (nautilus_application_desktop_windows);
- nautilus_application_desktop_windows = NULL;
- }
-}
-
static gboolean
another_navigation_window_already_showing (NautilusApplication *application,
NautilusWindow *the_window)
@@ -573,20 +554,6 @@ nautilus_application_create_window (NautilusApplication *application,
return window;
}
-/* callback for showing or hiding the desktop based on the user's preference */
-static void
-desktop_changed_callback (gpointer user_data)
-{
- NautilusApplication *application;
-
- application = NAUTILUS_APPLICATION (user_data);
- if (g_settings_get_boolean (gnome_background_preferences, NAUTILUS_PREFERENCES_SHOW_DESKTOP)) {
- nautilus_application_open_desktop (application);
- } else {
- nautilus_application_close_desktop ();
- }
-}
-
static void
mount_added_callback (GVolumeMonitor *monitor,
GMount *mount,
@@ -1206,11 +1173,45 @@ init_icons_and_styles (void)
}
static void
-init_desktop (NautilusApplication *self)
+nautilus_application_open_desktop (NautilusApplication *application)
{
/* Initialize the desktop link monitor singleton */
nautilus_desktop_link_monitor_get ();
+ if (nautilus_application_desktop_windows == NULL) {
+ nautilus_application_create_desktop_windows (application);
+ }
+}
+
+static void
+nautilus_application_close_desktop (void)
+{
+ if (nautilus_application_desktop_windows != NULL) {
+ g_list_foreach (nautilus_application_desktop_windows,
+ (GFunc) gtk_widget_destroy, NULL);
+ g_list_free (nautilus_application_desktop_windows);
+ nautilus_application_desktop_windows = NULL;
+ }
+ nautilus_desktop_link_monitor_shutdown ();
+}
+
+/* callback for showing or hiding the desktop based on the user's preference */
+static void
+desktop_changed_callback (gpointer user_data)
+{
+ NautilusApplication *application;
+
+ application = NAUTILUS_APPLICATION (user_data);
+ if (g_settings_get_boolean (gnome_background_preferences, NAUTILUS_PREFERENCES_SHOW_DESKTOP)) {
+ nautilus_application_open_desktop (application);
+ } else {
+ nautilus_application_close_desktop ();
+ }
+}
+
+static void
+init_desktop (NautilusApplication *self)
+{
if (!self->priv->no_desktop &&
!g_settings_get_boolean (gnome_background_preferences,
NAUTILUS_PREFERENCES_SHOW_DESKTOP)) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]