[Wayland-bugs] [Bug 77344] Weston (likely the desktop shell) aborts when window is resized too small.
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Mon Apr 28 07:27:11 PDT 2014
https://bugs.freedesktop.org/show_bug.cgi?id=77344
--- Comment #2 from Ander Conselvan de Oliveira <conselvan2 at gmail.com> ---
There's seem to be an issue that is independent of the Mesa patch. With the
following patch,
diff --git a/clients/window.c b/clients/window.c
index e2f7010..da3e45d 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -3808,10 +3808,12 @@ window_schedule_resize(struct window *window, int
width, int height)
window->min_allocation.height = height;
}
+#if 0
if (window->pending_allocation.width < window->min_allocation.width)
window->pending_allocation.width =
window->min_allocation.width;
if (window->pending_allocation.height < window->min_allocation.height)
window->pending_allocation.height =
window->min_allocation.height;
+#endif
window->resize_needed = 1;
window_schedule_redraw(window);
I get a crash trying to resize weston-terminal smaller than 0:
#0 0x00007ffff7fea536 in wl_resource_post_event (resource=0x0, opcode=0) at
wayland-server.c:154
#1 0x00007ffff33dc4bb in xdg_surface_send_configure (resource_=0x0, width=72,
height=-1) at ./protocol/xdg-shell-server-protocol.h:438
#2 0x00007ffff33e2ff4 in xdg_send_configure (surface=0x7fd570, edges=5,
width=72, height=-1) at desktop-shell/shell.c:3451
#3 0x00007ffff33df5a8 in resize_grab_motion (grab=0xa9b960, time=2830098011,
x=307712, y=169984) at desktop-shell/shell.c:1620
#4 0x00000000004139d2 in notify_motion (seat=0x63bf70, time=2830098011,
dx=512, dy=0) at src/input.c:948
#5 0x00007ffff68289af in x11_compositor_deliver_motion_event (c=0x63bbd0,
event=0x7f70d0) at src/compositor-x11.c:1081
#6 0x00007ffff6828eb0 in x11_compositor_handle_event (fd=14, mask=0,
data=0x63bbd0) at src/compositor-x11.c:1245
#7 0x00007ffff7fed454 in wl_event_source_fd_dispatch (source=0x760430,
ep=0x7fffffffd6f0) at event-loop.c:86
#8 0x00007ffff7fedcf2 in post_dispatch_check (loop=0x63cd70) at
event-loop.c:387
#9 0x00007ffff7fedea1 in wl_event_loop_dispatch (loop=0x63cd70, timeout=0) at
event-loop.c:427
#10 0x000000000040c2cd in weston_output_repaint (output=0x683c80,
msecs=2830098004) at src/compositor.c:1810
#11 0x000000000040c48a in weston_output_finish_frame (output=0x683c80,
msecs=2830098004) at src/compositor.c:1848
#12 0x00007ffff6826d2d in x11_output_start_repaint_loop (output=0x683c80) at
src/compositor-x11.c:347
#13 0x00007ffff682728f in finish_frame_handler (data=0x683c80) at
src/compositor-x11.c:457
#14 0x00007ffff7fed6df in wl_event_source_timer_dispatch (source=0x676240,
ep=0x7fffffffda80) at event-loop.c:180
#15 0x00007ffff7fede6a in wl_event_loop_dispatch (loop=0x6309e0, timeout=-1) at
event-loop.c:421
#16 0x00007ffff7febbe2 in wl_display_run (display=0x630950) at
wayland-server.c:961
#17 0x0000000000411536 in main (argc=1, argv=0x7fffffffdf08) at
src/compositor.c:4296
The problem is that even though the client exists, the resize grab remains
active. When the cursor moves, it attempts to send a configure event to the
client, but the resource was destroyed and the pointer to it was set to NULL in
the destroy listener for the shell surface resource.
A simple fix would be to just check if shsurf->resource is non-NULL in
resize_grab_motion, however it would probably be better to make sure we end the
grab when the shell surface is destroyed.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-bugs/attachments/20140428/733b6f00/attachment.html>
More information about the Wayland-bugs
mailing list