efl_ui_pager: ensure that only valid objects are removed
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Fri, 26 Apr 2019 15:30:35 +0000 (17:30 +0200)
committerHermet Park <hermetpark@gmail.com>
Wed, 8 May 2019 04:25:02 +0000 (13:25 +0900)
everything else will just print errors

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8745

src/lib/elementary/efl_ui_pager.c

index c35695e..95ebd12 100644 (file)
@@ -586,7 +586,8 @@ _efl_ui_pager_current_page_set(Eo *obj,
         Eo *curr;
 
         curr = eina_list_nth(pd->content_list, pd->curr.page);
-        efl_pack_unpack(pd->page_box, curr);
+        if (curr)
+          efl_pack_unpack(pd->page_box, curr);
         efl_canvas_object_clipper_set(curr, pd->backclip);
 
         pd->curr.page = index;
@@ -821,7 +822,9 @@ _unpack_all(Efl_Ui_Pager_Data *pd,
    else
      {
         subobj = eina_list_nth(pd->content_list, pd->curr.page);
-        efl_pack_unpack(pd->page_box, subobj);
+        if (subobj)
+          efl_pack_unpack(pd->page_box, subobj);
+        pd->curr.page = -1;
      }
 
    if (clear)
@@ -890,6 +893,7 @@ _unpack(Eo *obj,
         if (self_curr_page == self_index)
           {
              efl_pack_unpack(pd->page_box, subobj);
+             self_curr_page = pd->curr.page;
              pd->curr.page = -1;
              efl_ui_pager_current_page_set(obj, self_curr_page);
           }