shell: Test for surface->width == 0 to see if input-panel was unmapped
authorKristian Høgsberg <krh@bitplanet.net>
Thu, 2 Jan 2014 09:27:06 +0000 (01:27 -0800)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 2 Jan 2014 09:27:38 +0000 (01:27 -0800)
The input-panel codes tries to see determine if a buffer has not yet
been attached (or a NULL buffer has been attached), and doesn't map
the input panel surface yet in that case.  However, it test for
buffer_ref being NULL, which can happen for other reasons.  The right
test is to see if surface->width is 0, which means that either a
buffer hasn't yet been attached or a NULL buffer has been attached.

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

desktop-shell/input-panel.c

index 32be44b..8fd25b0 100644 (file)
@@ -68,7 +68,7 @@ show_input_panels(struct wl_listener *listener, void *data)
 
        wl_list_for_each_safe(ipsurf, next,
                              &shell->input_panel.surfaces, link) {
-               if (!ipsurf->surface->buffer_ref.buffer)
+               if (ipsurf->surface->width == 0)
                        continue;
                wl_list_insert(&shell->input_panel_layer.view_list,
                               &ipsurf->view->layer_link);