[Libreoffice-ux-advise] keyboard focus/ raise window to top behaviour

Lionel Elie Mamane lionel at mamane.lu
Sun Nov 13 14:06:30 PST 2011


On Sun, Nov 13, 2011 at 09:43:25PM +0100, Christoph Noack wrote:

> All I can do today is to refer to this old discussion thread, here is my
> first reply in this thread:
> http://openoffice.org/projects/ux/lists/discuss/archive/2008-05/message/1

Ah, that discussion is before i#99971... What I read now is that there
is some back-and-forth in OpenOffice.org versions on whether the
window a document is opened in steals focus or not. At least:

distant past: steal focus always
i#19976: don't steal anymore; except when recycling windows?
i#99971: steal always; introduce a setting for this, but no UI to
         change the setting

My experience with X11 is that unless I went specifically and disabled
that in my window manager, new windows get the focus by default. If I
specifically disabled it in my window manager settings (or chose a
window manager that has that off by default), well, I'll be pissed off
if an application circumvents that! Recycled windows pose a particular
problem: we cannot guess what the user wants, so doing what most of
them want (raise window) seems sensible. The situation would be
simpler if we did not recycle windows at all :-| If I were designing
LO from scratch, I'd be tempted to never recycle windows, so that the
"on top" decision is truly delegated to the window manager.

What I read from i#99971 is that on MS Windows, the window manager
does not put new windows on top and the application has to raise its
window itself; that's no reason to do it on all platforms (as was
done), should be done only on Windows.

Frankly, my feeling is that a user-settable setting (a "solution"
which gets proposed again and again) is not the right thing: every
application should do the right thing for the platform it runs on, and
not ask users of one of the platforms to go into a setting to
"unbreak" their application.

Note also that the past discussions where about *document* windows,
but I find LO's raising of *dialog* windows *repeatedly* excessive,
too. I tried to fix it myself, but got lost in chasing down the
backtraces and the "asynchronous event" things... I filed bug
fdo#42884, maybe someone with a better knowledge of these parts of the
code can pick it up.

> An interesting reply was given by Clement some months later:
> http://openoffice.org/projects/ux/lists/discuss/archive/2008-08/message/5

Interesting, but only part of the story.

> Am Sonntag, den 13.11.2011, 17:37 +0100 schrieb Lionel Elie Mamane:

>> I've started to dig into LO's behaviour with regards to stealing
>> keyboard focus and raising its windows to top, (...)

>>  - On MacOS X, I don't know. Please advise.

> Mmh, I did not find anything related here:
> http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/Windows/Windows.html#//apple_ref/doc/uid/20000961-TPXREF10

> I don't own a Mac, so I cannot check. The only thing I've noticed some
> years ago was, that OOo (via X11) had totally different window handling
> in comparison to the native applications.

Well, I think LO uses MOX's native graphical system, now. Aqua?
Carbon? Cocoa?  Don't remember which one is which. So this should
definitely have changed. If not, it should get beaten into submission :)

>> I have already (in master) made the gist of the fix to i#99971 be
>> active only on Microsoft Windows.

>> I intend to hunt down every place where LibreOffice raises its
>> window to the top, and inactivate it on X11, and leave it active on
>> Windows.

I started doing that, and I noticed that - at least when using GTK,
the only platform I tested today - more than half of the calls to
GtkSalFrame::ToTop will actually do nothing anyway... Don't know if
that's the case for other platforms, too.

-- 
Lionel


More information about the Libreoffice-ux-advise mailing list