Re: how to focus on desktop automatically if no windows open?



On 11/10/05, Brandon Kuczenski <b 301south net> wrote:
> On Thu, 10 Nov 2005, Elijah Newren wrote:

> > It's the designated no-focus-window (a window created by Metacity that
> > the user never sees but is around to ensure that global keybindings
> > work...).  That window can also get focused when certain bugs (e.g.
> > X11's utterly stupid RevertTo behavior) are worked around.
>
> Okay, so a window that doesn't exist and should never be seen by the user
> has focus, but the desktop, which fills 100% of the visible screen space,
> is an 'utterly stupid' choice for focus?
>
> That seems strange to me.

You totally misunderstood what I was saying.  ;-)  See
http://bugzilla.gnome.org/show_bug.cgi?id=125492.  X11's RevertTo
behavior means X will often make no window have focus (not even an
unseen offscreen window), which results in the keyboard being totally
nonfunctional for X until the user clicks on some window.  It's a bug
in the X protocol.  We have to attempt to figure out when that has
happened and manually fix it up.

I brought it up just to try to help explain why the no_focus_window
exists, not to explain why we don't focus the desktop when all
"normal" windows are closed.

> Perhaps it would help if we explained our metaphors.  Here's mine: a
> desktop is the surface on top of which all things with which I am working
> lie.  The mouse pointer is used to point to the thing I am interested in
> (I am a mouse-focus user as well, Elijah).

mouse focus or sloppy focus?  Sorry to have to ask, but many are
unaware of the difference and claim mouse when they mean sloppy.  I
suspect you really do mean mouse from something else you said, but I'd
like to be sure.  I'll postpone responding to most of the rest of what
you wrote until I know the answer to that so that I can respond
correctly.

> As far as I know, not being a
> programmer but very much being an end-user, the only things that can lie
> upon the desktop, and the only things that can be focused on, are windows.
> When there are no windows, the mouse is over the desktop; hence,
> mouse-focus suggests [to me] the desktop should have focus.
>
> That makes sense to me.  Your earlier post seemed to be a part of a
> conversation to which I am not privy.  Perhaps in context it would make
> sense, but I must say I could not follow it.

No, it wasn't part of an outside conversation, I just must suck at
properly explaining things.  ;-)  Basically, I was just trying to say
that making one little change in focus policy often causes
inconsistencies elsewhere unless you have a good overall view of how
things should work and your change is made to be consistent with that.
 There are lots of bugs in bugzilla that I think showed that.  Anyway,
I went into some details about how your proposed change could make
things inconsistent and asked for the correct behaviors so that I
could try to get an understanding of what the overall picture is.  I
still need the answers to those questions, but it may help if you read
metacity/docs/how-to-get-focus-right.txt (also available online at
http://cvs.gnome.org/viewcvs/metacity/doc/how-to-get-focus-right.txt?view=markup)
and explain to me which parts of the policy you think should be
tweaked, how they should be tweaked, and why.

> There is one exception: the MRU list.  To me, it makes sense (and would,
> in this context, be a material improvement over the status quo) for the
> desktop to be part of the list of most-recently-used windows.  I actually
> use the desktop to store files that I'm working with but have not
> categorized in directories yet; being able to bring it to focus by cycling
> through the active windows is appealing.  As for your question about
> focusing docks, it seems like the mouse-focus metaphor already answers
> that question: if the mouse is over it, it should have focus.
>
> Please do not take offense at these responses -- as both an end user and
> an advocate of collaborative software development, I find the discourse
> quite compelling.


Cheers,
Elijah



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