From 62328e0c90d120bc2d8ed966823295c0675ff4f8 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 13 Feb 2015 15:48:00 -0500 Subject: [PATCH] remove wl override clients from focus stack no more client cursor clients in winlist hoorayyyyy --- src/bin/e_comp_wl_input.c | 5 +++++ src/modules/wl_desktop_shell/e_mod_main.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index 1a01532dd..0d86402c1 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -1,3 +1,4 @@ +#define EXECUTIVE_MODE_ENABLED #define E_COMP_WL #include "e.h" #include @@ -57,12 +58,16 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct wl_resou sid = e_comp_wl_id_get(wl_resource_get_id(surface_resource), pid); if (!(ec = e_pixmap_find_client(E_PIXMAP_TYPE_WL, sid))) { + Eina_List *l; + ec = e_client_new(NULL, e_pixmap_new(E_PIXMAP_TYPE_WL, sid), 1, 0); ec->lock_focus_out = ec->layer_block = ec->visible = ec->override = 1; ec->new_client = 0; ec->icccm.title = eina_stringshare_add("noshadow"); evas_object_pass_events_set(ec->frame, 1); ec->client.w = ec->client.h = 1; + l = e_client_focus_stack_get(); + e_client_focus_stack_set(eina_list_remove(l, ec)); } /* ignore cursor changes during resize/move I guess */ if (e_client_action_get()) return; diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c index eb8e78999..ba8d53189 100644 --- a/src/modules/wl_desktop_shell/e_mod_main.c +++ b/src/modules/wl_desktop_shell/e_mod_main.c @@ -1,3 +1,4 @@ +#define EXECUTIVE_MODE_ENABLED #define E_COMP_WL #include "e.h" #include "e_desktop_shell_protocol.h" @@ -1311,6 +1312,7 @@ _e_xdg_shell_cb_popup_get(struct wl_client *client, struct wl_resource *resource ec->netwm.type = E_WINDOW_TYPE_POPUP_MENU; ec->comp_data->set_win_type = EINA_TRUE; evas_object_layer_set(ec->frame, E_LAYER_CLIENT_POPUP); + e_client_focus_stack_set(eina_list_remove(e_client_focus_stack_get(), ec)); /* set this client as a transient for parent */ _e_shell_surface_parent_set(ec, parent_resource);