summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2016-05-10 11:34:48 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2016-05-10 11:34:48 -0400
commitac86429a2c878d688ff280720126e2c38baa9d3f (patch)
tree0d3246cdbf4dba6cdebf3ee4f1192872233ff8d3
parent240561fda184ce4732abe9859924ad6fc994fc2b (diff)
manage pending state list more effectively in wl shell
fix T3433
-rw-r--r--src/modules/wl_desktop_shell/e_mod_main.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c
index 076f65225..f599acaaa 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
918 E_Client *ec; 918 E_Client *ec;
919 Pending_State *ps; 919 Pending_State *ps;
920 E_Shell_Data *shd; 920 E_Shell_Data *shd;
921 Eina_List *l, *ll;
921 922
922 ec = wl_resource_get_user_data(resource); 923 ec = wl_resource_get_user_data(resource);
923 if (!ec) 924 if (!ec)
@@ -928,7 +929,7 @@ _e_xdg_shell_surface_cb_ack_configure(struct wl_client *client EINA_UNUSED, stru
928 } 929 }
929 if (e_object_is_del(E_OBJECT(ec))) return; 930 if (e_object_is_del(E_OBJECT(ec))) return;
930 shd = ec->comp_data->shell.data; 931 shd = ec->comp_data->shell.data;
931 EINA_LIST_FREE(shd->pending, ps) 932 EINA_LIST_FOREACH_SAFE(shd->pending, l, ll, ps)
932 { 933 {
933 if (ps->serial > serial) break; 934 if (ps->serial > serial) break;
934 if (ps->state & STATE_FULLSCREEN) 935 if (ps->state & STATE_FULLSCREEN)
@@ -951,6 +952,7 @@ _e_xdg_shell_surface_cb_ack_configure(struct wl_client *client EINA_UNUSED, stru
951 ec->comp_data->shell.set.unmaximize = 1; 952 ec->comp_data->shell.set.unmaximize = 1;
952 ec->comp_data->shell.set.maximize = 0; 953 ec->comp_data->shell.set.maximize = 0;
953 } 954 }
955 shd->pending = eina_list_remove_list(shd->pending, l);
954 free(ps); 956 free(ps);
955 } 957 }
956} 958}