From 4d6bb96e8d379b69243247fbf5bf00e4f386133b Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Thu, 31 Aug 2017 16:58:02 +0900 Subject: [PATCH] win: Drop calls to lower when using the EO API Note: The distinction is made on how the window was created, not on which API is used (evas_object_lower or efl_gfx_stack_lower or elm_win_lower). Ref T5322 --- src/lib/elementary/efl_ui_win.c | 13 +++++++++++++ src/lib/elementary/efl_ui_win.eo | 1 + 2 files changed, 14 insertions(+) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index d4bea99f22..8a6e487d2f 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -824,6 +824,7 @@ _elm_win_obj_intercept_raise(void *data, Evas_Object *obj EINA_UNUSED) static void _elm_win_obj_intercept_lower(void *data, Evas_Object *obj EINA_UNUSED) { + // Note: This is probably not necessary anymore (Win ignores lower) ELM_WIN_DATA_GET(data, sd); TRAP(sd, lower); } @@ -5556,6 +5557,18 @@ elm_win_raise(Eo *obj) efl_gfx_stack_raise(obj); } +EOLIAN static void +_efl_ui_win_efl_gfx_stack_lower(Eo *obj, Efl_Ui_Win_Data *pd EINA_UNUSED) +{ + // Do nothing: in X we could request to stack lower but that has been abused + // and transformed into a kind of "iconify". As a consequence, lower is + // not allowed in EO land. + if (!elm_widget_is_legacy(obj)) return; + + // Legacy support... + elm_win_lower(obj); +} + EOLIAN static void _efl_ui_win_center(Eo *obj, Efl_Ui_Win_Data *sd, Eina_Bool h, Eina_Bool v) { diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo index cc05d53c09..4ca10009de 100644 --- a/src/lib/elementary/efl_ui_win.eo +++ b/src/lib/elementary/efl_ui_win.eo @@ -842,6 +842,7 @@ class Efl.Ui.Win (Elm.Widget, Efl.Canvas, Elm.Interface.Atspi.Window, Efl.Gfx.size { set; } Efl.Gfx.Stack.raise; [[Places the window at the top of the stack, so that it's not covered by any other window.]] + Efl.Gfx.Stack.lower; [[This action is ignored by the Window.]] Elm.Widget.focus_direction; Elm.Widget.focus_next_manager_is; Elm.Widget.focus_direction_manager_is;