[PATCH weston 2/2] shell: Don't lower fullscreen layer on activate

Kristian Høgsberg hoegsberg at gmail.com
Tue Jan 15 12:57:24 PST 2013


On Tue, Jan 15, 2013 at 09:48:55PM +0100, Jonas Ådahl wrote:
> On Tue, Jan 15, 2013 at 9:44 PM, Kristian Høgsberg <hoegsberg at gmail.com> wrote:
> > On Tue, Jan 15, 2013 at 09:25:56PM +0100, Jonas Ådahl wrote:
> >> To be able to have a fullscreen surface on one output, and interact with
> >> surfaces on another output, don't lower the fullscreen layer on
> >> activate.
> >
> > This breaks alt-tab on single-output configurations.  The idea is that
> > you can alt-tab to a different window and the fullscreen surface (and
> > black surface) will get stacked below the panel and the activated app
> > will be raised on top of the fullscreen surface.
> 
> Alt-tab for the single-output configuration should be unaffected by
> this change as lower_fullscreen_layer() has already been called in
> switcher_binding() [0]

True... ok, so let's go with this then.  We could also improve alt-tab
behavior to not lower the fullscreen surface if you're activating a
surface that doesn't overlap with the fullscreen output.  Or rather,
we have to lower the fullscreen surface while the switcher runs, but
we could raise the fullscreen surface back up, if the newly activate
surface doesn't overlap the output.

Kristian

> Jonas
> 
> [0] http://cgit.freedesktop.org/wayland/weston/tree/src/shell.c#n3449
> 
> >
> > To make this work, I suppose we can add a heuristic that if you
> > activate an app that is not overlapping with the output the fullscreen
> > window is on, we don't lower the fullscreen surface.
> >
> > Kristian
> >
> >> Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
> >> ---
> >>  src/shell.c |    1 -
> >>  1 file changed, 1 deletion(-)
> >>
> >> diff --git a/src/shell.c b/src/shell.c
> >> index cdbb756..47882a5 100644
> >> --- a/src/shell.c
> >> +++ b/src/shell.c
> >> @@ -2664,7 +2664,6 @@ activate(struct desktop_shell *shell, struct weston_surface *es,
> >>               break;
> >>       default:
> >>               ws = get_current_workspace(shell);
> >> -             lower_fullscreen_layer(shell);
> >>               weston_surface_restack(es, &ws->layer.surface_list);
> >>               break;
> >>       }
> >> --
> >> 1.7.10.4
> >>
> >> _______________________________________________
> >> wayland-devel mailing list
> >> wayland-devel at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list