[vlc-devel] Mouse hiding

Rémi Denis-Courmont remi at remlab.net
Mon Aug 7 17:20:37 CEST 2017

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.

> 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.


More information about the vlc-devel mailing list