Added simple (but do anyone really need more complex thing?) session management

to control-center shell
This commit is contained in:
Lauris Kaplinski 2002-02-19 21:15:21 +00:00
parent f23439d2be
commit 596bc8bdc6
5 changed files with 68 additions and 4 deletions

View file

@ -1,5 +1,17 @@
2002-02-14 Lauris Kaplinski <lauris@ximian.com>
* preferences.c (gnomecc_preferences_get): Public method to
get pointer of static preferences object
* main.c (gnome_cc_save_yourself): Session signal handler
(gnome_cc_die): Ditto
(main): Get client and connect session manager signals
* capplet-dir-view.c (capplet_dir_view_new): Get prefs pointer
via public method
(get_capplet_dir_view): Ditto
(gnomecc_init): Ditto
* capplet-dir-view-tree.c: Remove #undef GTK_DISABLE_DEPRECATED,
so if included again we see warnings

View file

@ -46,8 +46,6 @@ CappletDirViewImpl *capplet_dir_view_impl[] = {
static GObjectClass *parent_class;
static GnomeCCPreferences *prefs;
enum {
PROP_0,
PROP_CAPPLET_DIR,
@ -263,8 +261,11 @@ capplet_dir_view_update_authenticated (CappletDirView *view, gpointer null)
CappletDirView *
capplet_dir_view_new (void)
{
GnomeCCPreferences *prefs;
GObject *view;
prefs = gnomecc_preferences_get ();
view = g_object_new (capplet_dir_view_get_type (),
"layout", prefs->layout,
NULL);
@ -545,6 +546,10 @@ capplet_dir_view_show (CappletDirView *view)
static CappletDirView *
get_capplet_dir_view (CappletDir *dir, CappletDirView *launcher)
{
GnomeCCPreferences *prefs;
prefs = gnomecc_preferences_get ();
if (prefs->single_window && launcher)
return launcher;
else
@ -554,8 +559,9 @@ get_capplet_dir_view (CappletDir *dir, CappletDirView *launcher)
void
gnomecc_init (void)
{
prefs = gnomecc_preferences_new ();
gnomecc_preferences_load (prefs);
GnomeCCPreferences *prefs;
prefs = gnomecc_preferences_get ();
g_signal_connect (G_OBJECT (prefs), "changed",
(GCallback) prefs_changed_cb, NULL);

View file

@ -108,11 +108,35 @@ is_nautilus_running (void)
return running;
}
static gboolean
gnome_cc_save_yourself (GnomeClient *client, gint phase, GnomeSaveStyle save_style,
gboolean shutdown, GnomeInteractStyle interact_style,
gboolean fast, gchar *argv0)
{
gchar *argv[3];
gint argc;
argv[0] = argv0;
argv[1] = "--use-shell";
argc = 2;
gnome_client_set_clone_command (client, argc, argv);
gnome_client_set_restart_command (client, argc, argv);
return TRUE;
}
static void
gnome_cc_die (GnomeClient *client, gpointer data)
{
gtk_main_quit ();
}
int
main (int argc, char **argv)
{
CappletDirEntry *entry;
CappletDir *dir;
GnomeClient *client;
bindtextdomain (PACKAGE, GNOMELOCALEDIR);
bind_textdomain_codeset (PACKAGE, "UTF-8");
@ -136,6 +160,12 @@ main (int argc, char **argv)
return -1;
capplet_dir_entry_activate (entry, NULL);
client = gnome_master_client ();
g_signal_connect (G_OBJECT (client), "save_yourself",
G_CALLBACK (gnome_cc_save_yourself), argv[0]);
g_signal_connect (G_OBJECT (client), "die",
G_CALLBACK (gnome_cc_die), NULL);
gtk_main ();
return 0;

View file

@ -354,3 +354,17 @@ gnomecc_preferences_get_config_dialog (GnomeCCPreferences *prefs)
return prefs_dialog;
}
GnomeCCPreferences *
gnomecc_preferences_get (void)
{
static GnomeCCPreferences *prefs = NULL;
if (!prefs) {
prefs = gnomecc_preferences_new ();
gnomecc_preferences_load (prefs);
}
return prefs;
}

View file

@ -69,4 +69,6 @@ void gnomecc_preferences_save (GnomeCCPreferences *prefs);
GtkWidget *gnomecc_preferences_get_config_dialog (GnomeCCPreferences *prefs);
GnomeCCPreferences *gnomecc_preferences_get (void);
#endif /* __PREFERNCES_H */