From 38f9b6861f9c9def9e6543dfa10f6a10183374a2 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 30 Apr 2020 00:45:21 +0100 Subject: [PATCH] menus - allow them on fullscreen windows if they are not override --- src/bin/e_client.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 36e5a7167..4f373e10b 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -3774,6 +3774,8 @@ e_client_focused_set(E_Client *ec) while ((ec_unfocus) && (ec_unfocus->zone)) { + Eina_Bool is_popup, is_child; + ec_unfocus->want_focus = ec_unfocus->focused = 0; if (!e_object_is_del(E_OBJECT(ec_unfocus))) e_focus_event_focus_out(ec_unfocus); @@ -3783,8 +3785,26 @@ e_client_focused_set(E_Client *ec) E_FREE_FUNC(ec_unfocus->raise_timer, ecore_timer_del); + is_popup = EINA_FALSE; + is_child = EINA_FALSE; + if ((ec) && + ((ec->netwm.type == E_WINDOW_TYPE_MENU) || + (ec->netwm.type == E_WINDOW_TYPE_TOOLBAR) || + (ec->netwm.type == E_WINDOW_TYPE_DOCK) || + (ec->netwm.type == E_WINDOW_TYPE_SPLASH) || + (ec->netwm.type == E_WINDOW_TYPE_TOOLTIP) || + (ec->netwm.type == E_WINDOW_TYPE_DROPDOWN_MENU) || + (ec->netwm.type == E_WINDOW_TYPE_POPUP_MENU) || + (ec->netwm.type == E_WINDOW_TYPE_COMBO) || + (ec->netwm.type == E_WINDOW_TYPE_DND) || + (ec->netwm.type == E_WINDOW_TYPE_NOTIFICATION))) + is_popup = EINA_TRUE; + if ((ec) && _e_client_is_in_parents(ec, ec_unfocus)) + is_child = EINA_TRUE; + /* if there unfocus client is fullscreen and visible */ - if ((!e_config->allow_above_fullscreen) && + if ((!is_popup) && (!is_child) && + (!e_config->allow_above_fullscreen) && (ec_unfocus->fullscreen) && (!ec_unfocus->iconic) && (!ec_unfocus->hidden) && (ec_unfocus->zone == e_zone_current_get()) && ((ec_unfocus->desk == e_desk_current_get(ec_unfocus->zone)) || (ec_unfocus->sticky)))