From 650bb6ed852829b316aacf49f8892321c69a41b8 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Thu, 16 Jun 2005 04:21:01 +0000 Subject: [PATCH] fix focus re-order bug SVN revision: 15356 --- src/bin/e_border.c | 7 +++++-- src/bin/e_winlist.c | 7 +++++++ src/bin/e_winlist.h | 1 + 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 3a549c0f1..a209a6303 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -808,8 +808,11 @@ e_border_focus_set(E_Border *bd, int focus, int set) // printf("flag focus to %i\n", focus); if ((focus) && (!bd->focused)) { - focus_stack = evas_list_remove(focus_stack, bd); - focus_stack = evas_list_prepend(focus_stack, bd); + if (!e_winlist_active_get()) + { + focus_stack = evas_list_remove(focus_stack, bd); + focus_stack = evas_list_prepend(focus_stack, bd); + } edje_object_signal_emit(bd->bg_object, "active", ""); e_focus_event_focus_in(bd); } diff --git a/src/bin/e_winlist.c b/src/bin/e_winlist.c index a1c3bbf57..8aa41b55a 100644 --- a/src/bin/e_winlist.c +++ b/src/bin/e_winlist.c @@ -249,6 +249,13 @@ e_winlist_hide(void) } } +int +e_winlist_active_get(void) +{ + if (winlist) return 1; + return 0; +} + void e_winlist_next(void) { diff --git a/src/bin/e_winlist.h b/src/bin/e_winlist.h index 139b71c7b..f68757369 100644 --- a/src/bin/e_winlist.h +++ b/src/bin/e_winlist.h @@ -12,6 +12,7 @@ EAPI int e_winlist_shutdown(void); EAPI int e_winlist_show(E_Zone *zone); EAPI void e_winlist_hide(void); +EAPI int e_winlist_active_get(void); EAPI void e_winlist_next(void); EAPI void e_winlist_prev(void); EAPI void e_winlist_modifiers_set(int mod);