From 5db007e5798b7f8dd142ea365a6a1ce3333acf82 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Wed, 15 Jul 2015 23:17:24 +0200 Subject: [PATCH] fix segv when spliting from controls. Closes T2568 --- src/bin/win.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/bin/win.c b/src/bin/win.c index 5094d69e..a17643c0 100644 --- a/src/bin/win.c +++ b/src/bin/win.c @@ -346,6 +346,9 @@ _solo_focus(Term_Container *tc, Term_Container *relative) solo = (Solo*) tc; term = solo->term; + if (!tc->parent) + return; + DBG("tc:%p tc->is_focused:%d from_parent:%d", tc, tc->is_focused, tc->parent == relative); if (tc->is_focused) @@ -1288,6 +1291,10 @@ _split_focus(Term_Container *tc, Term_Container *relative) DBG("tc:%p tc->is_focused:%d from_parent:%d", tc, tc->is_focused, tc->parent == relative); + + if (!tc->parent) + return; + if (tc->parent == relative) { tc->is_focused = EINA_TRUE; @@ -1391,7 +1398,8 @@ _split_split(Term_Container *tc, Term_Container *child, } static Term_Container * -_split_new(Term_Container *tc1, Term_Container *tc2, Eina_Bool is_horizontal) +_split_new(Term_Container *tc1, Term_Container *tc2, + Eina_Bool is_horizontal) { Evas_Object *o; Term_Container *tc = NULL; @@ -2313,6 +2321,9 @@ _tabs_focus(Term_Container *tc, Term_Container *relative) assert (tc->type == TERM_CONTAINER_TYPE_TABS); tabs = (Tabs*) tc; + if (!tc->parent) + return; + DBG("tc:%p tc->is_focused:%d from_parent:%d", tc, tc->is_focused, tc->parent == relative); if (tc->parent == relative) @@ -2360,6 +2371,8 @@ _tabs_unfocus(Term_Container *tc, Term_Container *relative) tc, tc->is_focused, tc->parent == relative); if (!tc->is_focused) return; + if (!tc->parent) + return; assert (tc->type == TERM_CONTAINER_TYPE_TABS); tabs = (Tabs*) tc;