> On Juli 30, 2015, 12:05 nachm., Thomas Lübking wrote:
> > This is Qt4, right?
> > 
> > ::activateWindow() should be equivalent to "XSetInputFocus(display, 
> > winId(), XRevertToParent, X11->time);" unless
> > a) _NET_ACTIVE_WINDOW is listed in _NET_SUPPORTED on the root window 
> > (supposed to be set and withdrawn by window managers, crash on exit?)
> > AND
> > b) Qt::X11BypassWindowManagerHint is NOT set on the toplevel window
> > OR
> > c) the window is not mapped/waiting for a mapping notification
> > 
> > => If the problem occurs, login aside (VT1 or ssh) and
> > 
> >    export DISPLAY=:0
> >    xprop -root | grep _NET_ACTIVE_WINDOW
> > 
> > If that's emtpy, focus setting fails on either 
> > "qt_widget_private(tlw)->topData()->waitingForMapNotify" (qt bug in event 
> > handling? missing "XSync(dpy, false)"? events are being processed after 
> > show) or "X11->time" being superseded by a more recent/future 
> > XSetInputFocus call ("fixed" by passing CurrentTime)
> > 
> > If the feature /is/ listed, that's a bug caused by a crashing WM => setting 
> > Qt::X11BypassWindowManagerHint will likely be sufficient.

> This is Qt4, right?

Yes.

> => If the problem occurs, login aside (VT1 or ssh) and
>
> export DISPLAY=:0
>    xprop -root | grep _NET_ACTIVE_WINDOW

Hm, I don't seem to be able to get the properties of kdm's root window.
After opening a new login session:
```
# export DISPLAY=:1
# xprop -root
No protocol specified.
xprop: unable to open display ':1'
```
On fresh boot:
```
# export DISPLAY=:0
# xprop -root
Invalid MIT-MAGIC-COOKIE-1 keyxprop: unable to open display ':0'
```

If I kill kwin in a running KDE4 session, the feature is listed. But that's to 
be expected I suppose, if I understand you correctly.
And focus changes when you move the mouse, which I think is undesirable at the 
login screen anyway (there are not really multiple windows, just modal dialogs).

> If the feature /is/ listed, that's a bug caused by a crashing WM => setting 
> Qt::X11BypassWindowManagerHint will likely be sufficient.

I will try if that helps.

But just to avoid a misunderstanding here: this is about kdm's login greeter. 
There's no window manager running at all.


- Wolfgang


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/121755/#review83168
-----------------------------------------------------------


On Juli 29, 2015, 11:39 vorm., Wolfgang Bauer wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/121755/
> -----------------------------------------------------------
> 
> (Updated Juli 29, 2015, 11:39 vorm.)
> 
> 
> Review request for kde-workspace, Thomas Lübking and Oswald Buddenhagen.
> 
> 
> Bugs: 268988 and 338018
>     http://bugs.kde.org/show_bug.cgi?id=268988
>     http://bugs.kde.org/show_bug.cgi?id=338018
> 
> 
> Repository: kde-workspace
> 
> 
> Description
> -------
> 
> [Commit 
> d03df616](https://projects.kde.org/projects/kde/kde-workspace/repository/revisions/d03df6169ecb291318e87099a346488c961fe1d6)
>  made input grabbing optional in KDM. But without it, input dialogs do not 
> correctly get focus and keyboard shortcuts don't work.
> 
> KDM does call activateWindow() on opened dialogs, but this doesn't seem to 
> have the desired effect without a window manager running. And if you hover 
> the mouse over a widget, it visually looks like it has focus, but often it 
> doesn't accept input anyway.
> 
> This patch sets the input focus via XSetInputFocus() instead, this also has 
> the positive side-effect that a widget retains the focus if you move the 
> mouse away.
> 
> 
> Diffs
> -----
> 
>   kdm/kfrontend/kfdialog.cpp 3f6fa84 
> 
> Diff: https://git.reviewboard.kde.org/r/121755/diff/
> 
> 
> Testing
> -------
> 
> Tried all things mentioned in the bug reports, keyboard input and shortcuts 
> work now in all cases.
> 
> I also tested with onboard keyboards (xvkbd and kvkbd), both work fine. 
> Before, kvkbd didn't work at all (the text input widget lost focus as soon as 
> you moved the mouse to the OSK) and xvkbd only works if you forced the focus 
> to the text input widget via its "Focus" button (from which this patch was 
> inspired actually ;-) ).
> 
> Other openSUSE users have tested this as well, and the patch is even part of 
> openSUSE's official package since January.
> See also https://bugzilla.opensuse.org/show_bug.cgi?id=772344
> 
> 
> Thanks,
> 
> Wolfgang Bauer
> 
>

Reply via email to