From eb79489c31d2afb3b888952bcc40f17db518a56c Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 13 Jun 2005 10:40:37 +0000 Subject: [PATCH] dont segv if the border in the winlist that is hilighted is closed SVN revision: 15294 --- src/bin/e_winlist.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/bin/e_winlist.c b/src/bin/e_winlist.c index 0e14f19d1..b6e96e411 100644 --- a/src/bin/e_winlist.c +++ b/src/bin/e_winlist.c @@ -298,12 +298,11 @@ _e_winlist_size_adjust(void) static void _e_winlist_border_add(E_Border *bd, E_Zone *zone, E_Desk *desk) { - if ((bd->zone) && - (bd->zone == zone) && - ((bd->desk == desk) || (bd->sticky)) && + if ((((bd->zone) && (bd->zone == zone) && + ((bd->desk == desk) || (bd->sticky))) || + ((bd->zone->container == zone->container) && (bd->iconic))) && (bd->client.icccm.accepts_focus) && - (!bd->client.netwm.state.skip_taskbar) && - (!bd->client.netwm.state.hidden) + (!bd->client.netwm.state.skip_taskbar) ) { E_Winlist_Win *ww; @@ -354,6 +353,13 @@ _e_winlist_border_del(E_Border *bd) ww = l->data; if (ww->border == bd) { + if (l == win_selected) + { + win_selected = l->next; + if (!win_selected) win_selected = l->prev; + _e_winlist_show_active(); + _e_winlist_activate(); + } evas_object_del(ww->bg_object); if (ww->icon_object) evas_object_del(ww->icon_object); free(ww);