[PATCH weston] shell: fix segfault in fullscreen binding

Jasper St. Pierre jstpierre at mecheye.net
Wed Jun 25 06:12:46 PDT 2014


Well, I removed recommended_output in that patch, because it became
unnecessary. The set to NULL makes no sense to me either.

You should just be able to do a one-line patch:

+    shsurf->fullscreen_output = shsurf->output;

I don't see any need for anything more fancy. I'd also add a comment along
those lines:

+    /* When the user presses the fullscreen binding they probably
+     * want this window fullscreen on the current monitor. */
+    shsurf->fullscreen_output = shsurf->output;


On Wed, Jun 25, 2014 at 2:00 AM, Boyan Ding <stu_dby at 126.com> wrote:

> On Tue, 2014-06-24 at 21:40 -0700, Jason Ekstrand wrote:
> > Yes we should fix this.  I have one question below.
> Actually I'm not very sure about that either, maybe we should ask
> @Jasper for suggestion.
>
> >
> > On Sat, Jun 7, 2014 at 2:40 AM, Boyan Ding <stu_dby at 126.com> wrote:
> >         Commit 9aa8ce69 'shell: Don't use the helper methods in
> >         xdg_shell
> >         implementations' forgot to set shsurf->fullscreen_optput in
> >         fullscreen_binding(), causing weston to segfault when
> >         fullscreen
> >         with the mod + shift + f binding. This patch fixed that issue.
> >         ---
> >          desktop-shell/shell.c | 6 ++++++
> >          1 file changed, 6 insertions(+)
> >
> >         diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> >         index dd0b2f9..56ffebf 100644
> >         --- a/desktop-shell/shell.c
> >         +++ b/desktop-shell/shell.c
> >         @@ -4180,6 +4180,12 @@ fullscreen_binding(struct weston_seat
> >         *seat, uint32_t time, uint32_t button, voi
> >
> >                 shsurf->state_requested = true;
> >                 shsurf->requested_state.fullscreen = !
> >         shsurf->state.fullscreen;
> >         +
> >         +       if (shsurf->requested_state.fullscreen) {
> >         +               shell_surface_set_output(shsurf, NULL);
> >
> >
> > Why are we setting the output to null?  Prior to 9aa8ce69, it was
> > getting set to shsurf->recommended_output.  Was there a reason for the
> > change to null?  Does it not matter?
> >
> > Thanks,
> >
> > --Jason Ekstrand
> >
> >
> >         +               shsurf->fullscreen_output = shsurf->output;
> >         +       }
> >         +
> >                 send_configure_for_surface(shsurf);
> >          }
> >
> >         --
> >         1.9.3
> >
> >
> >         _______________________________________________
> >         wayland-devel mailing list
> >         wayland-devel at lists.freedesktop.org
> >         http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> >
> >
>
>
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>



-- 
  Jasper
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20140625/9ddaefdc/attachment.html>


More information about the wayland-devel mailing list