Commit 0755d50a authored by Alexander Larsson's avatar Alexander Larsson Committed by Alexander Larsson

Remove direct deps on bonobo, bonobo-activation, orbit2,

2008-10-01  Alexander Larsson  <alexl@redhat.com>

        * configure.in:
	Remove direct deps on bonobo, bonobo-activation, orbit2, startup-notification
	Add dependency on libunique
	
        * src/Makefile.am:
        * src/nautilus-shell-interface.idl:
        * src/nautilus-shell.[ch]:
	Remove NautilusShell
	
        * src/nautilus-application.[ch]:
	Make NautilusApplication a normal GObject
	Remove NautilusShell use.
	Implement unique application functionallity using libunique
	Remove manual startup notification handling (mostly handled by libunique)
	
        * src/nautilus-main.c:
	Remove bonobo initialization
	Remove manual startup notification handling
	Move command line arg to uri parsing here
	Remove weird idle handling now that we don't use bonobo anymore

        * libnautilus-private/nautilus-undo-manager.c:
        * libnautilus-private/nautilus-undo-manager.h:
        * libnautilus-private/nautilus-undo.c:
        * src/nautilus-window-private.h:
	Remove all leftover spurious use of bonobo
	
        * src/nautilus-window-slot.h:
        * src/nautilus-desktop-window.c:
        * src/nautilus-location-dialog.c:
        * src/nautilus-window-bookmarks.c:
	Add required includes of gi18n.h
	


svn path=/trunk/; revision=14677
parent c95d7531
2008-10-01 Alexander Larsson <alexl@redhat.com>
* configure.in:
Remove direct deps on bonobo, bonobo-activation, orbit2, startup-notification
Add dependency on libunique
* src/Makefile.am:
* src/nautilus-shell-interface.idl:
* src/nautilus-shell.[ch]:
Remove NautilusShell
* src/nautilus-application.[ch]:
Make NautilusApplication a normal GObject
Remove NautilusShell use.
Implement unique application functionallity using libunique
Remove manual startup notification handling (mostly handled by libunique)
* src/nautilus-main.c:
Remove bonobo initialization
Remove manual startup notification handling
Move command line arg to uri parsing here
Remove weird idle handling now that we don't use bonobo anymore
* libnautilus-private/nautilus-undo-manager.c:
* libnautilus-private/nautilus-undo-manager.h:
* libnautilus-private/nautilus-undo.c:
* src/nautilus-window-private.h:
Remove all leftover spurious use of bonobo
* src/nautilus-window-slot.h:
* src/nautilus-desktop-window.c:
* src/nautilus-location-dialog.c:
* src/nautilus-window-bookmarks.c:
Add required includes of gi18n.h
2008-10-01 Alexander Larsson <alexl@redhat.com>
* configure.in:
......
......@@ -2,19 +2,15 @@ AC_PREREQ(2.54)
dnl ===========================================================================
m4_define(bonobo_activation_minver, 2.1.0)
m4_define(bonobo_minver, 2.1.0)
m4_define(eel_minver, 2.24.0)
m4_define(glib_minver, 2.17.5)
m4_define(gnome_desktop_minver, 2.9.91)
m4_define(gnome_minver, 2.14.0)
m4_define(gnome_ui_minver, 2.6.0)
m4_define(orbit_minver, 2.4.0)
m4_define(pango_minver, 1.1.2)
m4_define(gtk_minver, 2.13.0)
m4_define(rsvg_minver, 2.0.1)
m4_define(xml_minver, 2.4.7)
m4_define(startup_notification_minver, 0.8)
m4_define(exif_minver, 0.5.12)
m4_define(beagle_minver, 0.2.4)
m4_define(tracker_minver, 0.0.1)
......@@ -39,19 +35,15 @@ AM_INIT_AUTOMAKE([1.9 tar-ustar])
AM_MAINTAINER_MODE
AC_SUBST([ACLOCAL_AMFLAGS], ["\${ACLOCAL_FLAGS}"])
AC_SUBST(BONOBO_ACTIVATION_REQUIRED, [bonobo_activation_minver])
AC_SUBST(BONOBO_REQUIRED, [bonobo_minver])
AC_SUBST(EEL_REQUIRED, [eel_minver])
AC_SUBST(GLIB_REQUIRED, [glib_minver])
AC_SUBST(GNOME_DESKTOP_REQUIRED, [gnome_desktop_minver])
AC_SUBST(GNOME_REQUIRED, [gnome_minver])
AC_SUBST(GNOME_UI_REQUIRED, [gnome_ui_minver])
AC_SUBST(ORBIT_REQUIRED, [orbit_minver])
AC_SUBST(PANGO_REQUIRED, [pango_minver])
AC_SUBST(GTK_REQUIRED, [gtk_minver])
AC_SUBST(RSVG_REQUIRED, [rsvg_minver])
AC_SUBST(XML_REQUIRED, [xml_minver])
AC_SUBST(STARTUP_NOTIFICATION_REQUIRED, [startup_notification_minver])
dnl We need to decrement current by one in the calculation of the age because
dnl the library was started with version "1:0:0" instead of "0:0:0"
......@@ -69,37 +61,19 @@ AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
if $PKG_CONFIG --atleast-version startup_notification_minver libstartup-notification-1.0; then
echo "Building with libstartup-notification"
AC_DEFINE(HAVE_STARTUP_NOTIFICATION, 1,
[define to enable startup notification support])
with_startup_notification=yes
STARTUP_NOTIFICATION_PACKAGE=libstartup-notification-1.0
EXTRA_CORE_MODULES="$EXTRA_CORE_MODULES libstartup-notification-1.0"
else
echo "***** WARNING: Building without libstartup-notification"
with_startup_notification=no
STARTUP_NOTIFICATION_PACKAGE=
fi
AC_SUBST(STARTUP_NOTIFICATION_PACKAGE)
PKG_CHECK_MODULES(ALL, [
bonobo-activation-2.0 >= bonobo_activation_minver
eel-2.0 >= eel_minver
glib-2.0 >= glib_minver
gnome-desktop-2.0 >= gnome_desktop_minver
gio-unix-2.0
gio-2.0
ORBit-2.0 >= orbit_minver
pango >= pango_minver
gtk+-2.0 >= gtk_minver
libbonobo-2.0 >= bonobo_minver
libgnome-2.0 >= gnome_minver
libgnomeui-2.0 >= gnome_ui_minver
librsvg-2.0 >= rsvg_minver
libxml-2.0 >= xml_minver
$STARTUP_NOTIFICATION_PACKAGE
unique-1.0
])
dnl ==========================================================================
......@@ -142,11 +116,6 @@ AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
dnl ==========================================================================
ORBIT_IDL="`$PKG_CONFIG --variable=orbit_idl ORBit-2.0`"
AC_SUBST(ORBIT_IDL)
dnl ==========================================================================
AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/param.h)
dnl ==========================================================================
......@@ -412,14 +381,12 @@ AC_SUBST(LIBNAUTILUS_EXTENSION_CFLAGS)
LIBNAUTILUS_EXTENSION_LIBS="`$PKG_CONFIG --libs $LIBNAUTILUS_EXTENSION_MODULES`"
AC_SUBST(LIBNAUTILUS_EXTENSION_LIBS)
dnl core nautilus (must list bonobo-activation and libbonobo because idldir does not respect "requires")
CORE_MODULES="glib-2.0 eel-2.0 librsvg-2.0 bonobo-activation-2.0 libbonobo-2.0 gnome-desktop-2.0 gio-2.0 gio-unix-2.0 $EXTRA_CORE_MODULES"
dnl core nautilus
CORE_MODULES="glib-2.0 eel-2.0 librsvg-2.0 gnome-desktop-2.0 gio-2.0 gio-unix-2.0 unique-1.0 $EXTRA_CORE_MODULES"
CORE_CFLAGS="`$PKG_CONFIG --cflags $CORE_MODULES` $x_cflags $WARNING_CFLAGS"
AC_SUBST(CORE_CFLAGS)
CORE_LIBS="`$PKG_CONFIG --libs $CORE_MODULES` $x_libs"
AC_SUBST(CORE_LIBS)
CORE_IDL_INCLUDES="`$PKG_CONFIG --variable=idldir $CORE_MODULES | $srcdir/add-include-prefix`"
AC_SUBST(CORE_IDL_INCLUDES)
DISABLE_DEPRECATED_CFLAGS="-DG_DISABLE_DEPRECATED"
......@@ -433,9 +400,6 @@ dnl -DGDK_PIXBUF_DISABLE_DEPRECATED \
dnl -DGTK_DISABLE_DEPRECATED \
dnl -DGNOME_DISABLE_DEPRECATED"
dnl FIXME: put this back once the registration_id stuff is cleared up.
dnl -DBONOBO_DISABLE_DEPRECATED
AC_SUBST(DISABLE_DEPRECATED_CFLAGS)
dnl libbackground
......
......@@ -29,7 +29,6 @@
#include <eel/eel-gtk-macros.h>
#include <eel/eel-gtk-extensions.h>
#include <gtk/gtk.h>
#include <bonobo/bonobo-main.h>
#include "nautilus-undo-private.h"
struct NautilusUndoManagerDetails {
......
......@@ -26,7 +26,6 @@
#ifndef NAUTILUS_UNDO_MANAGER_H
#define NAUTILUS_UNDO_MANAGER_H
#include <bonobo/bonobo-object.h>
#include <libnautilus-private/nautilus-undo.h>
#define NAUTILUS_TYPE_UNDO_MANAGER \
......
......@@ -141,7 +141,7 @@ nautilus_undo_get_undo_manager (GObject *start_object)
GtkWindow *transient_parent;
if (start_object == NULL) {
return CORBA_OBJECT_NIL;
return NULL;
}
g_return_val_if_fail (G_IS_OBJECT (start_object), NULL);
......
......@@ -45,14 +45,7 @@ desktopdir = $(datadir)/gnome/network/
schemedir = $(datadir)/applications
scheme_DATA = network-scheme.desktop
nautilus_shell_interface_idl_sources = \
nautilus-shell-interface-stubs.c \
nautilus-shell-interface-skels.c \
nautilus-shell-interface.h \
nautilus-shell-interface-common.c
nautilus_SOURCES = \
$(nautilus_shell_interface_idl_sources) \
ephy-spinner.h \
ephy-spinner.c \
nautilus-actions.h \
......@@ -110,8 +103,6 @@ nautilus_SOURCES = \
nautilus-search-bar.h \
nautilus-self-check-functions.c \
nautilus-self-check-functions.h \
nautilus-shell.c \
nautilus-shell.h \
nautilus-side-pane.c \
nautilus-side-pane.h \
nautilus-sidebar-title.c \
......@@ -159,19 +150,8 @@ nautilus_connect_server_SOURCES= \
nautilus-location-entry.h \
$(NULL)
$(nautilus_shell_interface_idl_sources): nautilus_shell_interface_idl_stamp
nautilus_shell_interface_idl_stamp: nautilus-shell-interface.idl $(ORBIT_IDL)
$(ORBIT_IDL) $(CORE_IDL_INCLUDES) -I$(top_srcdir) $<
touch $@
$(nautilus_OBJECTS): nautilus_shell_interface_idl_stamp
TESTS=check-nautilus
serverdir = $(libdir)/bonobo/servers
server_in_files = Nautilus_shell.server.in
server_DATA = $(server_in_files:.server.in=.server)
@INTLTOOL_SERVER_RULE@
uidir = $(datadir)/nautilus/ui
......@@ -188,8 +168,6 @@ glade_DATA = \
$(NULL)
CLEANFILES = \
$(nautilus_shell_interface_idl_sources) \
nautilus_shell_interface_idl_stamp \
$(desktop_files) \
$(server_DATA) \
$(NULL)
......@@ -199,12 +177,10 @@ EXTRA_DIST = \
$(glade_DATA) \
$(ui_DATA) \
check-nautilus \
nautilus-shell-interface.idl \
$(desktop_in_files) \
$(NULL)
BUILT_SOURCES = \
$(nautilus_shell_interface_idl_sources) \
$(NULL)
dist-hook:
......
This diff is collapsed.
......@@ -29,7 +29,7 @@
#include <gdk/gdk.h>
#include <gio/gio.h>
#include <bonobo/bonobo-generic-factory.h>
#include <unique/unique.h>
#include <libnautilus-private/nautilus-undo-manager.h>
#define NAUTILUS_DESKTOP_ICON_VIEW_IID "OAFIID:Nautilus_File_Manager_Desktop_Icon_View"
......@@ -53,16 +53,15 @@ typedef struct _NautilusSpatialWindow NautilusSpatialWindow;
typedef struct NautilusShell NautilusShell;
typedef struct {
BonoboGenericFactory parent;
GObject parent;
UniqueApp *unique_app;
NautilusUndoManager *undo_manager;
NautilusShell *shell;
gboolean shell_registered;
GVolumeMonitor *volume_monitor;
unsigned int automount_idle_id;
} NautilusApplication;
typedef struct {
BonoboGenericFactoryClass parent_class;
GObjectClass parent_class;
} NautilusApplicationClass;
GType nautilus_application_get_type (void);
......@@ -73,10 +72,9 @@ void nautilus_application_startup (NautilusApplication
gboolean no_default_window,
gboolean no_desktop,
gboolean browser_window,
const char *startup_id,
const char *default_geometry,
const char *session_to_load,
const char *urls[]);
char **urls);
GList * nautilus_application_get_window_list (void);
GList * nautilus_application_get_spatial_window_list (void);
unsigned int nautilus_application_get_n_windows (void);
......
......@@ -36,6 +36,7 @@
#include <libnautilus-private/nautilus-file-utilities.h>
#include <libnautilus-private/nautilus-icon-names.h>
#include <gio/gio.h>
#include <glib/gi18n.h>
struct NautilusDesktopWindowDetails {
int dummy;
......
......@@ -31,6 +31,7 @@
#include <libnautilus-private/nautilus-file-utilities.h>
#include "nautilus-location-entry.h"
#include "nautilus-desktop-window.h"
#include <glib/gi18n.h>
struct _NautilusLocationDialogDetails {
GtkWidget *entry;
......
......@@ -34,8 +34,6 @@
#include "nautilus-application.h"
#include "nautilus-self-check-functions.h"
#include "nautilus-window.h"
#include <bonobo-activation/bonobo-activation.h>
#include <bonobo/bonobo-main.h>
#include <dlfcn.h>
#include <signal.h>
#include <eel/eel-debug.h>
......@@ -113,15 +111,6 @@ event_loop_unregister (GtkObject *object)
}
}
static gboolean
initial_event_loop_needed (gpointer data)
{
if (!is_event_loop_needed ()) {
eel_gtk_main_quit_all ();
}
return FALSE;
}
void
nautilus_main_event_loop_register (GtkObject *object)
{
......@@ -149,59 +138,6 @@ nautilus_main_event_loop_quit (gboolean explicit)
}
}
/* Copied from libnautilus/nautilus-program-choosing.c; In this case,
* though, it's really needed because we have no real alternative when
* no DESKTOP_STARTUP_ID (with its accompanying timestamp) is
* provided...
*/
static Time
slowly_and_stupidly_obtain_timestamp (Display *xdisplay)
{
Window xwindow;
XEvent event;
{
XSetWindowAttributes attrs;
Atom atom_name;
Atom atom_type;
char* name;
attrs.override_redirect = True;
attrs.event_mask = PropertyChangeMask | StructureNotifyMask;
xwindow =
XCreateWindow (xdisplay,
RootWindow (xdisplay, 0),
-100, -100, 1, 1,
0,
CopyFromParent,
CopyFromParent,
(Visual *)CopyFromParent,
CWOverrideRedirect | CWEventMask,
&attrs);
atom_name = XInternAtom (xdisplay, "WM_NAME", TRUE);
g_assert (atom_name != None);
atom_type = XInternAtom (xdisplay, "STRING", TRUE);
g_assert (atom_type != None);
name = "Fake Window";
XChangeProperty (xdisplay,
xwindow, atom_name,
atom_type,
8, PropModeReplace, name, strlen (name));
}
XWindowEvent (xdisplay,
xwindow,
PropertyChangeMask,
&event);
XDestroyWindow(xdisplay, xwindow);
return event.xproperty.time;
}
static void
dump_debug_log (void)
{
......@@ -372,8 +308,7 @@ main (int argc, char *argv[])
gboolean no_desktop;
gboolean autostart_mode;
gboolean has_sm_argv;
const char *startup_id, *autostart_id;
char *startup_id_copy;
const char *autostart_id;
char *session_to_load;
gchar *geometry;
const gchar **remaining;
......@@ -383,6 +318,11 @@ main (int argc, char *argv[])
NautilusApplication *application;
char **argv_copy;
GnomeProgram *program;
GFile *file;
char *uri;
char **uris;
GPtrArray *uris_array;
int i;
const GOptionEntry options[] = {
#ifndef NAUTILUS_OMIT_SELF_CHECK
......@@ -425,14 +365,6 @@ main (int argc, char *argv[])
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
startup_id = g_getenv ("DESKTOP_STARTUP_ID");
startup_id_copy = NULL;
if (startup_id != NULL && *startup_id != '\0') {
/* Clear the DESKTOP_STARTUP_ID, but make sure to copy it first */
startup_id_copy = g_strdup (startup_id);
g_unsetenv ("DESKTOP_STARTUP_ID");
}
autostart_mode = FALSE;
autostart_id = g_getenv ("DESKTOP_AUTOSTART_ID");
......@@ -448,9 +380,6 @@ main (int argc, char *argv[])
}
}
/* we'll do it ourselves due to complicated factory setup */
gtk_window_set_auto_startup_notification (FALSE);
/* Get parameters. */
remaining = NULL;
geometry = NULL;
......@@ -496,24 +425,9 @@ main (int argc, char *argv[])
no_desktop = FALSE;
}
/* Do this here so that gdk_display is initialized */
if (startup_id_copy == NULL) {
/* Create a fake one containing a timestamp that we can use */
Time timestamp;
timestamp = slowly_and_stupidly_obtain_timestamp (gdk_display);
startup_id_copy = g_strdup_printf ("_TIME%lu",
timestamp);
}
/* Set default icon for all nautilus windows */
gtk_window_set_default_icon_name (NAUTILUS_ICON_FOLDER);
/* Need to set this to the canonical DISPLAY value, since
thats where we're registering per-display components */
bonobo_activation_set_activation_env_value ("DISPLAY",
gdk_display_get_name (gdk_display_get_default()));
if (perform_self_check && remaining != NULL) {
/* translators: %s is an option (e.g. --check) */
fprintf (stderr, _("nautilus: %s cannot be used with URIs.\n"),
......@@ -559,10 +473,8 @@ main (int argc, char *argv[])
no_default_window = TRUE;
}
bonobo_activate (); /* do now since we need it before main loop */
application = NULL;
/* Do either the self-check or the real work. */
if (perform_self_check) {
#ifndef NAUTILUS_OMIT_SELF_CHECK
......@@ -577,29 +489,44 @@ main (int argc, char *argv[])
eel_exit_if_self_checks_failed ();
#endif
} else {
/* Convert args to URIs */
uris = NULL;
if (remaining != NULL) {
uris_array = g_ptr_array_new ();
for (i = 0; remaining[i] != NULL; i++) {
file = g_file_new_for_commandline_arg (remaining[i]);
if (file != NULL) {
uri = g_file_get_uri (file);
g_object_unref (file);
if (uri) {
g_ptr_array_add (uris_array, uri);
}
}
}
uris = (char **)g_ptr_array_free (uris_array, FALSE);
}
/* Run the nautilus application. */
application = nautilus_application_new ();
nautilus_application_startup
(application,
kill_shell, restart_shell, no_default_window, no_desktop,
browser_window,
startup_id_copy,
geometry,
session_to_load,
remaining);
g_free (startup_id_copy);
/* The application startup does things in an idle, so
we need to check whether the main loop is needed in an idle
*/
g_idle_add (initial_event_loop_needed, NULL);
gtk_main ();
uris);
g_strfreev (uris);
if (is_event_loop_needed ()) {
gtk_main ();
}
}
nautilus_icon_info_clear_caches ();
if (application != NULL) {
bonobo_object_unref (application);
g_object_unref (application);
}
eel_debug_shut_down ();
......
/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: 8; c-basic-offset: 8 -*- */
#ifndef NAUTILUS_SHELL_INTERFACE_IDL
#define NAUTILUS_SHELL_INTERFACE_IDL
#include <Bonobo.idl>
module Nautilus {
typedef string URI;
typedef sequence<URI> URIList;
interface Shell : ::Bonobo::Unknown {
void open_windows (in URIList uris, in string startup_id, in string geometry, in boolean browser_window);
void open_default_window (in string startup_id, in string geometry, in boolean browser_window);
void start_desktop ();
void stop_desktop ();
void quit ();
void restart ();
void load_session (in string filename);
};
};
#endif /* NAUTILUS_SHELL_INTERFACE_IDL */
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/*
* Nautilus
*
* Copyright (C) 2000 Eazel, Inc.
*
* Nautilus is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* Nautilus is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/* nautilus-shell.h: Server side of the Nautilus:Shell CORBA object
* that represents the shell across processes.
*/
#include <config.h>
#include "nautilus-shell.h"
#include "nautilus-desktop-window.h"
#include "nautilus-main.h"
#include "nautilus-window-private.h"
#include <eel/eel-glib-extensions.h>
#include <eel/eel-gtk-extensions.h>
#include <eel/eel-gtk-macros.h>
#include <eel/eel-stock-dialogs.h>
#include <eel/eel-string.h>
#include <gtk/gtk.h>
#include <glib/gi18n.h>
#include <libgnomeui/gnome-stock-icons.h>
#include <libgnomeui/gnome-uidefs.h>
#include <libnautilus-private/nautilus-file-utilities.h>
#include <libnautilus-private/nautilus-global-preferences.h>
#include <stdlib.h>
/* Keep window from shrinking down ridiculously small; numbers are somewhat arbitrary */
#define APPLICATION_WINDOW_MIN_WIDTH 300
#define APPLICATION_WINDOW_MIN_HEIGHT 100
#define START_STATE_CONFIG "start-state"
struct NautilusShellDetails {
NautilusApplication *application;
};
static void finalize (GObject *shell);
static void corba_open_windows (PortableServer_Servant servant,
const Nautilus_URIList *list,
const CORBA_char *startup_id,
const CORBA_char *geometry,
CORBA_boolean browser_window,
CORBA_Environment *ev);
static void corba_open_default_window (PortableServer_Servant servant,
const CORBA_char *startup_id,
const CORBA_char *geometry,
CORBA_boolean browser_window,
CORBA_Environment *ev);
static void corba_load_session (PortableServer_Servant servant,
const CORBA_char *filename,
CORBA_Environment *ev);
static void corba_start_desktop (PortableServer_Servant servant,
CORBA_Environment *ev);
static void corba_stop_desktop (PortableServer_Servant servant,
CORBA_Environment *ev);
static void corba_quit (PortableServer_Servant servant,
CORBA_Environment *ev);
static void corba_restart (PortableServer_Servant servant,
CORBA_Environment *ev);
BONOBO_CLASS_BOILERPLATE_FULL (NautilusShell, nautilus_shell,
Nautilus_Shell,
BonoboObject, BONOBO_OBJECT_TYPE)
static void
nautilus_shell_class_init (NautilusShellClass *klass)
{
G_OBJECT_CLASS (klass)->finalize = finalize;
klass->epv.open_windows = corba_open_windows;
klass->epv.open_default_window = corba_open_default_window;
klass->epv.load_session = corba_load_session;
klass->epv.start_desktop = corba_start_desktop;
klass->epv.stop_desktop = corba_stop_desktop;
klass->epv.quit = corba_quit;
klass->epv.restart = corba_restart;
}
static void
nautilus_shell_instance_init (NautilusShell *shell)
{
shell->details = g_new0 (NautilusShellDetails, 1);
}
static void
finalize (GObject *object)
{
NautilusShell *shell;
shell = NAUTILUS_SHELL (object);
g_free (shell->details);
EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object));
}
NautilusShell *
nautilus_shell_new (NautilusApplication *application)