discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=ac86429a2c878d688ff280720126e2c38baa9d3f

commit ac86429a2c878d688ff280720126e2c38baa9d3f
Author: Mike Blumenkrantz <[email protected]>
Date:   Tue May 10 11:34:48 2016 -0400

    manage pending state list more effectively in wl shell
    
    fix T3433
---
 src/modules/wl_desktop_shell/e_mod_main.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index 076f652..f599aca 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -918,6 +918,7 @@ _e_xdg_shell_surface_cb_ack_configure(struct wl_client 
*client EINA_UNUSED, stru
    E_Client *ec;
    Pending_State *ps;
    E_Shell_Data *shd;
+   Eina_List *l, *ll;
 
    ec = wl_resource_get_user_data(resource);
    if (!ec)
@@ -928,7 +929,7 @@ _e_xdg_shell_surface_cb_ack_configure(struct wl_client 
*client EINA_UNUSED, stru
      }
    if (e_object_is_del(E_OBJECT(ec))) return;
    shd = ec->comp_data->shell.data;
-   EINA_LIST_FREE(shd->pending, ps)
+   EINA_LIST_FOREACH_SAFE(shd->pending, l, ll, ps)
      {
         if (ps->serial > serial) break;
         if (ps->state & STATE_FULLSCREEN)
@@ -951,6 +952,7 @@ _e_xdg_shell_surface_cb_ack_configure(struct wl_client 
*client EINA_UNUSED, stru
              ec->comp_data->shell.set.unmaximize = 1;
              ec->comp_data->shell.set.maximize = 0;
           }
+        shd->pending = eina_list_remove_list(shd->pending, l);
         free(ps);
      }
 }

-- 


Reply via email to