diff options
author | Gwanglim Lee <gl77.lee@samsung.com> | 2013-07-04 00:54:44 +0900 |
---|---|---|
committer | Gwanglim Lee <gl77.lee@samsung.com> | 2013-07-04 00:54:44 +0900 |
commit | abebf0493afef9548a2ddb9dc2dd95ec7176073a (patch) | |
tree | 48ea4ed80d024d93ae4ac29456f877bcb6e368aa | |
parent | d2fe433e76e232791b84f8df3ff7b0f74ca33064 (diff) | |
download | e17-abebf0493afef9548a2ddb9dc2dd95ec7176073a.tar.gz e17-abebf0493afef9548a2ddb9dc2dd95ec7176073a.tar.bz2 e17-abebf0493afef9548a2ddb9dc2dd95ec7176073a.zip |
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
-rw-r--r-- | src/bin/e_manager.c | 33 |
1 files 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; } |