workaround for potential crashes when closing windows and switching desktops

T322
This commit is contained in:
Dieter Roelants 2013-11-26 11:44:04 -05:00 committed by Mike Blumenkrantz
parent 1a6ce053d0
commit 41ed2a2079
3 changed files with 31 additions and 0 deletions

View File

@ -50,3 +50,4 @@ Stefan Sperling <stsp@openbsd.org>
Nicolas Beaumont <nicolas.beaumont@gmail.com>
David H. Bronke <whitelynx@gmail.com>
Deon Thomas
dieter.e

View File

@ -1,3 +1,7 @@
2013-11-26 dieter.e
* fixed potential crashes when switching desktops and closing windows
2013-11-25 Tom Hacohen
* Entry: Fixed issues with entry not scrolling to cursor.

View File

@ -5006,6 +5006,19 @@ _e_border_free(E_Border *bd)
focused = NULL;
}
if (warp_timer_border == bd)
{
warp_to = 0;
warp_timer_border = NULL;
if (warp_timer)
{
ecore_timer_del(warp_timer);
warp_timer = NULL;
e_border_focus_lock_set(EINA_FALSE);
}
}
E_FREE_LIST(bd->handlers, ecore_event_handler_del);
if (bd->remember)
{
@ -5114,6 +5127,7 @@ _e_border_del(E_Border *bd)
E_Event_Border_Remove *ev;
E_Border *child;
bd->take_focus = bd->want_focus = 0;
if (bd == focused)
{
focused = NULL;
@ -5124,6 +5138,18 @@ _e_border_del(E_Border *bd)
focus_next = eina_list_remove(focus_next, bd);
if (warp_timer_border == bd)
{
warp_to = 0;
warp_timer_border = NULL;
if (warp_timer)
{
ecore_timer_del(warp_timer);
warp_timer = NULL;
e_border_focus_lock_set(EINA_FALSE);
}
}
if (bd->fullscreen) bd->desk->fullscreen_borders--;
if ((drag_border) && (drag_border->data == bd))