Thoughts on quitting and window controls
Dylan McCall
dylanmccall at gmail.com
Thu Apr 8 23:57:28 UTC 2010
On Tue, Apr 6, 2010 at 8:39 PM, Jonathan Blackhall
<johnny.one.eye at gmail.com> wrote:
> It's very confusing for me when I click the big 'X' in my window controls,
> only to find that the application I was attempting to close has since been
> minimized to my system try (or notification area or its respective indicator
> applet or wherever it goes instead of quitting). Examples of programs with
> this behavior include Rhythmbox and Empathy in the default install. To me,
> the 'X' signifies closing and quitting the application. If I wanted to
> minimize it and keep it open, I would think to click the 'Minimize' button
> before clicking the 'X'. In fact, I'd argue that the only reason anyone
> thinks this is appropriate is because it's what's been done in the past.
> The reason I find this so frustrating is because in order for me to eXit an
> application, I have to go searching through menus (File->Quit) or know some
> fancy keyboard shortcuts (things that casual users never even think about).
>
> I can only assume that developers' theories behind this (which is definitely
> not a problem unique to Ubuntu) stem from them telling themselves that no
> one would actually want to Quit their application. "What they *really* mean
> to do is close the window, but keep the application running silently. So
> I'll just save them the trouble of accidentally quitting by changing the
> function of that 'X' button." I just dislike the fact that it sends mixed
> signals. After all, if I click 'X' in Firefox or in gEdit or in a whole
> host of other applications, I'm quitting and completely closing it. Why
> must this be different in Rhythmbox? And also, when I install a new
> application, what is the 'X' going to do when I click it in this
> application?
>
> I'm not exactly sure what I'd propose to fix this problem. I really just
> think that the current way is broken. Maybe the function could be switched
> to the Minimize button, but that would likewise exhibit ambiguity, although
> I'd argue less so than the current incarnation. Maybe there should be a new
> window button, but that doesn't seem like a very elegant solution either. I
> thought about filing this as a bug, but then I thought it might be better to
> generate discussion amongst developers. What are your thoughts? Do you
> consider the current situation a problem? If so, what do you propose to fix
> it?
>
> Cheers,
> Jonathan
>
> --
> Ubuntu-devel-discuss mailing list
> Ubuntu-devel-discuss at lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss
>
>
I chewed on this thought for a bit, and I think adding a "really
close" button to a window would compromise what is _potentially_ a
pretty well thought out bit of UI. That's not to say it is well
thought out yet, but I think it could be!
Conventionally, a window represents some thing the user is doing, so
closing it should close that thing. A toplevel window is almost always
something the user has directly triggered and is directly,
purposefully interacting with, and I don't think we have anything else
in the desktop that fits that role. Therefore, if the act of closing a
window is affecting anything more than what that window is
representing, something has gone wrong and should be fixed. For most
web browsers, we're fine; the close button closes the web page
associated with that window, but the application, other web pages and
any current downloads (should) keep running.
The rest is naturally fed by the “Just Works” philosophy; if a process
is not providing anything, it should become irrelevant (probably by
exiting). Firefox does this for you all the time. A lot of developers
think of it as a robotic "all window are closed, so exit" deal, but I
think it's more "we are no longer serving a purpose, so exit."
Applications should track what they are doing for the user to decide
whether they are wasting memory.
Windows are remote controls for resources. In the case of Tomboy,
that's a note. (When you close a window in Tomboy, you aren't
destroying the note!). For Empathy, that's an instant messaging
account (Telepathy). When you close the buddy list, it doesn't log you
out, but you can open the buddy list and tell it to log you out. (In
this case that's technically the case, too; Telepathy, Empathy, etc.
are split into a whole pile of small, detached programs that run for
different purposes).
Rhythmbox is a different example, but let's try to fit it under the
same theory. It already mostly does. The Rhythmbox main window is for
controlling what music the Rhythmbox "service" (represented by its
indicator icon) is playing. It just happens that the Rhythmbox service
is, technically, the same process as the Rhythmbox main window. Users
don't care about that, though.
Someone opens Rhythmbox to control the playing music (to pause it or
play it), then closes it when that is done and the service goes on in
the background. If the music is stopped and Rhythmbox's controller is
closed, Rhythmbox has no reason to continue running, so the process
should exit. That should have absolutely no impact on the surrounding
user interface, however.
The Problem: that does have a strange impact on the surrounding user
interface. Particularly strange for Rhythmbox, since the indicator
serves as a launcher for the controller. Unless we want that Rhythmbox
indicator to be permanent, it always will create a bizarrely
shape-shifting desktop within the current design. It always will with
a "really close" button, too, because "really closing" the window will
kill the Rhythmbox service and, therefore, the indicator applet.
Consider the inconsistency at hand from a lower level: killing the
Rhythmbox process kills its indicator, its controller, and the music.
Killing the Empathy process kills the buddy list but maintains your
accounts as they are and the message indicator. Killing Evolution
does not delete your email (unless you were having a good day; it gets
jealous).
Good news, in my books: gnome-shell has launchers and running
applications in the same place ;)
That is a more profound improvement than mere cosmetics. It means
things don't move unexpectedly. Personally, I want to be able to
reliably head to wherever I start applications and open my Buddy List,
unconcerned with whether a process called "empathy" was already
running, and I want to do that as quickly as heading to the message
indicator and opening my Buddy List from it. I want to do that because
the same functionality fits for anything, not just instant messaging;
from notes to music to calendars and todo lists.
We can either have a specialized launcher in the top panel for every
single type of desktop service, or we can have a smarter application
launcher.
Take care,
Dylan
PS: Granted, my chewing on this was in the midst of a billion things
happening at once, so I realize I may be coming across as a complete
lunatic.
More information about the Ubuntu-devel-discuss
mailing list