[EGIT] [core/elementary] master 01/01: atspi: remove useless "GetDefaultAttributeSet" method

2015-11-26 Thread Lukasz Stanislawski
stanluk pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=75b3ce919c725cc394600683ef149302eb6db7c9

commit 75b3ce919c725cc394600683ef149302eb6db7c9
Author: Lukasz Stanislawski 
Date:   Wed Nov 25 14:02:25 2015 +0100

atspi: remove useless "GetDefaultAttributeSet" method

This method exists in atspi spec, however is not implemented
in libatspi library. Drop it for now as it seems useless.
---
 src/lib/elm_atspi_bridge.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c
index 92ccd8a..6b08728 100644
--- a/src/lib/elm_atspi_bridge.c
+++ b/src/lib/elm_atspi_bridge.c
@@ -1832,7 +1832,6 @@ static const Eldbus_Method text_methods[] = {
{ "GetRangeExtents", ELDBUS_ARGS({"i", "startOffset"}, {"i", "endOffset"}, 
{"u", "coordType"}), ELDBUS_ARGS({"i", "x"}, {"i", "y"}, {"i","w"}, {"i","h"}), 
_text_range_extents_get, 0 },
{ "GetBoundedRanges", ELDBUS_ARGS({"i", "x"}, {"i", "y"}, {"i", "w"}, {"i", 
"h"}, {"u", "coordType"}, {"u", "xClipType"}, {"u", "yClipType"}), 
ELDBUS_ARGS({"a(issv)", NULL}), _text_bounded_ranges_get, 0 },
{ "GetAttributeRun", ELDBUS_ARGS({"i", "offset"}, {"b", 
"includeDefaults"}), ELDBUS_ARGS({"a(ss)", NULL}, {"i", "startOffset"}, {"i", 
"endOffset"}), _text_run_attributes_get, 0 },
-   { "GetDefaultAttributeSet", NULL, ELDBUS_ARGS({"a(ss)", NULL}), 
_text_default_attributes_get, 0 },
{ NULL, NULL, NULL, NULL, 0 }
 };
 

-- 




[EGIT] [core/efl] master 01/01: edje entry: return correct selection

2015-11-26 Thread Thiep Ha
herdsman pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=76939252278e4622067f9481251d03439a98761f

commit 76939252278e4622067f9481251d03439a98761f
Author: Thiep Ha 
Date:   Thu Nov 26 09:52:48 2015 +0200

edje entry: return correct selection

Summary:
In entry, when selection_get function is called, selection is not
always returned the current selection.

Scenario:
- In select mode, entry has selection (e.g, by double click).
- When selection handler is moved, set the cursor the current coordinate
  with edje_object_part_text_cursor_pos_set() API.
- Edje emits "selection,changed" signal.
- Elementary gets current selection and stores it.
- Elementary does not get selection as visual selection (e.g, text is
   highlighted with "entry test", but the selection returned
   from edje is "entry").
- If we copy and then paste to the entry, the pasted text is not same as
   selected text.

Reason:
- In _edje_entry_cursor_coord_set function, if entry has selection, we only
  emit "selection,changed" signal without freeing en->selection.
- When _edje_entry_selection_get is called, we check the en->selection,
  since it is existed, we just return it which is not updated one.

This patch clears en->selection, so that it is updated at _selection_get,
and the updated selection is returned to caller.

@fix

Test Plan:
In mobile profile, open entry
- Right click, choose select, double click -> selection handlers are shown.
- Drag selection handlers to change selection.
- Right click, do copy.
- Right click, do paste.
- See the pasted text is not same as selection.

Reviewers: raster, tasn, herdsman

Subscribers: seoz, JackDanielZ, cedric

Differential Revision: https://phab.enlightenment.org/D2746
---
 src/lib/edje/edje_entry.c | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index 92c40a6..c9b424c 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -3856,7 +3856,14 @@ _edje_entry_cursor_coord_set(Edje_Real_Part *rp, 
Edje_Cursor cur,
(cur == EDJE_CURSOR_SELECTION_END))
  {
 if (en->have_selection)
-  _edje_emit(en->ed, "selection,changed", rp->part->name);
+  {
+ if (en->selection)
+   {
+  free(en->selection);
+  en->selection = NULL;
+   }
+ _edje_emit(en->ed, "selection,changed", rp->part->name);
+  }
  }
return evas_textblock_cursor_char_coord_set(c, x, y);
 }

-- 




[EGIT] [core/efl] master 01/01: evas: Add ExtraLight, ExtraBold for font weight.

2015-11-26 Thread Youngbok Shin
herdsman pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=507baf4891951933bcd8bd5baee5f9e716398fee

commit 507baf4891951933bcd8bd5baee5f9e716398fee
Author: Youngbok Shin 
Date:   Thu Nov 26 10:16:13 2015 +0200

evas: Add ExtraLight, ExtraBold for font weight.

Summary:
Evas supports UltraLight, UltraBold as font weight.
These terms have same weight value as ExtraLight, ExtraBold.
Some applications, for example, fontforge, use ExtraLight, ExtraBold terms 
for these weight values.
So, it would be better to support these terms, too.
@feature

Test Plan: None

Reviewers: tasn, woohyun, herdsman

Reviewed By: herdsman

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3126
---
 src/lib/evas/canvas/evas_font_dir.c | 4 
 src/lib/evas/canvas/evas_object_textblock.c | 2 ++
 src/lib/evas/include/evas_private.h | 2 ++
 3 files changed, 8 insertions(+)

diff --git a/src/lib/evas/canvas/evas_font_dir.c 
b/src/lib/evas/canvas/evas_font_dir.c
index c3491cc..df0f5ef 100644
--- a/src/lib/evas/canvas/evas_font_dir.c
+++ b/src/lib/evas/canvas/evas_font_dir.c
@@ -268,12 +268,14 @@ static int _fc_weight_map[] =
FC_WEIGHT_NORMAL,
FC_WEIGHT_THIN,
FC_WEIGHT_ULTRALIGHT,
+   FC_WEIGHT_EXTRALIGHT,
FC_WEIGHT_LIGHT,
FC_WEIGHT_BOOK,
FC_WEIGHT_MEDIUM,
FC_WEIGHT_SEMIBOLD,
FC_WEIGHT_BOLD,
FC_WEIGHT_ULTRABOLD,
+   FC_WEIGHT_EXTRABOLD,
FC_WEIGHT_BLACK,
FC_WEIGHT_EXTRABLACK
 };
@@ -328,12 +330,14 @@ static Style_Map _style_weight_map[] =
  {"normal", EVAS_FONT_WEIGHT_NORMAL},
  {"thin", EVAS_FONT_WEIGHT_THIN},
  {"ultralight", EVAS_FONT_WEIGHT_ULTRALIGHT},
+ {"extralight", EVAS_FONT_WEIGHT_EXTRALIGHT},
  {"light", EVAS_FONT_WEIGHT_LIGHT},
  {"book", EVAS_FONT_WEIGHT_BOOK},
  {"medium", EVAS_FONT_WEIGHT_MEDIUM},
  {"semibold", EVAS_FONT_WEIGHT_SEMIBOLD},
  {"bold", EVAS_FONT_WEIGHT_BOLD},
  {"ultrabold", EVAS_FONT_WEIGHT_ULTRABOLD},
+ {"extrabold", EVAS_FONT_WEIGHT_ULTRABOLD},
  {"black", EVAS_FONT_WEIGHT_BLACK},
  {"extrablack", EVAS_FONT_WEIGHT_EXTRABLACK}
 };
diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index 7a9aafc..bb9e8af 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -1443,12 +1443,14 @@ _format_command(Evas_Object *eo_obj, 
Evas_Object_Textblock_Format *fmt, const ch
  * @li "normal"
  * @li "thin"
  * @li "ultralight"
+ * @li "extralight"
  * @li "light"
  * @li "book"
  * @li "medium"
  * @li "semibold"
  * @li "bold"
  * @li "ultrabold"
+ * @li "extrabold"
  * @li "black"
  * @li "extrablack"
  * @code
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index 26868c1..56407d9 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -485,12 +485,14 @@ enum _Evas_Font_Weight
EVAS_FONT_WEIGHT_NORMAL,
EVAS_FONT_WEIGHT_THIN,
EVAS_FONT_WEIGHT_ULTRALIGHT,
+   EVAS_FONT_WEIGHT_EXTRALIGHT,
EVAS_FONT_WEIGHT_LIGHT,
EVAS_FONT_WEIGHT_BOOK,
EVAS_FONT_WEIGHT_MEDIUM,
EVAS_FONT_WEIGHT_SEMIBOLD,
EVAS_FONT_WEIGHT_BOLD,
EVAS_FONT_WEIGHT_ULTRABOLD,
+   EVAS_FONT_WEIGHT_EXTRABOLD,
EVAS_FONT_WEIGHT_BLACK,
EVAS_FONT_WEIGHT_EXTRABLACK
 };

-- 




[EGIT] [tools/erigo] master 01/01: Fix show/hide issue when dragging in Naviframe and Layout

2015-11-26 Thread Yakov Goldberg
yakov pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=68282a788a1d01156505f353acd802f60f210889

commit 68282a788a1d01156505f353acd802f60f210889
Author: Yakov Goldberg 
Date:   Thu Nov 26 15:47:31 2015 +0200

Fix show/hide issue when dragging in Naviframe and Layout
---
 src/bin/gui/editor.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bin/gui/editor.c b/src/bin/gui/editor.c
index 882bb7e..16b4b20 100644
--- a/src/bin/gui/editor.c
+++ b/src/bin/gui/editor.c
@@ -1615,10 +1615,12 @@ _drop_target_leave(void *data, Evas_Object *obj)
else if (drop_target_wdg_eo && !strcmp(wdg_class_name_get(drop_target_wdg), 
DB_DEF_LAYOUT_CLASS))
  {
 di->packed = EINA_FALSE;
+di->drop_instead_obj = NULL;
  }
else if (drop_target_wdg_eo && !strcmp(wdg_class_name_get(drop_target_wdg), 
DB_DEF_NAVIFRAME_CLASS))
  {
 di->packed = EINA_FALSE;
+di->drop_instead_item_obj = NULL;
  }
 
if (di->eo_cur && IS_MAIN(drop_target_wdg) && (di->eo_cur != 
session_eo_get(session, dnd_drag_wdg_get(

-- 




[EGIT] [tools/erigo] master 01/03: Objtree: remove selection on deletion

2015-11-26 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=de274e02550fe5c8ee7a2fad9dea7728b4844ac8

commit de274e02550fe5c8ee7a2fad9dea7728b4844ac8
Author: Daniel Zaoui 
Date:   Wed Nov 25 17:00:39 2015 +0200

Objtree: remove selection on deletion

The selection of the widget after deletion should not be done here.
---
 src/bin/gui/objtree.c | 7 ---
 1 file changed, 7 deletions(-)

diff --git a/src/bin/gui/objtree.c b/src/bin/gui/objtree.c
index 00e27f7..2d708d8 100644
--- a/src/bin/gui/objtree.c
+++ b/src/bin/gui/objtree.c
@@ -317,14 +317,7 @@ void
 objtree_item_remove(const Gui_Widget *wdg)
 {
if (!wdg) return;
-   Elm_Object_Item *sel_item = elm_genlist_selected_item_get(lst);
Elm_Object_Item *item = wdg_data_get(wdg, DATA_ITEM);
-   if (sel_item == item)
- {
-sel_item = elm_genlist_item_prev_get(item);
-if (!sel_item) sel_item = elm_genlist_item_parent_get(item);
-if (sel_item) elm_genlist_item_selected_set(sel_item, EINA_TRUE);
- }
if (item) elm_object_item_del(item);
 }
 

-- 




[EGIT] [tools/erigo] master 02/03: Objtree: prevent item realization if parent is not realized

2015-11-26 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=7042c0a979fd49423bfb5c26e736ad5c27956e45

commit 7042c0a979fd49423bfb5c26e736ad5c27956e45
Author: Daniel Zaoui 
Date:   Thu Nov 26 11:55:28 2015 +0200

Objtree: prevent item realization if parent is not realized

The problem is that the object item is always created, event if the
parent is not expanded.
We only need to realize the parents when a selection is done and not
every time an object is created.
---
 src/bin/gui/objtree.c | 30 +++---
 1 file changed, 19 insertions(+), 11 deletions(-)

diff --git a/src/bin/gui/objtree.c b/src/bin/gui/objtree.c
index 2d708d8..c49a93f 100644
--- a/src/bin/gui/objtree.c
+++ b/src/bin/gui/objtree.c
@@ -77,7 +77,7 @@ _find_last_item_child(Elm_Object_Item *parent)
 }
 
 static Elm_Object_Item *
-_item_realize(Eid *eid)
+_item_realize(Eid *eid, Eina_Bool realize_parents)
 {
if (eid_is_dummy(eid) || !eid_exists(eid)) return NULL;
Gui_Widget *wdg = wdg_get(eid);
@@ -86,14 +86,19 @@ _item_realize(Eid *eid)
if (item) return item;
 
Gui_Widget *parent = (Gui_Widget *)wdg_parent_get(wdg);
-   if (parent)
+   if (realize_parents && parent)
  {
-parent_item = _item_realize(wdg_eid_get(parent));
+parent_item = _item_realize(wdg_eid_get(parent), realize_parents);
 if (parent_item) elm_genlist_item_expanded_set(parent_item, EINA_TRUE);
  }
+   if (parent)
+ {
+parent_item = wdg_data_get(parent, DATA_ITEM);
+if (!parent_item) return NULL;
+ }
 
item = wdg_data_get(wdg, DATA_ITEM);
-   if (!item && (!parent || parent_item))
+   if (!item)
  {
 const Gui_Widget *prev_wdg = wdg;
 Eid *prev_id = eid;
@@ -151,7 +156,7 @@ _expanded_cb(void *data EINA_UNUSED, Evas_Object *o 
EINA_UNUSED, void *event_inf
EINA_LIST_FOREACH(wdg_children_list_get(wdg), itr, wid)
  {
 if (!_filter || strstr(eid_name_get(wid), _filter))
-   _item_realize(wid);
+   _item_realize(wid, EINA_FALSE);
  }
 }
 
@@ -219,7 +224,7 @@ _build()
 EINA_LIST_FOREACH(gui_context_wdg_list_get(_active_ctx), itr, eid)
   {
  if (strstr(eid_name_get(eid), _filter))
-_item_realize(eid);
+_item_realize(eid, EINA_TRUE);
   }
  }
else
@@ -229,7 +234,7 @@ _build()
 EINA_LIST_FOREACH(gui_context_main_widgets_get(_active_ctx), itr, eid)
   {
  if (eid_is_dummy(eid) || !eid_exists(eid)) continue;
- _item_realize(eid);
+ _item_realize(eid, EINA_FALSE);
   }
  }
 }
@@ -290,7 +295,7 @@ objtree_item_selected_set(const Gui_Widget *wdg)
Elm_Object_Item *item = NULL;
if (!wdg) return;
_filter = NULL;
-   item = _item_realize(wdg_eid_get(wdg));
+   item = _item_realize(wdg_eid_get(wdg), EINA_TRUE);
if (!item) return;
elm_genlist_item_bring_in(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
elm_genlist_item_selected_set(item, EINA_TRUE);
@@ -304,11 +309,14 @@ objtree_item_add(const Gui_Widget *wdg)
if (eid_is_dummy(eid) || !eid_exists(eid)) return;
const Gui_Widget *parent = wdg_parent_get(wdg);
Elm_Object_Item *parent_item = parent ? wdg_data_get(parent, DATA_ITEM) : 
NULL;
-   if (!parent || parent_item)
+   if (!parent || (parent_item && elm_genlist_item_expanded_get(parent_item)))
  {
 if (parent_item && elm_genlist_item_type_get(parent_item) != 
ELM_GENLIST_ITEM_TREE)
-   objtree_item_remove(parent);
-_item_realize(wdg_eid_get(wdg));
+  {
+ objtree_item_remove(parent);
+ objtree_item_add(parent);
+  }
+_item_realize(wdg_eid_get(wdg), EINA_FALSE);
  }
 }
 

-- 




[EGIT] [tools/erigo] master 03/03: Invoke object selection when updating is done on memento

2015-11-26 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=e04fa346ff6caf5aa890e1342d94336b022f9270

commit e04fa346ff6caf5aa890e1342d94336b022f9270
Author: Daniel Zaoui 
Date:   Thu Nov 26 11:57:26 2015 +0200

Invoke object selection when updating is done on memento
---
 src/bin/gui/editor.c | 13 -
 src/lib/updater.c|  8 
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/bin/gui/editor.c b/src/bin/gui/editor.c
index 16b4b20..42dd73f 100644
--- a/src/bin/gui/editor.c
+++ b/src/bin/gui/editor.c
@@ -4665,12 +4665,23 @@ _mouse_wheel_cb(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *ev EINA_UNUS
 }
 
 static void
-_context_changed_cb(void *data EINA_UNUSED, Memento *mem EINA_UNUSED, 
Eina_Bool dir EINA_UNUSED)
+_context_changed_cb(void *data EINA_UNUSED, Memento *mem, Eina_Bool dir 
EINA_UNUSED)
 {
const Gui_Context *ctx = _active_context_get();
eo_do(g->main_win->toolbar_redo_it, 
elm_wdg_item_disabled_set(context_can_redo(ctx) ? EINA_FALSE : EINA_TRUE));
eo_do(g->main_win->toolbar_undo_it, 
elm_wdg_item_disabled_set(context_can_undo(ctx) ? EINA_FALSE : EINA_TRUE));
_canvas_name_update(ctx, EINA_FALSE);
+   if (mem)
+ {
+const Eina_List *cmds = memento_commands_get(mem), *itr;
+Memento_Command *cmd;
+EINA_LIST_FOREACH(cmds, itr, cmd)
+  {
+ Eid *eid = memento_command_wdg_get(cmd);
+ Gui_Widget *wdg = wdg_get(eid);
+ if (wdg) objtree_item_selected_set(wdg);
+  }
+ }
 }
 
 void
diff --git a/src/lib/updater.c b/src/lib/updater.c
index bcb9ec2..566278e 100644
--- a/src/lib/updater.c
+++ b/src/lib/updater.c
@@ -258,10 +258,10 @@ _update_check(void *data EINA_UNUSED)
  break;
  }
 }
-   }
- EINA_LIST_FOREACH(_completion_cbs, itr2, info)
-   {
-  info->cb(info->data, mem, mem_dir);
+  EINA_LIST_FOREACH(_completion_cbs, itr2, info)
+{
+   info->cb(info->data, mem, mem_dir);
+}
}
   }
 Eina_List *forced_wdgs_infos = gui_context_data_get(ctx, 
CONTEXT_FORCE_WDGS_KEY);

-- 




[EGIT] [tools/erigo] master 02/02: Refactoring wdg_parent_container_eid_get()

2015-11-26 Thread Yakov Goldberg
yakov pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=6bb54bddd18b3c4648b63c86952b80bb8f073828

commit 6bb54bddd18b3c4648b63c86952b80bb8f073828
Author: Yakov Goldberg 
Date:   Thu Nov 26 11:30:31 2015 +0200

Refactoring wdg_parent_container_eid_get()

Now this function checks if requested widget is packed into its parent,
and returns parent eid.
---
 src/bin/gui/editor.c |  4 ---
 src/lib/gui_widget.c | 79 +---
 src/lib/gui_widget.h |  3 --
 3 files changed, 57 insertions(+), 29 deletions(-)

diff --git a/src/bin/gui/editor.c b/src/bin/gui/editor.c
index 7a05058..328042e 100644
--- a/src/bin/gui/editor.c
+++ b/src/bin/gui/editor.c
@@ -1922,7 +1922,6 @@ _drop_target_drop(Gui_Widget *drop_target_wdg, Eo 
*canvas_drop_target, const cha
  else
{
   wdg_parent_set(wdg_get(di->drop_instead_item_obj), 
wdg_name_get(wdg_main_wdg_get(drop_target_wdg)));
-  
wdg_parent_container_eid_set(wdg_get(di->drop_instead_item_obj), NULL);
}
   }
  }
@@ -3708,7 +3707,6 @@ _field_update_from_itemview(void *data EINA_UNUSED, Eo 
*obj, const Eo_Event_Desc
 }
   memento_command_add(wdg_eid_get(w), MEMENTO_WIDGET_PARENT, 
wdg_eid_get(wdg_parent_get(w)), wdg_eid_get(wdg));
   wdg_parent_set(w, wdg_name_get(wdg));
-  wdg_parent_container_eid_set(w, wdg_eid_get(wdg));
}
   }
 /* If old_value is some widget, set main_obj as it's parent. */
@@ -3719,7 +3717,6 @@ _field_update_from_itemview(void *data EINA_UNUSED, Eo 
*obj, const Eo_Event_Desc
   Eid *old_name_id = 
gui_context_eid_get_by_name(_active_context_get(), old_value);
   Gui_Widget *w = wdg_get(old_name_id);
   wdg_parent_set(w, wdg_name_get(wdg_main_wdg_get(wdg)));
-  wdg_parent_container_eid_set(w, NULL);
}
   }
 objtree_item_selected_set(wdg);
@@ -4242,7 +4239,6 @@ _content_change_from_propview(void *data EINA_UNUSED, Eo 
*obj, const Eo_Event_De
 
 memento_command_add(wdg_eid_get(new_param_wdg), 
MEMENTO_WIDGET_PARENT, wdg_eid_get(prev_wdg_container), 
wdg_eid_get(wdg_main_wdg_get(prev_wdg_container)));
 wdg_parent_set(new_param_wdg, 
wdg_name_get(wdg_main_wdg_get(prev_wdg_container)));
-wdg_parent_container_eid_set(new_param_wdg, NULL);
  }
 }
}
diff --git a/src/lib/gui_widget.c b/src/lib/gui_widget.c
index a917e03..9f67ac4 100644
--- a/src/lib/gui_widget.c
+++ b/src/lib/gui_widget.c
@@ -1373,7 +1373,18 @@ wdg_copy(const Gui_Widget *src, Eid *dest_id, Eina_Bool 
full)
 Container_Type
 wdg_container_type_get(const Gui_Widget *wdg)
 {
-   Container_Desc *c_desc = db_container_desc_get(wdg_class_name_get(wdg));
+   const char *wdg_class_name = wdg_class_name_get(wdg);
+   /* Try to get Container Description from class itself.*/
+   Container_Desc *c_desc = db_container_desc_get(wdg_class_name);
+   /* If it doesn't work, take last class in inheritance list. */
+   if (!c_desc)
+ {
+Eina_List *lst = db_class_inherit_containers_list_get(wdg_class_name);
+if (!lst) return NOT_CONTAINER;
+const char *cont_name = eina_list_data_get(eina_list_last(lst));
+c_desc = db_container_desc_get(cont_name);
+ }
+
if (c_desc)
  {
 const Op_Desc *op_pack = db_container_desc_op_desc_get(c_desc, 
CONTAINER_PACK);
@@ -1818,18 +1829,58 @@ wdg_data_get(const Gui_Widget *wdg, const char *key)
 
 //
 
-void
-wdg_parent_container_eid_set(Gui_Widget *wdg, Eid *eid)
+static Eina_Bool
+_item_container_items_iterate(const Item_Container_Item *item, Eid 
*wdg_eid_search)
 {
-   EINA_SAFETY_ON_NULL_RETURN(wdg);
-   wdg->parent_container_id = eid;
+   const Eina_List *items_lst = item_container_item_subitems_get(item), *itr;
+   /* Detect if cursor is inside swallow object.*/
+   Eid *eid_itr;
+   EINA_LIST_FOREACH(items_lst, itr, eid_itr)
+ {
+const Item_Container_Item *cit = 
item_container_item_get_from_id(eid_itr);
+const Gui_Widget_Property *prop = item_container_item_prop_get(cit);
+Eina_List *values = prop_value_get(prop), *itr2;
+Gui_Value *val;
+EINA_LIST_FOREACH(values, itr2, val)
+  {
+ if (gui_value_type_get(val) == GUI_TYPE_OBJECT)
+   {
+  if (wdg_eid_search == EID_ID_GET(val))
+{
+   return EINA_TRUE;
+}
+   }
+  }
+Eina_Bool found = _item_container_items_iterate(cit, wdg_eid_search);
+if (found) return EINA_TRUE;
+ }
+   return EINA_FALSE;
 }
 
 Eid *
 wdg_parent_con

[EGIT] [tools/erigo] master 01/02: Fix parent management when change widgets packing

2015-11-26 Thread Yakov Goldberg
yakov pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=781bf31a5203f9274cb383f6b5d28e16668c1838

commit 781bf31a5203f9274cb383f6b5d28e16668c1838
Author: Yakov Goldberg 
Date:   Wed Nov 25 17:31:22 2015 +0200

Fix parent management when change widgets packing
---
 src/bin/gui/editor.c | 107 +++
 1 file changed, 90 insertions(+), 17 deletions(-)

diff --git a/src/bin/gui/editor.c b/src/bin/gui/editor.c
index 42dd73f..7a05058 100644
--- a/src/bin/gui/editor.c
+++ b/src/bin/gui/editor.c
@@ -4147,6 +4147,7 @@ _content_change_from_propview(void *data EINA_UNUSED, Eo 
*obj, const Eo_Event_De
 
/* Hoversel is used mainly to choose objects.
 * So here need to make most of the work on objects: adding, change 
dependencies, change parent, etc. */
+   Eid *old_packed_eid = NULL;
if (kl == ELM_HOVERSEL_CLASS)
  {
 const char *new_value = elm_object_item_part_text_get(event_info, 
NULL);
@@ -4168,30 +4169,88 @@ _content_change_from_propview(void *data EINA_UNUSED, 
Eo *obj, const Eo_Event_De
  Eid *prev_parent_cont_eid = 
wdg_parent_container_eid_get(new_param_wdg);
  Gui_Widget *prev_wdg_container = prev_parent_cont_eid ? 
wdg_get(prev_parent_cont_eid) : NULL;
 
- Gui_Session *session = (Gui_Session *) 
gui_context_editor_session_get(ctx);
- if (prev_wdg_container && 
(wdg_container_type_get(prev_wdg_container) == OBJ_CONTAINER))
+ if (prev_wdg_container)
{
-  Object_Container *_old_prev_container, *_new_prev_container;
-  _old_prev_container = (Object_Container *) 
wdg_obj_container_get((Gui_Widget *) prev_wdg_container);
-  _new_prev_container = 
obj_container_copy(_old_prev_container);
+  if (wdg_container_type_get(prev_wdg_container) == 
OBJ_CONTAINER)
+{
+   Object_Container *_old_prev_container, 
*_new_prev_container;
+   _old_prev_container = (Object_Container *) 
wdg_obj_container_get((Gui_Widget *) prev_wdg_container);
+   _new_prev_container = 
obj_container_copy(_old_prev_container);
 
-  memento_command_add(wdg_eid_get(prev_wdg_container),
-  
MEMENTO_OBJ_CONTAINER,
-  
_old_prev_container, _new_prev_container);
-  wdg_obj_container_unset((Gui_Widget *) prev_wdg_container);
-  wdg_obj_container_set((Gui_Widget *) prev_wdg_container, 
_new_prev_container);
+   memento_command_add(wdg_eid_get(prev_wdg_container),
+   MEMENTO_OBJ_CONTAINER,
+   _old_prev_container, 
_new_prev_container);
+   wdg_obj_container_unset((Gui_Widget *) 
prev_wdg_container);
+   wdg_obj_container_set((Gui_Widget *) 
prev_wdg_container, _new_prev_container);
 
-  /* Take old container's class name from content-property. */
-  Object_Container_Item *_ci = 
wdg_obj_container_item_get(prev_wdg_container, -1, new_value);
-  Gui_Widget_Property *old_prop = 
obj_container_item_prop_get(_ci);
+   /* Take old container's class name from 
content-property. */
+   Object_Container_Item *_ci = 
wdg_obj_container_item_get(prev_wdg_container, -1, new_value);
+   Gui_Widget_Property *old_prop = 
obj_container_item_prop_get(_ci);
 
-  const Op_Desc *old_op_desc = prop_op_desc_get(old_prop);
-  const char *old_container_name = 
db_op_desc_class_name_get(old_op_desc);
+   const Op_Desc *old_op_desc = prop_op_desc_get(old_prop);
+   const char *old_container_name = 
db_op_desc_class_name_get(old_op_desc);
 
-  manager_widget_content_unset(session, prev_wdg_container, 
old_container_name, old_prop, NULL);
-  wdg_obj_container_item_remove(prev_wdg_container, _ci);
+   Gui_Session *session = (Gui_Session *) 
gui_context_editor_session_get(ctx);
+   manager_widget_content_unset(session, 
prev_wdg_container, old_container_name, old_prop, NULL);
+   wdg_obj_container_item_remove(prev_wdg_container, _ci);
+}
+  else if (wdg_container_type_get(prev_wdg_container) == 
ITEM_CONTAINER)
+{
+   const Eina_List *items_lst = 
item_container_item_subitems_get(wdg_item_container_root_get(prev_wdg_container)),
 *itr;
+   /* Detect if cursor is inside swallow object.*/
+   Eid *eid_itr;
+   Item_Container_Item *cit;
+

[EGIT] [core/efl] master 02/08: evas_cserve2: use void to force empty function parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=cfd478dfc5250df01a303d6d2d0c9b64d062fb97

commit cfd478dfc5250df01a303d6d2d0c9b64d062fb97
Author: Stefan Schmidt 
Date:   Thu Nov 26 17:23:47 2015 +0100

evas_cserve2: use void to force empty function parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
---
 src/bin/evas/evas_cserve2.h | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/bin/evas/evas_cserve2.h b/src/bin/evas/evas_cserve2.h
index 2369857..cc3623e 100644
--- a/src/bin/evas/evas_cserve2.h
+++ b/src/bin/evas/evas_cserve2.h
@@ -292,8 +292,8 @@ void cserve2_slave_kill(Slave *s);
 
 void cserve2_message_handler(int fd, Fd_Flags flags, void *data);
 
-void cserve2_shm_init();
-void cserve2_shm_shutdown();
+void cserve2_shm_init(void);
+void cserve2_shm_shutdown(void);
 Shm_Handle *cserve2_shm_request(const char *infix, size_t size);
 Shm_Handle *cserve2_shm_segment_request(Shm_Handle *shm, size_t size);
 Shm_Handle *cserve2_shm_resize(Shm_Handle *shm, size_t newsize);
@@ -394,8 +394,8 @@ int cserve2_shared_mempool_generation_id_set(Shared_Mempool 
*sm, int generation_
 Shared_Array *cserve2_shared_mempool_index_get(Shared_Mempool *sm);
 
 // Shared strings
-const char *cserve2_shared_strings_table_name_get();
-const char *cserve2_shared_strings_index_name_get();
+const char *cserve2_shared_strings_table_name_get(void);
+const char *cserve2_shared_strings_index_name_get(void);
 int cserve2_shared_string_add(const char *str);
 int cserve2_shared_string_ref(int id);
 void cserve2_shared_string_del(int id);

-- 




[EGIT] [core/efl] master 07/08: evas software_x11: use void to force empty function parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=bc5c239d2d40d6fd5fff01dfaa38ca6ab68fd217

commit bc5c239d2d40d6fd5fff01dfaa38ca6ab68fd217
Author: Stefan Schmidt 
Date:   Thu Nov 26 17:26:36 2015 +0100

evas software_x11: use void to force empty function parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
---
 src/modules/evas/engines/software_x11/evas_xlib_dri_image.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/evas/engines/software_x11/evas_xlib_dri_image.h 
b/src/modules/evas/engines/software_x11/evas_xlib_dri_image.h
index 555468d..563e7c7 100644
--- a/src/modules/evas/engines/software_x11/evas_xlib_dri_image.h
+++ b/src/modules/evas/engines/software_x11/evas_xlib_dri_image.h
@@ -80,5 +80,5 @@ void evas_xlib_image_dir_free(Evas_DRI_Image *exim);
 Eina_Bool evas_xlib_image_get_buffers(RGBA_Image *im);
 void evas_xlib_image_buffer_unmap(Evas_DRI_Image *exim);
 Eina_Bool evas_xlib_image_dri_init(Evas_DRI_Image *exim, Display *display);
-Eina_Bool evas_xlib_image_dri_used();
+Eina_Bool evas_xlib_image_dri_used(void);
 void *evas_xlib_image_dri_native_set(void *data, void *image, void *native);

-- 




[EGIT] [core/efl] master 03/08: ector: use void to force empty function parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f356af17c934c857811c5fcbb313628d43bbe091

commit f356af17c934c857811c5fcbb313628d43bbe091
Author: Stefan Schmidt 
Date:   Thu Nov 26 17:24:37 2015 +0100

ector: use void to force empty function parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
---
 src/lib/ector/software/ector_drawhelper_private.h | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/lib/ector/software/ector_drawhelper_private.h 
b/src/lib/ector/software/ector_drawhelper_private.h
index d15a8f6..22d5fe9 100644
--- a/src/lib/ector/software/ector_drawhelper_private.h
+++ b/src/lib/ector/software/ector_drawhelper_private.h
@@ -93,11 +93,11 @@ typedef void (*RGBA_Comp_Func_Solid)(uint *dest, int 
length, uint color, uint co
 extern RGBA_Comp_Func_Solid func_for_mode_solid[ECTOR_ROP_LAST];
 extern RGBA_Comp_Func func_for_mode[ECTOR_ROP_LAST];
 
-void drawhelper_gradient_init();
-void draw_helper_sse2_init();
-void draw_helper_neon_init();
+void drawhelper_gradient_init(void);
+void draw_helper_sse2_init(void);
+void draw_helper_neon_init(void);
 
-void draw_helper_init();
+void draw_helper_init(void);
 
 RGBA_Comp_Func_Solid ector_comp_func_solid_span_get(Ector_Rop op, uint color);
 RGBA_Comp_Func ector_comp_func_span_get(Ector_Rop op, uint color, Eina_Bool 
src_alpha);

-- 




[EGIT] [core/efl] master 08/08: rg_etc: use void to force empty function parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7b86b1c374612aba09b646a647208577918cfeec

commit 7b86b1c374612aba09b646a647208577918cfeec
Author: Stefan Schmidt 
Date:   Thu Nov 26 17:27:01 2015 +0100

rg_etc: use void to force empty function parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
---
 src/static_libs/rg_etc/rg_etc1.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/static_libs/rg_etc/rg_etc1.h b/src/static_libs/rg_etc/rg_etc1.h
index 6f4b944..4a695dc 100644
--- a/src/static_libs/rg_etc/rg_etc1.h
+++ b/src/static_libs/rg_etc/rg_etc1.h
@@ -28,7 +28,7 @@ typedef struct
 
 // pack_etc1_block_init() should be called before calling pack_etc1_block(),
 // Otherwise rg_etc1_pack_block() will call rg_etc1_pack_block_init() for you.
-void rg_etc1_pack_block_init();
+void rg_etc1_pack_block_init(void);
 
 // Packs a 4x4 block of 32bpp BGRA pixels to an 8-byte ETC1 block.
 // 32-bit BGRA pixels must always be arranged as (B,G,R,A) (B first, A last) 
in memory, independent of platform endianness. A should always be 255.

-- 




[EGIT] [core/efl] master 04/08: eolian: use void to force empty function parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1d34318938b7880f2b07b3f319995f78aa4e8c90

commit 1d34318938b7880f2b07b3f319995f78aa4e8c90
Author: Stefan Schmidt 
Date:   Thu Nov 26 17:25:06 2015 +0100

eolian: use void to force empty function parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
---
 src/lib/eolian/eolian_database.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index dd530c7..73435a5 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -266,8 +266,8 @@ struct _Eolian_Variable
Eina_Bool is_extern :1;
 };
 
-int database_init();
-int database_shutdown();
+int database_init(void);
+int database_shutdown(void);
 
 char *database_class_to_filename(const char *cname);
 Eina_Bool database_validate(void);

-- 




[EGIT] [core/efl] master 01/08: edje_decc: use void to force empty function parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e683a53f926dbfefb11a35f277eae8ca0176f2fd

commit e683a53f926dbfefb11a35f277eae8ca0176f2fd
Author: Stefan Schmidt 
Date:   Thu Nov 26 17:20:14 2015 +0100

edje_decc: use void to force empty function parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
---
 src/bin/edje/edje_decc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/edje/edje_decc.c b/src/bin/edje/edje_decc.c
index 5eeb7ef..2f5fe96 100644
--- a/src/bin/edje/edje_decc.c
+++ b/src/bin/edje/edje_decc.c
@@ -35,8 +35,8 @@ int new_dir = 1;
 
 intdecomp(void);
 void   output(void);
-static int compiler_cmd_is_sane();
-static int root_filename_is_sane();
+static int compiler_cmd_is_sane(void);
+static int root_filename_is_sane(void);
 
 
 static void

-- 




[EGIT] [core/efl] master 05/08: evas_common3d: use void to force empty function parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=043cfaa33be21585031bceaedbf5496bd15d3cc6

commit 043cfaa33be21585031bceaedbf5496bd15d3cc6
Author: Stefan Schmidt 
Date:   Thu Nov 26 17:25:36 2015 +0100

evas_common3d: use void to force empty function parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
---
 src/lib/evas/common3d/save_load/evas_model_common.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/evas/common3d/save_load/evas_model_common.h 
b/src/lib/evas/common3d/save_load/evas_model_common.h
index bda8419..be8dbae 100644
--- a/src/lib/evas/common3d/save_load/evas_model_common.h
+++ b/src/lib/evas/common3d/save_load/evas_model_common.h
@@ -48,7 +48,7 @@ struct _Evas_Model_Load_Save_Stride
 };
 
 /* create new header */
-Evas_Model_Load_Save_Header evas_model_load_save_header_new();
+Evas_Model_Load_Save_Header evas_model_load_save_header_new(void);
 void evas_model_load_vertex_data_unmap(Evas_Canvas3D_Mesh *mesh, int frame, 
Evas_Model_Load_Save_Header header);
 void evas_model_load_save_data_free(Evas_Model_Load_Save_Header header, 
Evas_Model_Load_Save_Data *data);
 void evas_model_load_vertex_data_to_mesh(Evas_Canvas3D_Mesh *mesh, 
Evas_Model_Load_Save_Header header, Evas_Model_Load_Save_Data data, 
Evas_Model_Load_Save_Stride *stride);

-- 




[EGIT] [core/efl] master 06/08: evas gl_common: use void to force empty function parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e99dbd1dbb704b3ce039cd0f996d0d92a61f74ef

commit e99dbd1dbb704b3ce039cd0f996d0d92a61f74ef
Author: Stefan Schmidt 
Date:   Thu Nov 26 17:26:07 2015 +0100

evas gl_common: use void to force empty function parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
---
 src/modules/evas/engines/gl_common/evas_gl_core.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/evas_gl_core.h 
b/src/modules/evas/engines/gl_common/evas_gl_core.h
index e1e6764..8083236 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_core.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_core.h
@@ -85,9 +85,9 @@ Eina_Bool
evgl_native_surface_direct_opts_get(Evas_Native_Surface *ns,
  Eina_Bool *direct_override);
 
 void evgl_direct_partial_info_set(int pres);
-void evgl_direct_partial_info_clear();
-void evgl_direct_partial_render_start();
-void evgl_direct_partial_render_end();
+void evgl_direct_partial_info_clear(void);
+void evgl_direct_partial_render_start(void);
+void evgl_direct_partial_render_end(void);
 
 #undef EAPI
 #define EAPI

-- 




[EGIT] [core/elementary] master 02/03: test: correct declaration of function with no parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=41e0df46c03b92b39348ef7bb512ee84127e1996

commit 41e0df46c03b92b39348ef7bb512ee84127e1996
Author: Stefan Schmidt 
Date:   Thu Nov 26 17:49:55 2015 +0100

test: correct declaration of  function with no parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.

Thanks for the sparse semantic parser for pointing this out.
---
 src/bin/test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/test.c b/src/bin/test.c
index 14296a3..ddd1c4e 100644
--- a/src/bin/test.c
+++ b/src/bin/test.c
@@ -268,7 +268,7 @@ void test_win_dialog(void *data, Evas_Object *obj, void 
*event_info);
 void test_box_disable(void *data, Evas_Object *obj, void *event_info);
 void test_layout_disable(void *data, Evas_Object *obj, void *event_info);
 
-void test_colorclass();
+void test_colorclass(void);
 
 Evas_Object *win, *tbx; // TODO: refactoring
 void *tt;

-- 




[EGIT] [core/elementary] master 01/03: elm_prefcs_cc: correct declaration of function with no parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=5d8d96964a4a694880e5ed894916753240f79dee

commit 5d8d96964a4a694880e5ed894916753240f79dee
Author: Stefan Schmidt 
Date:   Thu Nov 26 17:48:01 2015 +0100

elm_prefcs_cc: correct declaration of  function with no parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.

Thanks for the sparse semantic parser for pointing this out.
---
 src/bin/elm_prefs_cc.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/bin/elm_prefs_cc.h b/src/bin/elm_prefs_cc.h
index 716f174..ef848ba 100644
--- a/src/bin/elm_prefs_cc.h
+++ b/src/bin/elm_prefs_cc.h
@@ -79,9 +79,9 @@ voidcheck_arg_count(int n);
 voidcheck_regex(const char *regex);
 voidset_verbatim(char *s, int l1, int l2);
 
-voiddata_init();
-voiddata_write();
-voiddata_shutdown();
+voiddata_init(void);
+voiddata_write(void);
+voiddata_shutdown(void);
 
 int object_handler_num(void);
 int statement_handler_num(void);

-- 




[EGIT] [core/elementary] master 03/03: elm_widget: correct declaration of function with no parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=f129e78b203436aebd9858d62734cc2d0d9e8134

commit f129e78b203436aebd9858d62734cc2d0d9e8134
Author: Stefan Schmidt 
Date:   Thu Nov 26 17:50:14 2015 +0100

elm_widget: correct declaration of  function with no parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.

Thanks for the sparse semantic parser for pointing this out.
---
 src/lib/elm_widget.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h
index e553ec5..23ed7a1 100644
--- a/src/lib/elm_widget.h
+++ b/src/lib/elm_widget.h
@@ -518,7 +518,7 @@ struct _Elm_Action
Eina_Bool (*func)(Evas_Object *obj, const char *params);
 };
 
-void  _elm_access_shutdown();
+void  _elm_access_shutdown(void);
 void  _elm_access_mouse_event_enabled_set(Eina_Bool enabled);
 
 /* if auto_higlight is EINA_TRUE, it  does not steal a focus, it just moves a 
highlight */

-- 




[EGIT] [core/enlightenment] master 02/02: pulse backend: correct declaration of function with no parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=7ed23817227bf0595c8f376e23c573b1f8cd7969

commit 7ed23817227bf0595c8f376e23c573b1f8cd7969
Author: Stefan Schmidt 
Date:   Thu Nov 26 18:10:47 2015 +0100

pulse backend: correct declaration of  function with no parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.

Thanks for the sparse semantic parser for pointing this out.
---
 src/modules/mixer/lib/backends/pulseaudio/pulse.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/mixer/lib/backends/pulseaudio/pulse.c 
b/src/modules/mixer/lib/backends/pulseaudio/pulse.c
index da83487..f882734 100644
--- a/src/modules/mixer/lib/backends/pulseaudio/pulse.c
+++ b/src/modules/mixer/lib/backends/pulseaudio/pulse.c
@@ -672,7 +672,7 @@ _subscribe_cb(pa_context *c, pa_subscription_event_type_t t,
 }
 
 static Eina_Bool _pulse_connect(void *data);
-static void _disconnect_cb();
+static void _disconnect_cb(void);
 
 static void
 _pulse_pa_state_cb(pa_context *context, void *data)

-- 




[EGIT] [core/enlightenment] master 01/02: e_fm:correct declaration of function with no parameters

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=01a4a24f34d720cf703ce3806e41b3e12a888c6b

commit 01a4a24f34d720cf703ce3806e41b3e12a888c6b
Author: Stefan Schmidt 
Date:   Thu Nov 26 18:09:32 2015 +0100

e_fm:correct declaration of  function with no parameters

We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.

Thanks for the sparse semantic parser for pointing this out.
---
 src/bin/e_fm_op.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_fm_op.c b/src/bin/e_fm_op.c
index 57f404a..2e2c21c 100644
--- a/src/bin/e_fm_op.c
+++ b/src/bin/e_fm_op.c
@@ -74,12 +74,12 @@ void *alloca(size_t);
 typedef struct _E_Fm_Op_Task  E_Fm_Op_Task;
 typedef struct _E_Fm_Op_Copy_Data E_Fm_Op_Copy_Data;
 
-static E_Fm_Op_Task *_e_fm_op_task_new();
+static E_Fm_Op_Task *_e_fm_op_task_new(void);
 static void  _e_fm_op_task_free(void *t);
 
 static void  _e_fm_op_remove_link_task(E_Fm_Op_Task *task);
 static Eina_Bool _e_fm_op_stdin_data(void *data, Ecore_Fd_Handler 
*fd_handler);
-static void  _e_fm_op_set_up_idlers();
+static void  _e_fm_op_set_up_idlers(void);
 static void  _e_fm_op_delete_idler(int *mark);
 static int   _e_fm_op_idler_handle_error(int *mark, Eina_List **queue, 
Eina_List **node, E_Fm_Op_Task *task);
 

-- 




[EGIT] [core/enlightenment] master 01/02: e_gadcon: use Eina_Bool for one-bit bitfield

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=d18e1697013a0c3720d8aab00fc88a3d4972d528

commit d18e1697013a0c3720d8aab00fc88a3d4972d528
Author: Stefan Schmidt 
Date:   Thu Nov 26 18:31:02 2015 +0100

e_gadcon: use Eina_Bool for one-bit bitfield

Make sure we are using a unsigned var here. Best go with a Eina_Bool 
directly.
---
 src/bin/e_gadcon.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_gadcon.h b/src/bin/e_gadcon.h
index e709ed7..b95ae7f 100644
--- a/src/bin/e_gadcon.h
+++ b/src/bin/e_gadcon.h
@@ -194,7 +194,7 @@ struct _E_Gadcon_Client
   int seq, flags;   /* goes to save */
   int state, resist;
   int prev_pos, prev_size;
-  int want_save : 1;
+  Eina_Bool want_save : 1;
} state_info;
 
struct

-- 




[EGIT] [core/enlightenment] master 02/02: e_menu: use Eina_Bool for one-bit bitfield

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=9365129a5aa464e31ca308a59fe59d8d26bb658a

commit 9365129a5aa464e31ca308a59fe59d8d26bb658a
Author: Stefan Schmidt 
Date:   Thu Nov 26 18:31:29 2015 +0100

e_menu: use Eina_Bool for one-bit bitfield

Make sure we are using a unsigned var here. Best go with a Eina_Bool 
directly.
---
 src/bin/e_menu.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_menu.h b/src/bin/e_menu.h
index ec9ec51..7ad3da4 100644
--- a/src/bin/e_menu.h
+++ b/src/bin/e_menu.h
@@ -31,7 +31,7 @@ struct _E_Menu
const char *category;
 
struct {
-  char  visible : 1;
+  Eina_Bool visible : 1;
   int   x, y, w, h;
} cur, prev;
 

-- 




[EGIT] [website/www-content] master 01/01: Wiki page javascript changed with summary [Adding details on the JS binding internals.] by Lauro Moura

2015-11-26 Thread Lauro Moura
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=efef07bf534a7defb5752690410f9f092376eff8

commit efef07bf534a7defb5752690410f9f092376eff8
Author: Lauro Moura 
Date:   Thu Nov 26 09:48:08 2015 -0800

Wiki page javascript changed with summary [Adding details on the JS binding 
internals.] by Lauro Moura
---
 pages/api/javascript.txt | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/pages/api/javascript.txt b/pages/api/javascript.txt
index 00804dc..d9612b9 100644
--- a/pages/api/javascript.txt
+++ b/pages/api/javascript.txt
@@ -15,4 +15,10 @@ var efl = require('efl');
* [[api/javascript/eina|Eina]] - Data types and basic abstractions.
* [[api/javascript/eldbus|Eldbus]] - Dbus-integration.
* [[api/javascript/eo|Eo]] - Generic object system.
-   * [[api/javascript/ethumb|Ethumb]] - Generate thumbnail images of files.
\ No newline at end of file
+   * [[api/javascript/ethumb|Ethumb]] - Generate thumbnail images of files.
+
+= Under the hood =
+
+The Javascript binding is split into two big parts. The first is a //manual// 
binding, wich is described in this documentation. The //automatic// binding 
covers the Eo-based classes, built with automatically-generated code and will 
be covered later.
+
+Due to the C++ being the native language of the libv8, it's was also used to 
write the bindings, with the help of the C++ bindings for EFL.
\ No newline at end of file

-- 




[EGIT] [website/www-content] master 01/01: Wiki page eina changed with summary [created] by Lauro Moura

2015-11-26 Thread Lauro Moura
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=76755c3d6b50bd3b58e2b35cb41b567f06b69e49

commit 76755c3d6b50bd3b58e2b35cb41b567f06b69e49
Author: Lauro Moura 
Date:   Thu Nov 26 10:38:28 2015 -0800

Wiki page eina changed with summary [created] by Lauro Moura
---
 pages/api/javascript/eina.txt | 25 +
 1 file changed, 25 insertions(+)

diff --git a/pages/api/javascript/eina.txt b/pages/api/javascript/eina.txt
new file mode 100644
index 000..1668a6d
--- /dev/null
+++ b/pages/api/javascript/eina.txt
@@ -0,0 +1,25 @@
+== Javascript - Eina - Data types and tools ==
+
+The Eina library provides a number of data types and tools targeted at working 
with the remainder of the EFL framework although they can be used on their own. 
For example, Lists and Arrays can be used both to send collections of objects 
to a native function or get the result of a native function. Or someone can use 
just the logging facilities.
+
+This document describes the parts that make Eina and their usage in the eyes 
of the Javascript developer.
+
+= Data types =
+
+Currently, two data types are available: Lists and Arrays. Both aim to have a 
similar interface to the native 
[[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array|JS
 Arrays]] for the most common operations. One important limitation is that when 
you create an Eina collection you must pass the type of object that will be 
stored. This is required to allow the binding do the correct conversion between 
Javascript types and C/C++ types due to the former's st [...]
+
+Besides the constructor function, they differ in the way the items are stored 
underneath. ''efl.List'' are doubly-linked lists, with relatively fast 
insert/delete operations in the middle of the collection while ''efl.Array'' 
objects are contiguous memory arrays, with fast data access (compared to Lists) 
but costly to insert or delete items in the middle of the collection.
+
+ Creating collections 
+
+In order to create collections, you call the respective constructor passing 
the name of the type that will be stored on that collection:
+
+
+var mylist = new efl.List("int");
+var myarray = new efl.List("array");
+
+
+Currently the following types are available:
+
+
+= Tools and utilities =

-- 




[EGIT] [website/www-content] master 01/01: Wiki page eina changed with summary [] by Lauro Moura

2015-11-26 Thread Lauro Moura
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=d0819680a888feefab2f3e7f4e0bf1e01f938449

commit d0819680a888feefab2f3e7f4e0bf1e01f938449
Author: Lauro Moura 
Date:   Thu Nov 26 11:23:42 2015 -0800

Wiki page eina changed with summary [] by Lauro Moura
---
 pages/api/javascript/eina.txt | 48 +--
 1 file changed, 42 insertions(+), 6 deletions(-)

diff --git a/pages/api/javascript/eina.txt b/pages/api/javascript/eina.txt
index 1668a6d..126a74c 100644
--- a/pages/api/javascript/eina.txt
+++ b/pages/api/javascript/eina.txt
@@ -6,20 +6,56 @@ This document describes the parts that make Eina and their 
usage in the eyes of
 
 = Data types =
 
-Currently, two data types are available: Lists and Arrays. Both aim to have a 
similar interface to the native 
[[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array|JS
 Arrays]] for the most common operations. One important limitation is that when 
you create an Eina collection you must pass the type of object that will be 
stored. This is required to allow the binding do the correct conversion between 
Javascript types and C/C++ types due to the former's st [...]
+Currently, two data types are available: Lists and Arrays. Both represent 
sequence of items and aim to have a similar interface to the native 
[[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array|JS
 Arrays]] for the most common operations. One important limitation is that when 
you create an Eina collection you must pass the type of object that will be 
stored. This is required to allow the binding do the correct conversion between 
Javascript types and C/ [...]
 
 Besides the constructor function, they differ in the way the items are stored 
underneath. ''efl.List'' are doubly-linked lists, with relatively fast 
insert/delete operations in the middle of the collection while ''efl.Array'' 
objects are contiguous memory arrays, with fast data access (compared to Lists) 
but costly to insert or delete items in the middle of the collection.
 
- Creating collections 
+ Creating sequences 
 
-In order to create collections, you call the respective constructor passing 
the name of the type that will be stored on that collection:
+In order to create a collection of items, you call the respective constructor 
passing the name of the type that will be stored on that collection:
 
 
 var mylist = new efl.List("int");
-var myarray = new efl.List("array");
+var myarray = new efl.Array("string");
 
 
-Currently the following types are available:
+The following types are supported using the respective type name:
 
+   * Integers - "int"
+   * Floating point numbers - "float"
+   * Boolean values - "bool"
+   * Strings of characters - "string"
 
-= Tools and utilities =
+ Handling sequences 
+
+The following methods and operations are available for both types of sequences.
+
+=== Inserting items ===
+
+''obj.push(item)'' - Works like the Javascript ''Array.push(item)'', appending 
the item to the end of the sequence. For lists, a new node is created at the 
end. For Arrays, the item is set to the end of the array, and it may grow as 
needed.
+
+Usage example:
+
+
+mylist.push(3);
+myarray.push("Foobar");
+
+
+=== Getting items ===
+
+''obj[index]'' - Works like Javascript Array ''[]'' operators. The items are 
0-indexed, with the first element at index 0 and the last element with index 
equal to the number of elements of the sequence minus 1.
+
+
+mylist[42] # Gets the 42nd element
+mylist[0] # Gets the first element.
+
+
+=== Setting items ===
+
+=== Deleting and removing items ===
+
+=== Getting the number of Elements ===
+
+=== Printing the elements ===
+
+= Tools and utilities =
\ No newline at end of file

-- 




[EGIT] [website/www-content] master 01/01: Wiki page eina changed with summary [] by Lauro Moura

2015-11-26 Thread Lauro Moura
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=a9e2dfa4263ce5a3985e62af322e405f6ec8a97d

commit a9e2dfa4263ce5a3985e62af322e405f6ec8a97d
Author: Lauro Moura 
Date:   Thu Nov 26 11:24:59 2015 -0800

Wiki page eina changed with summary [] by Lauro Moura
---
 pages/api/javascript/eina.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/pages/api/javascript/eina.txt b/pages/api/javascript/eina.txt
index 126a74c..c85840c 100644
--- a/pages/api/javascript/eina.txt
+++ b/pages/api/javascript/eina.txt
@@ -6,7 +6,9 @@ This document describes the parts that make Eina and their 
usage in the eyes of
 
 = Data types =
 
-Currently, two data types are available: Lists and Arrays. Both represent 
sequence of items and aim to have a similar interface to the native 
[[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array|JS
 Arrays]] for the most common operations. One important limitation is that when 
you create an Eina collection you must pass the type of object that will be 
stored. This is required to allow the binding do the correct conversion between 
Javascript types and C/ [...]
+Currently, two data types are available: Lists and Arrays. Both represent 
sequence of items and aim to have a similar interface to the native 
[[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array|JS
 Arrays]] for the most common operations, like push/pop and indexed get/set.
+
+One important limitation is that when you create an Eina collection you must 
pass the type of object that will be stored. This is required to allow the 
binding do the correct conversion between Javascript types and C/C++ types due 
to the former's static nature.
 
 Besides the constructor function, they differ in the way the items are stored 
underneath. ''efl.List'' are doubly-linked lists, with relatively fast 
insert/delete operations in the middle of the collection while ''efl.Array'' 
objects are contiguous memory arrays, with fast data access (compared to Lists) 
but costly to insert or delete items in the middle of the collection.
 

-- 




[EGIT] [website/www-content] master 01/01: Wiki page eina changed with summary [Added method descriptions and other fixes.] by Lauro Moura

2015-11-26 Thread Lauro Moura
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=f4f921f4a5fad15b47ae4965d507e5383a1d421d

commit f4f921f4a5fad15b47ae4965d507e5383a1d421d
Author: Lauro Moura 
Date:   Thu Nov 26 12:02:29 2015 -0800

Wiki page eina changed with summary [Added method descriptions and other 
fixes.] by Lauro Moura
---
 pages/api/javascript/eina.txt | 74 +++
 1 file changed, 67 insertions(+), 7 deletions(-)

diff --git a/pages/api/javascript/eina.txt b/pages/api/javascript/eina.txt
index c85840c..1497acf 100644
--- a/pages/api/javascript/eina.txt
+++ b/pages/api/javascript/eina.txt
@@ -6,7 +6,7 @@ This document describes the parts that make Eina and their 
usage in the eyes of
 
 = Data types =
 
-Currently, two data types are available: Lists and Arrays. Both represent 
sequence of items and aim to have a similar interface to the native 
[[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array|JS
 Arrays]] for the most common operations, like push/pop and indexed get/set.
+Currently, two data types are available: Lists and Arrays. Both represent a 
sequence of items and aim to have a similar interface to the native 
[[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array|JS
 Arrays]] for the most common operations, like push/pop and indexed get/set.
 
 One important limitation is that when you create an Eina collection you must 
pass the type of object that will be stored. This is required to allow the 
binding do the correct conversion between Javascript types and C/C++ types due 
to the former's static nature.
 
@@ -30,30 +30,90 @@ The following types are supported using the respective type 
name:
 
  Handling sequences 
 
-The following methods and operations are available for both types of sequences.
+The methods and operations below are supported for both types of sequences.
 
 === Inserting items ===
 
-''obj.push(item)'' - Works like the Javascript ''Array.push(item)'', appending 
the item to the end of the sequence. For lists, a new node is created at the 
end. For Arrays, the item is set to the end of the array, and it may grow as 
needed.
+Syntax
+
+
+var size = obj.push(item)
+
+
+Works like the Javascript ''Array.push(item)'', appending the item to the end 
of the sequence. For lists, a new node is created at the end. For Arrays, the 
item is set to the end of the array, and it may grow as needed.
+
+The method returns the size of the container after adding the new element.
 
 Usage example:
 
 
+var mylist = new efl.List("int");
 mylist.push(3);
-myarray.push("Foobar");
+var myarray = new efl.Array("string");
+var new_size = myarray.push("Foobar");
+
+
+
+Although Javascript is weak typed, the binding functions are rather strong 
typed, doing minimal type conversions, like int to floats. Trying to push an 
element of a different type from the one provided in the constructor will raise 
TypeError.
+
+var obj = new efl.List("float");
+obj.push("44"); // CRASH
 
+
 
 === Getting items ===
 
-''obj[index]'' - Works like Javascript Array ''[]'' operators. The items are 
0-indexed, with the first element at index 0 and the last element with index 
equal to the number of elements of the sequence minus 1.
+Syntax
+
+
+var myvar = obj[index];
+
+
+Works like Javascript Array ''[]'' operators. The items are 0-indexed, with 
the first element at index 0 and the last element with index equal to the 
number of elements of the sequence minus 1.
+
+Usage example:
 
 
-mylist[42] # Gets the 42nd element
-mylist[0] # Gets the first element.
+mylist[42] // Gets the 42nd element
+mylist[0] // Gets the first element.
 
 
+
+Trying to access an element with an index out of bounds will return 
''undefined''.
+
+
 === Setting items ===
 
+Syntax
+
+
+obj[index] = value;
+var v = (obj[index] = value);
+
+
+Works like Javascript indexed setter method. It sets the value at the given 
index to the given value, //generally// not changing the container size (see 
note below). On success, the operation returns the value recently set.
+
+
+Trying to set a value at an index equal or larger than the size of the 
container will extend the container up to that index and fill value up to the 
last one with ''undefined'', and setting the given value in the last position.
+
+var obj = new efl.List("int");
+obj[42] = 42; // Obj now has 42 undefined's leading up to 42 in the last 
position.
+
+
+
+Usage example:
+
+
+var obj = new efl.List("int");
+obj.push(3) // [3]
+obj.push(2) // [3,2]
+obj[0] = 42; // [42, 2]
+
+
+
+As with pushing elements, trying to push an element of a different type from 
the one given to the constructor will raise TypeError.
+
+
 === Deleting and removing items ===
 
 === Getting the number of Elements ===

-- 




[EGIT] [website/www-content] master 01/01: Wiki page eina changed with summary [] by Lauro Moura

2015-11-26 Thread Lauro Moura
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=068be9428c745844253dbcfbbddff1a74f7faac0

commit 068be9428c745844253dbcfbbddff1a74f7faac0
Author: Lauro Moura 
Date:   Thu Nov 26 12:31:24 2015 -0800

Wiki page eina changed with summary [] by Lauro Moura
---
 pages/api/javascript/eina.txt | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/pages/api/javascript/eina.txt b/pages/api/javascript/eina.txt
index 1497acf..61688d0 100644
--- a/pages/api/javascript/eina.txt
+++ b/pages/api/javascript/eina.txt
@@ -116,6 +116,24 @@ As with pushing elements, trying to push an element of a 
different type from the
 
 === Deleting and removing items ===
 
+Syntax
+
+
+var value = obj.pop();
+
+
+Behaves like Javascript ''Array.pop()'', removing the last element of the list 
and returning it.
+
+Example code:
+
+// obj is [1,2,3,4,5]
+var value = obj.pop(); // value now is 5 and obj is [1,2,3,4]
+
+
+
+Trying to pop an item from an empty list will return undefined and leave the 
list empty.
+
+
 === Getting the number of Elements ===
 
 === Printing the elements ===

-- 




[EGIT] [core/evas_generic_loaders] master 01/01: xcf: fix indent for some code parts to match surroundings

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/evas_generic_loaders.git/commit/?id=26db3fd707e28ab03b69cf9acc5ecd6cf7edaf8a

commit 26db3fd707e28ab03b69cf9acc5ecd6cf7edaf8a
Author: Stefan Schmidt 
Date:   Thu Nov 26 23:31:45 2015 +0100

xcf: fix indent for some code parts to match surroundings

The file uses 3 spaces for initial indent while some code blocks have been
added with two spaces. Purely cosmetic but found while playing around with
smatch.
---
 src/bin/xcf/main.c | 34 +-
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/bin/xcf/main.c b/src/bin/xcf/main.c
index 1cef05b..373823b 100644
--- a/src/bin/xcf/main.c
+++ b/src/bin/xcf/main.c
@@ -665,11 +665,11 @@ xcf_load_image(void)
 /* restore the saved position so we'll be ready to
  *  read the next offset. */
 xcf_seek_pos (saved_pos);
-}
-  /* If we were a Gimp we would now load the user-defined channels here ... */
-  /* Flat-o-rama now :) */
-  flatten_image();
-  return;
+ }
+   /* If we were a Gimp we would now load the user-defined channels here ... */
+   /* Flat-o-rama now :) */
+   flatten_image();
+   return;
 error:
if (num_successful_elements == 0) goto hard_error;
fprintf(stderr, "XCF: This file is corrupt!  I have loaded as much\nof it 
as I can, but it is incomplete.\n");
@@ -758,18 +758,18 @@ xcf_load_layer(void)
int type;
char   *name;
 
-  D("Loading one layer ...\n");
-  /* read in the layer width, height and type */
-  image->cp += xcf_read_int32(image->file, (DATA32 *)&width, 1);
-  image->cp += xcf_read_int32(image->file, (DATA32 *)&height, 1);
-  image->cp += xcf_read_int32(image->file, (DATA32 *)&type, 1);
-  image->cp += xcf_read_string(image->file, &name, 1);
-  /* ugly, I know */
-  FREE(name);
-
-  /* create a new layer */
-  layer = new_layer(width, height, type, 255, NORMAL_MODE);
-  if (!layer) return NULL;
+   D("Loading one layer ...\n");
+   /* read in the layer width, height and type */
+   image->cp += xcf_read_int32(image->file, (DATA32 *)&width, 1);
+   image->cp += xcf_read_int32(image->file, (DATA32 *)&height, 1);
+   image->cp += xcf_read_int32(image->file, (DATA32 *)&type, 1);
+   image->cp += xcf_read_string(image->file, &name, 1);
+   /* ugly, I know */
+   FREE(name);
+
+   /* create a new layer */
+   layer = new_layer(width, height, type, 255, NORMAL_MODE);
+   if (!layer) return NULL;
 
/* read in the layer properties */
if (!xcf_load_layer_props(layer)) goto error;

-- 




[EGIT] [core/efl] master 01/01: eina_matrix: optimize multiply and inverse calls by actually using the shortcut

2015-11-26 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=a486671bce76e405a8d7261f19b0f67ca678f0c4

commit a486671bce76e405a8d7261f19b0f67ca678f0c4
Author: Stefan Schmidt 
Date:   Fri Nov 27 00:13:04 2015 +0100

eina_matrix: optimize multiply and inverse calls by actually using the 
shortcut

We had this nice shortcuts for multiply and inverse with the identity 
matrix.
Pity we never used it! The EINA_MATRIX_TYPE_IDENTITY is coming from an enum
without and direct assignments to its internals. Being the first item in the
enum it is most likely will be 0 which makes the whole bitwise AND zero and 
thus
the optimized path will never get called. If our compiler now decides hew 
wants
to handle enums differently and does not assign the 0 to the first item this
bitwise operation will be even more screwed. What we really want is to 
check is
if the type we get for the matrix matches EINA_MATRIX_TYPE_IDENTITY. So 
better
do this. Made me look into matrix multply and inverse. Fun!

Thanks to smatch for poiting this out.
---
 src/lib/eina/eina_matrix.c | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/lib/eina/eina_matrix.c b/src/lib/eina/eina_matrix.c
index 90493d3..7a1469c 100644
--- a/src/lib/eina/eina_matrix.c
+++ b/src/lib/eina/eina_matrix.c
@@ -991,13 +991,13 @@ EAPI void
 eina_matrix4_multiply(Eina_Matrix4 *out, const Eina_Matrix4 *mat_a,
const Eina_Matrix4 *mat_b)
 {
-   if (eina_matrix4_type_get(mat_a) & EINA_MATRIX_TYPE_IDENTITY)
+   if (eina_matrix4_type_get(mat_a) == EINA_MATRIX_TYPE_IDENTITY)
  {
 eina_matrix4_copy(out, mat_b);
 return;
  }
 
-   if (eina_matrix4_type_get(mat_b) & EINA_MATRIX_TYPE_IDENTITY)
+   if (eina_matrix4_type_get(mat_b) == EINA_MATRIX_TYPE_IDENTITY)
  {
 eina_matrix4_copy(out, mat_a);
 return;
@@ -1085,13 +1085,13 @@ eina_matrix3_copy(Eina_Matrix3 *dst, const Eina_Matrix3 
*src)
 EAPI void
 eina_matrix3_multiply(Eina_Matrix3 *out, const Eina_Matrix3 *mat_a, const 
Eina_Matrix3 *mat_b)
 {
-   if (eina_matrix3_type_get(mat_a) & EINA_MATRIX_TYPE_IDENTITY)
+   if (eina_matrix3_type_get(mat_a) == EINA_MATRIX_TYPE_IDENTITY)
  {
 eina_matrix3_copy(out, mat_b);
 return;
  }
 
-   if (eina_matrix3_type_get(mat_b) & EINA_MATRIX_TYPE_IDENTITY)
+   if (eina_matrix3_type_get(mat_b) == EINA_MATRIX_TYPE_IDENTITY)
  {
 eina_matrix3_copy(out, mat_a);
 return;
@@ -1206,7 +1206,7 @@ eina_matrix2_inverse(Eina_Matrix2 *out, const 
Eina_Matrix2 *mat)
 {
double det;
 
-   if (eina_matrix2_type_get(mat) & EINA_MATRIX_TYPE_IDENTITY)
+   if (eina_matrix2_type_get(mat) == EINA_MATRIX_TYPE_IDENTITY)
  {
 eina_matrix2_copy(out, mat);
 return;
@@ -1250,13 +1250,13 @@ eina_matrix2_copy(Eina_Matrix2 *dst, const Eina_Matrix2 
*src)
 EAPI void
 eina_matrix2_multiply(Eina_Matrix2 *out, const Eina_Matrix2 *mat_a, const 
Eina_Matrix2 *mat_b)
 {
-   if (eina_matrix2_type_get(mat_a) & EINA_MATRIX_TYPE_IDENTITY)
+   if (eina_matrix2_type_get(mat_a) == EINA_MATRIX_TYPE_IDENTITY)
  {
 eina_matrix2_copy(out, mat_b);
 return;
  }
 
-   if (eina_matrix2_type_get(mat_b) & EINA_MATRIX_TYPE_IDENTITY)
+   if (eina_matrix2_type_get(mat_b) == EINA_MATRIX_TYPE_IDENTITY)
  {
 eina_matrix2_copy(out, mat_a);
 return;

-- 




[EGIT] [core/enlightenment] master 01/01: Stop using MIN macros when choosing versions for wayland resources

2015-11-26 Thread Derek Foreman
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=81ff082e0d762f3d16f5e2cafd2717456d30c872

commit 81ff082e0d762f3d16f5e2cafd2717456d30c872
Author: Derek Foreman 
Date:   Thu Nov 26 20:12:47 2015 -0500

Stop using MIN macros when choosing versions for wayland resources

Summary:
libwayland-server.so will post an error if the requested version
is higher than the supported one anyway, so there's no point in
doing this.

Using MIN() to pick versions is a client side idiom.

 #kansas

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3385
---
 src/bin/e_comp_wl.c   | 6 +++---
 src/bin/e_comp_wl_input.c | 2 +-
 src/modules/wl_desktop_shell/e_mod_main.c | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 4c644b3..467072c 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1574,7 +1574,7 @@ _e_comp_wl_compositor_cb_bind(struct wl_client *client, 
void *data EINA_UNUSED,
 
if (!(res =
  wl_resource_create(client, &wl_compositor_interface,
-MIN(version, COMPOSITOR_VERSION), id)))
+version, id)))
  {
 ERR("Could not create compositor resource: %m");
 wl_client_post_no_memory(client);
@@ -2010,7 +2010,7 @@ _e_comp_wl_subcompositor_cb_bind(struct wl_client 
*client, void *data EINA_UNUSE
 
if (!(res =
  wl_resource_create(client, &wl_subcompositor_interface,
-MIN(version, 1), id)))
+version, id)))
  {
 ERR("Could not create subcompositor resource: %m");
 wl_client_post_no_memory(client);
@@ -2426,7 +2426,7 @@ _e_comp_wl_cb_output_bind(struct wl_client *client, void 
*data, uint32_t version
if (!(output = data)) return;
 
resource =
- wl_resource_create(client, &wl_output_interface, MIN(version, 2), id);
+ wl_resource_create(client, &wl_output_interface, version, id);
if (!resource)
  {
 wl_client_post_no_memory(client);
diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c
index 7aa0dcd..2793448 100644
--- a/src/bin/e_comp_wl_input.c
+++ b/src/bin/e_comp_wl_input.c
@@ -249,7 +249,7 @@ _e_comp_wl_input_cb_bind_seat(struct wl_client *client, 
void *data EINA_UNUSED,
 {
struct wl_resource *res;
 
-   res = wl_resource_create(client, &wl_seat_interface, MIN(version, 4), id);
+   res = wl_resource_create(client, &wl_seat_interface, version, id);
if (!res)
  {
 ERR("Could not create seat resource: %m");
diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index 040c427..c18abad 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -1323,7 +1323,7 @@ _e_shell_cb_bind(struct wl_client *client, void *data 
EINA_UNUSED, uint32_t vers
 {
struct wl_resource *res;
 
-   if (!(res = wl_resource_create(client, &wl_shell_interface, MIN(version, 
1), id)))
+   if (!(res = wl_resource_create(client, &wl_shell_interface, version, id)))
  {
 wl_client_post_no_memory(client);
 return;
@@ -1340,7 +1340,7 @@ _e_xdg_shell_cb_bind(struct wl_client *client, void *data 
EINA_UNUSED, uint32_t
 {
struct wl_resource *res;
 
-   if (!(res = wl_resource_create(client, &xdg_shell_interface, MIN(version, 
1), id)))
+   if (!(res = wl_resource_create(client, &xdg_shell_interface, version, id)))
  {
 wl_client_post_no_memory(client);
 return;

--