how to handling panel and popup windows in fullscreen support?
Juan Zhao
juan.j.zhao at linux.intel.com
Fri Feb 10 01:05:06 PST 2012
Hi krh,
We thinked over how to handling panel and popup windows in
fullscreen support. Just would like to get your suggestion and decision
here.
These three pictures demostrate fullscreen cases we need to implement:
fullscreen window on the top: The panels will be hidden
https://gitorious.org/dataforuse/dataforuse/blobs/master/fullscreen.png
<https://gitorious.org/dataforuse/dataforuse/blobs/master/fullscreen.png>
un-fullscreen window over fullscreen window: The panels will be shown
https://gitorious.org/dataforuse/dataforuse/blobs/master/nFoverF.png
<https://gitorious.org/dataforuse/dataforuse/blobs/master/nFoverF.png>
Popup window over fullscreen window: panels will be hidden
https://gitorious.org/dataforuse/dataforuse/blobs/master/PoverF.png
<https://gitorious.org/dataforuse/dataforuse/blobs/master/PoverF.png>
To handling panels, we are thinking about three methods:
1. surface grouping in struct weston_compositor
We can split the surface list to different surface type lists,
for example weston_compositor::panel_surfaces,
weston_compositor::cursor_surfaces. If using this method, lots of things
should be changed.
2. add weston_surface::type to differentiate the types.
we still use that west_compositor::surface_list, we can add type
member in struct weston_surface, and initialise them when they are
created. (In our previous fullscreen patches, we use this method as a
workaround)
3. handle surface type management in shell side(shell.c).
keep one weston_surface list in struct weston_compositor(The
current solution). Add the modification in shell.c:
Add one wl_shell::hidden_panels, when we would like to hide the
panel surfaces, just move them from compositor->surface_list to this
hidden_panels. And when we would like to unhide them, just move it back
to the compositor->surface_list. It's similar to what happened on
wl_shell::hidden_surface_list when locking/unlocking.
For these three methods, which method do you prefer? Or any other ideas?
Thanks,
Juan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20120210/6bed0f9a/attachment.htm>
More information about the wayland-devel
mailing list