From cb5e16f37e9ceb05192e89f5144c62cb5a740d4c Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 25 Aug 2008 02:22:31 +0000 Subject: [PATCH] remove annoyances with focus stuff. SVN revision: 35648 --- src/bin/e_manager.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index f443fb084..1857ef5e0 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -825,22 +825,29 @@ _e_manager_cb_client_message(void *data, int ev_type, void *ev) timestamp = e->data.l[1]; requestor_id e->data.l[2]; #endif - if (bd->iconic) + if ((e_config->focus_setting == E_FOCUS_NEW_WINDOW) || + ((bd->parent) && + ((e_config->focus_setting == E_FOCUS_NEW_DIALOG) || + ((bd->parent->focused) && + (e_config->focus_setting == E_FOCUS_NEW_DIALOG_IF_OWNER_FOCUSED))))) { - if (e_config->clientlist_warp_to_iconified_desktop == 1) - e_desk_show(bd->desk); - - if (!bd->lock_user_iconify) - e_border_uniconify(bd); - } - if (!bd->iconic) e_desk_show(bd->desk); - if (!bd->lock_user_stacking) e_border_raise(bd); - if (!bd->lock_focus_out) - { - if (e_config->focus_policy != E_FOCUS_CLICK) - ecore_x_pointer_warp(bd->zone->container->win, - bd->x + (bd->w / 2), bd->y + (bd->h / 2)); - e_border_focus_set(bd, 1, 1); + if (bd->iconic) + { + if (e_config->clientlist_warp_to_iconified_desktop == 1) + e_desk_show(bd->desk); + + if (!bd->lock_user_iconify) + e_border_uniconify(bd); + } + if (!bd->iconic) e_desk_show(bd->desk); + if (!bd->lock_user_stacking) e_border_raise(bd); + if (!bd->lock_focus_out) + { + if (e_config->focus_policy != E_FOCUS_CLICK) + ecore_x_pointer_warp(bd->zone->container->win, + bd->x + (bd->w / 2), bd->y + (bd->h / 2)); + e_border_focus_set(bd, 1, 1); + } } } }