black surface in desktop shell fullscreen mode

Giulio Camuffo giuliocamuffo at gmail.com
Fri Oct 9 00:04:49 PDT 2015


2015-10-09 9:57 GMT+03:00 zou lan <nancy.lan.zou at gmail.com>:
> Hi Giulio
>
>>>qtwayland uses wl_shell unless the user explicitly enables xdg_shell,
>>>and right now hide() attachs a NULL buffer. Even in the xdg_shell
>>>case, so that's broken.
>
> Can qtwayland "hide"  implement the transparent window in desktop shell
> fullscreen mode? I know it can work in normal mode.  Or Does it expects a
> black screen in fullscreen mode?
> The app developpers like use this function to swich multi apps.

qtwayland doesn't ever use transparent surfaces, if you want one you
need to do it manually with QWindow.
You get a black surface because weston puts a black surface behind the
fullscreen one even if it has the right size, and it seems like it
doesn't remove the black surface when the client surface attachs a
NULL buffer. That's a weston bug, i'd say.


--
Giulio

>
> Thank you.
>
> Best Regards
> Nancy
>
>
>
> 2015-10-08 16:33 GMT+08:00 Giulio Camuffo <giuliocamuffo at gmail.com>:
>>
>> 2015-10-08 9:59 GMT+03:00 Pekka Paalanen <ppaalanen at gmail.com>:
>> > On Thu, 8 Oct 2015 11:12:42 +0800
>> > zou lan <nancy.lan.zou at gmail.com> wrote:
>> >
>> >> >>If a client really wants to use the transparency, and does not want
>> >> opaque black bars, it can be the client's responsibility to produce a
>> >> buffer that can fill the screen.
>> >>
>> >> This is what the client wants to. The Qt app call "hide" function just
>> >> wants to implement a function like minimize the window. But there is no
>> >> minimize in fullscreen mode. I think maybe the qtwayland
>> >> can implement the "hide" to make the window really transparent , not a
>> >> black screen now.
>> >
>> > Hi,
>> >
>> > "hide" should be implemented by destroying the wl_surface and/or the
>> > xdg_surface, in case committing a NULL wl_buffer is not allowed by the
>> > xdg_shell spec.
>> >
>> > "Minimizing" is a very different operation, you would use
>> > xdg_surface.set_minimized for that, and I don't think being fullscreen
>> > prevents that in any way.
>> >
>> > Both of those do what you want: make the window disappear.
>> >
>> > Making a window completely transparent though is not something you
>> > should try to do, and it won't make a fullscreen window disappear
>> > guaranteed.
>> >
>> > So, my question stands: what does Qt do in Wayland terms for "hide"?
>> > Is it using wl_shell or xdg_shell protocol?
>>
>> qtwayland uses wl_shell unless the user explicitly enables xdg_shell,
>> and right now hide() attachs a NULL buffer. Even in the xdg_shell
>> case, so that's broken.
>>
>>
>> --
>> Giulio
>>
>> >
>> >
>> > Thanks,
>> > pq
>
>


More information about the wayland-devel mailing list