[Rhythmbox-devel] proper shutdown on ctrl-c and other stuff



Currently rb seems to have no signal handler to catch SIGINT or
anything.  This means that it dies hard when it gets any termination
signal without shutting down properly.

I can't see an obvious way to shut down or signal to shut down the
running RBShell in the proper context.  I tried calling rb_shell_quit() directly from the
handler which sort of works, but the shutdown gets shortened by:
(rhythmbox:17904): Bonobo-CRITICAL **: file bonobo-object.c: line 321 (bonobo_object_unref): assertion `ao != NULL' failed


Something different:  The GNOME icon may be set from a NULL pointer.
Granted, only in incomplete installations but it still isn't nice.
--- orig/shell/rb-shell.c
+++ mod/shell/rb-shell.c
@@ -507,9 +507,11 @@
        rb_ensure_dir_exists (rb_dot_dir ());
 
        file = gnome_program_locate_file (NULL, GNOME_FILE_DOMAIN_APP_PIXMAP, "rhythmbox.png", TRUE, NULL);
-       gnome_window_icon_set_default_from_file (file);
-       g_free (file);
-
+       if (file) {
+               gnome_window_icon_set_default_from_file (file);
+               g_free (file);
+       }
+
         rb_shell_session_init (shell);
 
        eel_gconf_monitor_add (CONF_PREFIX);


Since I didn't get further with the signal stuff this is also the only
patch in aeb@debian.org--2004/rhythmbox--main--0.7 (to be found on
http://home.in.tum.de/~bombe/arch/aeb@debian.org--2004 )


Also, the sources are riddled with whitespace at end of lines,
whitespace only lines and inconsistently mixed spaces/tabs.  Sic an
Emacs with develock mode on the sources and have your eyeballs melt.  I
suppose fixing that would be very intrusive, resulting in many merge
rejects and the like.

-- 
Andreas Bombe <bombe@informatik.tu-muenchen.de>    DSA key 0x04880A44



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