[PATCH 3/3] shell: Implement "driver" method of fullsceen.
ppaalanen at gmail.com
Thu Mar 8 01:20:47 PST 2012
On Thu, 8 Mar 2012 16:45:22 +0800
"wuzhiwen" <zhiwen.wu at linux.intel.com> wrote:
> Thanks for your review, comments inlined.
> >Does your implementation allow the compositor/shell to switch between
> >mode-set and fallback fullscreen presentation at will?
> >That's for the use cases we already discussed somewhere, like doing
> >only after the fullscreen window has been raised on top of everything and
> >active? And undo mode-set when something else gets focused?
> [Wu, Zhiwen] No for this version, I will add this in next one.
> >That is about being smart and avoiding unnecessary mode switches when a
> >juggles between windows. If there is a regular top-level window on top of
> >fullscreen mode-switched window, we probably want to (at least the option
> >switch to the default mode.
> [Wu, Zhiwen]I have a question here: after the top-level window destroyed, do
> we need
> to automatically switch back to the mode the fullscreen window wanted? If
> yes, how
> can we do that? In the destroy_shell_surface()?
Probably yes, but not on destruction. Destroying a currently active
surface may or may not lead to activating another surface. There's also
the complication of having several keyboard and pointer foci in defining
what surfaces are "active". Maybe we should talk about keyboard focus,
I don't know.
It should all be handled automatically without the destroy special
case, anyway, by the same rules a shell decides to switch video modes on
activating any surface. Activation is what triggers mode switching, IMO.
So what would happen if a top-level window arrives on top of a
mode-switched fullscreen window, but is not activated? For now I would
suggest keeping it simple: mode switch only on activation if at all -
therefore we would not switch modes until the window is activated. I'm
not even sure if such a case should ever happen, at least I would be
annoyed if something launched a new window and it popped on top of my
fullscreen game without my intervention (notifications are a different
> Another idea is, for the desktop shell, to minimize the mode-switched window
> when a regular top-level window on top of it,
> and switch mode to default. When the mode-switched window is top most again
> (e.g. raised by switcher, or activate by clicking),
> switch to the mode it wanted.
I guess that's an alternative behaviour, up to preference (in DE
settings, perhaps?). "Automatically minimize non-active fullscreen
windows" or something.
More information about the wayland-devel