Re: [PATCH] enable nautilus to run as a daemon without any window created





On Tue, Apr 21, 2009 at 3:03 PM, Alexander Larsson <alexl redhat com> wrote:
On Tue, 2009-04-21 at 14:55 +0800, JF Ding wrote:
>
>
>
>         +
>          <key>/schemas/apps/nautilus/preferences/daemon_enable</key>
>         +
>          <applyto>/apps/nautilus/preferences/daemon_enable</applyto>
>
>         +#define
>         NAUTILUS_PREFERENCES_DAEMON_ENABLE
>          "preferences/daemon_enable"
>
>         A better name would be "daemon_mode"
>
>         +static gboolean allow_daemon = FALSE;
>
>         Same here, call it "daemon_mode".
>
> About the variable names, including gconf key and the two new vars,
> the name does be indicating the usage.
> In fact, in my first design, the name of gconf key is "daemon_mode",
> but I think it is not precise, because the key
> is to indicate whether nautilus can run as a daemon. I rename it to
> "daemon_enable".
> The static global "allow_daemon", the same cause.
> And the stack variable in main(), "daemon_mode" to be sync with
> command line option "--daemon", its meaning
> is whether it run in "daemon mode", which will not created desktop and
> default window.
> I hope this can be explained clearly. Of course I will rename them if
> you cannot agree with the usage of them.

Well, I disagree with all that because I think having the command line
option at all is a bad idea. We should just have a gconf key. 

OK, I will following it. Just discard the command line option. But for the meaning
of "daemon_mode", I feel it should stand for "only daemon without window" mode.
So, should we think over the names?


 


>         @@ -139,6 +141,12 @@ nautilus_main_event_loop_quit (gboolean
>         explicit)
>                while (event_loop_registrants != NULL) {
>                        gtk_object_destroy
>         (event_loop_registrants->data);
>                }
>         +
>         +       /* To quit all instances, disable daemon */
>         +       if (allow_daemon) {
>         +               allow_daemon = FALSE;
>         +               eel_gtk_main_quit_all ();
>         +       }
>          }
>
>          static void
>
>         Only do this if explicit is TRUE. It is always true atm, but
>         that may
>         change.
>
> These lines is for quit by "--quit" option. If the first instance of
> nautilus run with allow_daemon TRUE,
> and another new nautilus instance send CLOSE message to it, the code
> will reach here, and must reset allow_daemon
> to FALSE and go quit. Maybe it's not so neat here, any suggestion?

I'm well aware of this. I'm talking about the "gboolean explicit"
argument to this function. This is set to TRUE when the user explicitly
requested to quit, for instance when using --quit. If this is not set we
should not quit the daemon.
 
Oh, I see.
At first, I am not very clear about what "explicit" argument is for, or I feel it's not close to
new daemon mode. I will try to add the new code to its enclosure.
 


>
>         +               { "daemon", '\0', 0, G_OPTION_ARG_NONE,
>         &daemon_mode,
>         +                 N_("Start Nautilus as a daemon for media
>         automount."), NULL },
>
>         I don't understand why you added the command line argument. It
>         seems to
>         just
>
> --daemon option will suppress any window explicitly. And can run as
> daemon without
> gconf key settings.

This only explains what it does, not why its a good idea or why you
would ever use it instead of a gconf key.
OK, I will remove the cmd line option. Now it's more orthogonal?


Regards,
jf.ding



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