> On Aug. 8, 2014, 3:35 nachm., Thomas Lübking wrote:
> > Would it be sufficient to set the cursor on "target" instead of an 
> > application wide override?
> > 
> > setOverrideCursor has this "nasty" stack behavior which could be 
> > troublesome in a library and I could eg. think of "screensavers" 
> > implementing a little game (ie. run kpatience or so ;-)
> > In case they should have nice control over the cursor w/o having to rewind 
> > a stack (or using an override on top ...)
> 
> Wolfgang Bauer wrote:
>     > Would it be sufficient to set the cursor on "target" instead of an 
> application wide override?
>     
>     No, unfortunately not.
>     That was the first thing I tried, but it had no effect at all (no matter 
> whether it is done before target->show() or after).
>     
>     The only other way I see is explicitely set a blank mouse cursor in all 
> of the affected screen savers (I tried this with Euphoria and it worked), but 
> that would be much more work of course.
>     
>     > setOverrideCursor has this "nasty" stack behavior which could be 
> troublesome in a library and I could eg. think of "screensavers" implementing 
> a little game (ie. run kpatience or so ;-)
>     
>     Does this actually make sense?
>     When used as screensaver, it would immediately disappear anyway when you 
> move the mouse, no?
>     
>     A side-note: xscreensaver's "julia" screensaver does something like this: 
> it allows you to choose a new starting point for its animation by clicking 
> with the mouse. But when used as screensaver, the xscreensaver daemon forces 
> a blank cursor somehow (I haven't looked at the source code how exactly, but 
> I would guess via XGrabPointer()), so even this one does not show a cursor 
> then. When used with KDE's screen locker, the cursor does show (that's of 
> course not changed by this patch, as that screensaver obviously doesn't use 
> libkscreensaver), still you can do that only in demo mode/in the 
> systemsettings preview because otherwise the screensaver disappears on every 
> input event.

> Does this actually make sense?
Dunno, don't use screensavers ;-)

> When used as screensaver, it would immediately disappear anyway when you move 
> the mouse, no?
For the moment, yes.
Since the screensaver will not be the grabbing client (other process) it would 
require a hint to the locker to not exit the screensaver on mousemove but 
forward input instead.

> No, unfortunately not.
There'll be a "QGuiApplication::overrideCursor()" then.
See how nasty that is? ;-)

while (qApp->overrideCursor())
    qApp->restoreOverrideCursor();


- Thomas


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


On Aug. 8, 2014, 12:37 nachm., Wolfgang Bauer wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/119663/
> -----------------------------------------------------------
> 
> (Updated Aug. 8, 2014, 12:37 nachm.)
> 
> 
> Review request for kde-workspace.
> 
> 
> Bugs: 334762
>     http://bugs.kde.org/show_bug.cgi?id=334762
> 
> 
> Repository: kde-workspace
> 
> 
> Description
> -------
> 
> Qt's QGLWidget apparently explicitely sets a standard mouse pointer for the 
> screensaver widget.
> This patch prevents the mouse cursor from being shown for KDE's OpenGL 
> screensavers by setting a blank override cursor for the screensaver 
> application when not run in demo mode.
> 
> 
> Diffs
> -----
> 
>   kscreensaver/libkscreensaver/main.cpp 561205a 
> 
> Diff: https://git.reviewboard.kde.org/r/119663/diff/
> 
> 
> Testing
> -------
> 
> Set one of KDE's OpenGL screensavers in systemsettings->Display and 
> Monitor->Screen Locker, like Euphoria or Solarwinds.
> Wait for the screensaver to kick in.
> Notice that the mouse pointer is blanked now, whereas it was shown without 
> this patch.
> 
> If a password is required, the mouse cursor does correctly re-appear for the 
> greeter as it should if you move the mouse/press a key to get rid of the 
> screensaver.
> 
> I'm using the patch on my systems for over two months now and haven't noticed 
> any unexpected results.
> 
> 
> Thanks,
> 
> Wolfgang Bauer
> 
>

Reply via email to