summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGwanglim Lee <gl77.lee@samsung.com>2013-07-04 00:54:44 +0900
committerGwanglim Lee <gl77.lee@samsung.com>2013-07-04 00:54:44 +0900
commitabebf0493afef9548a2ddb9dc2dd95ec7176073a (patch)
tree48ea4ed80d024d93ae4ac29456f877bcb6e368aa
parentd2fe433e76e232791b84f8df3ff7b0f74ca33064 (diff)
downloade17-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.c33
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;
}