aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>2016-08-08 12:51:27 +0200
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>2016-08-08 12:53:51 +0200
commitdfe08f0ce0b2980dcceef84087aca5b8d18d0fb4 (patch)
tree1e6345920a97ecffd67bdf164292ea9c06b8d0f3
parentmailmap: sync updated file from efl repo (diff)
downloadterminology-dfe08f0ce0b2980dcceef84087aca5b8d18d0fb4.tar.gz
win: free tab_region_base and tab_region_bg
otherwise this objects are leaking and taking the events for underlaying objects. This fixes https://phab.enlightenment.org/T4266
-rw-r--r--src/bin/win.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/bin/win.c b/src/bin/win.c
index 1da46cb..e46e698 100644
--- a/src/bin/win.c
+++ b/src/bin/win.c
@@ -180,6 +180,7 @@ static void _cb_size_hint(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, voi
static void _tab_new_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED);
static Tab_Item* tab_item_new(Tabs *tabs, Term_Container *child);
static void _tabs_refresh(Tabs *tabs);
+static void _term_tabregion_free(Term *term);
/* {{{ Solo */
@@ -3894,6 +3895,9 @@ _term_free(Term *term)
term->base = NULL;
evas_object_del(term->bg);
term->bg = NULL;
+
+ _term_tabregion_free(term);
+
if (term->tabcount_spacer)
{
evas_object_del(term->tabcount_spacer);
@@ -4036,6 +4040,16 @@ _term_tabregion_setup(Term *term)
edje_object_part_swallow(term->base, "terminology.tabregion", o);
}
+static void
+_term_tabregion_free(Term *term)
+{
+ evas_object_del(term->tab_region_bg);
+ term->tab_region_bg = NULL;
+
+ evas_object_del(term->tab_region_base);
+ term->tab_region_base = NULL;
+}
+
Eina_Bool
main_term_popup_exists(const Term *term)
{