hermet pushed a commit to branch elementary-1.11.

http://git.enlightenment.org/core/elementary.git/commit/?id=5690e7b9effffb74e3cfb92ad35f93614234fede

commit 5690e7b9effffb74e3cfb92ad35f93614234fede
Author: Kateryna Fesyna <k.fes...@samsung.com>
Date:   Fri Oct 31 15:16:09 2014 +0900

    Elm_Panel: forbid changing of content of "elm.swallow.event" part
    
    Summary:
    Because the "elm.swallow.event" part is used for internal needs of Panel 
widget
    setting up or unsetting content of this part can break the behavior of this 
widget.
    Due to the fact that this part is invisible and does not have any use cases 
for user
    it seems acceptable to forbid changing of its content.
    
    @fix
    
    Reviewers: cedric, seoz, raster, Hermet
    
    Reviewed By: Hermet
    
    Subscribers: reutskiy.v.v
    
    Differential Revision: https://phab.enlightenment.org/D1587
---
 src/lib/elm_panel.c | 39 ++++++++++++++++++++++++++++-----------
 1 file changed, 28 insertions(+), 11 deletions(-)

diff --git a/src/lib/elm_panel.c b/src/lib/elm_panel.c
index c4ac456..d773611 100644
--- a/src/lib/elm_panel.c
+++ b/src/lib/elm_panel.c
@@ -866,11 +866,17 @@ _elm_panel_elm_widget_event(Eo *obj, Elm_Panel_Data *_pd 
EINA_UNUSED, Evas_Objec
 EOLIAN static Eina_Bool
 _elm_panel_elm_container_content_set(Eo *obj, Elm_Panel_Data *sd, const char 
*part, Evas_Object *content)
 {
-   if (part && strcmp(part, "default"))
+   if (part)
      {
-        Eina_Bool int_ret = EINA_TRUE;
-        eo_do_super(obj, MY_CLASS, int_ret = 
elm_obj_container_content_set(part, content));
-        return int_ret;
+        // "elm.swallow.event" part is used for internal needs and should not 
be changed.
+        if (!strcmp(part, "elm.swallow.event")) return EINA_FALSE;
+        if (strcmp(part, "default"))
+          {
+             Eina_Bool int_ret = EINA_TRUE;
+             eo_do_super(obj, MY_CLASS,
+                         int_ret = elm_obj_container_content_set(part, 
content));
+             return int_ret;
+          }
      }
 
    if (sd->content == content) return EINA_TRUE;
@@ -891,11 +897,16 @@ _elm_panel_elm_container_content_set(Eo *obj, 
Elm_Panel_Data *sd, const char *pa
 EOLIAN static Evas_Object*
 _elm_panel_elm_container_content_get(Eo *obj, Elm_Panel_Data *sd, const char 
*part)
 {
-   if (part && strcmp(part, "default"))
+   if (part)
      {
-        Evas_Object *ret = NULL;
-        eo_do_super(obj, MY_CLASS, ret = elm_obj_container_content_get(part));
-        return ret;
+        // "elm.swallow.event" part is used for internal needs and should not 
be changed.
+        if (!strcmp(part, "elm.swallow.event")) return NULL;
+        if (strcmp(part, "default"))
+          {
+             Evas_Object *ret = NULL;
+             eo_do_super(obj, MY_CLASS, ret = 
elm_obj_container_content_get(part));
+             return ret;
+          }
      }
 
    return sd->content;
@@ -906,10 +917,16 @@ _elm_panel_elm_container_content_unset(Eo *obj, 
Elm_Panel_Data *sd, const char *
 {
    Evas_Object *ret = NULL;
 
-   if (part && strcmp(part, "default"))
+   if (part)
      {
-        eo_do_super(obj, MY_CLASS, ret = 
elm_obj_container_content_unset(part));
-        return ret;
+        // "elm.swallow.event" part is used for internal needs and should not 
be changed.
+        if (!strcmp(part, "elm.swallow.event")) return NULL;
+        if (strcmp(part, "default"))
+          {
+             eo_do_super(obj, MY_CLASS,
+                         ret = elm_obj_container_content_unset(part));
+             return ret;
+          }
      }
 
    if (!sd->content) return NULL;

-- 


Reply via email to