summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>2017-04-30 13:08:55 +0200
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>2017-04-30 13:08:55 +0200
commit3861b35a3e0a6d7b787eb703b11ba720edc479d1 (patch)
treefd1fad9e0e4f24083d59815145017d2e66272dd3
parent76dc0d460bb7c2582e82834fa1cac1419ed7d7a9 (diff)
downloadefl-3861b35a3e0a6d7b787eb703b11ba720edc479d1.tar.gz
efl_ui_focus_manager: add a free function for the relation
-rw-r--r--src/Makefile_Elementary.am3
-rw-r--r--src/lib/elementary/Elementary.h1
-rw-r--r--src/lib/elementary/efl_ui_focus_manager.c13
-rw-r--r--src/lib/elementary/efl_ui_focus_manager.eo2
-rw-r--r--src/lib/elementary/efl_ui_focus_manager.h6
-rw-r--r--src/lib/elementary/elm_widget.c2
6 files changed, 24 insertions, 3 deletions
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index d62045b18d..1dcdc8cb0d 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -286,7 +286,8 @@ includesunstable_HEADERS = \
lib/elementary/elm_code_indent.h \
lib/elementary/elm_code_file.h \
lib/elementary/elm_code_parse.h \
- lib/elementary/elm_code_syntax.h
+ lib/elementary/elm_code_syntax.h \
+ lib/elementary/efl_ui_focus_manager.h
includesunstabledir = $(includedir)/elementary-@VMAJ@
nodist_includesunstable_HEADERS = \
diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h
index db56d7e2ce..e58d36353c 100644
--- a/src/lib/elementary/Elementary.h
+++ b/src/lib/elementary/Elementary.h
@@ -154,6 +154,7 @@ EAPI extern Elm_Version *elm_version;
# include "efl_ui_focus_manager_sub.eo.legacy.h"
# include "efl_ui_focus_user.eo.legacy.h"
#endif
+#include "efl_ui_focus_manager.h"
#include <elm_tooltip.h>
#include <elm_object_item.h>
diff --git a/src/lib/elementary/efl_ui_focus_manager.c b/src/lib/elementary/efl_ui_focus_manager.c
index 00741e7393..0bf20c2f0c 100644
--- a/src/lib/elementary/efl_ui_focus_manager.c
+++ b/src/lib/elementary/efl_ui_focus_manager.c
@@ -1447,3 +1447,16 @@ _efl_ui_focus_manager_logical_end(Eo *obj EINA_UNUSED, Efl_Ui_Focus_Manager_Data
}
#include "efl_ui_focus_manager.eo.c"
+
+
+EAPI void
+efl_ui_focus_relations_free(Efl_Ui_Focus_Relations *rel)
+{
+ if (!rel) return;
+
+ eina_list_free(rel->left);
+ eina_list_free(rel->right);
+ eina_list_free(rel->down);
+ eina_list_free(rel->top);
+ free(rel);
+}
diff --git a/src/lib/elementary/efl_ui_focus_manager.eo b/src/lib/elementary/efl_ui_focus_manager.eo
index 8b95774864..abdbfc8a2f 100644
--- a/src/lib/elementary/efl_ui_focus_manager.eo
+++ b/src/lib/elementary/efl_ui_focus_manager.eo
@@ -13,7 +13,7 @@ enum Efl.Ui.Focus.Direction {
last = 6 [[Last value for this enum, do not use]]
}
-struct Efl.Ui.Focus.Relations {
+struct @free(efl_ui_focus_relations_free) Efl.Ui.Focus.Relations {
[[Structure holding the graph of relations between focussable objects.
@since 1.20
diff --git a/src/lib/elementary/efl_ui_focus_manager.h b/src/lib/elementary/efl_ui_focus_manager.h
new file mode 100644
index 0000000000..9c1718bf75
--- /dev/null
+++ b/src/lib/elementary/efl_ui_focus_manager.h
@@ -0,0 +1,6 @@
+#ifndef EFL_UI_FOCUS_MANAGER_H
+#define EFL_UI_FOCUS_MANAGER_H
+
+EAPI void efl_ui_focus_relations_free(Efl_Ui_Focus_Relations *rel);
+
+#endif
diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index a8fb4ef6d5..7a4337f330 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -4181,7 +4181,7 @@ _elm_widget_efl_object_dbg_info_get(Eo *eo_obj, Elm_Widget_Smart_Data *_pd EINA_
#undef ADD_PTR_LIST
}
-
+ efl_ui_focus_relations_free(rel);
//if thats a focus manager, give usefull informations like the border elements
if (efl_isa(eo_obj, EFL_UI_FOCUS_MANAGER_CLASS))
{