[PATCH xwayland 3/3] Check if the frame exists before reading its size
Kristian Høgsberg
hoegsberg at gmail.com
Tue Dec 3 16:07:29 PST 2013
On Fri, Nov 15, 2013 at 11:24:03AM +0100, Axel Davy wrote:
> You were faster than me!
>
> I was just about sending this very same patch.
>
> The patch is correct as I was explaining in my commit message:
> "XWayland: Don't access the frame field for unmapped windows.
>
> There are situations where weston_wm_window_get_frame_size
> and weston_wm_window_get_child_position are called on
> an unmapped window.
> In these cases, the decorations are not yet drawn,
> so we must behave as if there was no decoration.
> "
>
> Correct the commit message ("I don't know if this correct" shouldn't be in),
> and this is
> Reviewed-by: Axel Davy <axel.davy at ens.fr>
Thanks, all three patches applied.
Kristian
> Axel Davy
>
> On 15/11/2013 , Dima Ryazanov wrote :
> >This fixes crashes caused by popup windows that don't have override_redirect
> >(e.g., menus in VLC and KDE apps), though I don't know if this is correct.
> >
> >Signed-off-by: Dima Ryazanov <dima at gmail.com>
> >---
> > src/xwayland/window-manager.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> >diff --git a/src/xwayland/window-manager.c b/src/xwayland/window-manager.c
> >index 6d29026..eea0349 100644
> >--- a/src/xwayland/window-manager.c
> >+++ b/src/xwayland/window-manager.c
> >@@ -497,7 +497,7 @@ weston_wm_window_get_frame_size(struct weston_wm_window *window,
> > if (window->fullscreen) {
> > *width = window->width;
> > *height = window->height;
> >- } else if (window->decorate) {
> >+ } else if (window->decorate && window->frame) {
> > *width = frame_width(window->frame);
> > *height = frame_height(window->frame);
> > } else {
> >@@ -515,7 +515,7 @@ weston_wm_window_get_child_position(struct weston_wm_window *window,
> > if (window->fullscreen) {
> > *x = 0;
> > *y = 0;
> >- } else if (window->decorate) {
> >+ } else if (window->decorate && window->frame) {
> > frame_interior(window->frame, x, y, NULL, NULL);
> > } else {
> > *x = t->margin;
>
> _______________________________________________
> 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