<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - [bug] subsurfaces client will segfault if maximized and minimized a few times"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=66795#c6">Comment # 6</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - [bug] subsurfaces client will segfault if maximized and minimized a few times"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=66795">bug 66795</a>
              from <span class="vcard"><a class="email" href="mailto:rob@robster.org.uk" title="Rob Bradford <rob@robster.org.uk>"> <span class="fn">Rob Bradford</span></a>
</span></b>
        <pre>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]  -> <a href="mailto:wl_surface@24.frame">wl_surface@24.frame</a>(new id wl_callback@18)
   31 [1946197.694]  -> <a href="mailto:wl_drm@17.create_prime_buffer">wl_drm@17.create_prime_buffer</a>(new id wl_buffer@29, fd
9, 101, 101, 875713089, 0, 512, 0, 0, 0, 0)
   30 [1946197.737]  -> <a href="mailto:wl_surface@24.attach">wl_surface@24.attach</a>(wl_buffer@29, 0, 0)
   29 [1946197.751]  -> <a href="mailto:wl_surface@24.damage">wl_surface@24.damage</a>(0, 0, 101, 101)
   28 [1946197.767]  -> <a href="mailto:wl_surface@24.commit">wl_surface@24.commit</a>()
   27 [1946197.845]  -> <a href="mailto:wl_surface@22.frame">wl_surface@22.frame</a>(new id wl_callback@35)
   26 [1946197.870]  -> <a href="mailto:wl_buffer@51.destroy">wl_buffer@51.destroy</a>()
   25 [1946197.914]  -> <a href="mailto:wl_shm_pool@49.destroy">wl_shm_pool@49.destroy</a>()
   24 [1946197.960]  -> <a href="mailto:wl_shm@7.create_pool">wl_shm@7.create_pool</a>(new id wl_shm_pool@47, fd 10,
41208)
   23 [1946197.985]  -> <a href="mailto:wl_shm_pool@47.create_buffer">wl_shm_pool@47.create_buffer</a>(new id wl_buffer@30, 0,
101, 102, 404, 0)
   22 [1946198.387]  -> <a href="mailto:wl_surface@20.frame">wl_surface@20.frame</a>(new id wl_callback@40)
   21 [1946198.405]  -> <a href="mailto:wl_buffer@27.destroy">wl_buffer@27.destroy</a>()
   20 [1946198.512]  -> <a href="mailto:wl_shm_pool@32.destroy">wl_shm_pool@32.destroy</a>()
   19 [1946198.542]  -> <a href="mailto:wl_shm@7.create_pool">wl_shm@7.create_pool</a>(new id wl_shm_pool@34, fd 11,
480000)
   18 [1946198.565]  -> <a href="mailto:wl_shm_pool@34.create_buffer">wl_shm_pool@34.create_buffer</a>(new id wl_buffer@50, 0,
400, 300, 1600, 0)
   17 [1946204.055]  -> <a href="mailto:wl_surface@22.set_opaque_region">wl_surface@22.set_opaque_region</a>(wl_region@44)
   16 [1946204.095]  -> <a href="mailto:wl_region@44.destroy">wl_region@44.destroy</a>()
   15 [1946204.106]  -> <a href="mailto:wl_surface@22.set_input_region">wl_surface@22.set_input_region</a>(wl_region@48)
   14 [1946204.118]  -> <a href="mailto:wl_region@48.destroy">wl_region@48.destroy</a>()
   13 [1946204.129]  -> <a href="mailto:wl_surface@22.attach">wl_surface@22.attach</a>(wl_buffer@30, 0, 0)
   12 [1946204.154]  -> <a href="mailto:wl_surface@22.damage">wl_surface@22.damage</a>(0, 0, 101, 102)
   11 [1946204.182]  -> <a href="mailto:wl_surface@22.commit">wl_surface@22.commit</a>()
   10 [1946204.191]  -> <a href="mailto:wl_surface@20.set_opaque_region">wl_surface@20.set_opaque_region</a>(wl_region@16)
    9 [1946204.204]  -> <a href="mailto:wl_region@16.destroy">wl_region@16.destroy</a>()
    8 [1946204.213]  -> <a href="mailto:wl_surface@20.set_input_region">wl_surface@20.set_input_region</a>(wl_region@41)
    7 [1946204.225]  -> <a href="mailto:wl_region@41.destroy">wl_region@41.destroy</a>()
    6 [1946204.235]  -> <a href="mailto:wl_surface@20.attach">wl_surface@20.attach</a>(wl_buffer@50, 0, 0)
    5 [1946204.258]  -> <a href="mailto:wl_surface@20.damage">wl_surface@20.damage</a>(0, 0, 400, 300)
    4 [1946204.285]  -> <a href="mailto:wl_surface@20.commit">wl_surface@20.commit</a>()
    3 [1946204.295]  -> <a href="mailto:wl_subsurface@25.set_desync">wl_subsurface@25.set_desync</a>()
    2 [1946204.304]  -> <a href="mailto:wl_subsurface@23.set_desync">wl_subsurface@23.set_desync</a>()
    1 [1946204.315] <a href="mailto:wl_display@1.delete_id">wl_display@1.delete_id</a>(37)
13467 [1946204.330] <a href="mailto:wl_pointer@42.motion">wl_pointer@42.motion</a>(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</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>