[PATCH xwayland 3/3] Check if the frame exists before reading its size
Axel Davy
davy at clipper.ens.fr
Fri Nov 15 02:24:03 PST 2013
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>
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;
More information about the wayland-devel
mailing list