jaehyun pushed a commit to branch master.

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

commit d44c7713cc60dab461a374961debdab1e7c271d5
Author: Yeongjong Lee <yj34....@samsung.com>
Date:   Thu Jan 17 17:40:37 2019 +0900

    elm_panel: fix visibility when switching scrollable mode
    
    Summary:
    There are two proplem when switching scrollable mode.
    1. a previous layout does not disappear.
    2. internal evas_box(sd->bx) should set on "elm.swallow.content" part.
    
    This patch hide remained previous layout and set evas_box to 
"elm.swallow.content"
    part directly.
    
    Thanks to arosis for reporting and sample code.
    
    Test Plan: P262
    
    Reviewers: arosis, eunue, Jaehyun_Cho
    
    Reviewed By: eunue
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D7667
---
 src/lib/elementary/elm_panel.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c
index 204dc2e89a..1265e127ee 100644
--- a/src/lib/elementary/elm_panel.c
+++ b/src/lib/elementary/elm_panel.c
@@ -743,7 +743,7 @@ _elm_panel_content_set(Eo *obj, Elm_Panel_Data *sd, const 
char *part, Evas_Objec
              ERR("elm.swallow.event is being used for panel internally. Don't 
touch this part!");
              return EINA_FALSE;
           }
-        if (strcmp(part, "elm.swallow.content") || (content == sd->bx))
+        if (strcmp(part, "elm.swallow.content"))
           {
              Eina_Bool int_ret = EINA_TRUE;
              int_ret = efl_content_set(efl_part(efl_super(obj, MY_CLASS), 
part), content);
@@ -856,7 +856,7 @@ _elm_panel_efl_canvas_group_group_add(Eo *obj, 
Elm_Panel_Data *priv)
      CRI("Failed to set layout!");
    else
      {
-        elm_layout_content_set(obj, "elm.swallow.content", priv->bx);
+        efl_content_set(efl_part(efl_super(obj, MY_CLASS), 
"elm.swallow.content"), priv->bx);
 
         if (edje_object_part_exists
             (wd->resize_obj, "elm.swallow.event"))
@@ -1319,8 +1319,10 @@ _elm_panel_scrollable_set(Eo *obj, Elm_Panel_Data *sd, 
Eina_Bool scrollable)
 
    if (scrollable)
      {
-        elm_layout_content_unset(obj, "elm.swallow.content");
+        efl_content_unset(efl_part(efl_super(obj, MY_CLASS), 
"elm.swallow.content"));
 
+        //Hide previous resize object
+        evas_object_hide(sd->panel_edje);
         elm_widget_resize_object_set(obj, NULL);
         elm_widget_sub_object_add(obj, sd->panel_edje);
 
@@ -1434,8 +1436,9 @@ _elm_panel_scrollable_set(Eo *obj, Elm_Panel_Data *sd, 
Eina_Bool scrollable)
 
         elm_widget_resize_object_set(obj, sd->panel_edje);
 
+        evas_object_hide(sd->scr_ly);
         elm_layout_content_unset(sd->scr_ly, "elm.swallow.content");
-        elm_layout_content_set(obj, "elm.swallow.content", sd->bx);
+        efl_content_set(efl_part(efl_super(obj, MY_CLASS), 
"elm.swallow.content"), sd->bx);
         if (sd->content) elm_widget_sub_object_add(obj, sd->content);
      }
 }

-- 


Reply via email to