[Title] Fix crash issue when delete multi window rapidly on emulator.
authorHyerim Bae <hyerim.bae@samsung.com>
Thu, 9 Aug 2012 09:50:19 +0000 (18:50 +0900)
committerHyerim Bae <hyerim.bae@samsung.com>
Thu, 6 Sep 2012 02:58:24 +0000 (11:58 +0900)
[Issue#] N_SE-6880
[Problem] Crash happens when delete multi window if the previous multi window flow is not completed.
[Cause] The duplicated delete callback is called.
[Solution] Modify to be able to delete the multi window after the previous multi window is deleted completely.
[Team] Browser UI
[Developer] Hyerim Bae (hyerim.bae)
[Request] N/A

Change-Id: Icdab6ddcf04594779174fa9fad88cf5186750471

edc/browser-multi-window.edc [changed mode: 0755->0644]
src/browser-multi-window/browser-multi-window-view.cpp

old mode 100755 (executable)
new mode 100644 (file)
index 47df52a..84deb54
@@ -468,6 +468,7 @@ collections {
                                action: STATE_SET "grey" 0.0;
                                transition: ACCELERATE 0.3;
                                target: "rect.clipper";
+                               after: "hide,delete_window_icon";
                        }
                        program { name: "non_grey,snapshot";
                                signal: "non_grey,snapshot,signal";
index 01783a4926d61f1f6a1c03706e1cf9e8ce07884b..488984858adf99406d955621348a0b5f44c3613f 100755 (executable)
@@ -749,12 +749,16 @@ void Browser_Multi_Window_View::_show_grey_effect(void)
 {
        BROWSER_LOGD("[%s]", __func__);
        for (int i = 0 ; i < m_item_list.size() ; i++) {
-               if (i == m_current_position_index)
+               if (i == m_current_position_index) {
                        edje_object_signal_emit(elm_layout_edje_get(m_item_list[i]),
                                                        "non_grey,snapshot,signal", "");
-               else
+                       if (m_item_list.size() > 1)
+                               edje_object_signal_emit(elm_layout_edje_get(m_item_list[i]),
+                                               "show,delete_window_icon,signal", "");
+               } else {
                        edje_object_signal_emit(elm_layout_edje_get(m_item_list[i]),
                                                        "grey,snapshot,signal", "");
+               }
        }
 }