From 27c37075add0d3c82d087dfa2682ab60e615de0a Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Fri, 12 Aug 2005 10:26:21 +0000 Subject: [PATCH] fix small focus problem on key grabs... SVN revision: 16108 --- src/bin/e_border.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index d2f74cad9..d6e8f9605 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -928,7 +928,6 @@ e_border_focus_set(E_Border *bd, int focus, int set) focused->raise_timer = NULL; } } - focused = bd; e_hints_active_window_set(bd->zone->container->manager, bd); } else if ((!bd->focused) && (focused == bd)) @@ -948,9 +947,10 @@ e_border_focus_set(E_Border *bd, int focus, int set) focused->raise_timer = NULL; } } - focused = NULL; e_hints_active_window_set(bd->zone->container->manager, NULL); } + if (bd->focused) focused = bd; + else if ((!bd->focused) && (focused == bd)) focused = NULL; } void @@ -2674,7 +2674,15 @@ _e_border_cb_window_focus_in(void *data, int ev_type, void *ev) modes[e->mode], details[e->detail]); } -#endif +#endif + if (e->mode == ECORE_X_EVENT_MODE_GRAB) + { + if (e->detail == ECORE_X_EVENT_DETAIL_POINTER) return 1; + } + else if (e->mode == ECORE_X_EVENT_MODE_UNGRAB) + { + if (e->detail == ECORE_X_EVENT_DETAIL_POINTER) return 1; + } e_border_focus_set(bd, 1, 0); return 1; }