aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/modules/winlist/e_winlist.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/src/modules/winlist/e_winlist.c b/src/modules/winlist/e_winlist.c
index c27706eec..17655feed 100644
--- a/src/modules/winlist/e_winlist.c
+++ b/src/modules/winlist/e_winlist.c
@@ -210,6 +210,8 @@ e_winlist_show(E_Zone *zone, E_Winlist_Filter filter)
_last_border = NULL;
}
_e_winlist_activate_nth(1);
+ if ((eina_list_count(_wins) > 1) && (eina_list_data_get(_win_selected) == _last_border))
+ e_winlist_next();
evas_event_thaw(_winlist->evas);
_e_winlist_size_adjust();
@@ -941,8 +943,6 @@ _e_winlist_border_del(E_Border *bd)
static void
_e_winlist_activate_nth(int n)
{
- E_Winlist_Win *ww;
- E_Border *bd;
Eina_List *l;
int cnt;
@@ -950,22 +950,11 @@ _e_winlist_activate_nth(int n)
cnt = eina_list_count(_wins);
if (n >= cnt) n = cnt - 1;
l = eina_list_nth_list(_wins, n);
- if (l)
- {
- ww = eina_list_data_get(l);
- bd = e_border_under_pointer_get(ww->border->desk, NULL);
-
- if (bd && (ww->border->client.win == bd->client.win) && (cnt > 1))
- {
- _wins = eina_list_promote_list(_wins, l);
- _e_winlist_activate_nth(n);
- return;
- }
+ if (!l) return;
- _win_selected = l;
- _e_winlist_show_active();
- _e_winlist_activate();
- }
+ _win_selected = l;
+ _e_winlist_show_active();
+ _e_winlist_activate();
}
static void