[vlc-devel] [PATCH] Qt: Fix tooltip position

Mathieu Velten matmaul at gmail.com
Tue Jul 31 11:17:01 CEST 2018


Oh my God that's awesome.

HUGE thank you to finding that out, that must have been quite a ride in the
Wayland stack 😁

I'll patch that right away in Flathub package.

Mathieu

Le mar. 31 juil. 2018 à 10:56, Olivier Fourdan <ofourdan at redhat.com> a
écrit :

> commit 5815534 ("qt: make the time tooltip a tooltip") reintroduced the
> bug fixed by previous commit ea99237 ("remove X11BypassWindowManagerHint
> from time tooltip") meant to fix #17829.
>
> The tooltip window is a shaped, override-redirect window which shows
> when the pointer enters the slider and disappears when it leaves the
> slider.
>
> By placing the tooltip window too low, above the slider, vlc causes a
> constant map/unmap of that window which will flood Xwayland and the
> Wayland compositori.window manager and can up with a deadlock situation.
>
> When the tooltip window is showing, the pointer will enter the tooltip
> window and thus leave the slider, which will cause the tooltip to be
> unmapped, which in turn causes the pointer to re-enter the slider area,
> which will cause the tooltip to show again, so on and so forth.
>
> On Wayland/Xwayland where the Wayland compositor (i.e. the display
> server) is also the window manager, that can lead to a deadlock
> situation because some X11 requests are blocking on rountrips to the
> Xserver, which in the case of Xwayland is also a Wayland client, waiting
> on the Wayland compositor for some operations, the Wayland compositor
> being also a Window manager and an X11 client at the same time...
>
> Avoid the issue by placing the tooltip so that it does not show up at
> the same location where the slider is, without overlap, to avoid that
> map/unmap requests storm.
>
> Closes: https://gitlab.gnome.org/GNOME/mutter/issues/244
> Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
> ---
>  modules/gui/qt/util/timetooltip.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/modules/gui/qt/util/timetooltip.cpp
> b/modules/gui/qt/util/timetooltip.cpp
> index 1314b520ea..7a63a9d7d9 100644
> --- a/modules/gui/qt/util/timetooltip.cpp
> +++ b/modules/gui/qt/util/timetooltip.cpp
> @@ -73,7 +73,7 @@ void TimeTooltip::adjustPosition()
>  #if defined( Q_OS_WIN )
>          mTarget.y() - 2 * size.height() - TIP_HEIGHT / 2 );
>  #else
> -        mTarget.y() - size.height() + TIP_HEIGHT / 2 );
> +        mTarget.y() - size.height() - TIP_HEIGHT / 2 );
>  #endif
>
>      // Keep the tooltip on the same screen if possible
> --
> 2.17.1
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20180731/69353d8b/attachment.html>


More information about the vlc-devel mailing list