[Wayland-bugs] [Bug 66795] [bug] subsurfaces client will segfault if maximized and minimized a few times

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Jul 11 03:13:10 PDT 2013


https://bugs.freedesktop.org/show_bug.cgi?id=66795

--- Comment #6 from Rob Bradford <rob at robster.org.uk> ---
The problem is that the motion event is being received after the client has
switched to it's minimized dimensions and thus the widget is not being found
when we call window_find_widget() and then we override the focussed widget.

   32 [1946197.672]  -> wl_surface at 24.frame(new id wl_callback at 18)
   31 [1946197.694]  -> wl_drm at 17.create_prime_buffer(new id wl_buffer at 29, fd
9, 101, 101, 875713089, 0, 512, 0, 0, 0, 0)
   30 [1946197.737]  -> wl_surface at 24.attach(wl_buffer at 29, 0, 0)
   29 [1946197.751]  -> wl_surface at 24.damage(0, 0, 101, 101)
   28 [1946197.767]  -> wl_surface at 24.commit()
   27 [1946197.845]  -> wl_surface at 22.frame(new id wl_callback at 35)
   26 [1946197.870]  -> wl_buffer at 51.destroy()
   25 [1946197.914]  -> wl_shm_pool at 49.destroy()
   24 [1946197.960]  -> wl_shm at 7.create_pool(new id wl_shm_pool at 47, fd 10,
41208)
   23 [1946197.985]  -> wl_shm_pool at 47.create_buffer(new id wl_buffer at 30, 0,
101, 102, 404, 0)
   22 [1946198.387]  -> wl_surface at 20.frame(new id wl_callback at 40)
   21 [1946198.405]  -> wl_buffer at 27.destroy()
   20 [1946198.512]  -> wl_shm_pool at 32.destroy()
   19 [1946198.542]  -> wl_shm at 7.create_pool(new id wl_shm_pool at 34, fd 11,
480000)
   18 [1946198.565]  -> wl_shm_pool at 34.create_buffer(new id wl_buffer at 50, 0,
400, 300, 1600, 0)
   17 [1946204.055]  -> wl_surface at 22.set_opaque_region(wl_region at 44)
   16 [1946204.095]  -> wl_region at 44.destroy()
   15 [1946204.106]  -> wl_surface at 22.set_input_region(wl_region at 48)
   14 [1946204.118]  -> wl_region at 48.destroy()
   13 [1946204.129]  -> wl_surface at 22.attach(wl_buffer at 30, 0, 0)
   12 [1946204.154]  -> wl_surface at 22.damage(0, 0, 101, 102)
   11 [1946204.182]  -> wl_surface at 22.commit()
   10 [1946204.191]  -> wl_surface at 20.set_opaque_region(wl_region at 16)
    9 [1946204.204]  -> wl_region at 16.destroy()
    8 [1946204.213]  -> wl_surface at 20.set_input_region(wl_region at 41)
    7 [1946204.225]  -> wl_region at 41.destroy()
    6 [1946204.235]  -> wl_surface at 20.attach(wl_buffer at 50, 0, 0)
    5 [1946204.258]  -> wl_surface at 20.damage(0, 0, 400, 300)
    4 [1946204.285]  -> wl_surface at 20.commit()
    3 [1946204.295]  -> wl_subsurface at 25.set_desync()
    2 [1946204.304]  -> wl_subsurface at 23.set_desync()
    1 [1946204.315] wl_display at 1.delete_id(37)
13467 [1946204.330] wl_pointer at 42.motion(3442215001, 966.000000, 7.000000)

So questions I have are:

- Is it expected to receive the motion event outside the dimensions - the pick
must have happened on the original surface.
- Are we simply missing a wl_display_dispatch_pending (non blocking) before
setting up the changes to the window to get all the events handled?
- Should we simply reject motion events that come outside the window
allocation? in window.c

-- 
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/20130711/580c643a/attachment.html>


More information about the Wayland-bugs mailing list