From 6d5584a09678938b0ba9d241c3053bf4d4cb37d6 Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Wed, 19 Sep 2018 14:04:05 +0900 Subject: [PATCH] e_client: Added function for check above ec has focus Change-Id: I7fdea6d0f594c6840563ac7da2318ce2891b3b45 --- src/bin/e_client.c | 23 +++++++++++++++++++++++ src/bin/e_client.h | 1 + 2 files changed, 24 insertions(+) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 7d805d7..f46eef6 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -877,6 +877,29 @@ e_client_revert_focus(E_Client *ec) _e_client_revert_focus(ec); } +EINTERN Eina_Bool +e_client_check_above_focused(E_Client *ec) +{ + E_Client *focus = NULL; + E_Client *above = NULL; + + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, EINA_FALSE); + + focus = e_client_focused_get(); + if (!focus) return EINA_FALSE; + + above = e_client_above_get(ec); + while (above) + { + if (above == focus) + return EINA_TRUE; + + above = e_client_above_get(above); + } + + return EINA_FALSE; +} + static void _e_client_free(E_Client *ec) { diff --git a/src/bin/e_client.h b/src/bin/e_client.h index 8151e84..5bb3f1d 100644 --- a/src/bin/e_client.h +++ b/src/bin/e_client.h @@ -1149,6 +1149,7 @@ E_API void e_client_visibility_force_obscured_set(E_Client *ec, Eina_Bool set); E_API void e_client_stay_within_canvas_margin(E_Client *ec); EINTERN void e_client_revert_focus(E_Client *ec); +EINTERN Eina_Bool e_client_check_above_focused(E_Client *ec); EINTERN void e_client_pending_geometry_flush(E_Client *ec); EINTERN Eina_Bool e_client_pending_geometry_has(E_Client *ec); -- 2.7.4