From abebf0493afef9548a2ddb9dc2dd95ec7176073a Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Thu, 4 Jul 2013 00:54:44 +0900 Subject: [PATCH] ignored show request for invalid window and override_redirect window. the wm only deals with valid input_only window for the show request. Change-Id: Iaf625be31c3840dd4ea6e33254a9db607c2e25d2 --- src/bin/e_manager.c | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index 1255a74..3eaca3b 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -953,16 +953,31 @@ _e_manager_cb_window_show_request(void *data, int ev_type __UNUSED__, void *ev) return ECORE_CALLBACK_PASS_ON; /* try other handlers for this */ { - E_Container *con; - E_Border *bd; + E_Container *con; + E_Border *bd; - con = e_container_current_get(man); - if (!e_border_find_by_client_window(e->win)) - { - bd = e_border_new(con, e->win, 0, 0); - if (!bd) - ecore_x_window_show(e->win); - } + con = e_container_current_get(man); + if (!e_border_find_by_client_window(e->win)) + { + bd = e_border_new(con, e->win, 0, 0); + if (!bd) + { + /* the wm shows only valid input_only window. + * it doesn't need to deal with invalid window and + * override_redirect window. + */ + Ecore_X_Window_Attributes att; + if ((ecore_x_window_attributes_get(e->win, &att)) && + (!att.override)) + { + ecore_x_window_show(e->win); + } + else + { + ELB(ELBT_MNG, "show request of invalid win", e->win); + } + } + } } return ECORE_CALLBACK_PASS_ON; } -- 2.7.4