summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/e_client.c10
-rw-r--r--src/bin/e_comp_object.c5
2 files changed, 8 insertions, 7 deletions
diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 6e605a3393..85f5504a73 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -400,8 +400,8 @@ _e_client_mouse_action_end(E_Client *ec)
E_FREE_FUNC(ec->cur_mouse_action, e_object_unref);
}
-static void
-_e_client_revert_focus(E_Client *ec)
+E_API void
+e_client_revert_focus(E_Client *ec)
{
E_Client *pec;
E_Desk *desk;
@@ -644,7 +644,7 @@ _e_client_del(E_Client *ec)
evas_object_hide(ec->internal_elm_win);
if (ec->focused)
- _e_client_revert_focus(ec);
+ e_client_revert_focus(ec);
if (ec->frame) evas_object_focus_set(ec->frame, 0);
E_FREE_FUNC(ec->ping_poller, ecore_poller_del);
@@ -1560,7 +1560,7 @@ _e_client_cb_evas_hide(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UN
if (!ec->hidden)
{
if (ec->focused)
- _e_client_revert_focus(ec);
+ e_client_revert_focus(ec);
}
ec->want_focus = ec->take_focus = 0;
@@ -4642,7 +4642,7 @@ e_client_iconify(E_Client *ec)
{
if (!ec->new_client)
{
- _e_client_revert_focus(ec);
+ e_client_revert_focus(ec);
evas_object_hide(ec->frame);
}
e_client_urgent_set(ec, ec->icccm.urgent);
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 04b0bd3301..77720aa19c 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -1877,8 +1877,9 @@ _e_comp_intercept_focus(void *data, Evas_Object *obj, Eina_Bool focus)
}
else
{
- if (e_client_focused_get() == ec)
- e_client_focused_set(NULL);
+ if (e_client_focused_get() == ec) {
+ e_client_revert_focus(ec);
+ }
}
evas_object_focus_set(obj, focus);
}