jpeg pushed a commit to branch master.

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

commit 1610ed12a8fe56bc4534d01f86b6e61620a1029a
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Thu Aug 24 14:33:36 2017 +0900

    widget: Make theme_apply a protected function (EO)
    
    This is a strange function but absolutely necessary to implement a
    widget. Even non-layout widgets may override this.
    
    Ref T5363
---
 src/lib/elementary/elm_widget.c  |  4 +---
 src/lib/elementary/elm_widget.eo | 16 +++++++++++++---
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index 6639bab965..61e83f7f16 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -1209,9 +1209,7 @@ elm_widget_theme(Evas_Object *obj)
    EINA_LIST_FOREACH(sd->cursors, l, cur)
      elm_cursor_theme(cur);
 
-   Efl_Ui_Theme_Apply ret2 = EFL_UI_THEME_APPLY_FAILED;
-   ret2 = elm_obj_widget_theme_apply(obj);
-   ret &= ret2;
+   ret &= elm_obj_widget_theme_apply(obj);
 
    return ret;
 }
diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo
index 4992dc3401..2034a6b5cb 100644
--- a/src/lib/elementary/elm_widget.eo
+++ b/src/lib/elementary/elm_widget.eo
@@ -398,9 +398,19 @@ abstract Elm.Widget (Efl.Canvas.Group, 
Elm.Interface.Atspi_Accessible,
          }
          return: bool; [[Indicates if the operation succeeded.]]
       }
-      theme_apply {
-         [['Virtual' function on the widget being re-themed.]]
-         return: Efl.Ui.Theme.Apply; [[Theme apply]]
+      theme_apply @protected {
+         [[Virtual function called when the widget needs to re-apply its theme.
+
+           This may be called when the object is first created, or whenever
+           the widget is modified in any way that may require a reload of the
+           theme. This may include but is not limited to scale, theme, or
+           mirrored mode changes.
+
+           Note: even widgets not based on layouts may override this method
+           to handle widget updates (scale, mirrored mode, etc...).
+         ]]
+         return: Efl.Ui.Theme.Apply; [[Indicates success, and if the current
+                                       theme or default theme was used.]]
       }
       activate {
          [['Virtual' function to activate widget.]]

-- 


Reply via email to