[vlc-devel] Mouse hiding

Rémi Denis-Courmont remi at remlab.net
Tue Aug 8 11:17:20 CEST 2017


Le 8 août 2017 12:03:12 GMT+03:00, Steve Lhomme <robux4 at gmail.com> a écrit :
>On Mon, Aug 7, 2017 at 5:20 PM, Rémi Denis-Courmont <remi at remlab.net>
>wrote:
>> Le maanantaina 7. elokuuta 2017, 14.59.29 EEST Steve Lhomme a écrit :
>>> I'm trying to understand how mouse hiding is supposed to work to fix
>#17819.
>>>
>>> Right now it's broken on Windows and maybe OS X as well.
>>>
>>> Is it always the responsibility of the vout_window_t to hide the
>mouse?
>>
>> This is the description from Thomas:
>>
>> | core: vout: add VOUT_WINDOW_HIDE_MOUSE
>> |
>> | A window can now hide the mouse cursor. If this control is not
>implemented
>> | by a "vout window" module, the control will be sent to the "vout
>display"
>> | module.
>>
>> I believe that it is meant to be either the window or the display,
>but not
>> both. Indeed, I can´t really imagine how the responsibility could
>functionally
>> be shared.
>>
>>> I suppose that's why VOUT_DISPLAY_HIDE_MOUSE is deprecated ?
>>
>> As of last week, I think that both VOUT_DISPLAY_HIDE_MOUSE and
>> VOUT_WINDOW_HIDE_MOUSE should be deprecated. The component tracking
>mouse
>> movement is in better position to run the hiding timer than the video
>output
>> core thread.
>>
>> From the core, we only need a symbolic constant, probably in
><vlc_mouse.h>, to
>> convey a shared timeout value.
>
>How is this supposed to work with libvlc usage. Do we want to hide the
>mouse for host apps as well ?
>
>>> Right now it's not being called even though needs_hide_mouse is set
>because
>>> vout_HideWindowMouse() is successful.
>>
>> According to my interpretation of Thomas´ commit message, this is
>intended.
>>
>>> In the Qt interface MainInterface::setHideMouse() is called properly
>>> with show/hide but it has absolutely zero impact. Is it the same on
>>> other platform than Windows?
>>
>> It works fine on X11. I have not tested on Wayland.
>>
>> But in those two windowing systems, the vout display plugins do not
>perform
>> any mouse handling, or in fact any input device handling at all.
>>
>>> Maybe a regression of Qt 5 ? I could
>>> call win32 ShowCursor() in there and it works but it seems dirty.
>>
>> I don´t know that it would be a regression. The code was added in 3.0
>cycle.
>>
>> The most obvious potential culprit to me would be -interference with-
>the
>> common code in Win32 display plugins.
>
>That might be. stackCentralW->setCursor( Qt::BlankCursor ) works on
>Windows but not videoWidget->setCursor( Qt::BlankCursor ) so there
>must be something else at play.
>
>> --
>> 雷米‧德尼-库尔蒙
>> https://www.remlab.net/
>>
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel

IMO, cursor hiding should be done iff mouse events are enabled in LibVLC. LibVLC cannot hide/show the cursor if it does not know when the mouse moves.

It's a different problem though.
-- 
Rémi Denis-Courmont
Typed on an inconvenient virtual keyboard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20170808/49b1bd99/attachment.html>


More information about the vlc-devel mailing list