[EGIT] [core/efl] master 01/01: evas render - async sw - fix context duplication by using proper dup call

2015-10-04 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 8a4ddea224ee2cc411269024311691cf8841a2bc
Author: Carsten Haitzler (Rasterman) 
Date:   Sun Oct 4 16:50:58 2015 +0900

evas render - async sw - fix context duplication by using proper dup call

valgrind pointed this one out. we access freed memory when we dup a
context because the context CONTAINS ptrs to things like rects for
cutouts. we didnt dup these. use the proper context dup call (and
properly ref pixman color image too). this was a random bug/crash
waiting to happen and valgrind caught it. suprising it hasnt turned up
before :/

@fix
---
 src/lib/evas/common/evas_draw_main.c   |  6 
 .../evas/engines/software_generic/evas_engine.c| 32 --
 2 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/src/lib/evas/common/evas_draw_main.c 
b/src/lib/evas/common/evas_draw_main.c
index 3a62d94..b444608 100644
--- a/src/lib/evas/common/evas_draw_main.c
+++ b/src/lib/evas/common/evas_draw_main.c
@@ -107,6 +107,12 @@ evas_common_draw_context_dup(RGBA_Draw_Context *dc)
dc2 = malloc(sizeof(RGBA_Draw_Context));
memcpy(dc2, dc, sizeof(RGBA_Draw_Context));
evas_common_draw_context_cutouts_dup(>cutout, >cutout);
+#ifdef HAVE_PIXMAN
+#if defined(PIXMAN_FONT) || defined(PIXMAN_RECT) || defined(PIXMAN_LINE) || 
defined(PIXMAN_POLY)
+   if (dc2->col.pixman_color_image)
+ pixman_image_ref(dc2->col.pixman_color_image);
+#endif
+#endif
return dc2;
 }
 
diff --git a/src/modules/evas/engines/software_generic/evas_engine.c 
b/src/modules/evas/engines/software_generic/evas_engine.c
index 553b353..0a541d3 100644
--- a/src/modules/evas/engines/software_generic/evas_engine.c
+++ b/src/modules/evas/engines/software_generic/evas_engine.c
@@ -371,7 +371,7 @@ struct _Evas_Thread_Command_Font
 struct _Evas_Thread_Command_Map
 {
void *image;
-   RGBA_Draw_Context image_ctx;
+   RGBA_Draw_Context *image_ctx;
void *surface;
Eina_Rectangle clip;
DATA32 mul_col;
@@ -385,7 +385,7 @@ struct _Evas_Thread_Command_Map
 
 struct _Evas_Thread_Command_Multi_Font
 {
-   RGBA_Draw_Context context;
+   RGBA_Draw_Context *context;
void *surface;
int x, y;
Evas_Font_Array *texts;
@@ -2068,25 +2068,25 @@ _draw_thread_map_draw(void *data)
  dw = (m->pts[2 + offset].x >> FP) - dx;
  dh = (m->pts[2 + offset].y >> FP) - dy;
 
- col = map->image_ctx.mul.col;
- use = map->image_ctx.mul.use;
- if (use) map->image_ctx.mul.col = MUL4_SYM(col, m->pts[0].col);
- else map->image_ctx.mul.col = m->pts[0].col;
- map->image_ctx.mul.use = 1;
+ col = map->image_ctx->mul.col;
+ use = map->image_ctx->mul.use;
+ if (use) map->image_ctx->mul.col = MUL4_SYM(col, m->pts[0].col);
+ else map->image_ctx->mul.col = m->pts[0].col;
+ map->image_ctx->mul.use = 1;
 
  if (map->smooth)
evas_common_scale_rgba_in_to_out_clip_cb
- (im, map->surface, >image_ctx,
+ (im, map->surface, map->image_ctx,
   0, 0, im->cache_entry.w, im->cache_entry.h,
   dx, dy, dw, dh, _map_image_smooth_draw);
  else
evas_common_scale_rgba_in_to_out_clip_cb
- (im, map->surface, >image_ctx,
+ (im, map->surface, map->image_ctx,
   0, 0, im->cache_entry.w, im->cache_entry.h,
   dx, dy, dw, dh, _map_image_sample_draw);
 
- map->image_ctx.mul.col = col;
- map->image_ctx.mul.use = use;
+ map->image_ctx->mul.col = col;
+ map->image_ctx->mul.use = use;
   }
 else
   {
@@ -2106,6 +2106,7 @@ _draw_thread_map_draw(void *data)
 
  free_out:
free(m);
+   evas_common_draw_context_free(map->image_ctx);
eina_mempool_free(_mp_command_map, map);
 }
 
@@ -2119,7 +2120,7 @@ _map_draw_thread_cmd(RGBA_Image *src, RGBA_Image *dst, 
RGBA_Draw_Context *dc, RG
if (!cm) return EINA_FALSE;
 
cm->image = src;
-   memcpy(>image_ctx, dc, sizeof(*dc));
+   cm->image_ctx = evas_common_draw_context_dup(dc);
cm->surface = dst;
 
if (dc->clip.use)
@@ -2402,11 +2403,12 @@ _draw_thread_multi_font_draw(void *data)
 b = itr->color.b;
 a = itr->color.a;
 
-eng_context_color_set(NULL, >context, r, g, b, a);
-evas_common_font_draw(mf->surface, >context, x, y, itr->glyphs);
+eng_context_color_set(NULL, mf->context, r, g, b, a);
+evas_common_font_draw(mf->surface, mf->context, x, y, itr->glyphs);
 evas_common_cpu_end_opt();
  }
 
+   evas_common_draw_context_free(mf->context);
eina_mempool_free(_mp_command_multi_font, mf);
 }
 
@@ -2424,7 +2426,7 @@ 

[EGIT] [core/enlightenment] enlightenment-0.19 01/01: fix systray to work with spec-breaking apps, eg. steam

2015-10-04 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 041fbdb31e6fd2464ec4ff597a4c4d59f7fc2ccc
Author: Mike Blumenkrantz 
Date:   Sun Oct 4 08:41:07 2015 -0400

fix systray to work with spec-breaking apps, eg. steam

according to the StatusNotifierItem specification, applications
register "service org.freedesktop.StatusNotifierItem-PID-ID" on the
session bus, and then "must register the unique instance name
to the StatusNotifierWatcher".

some applications, such as steam, instead register the path that they
will run on (/org/ayatana/NotificationItem/steam) and then expect the
watcher to register the method call's send id bus: this is totally bogus.

to catch this, when registering the new item the enlightenment watcher must
first determine if the item is spec-conforming. if yes, proceed as normal.
if no, pretend the application knows what it's doing and try to make things
work as expected anyway

for more details, read the full spec here
http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem

fix T2763
---
 src/modules/systray/e_mod_notifier_host_dbus.c| 16 +++-
 src/modules/systray/e_mod_notifier_host_private.h |  4 ++--
 src/modules/systray/e_mod_notifier_watcher.c  | 14 +-
 3 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/src/modules/systray/e_mod_notifier_host_dbus.c 
b/src/modules/systray/e_mod_notifier_host_dbus.c
index 77ae5b5..8eba2b1 100644
--- a/src/modules/systray/e_mod_notifier_host_dbus.c
+++ b/src/modules/systray/e_mod_notifier_host_dbus.c
@@ -14,8 +14,6 @@
 extern const char *Category_Names[];
 extern const char *Status_Names[];
 
-static Eina_Stringshare *DBUS_PATH;
-
 typedef struct _Notifier_Host_Data {
Instance_Notifier_Host *host_inst;
void *data;
@@ -445,24 +443,26 @@ notifier_items_get_cb(void *data, const Eldbus_Message 
*msg, Eldbus_Pending *pen
 }
 
 static void
-item_registered_local_cb(void *data, const char *bus)
+item_registered_local_cb(void *data, const char *bus, const char *path)
 {
Context_Notifier_Host *ctx = data;
-   notifier_item_add(eina_stringshare_ref(DBUS_PATH), 
eina_stringshare_add(bus), ctx);
+   notifier_item_add(eina_stringshare_add(path), eina_stringshare_add(bus), 
ctx);
 }
 
 static void
-item_unregistered_local_cb(void *data, const char *bus)
+item_unregistered_local_cb(void *data, const char *bus, const char *path)
 {
Context_Notifier_Host *ctx = data;
Notifier_Item *item;
-   Eina_Stringshare *s;
+   Eina_Stringshare *s, *p;
 
s = eina_stringshare_add(bus);
-   item = notifier_item_find(DBUS_PATH, s, ctx);
+   p = eina_stringshare_add(path);
+   item = notifier_item_find(p, s, ctx);
if (item)
  systray_notifier_item_free(item);
eina_stringshare_del(s);
+   eina_stringshare_del(p);
 }
 
 static void
@@ -515,7 +515,6 @@ systray_notifier_dbus_init(Context_Notifier_Host *ctx)
eldbus_init();
ctx->conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SESSION);
if (!ctx->conn) return;
-   DBUS_PATH = eina_stringshare_add("/StatusNotifierItem");
p = eldbus_name_request(ctx->conn,
   WATCHER_BUS, 
ELDBUS_NAME_REQUEST_FLAG_REPLACE_EXISTING,
   name_request_cb, ctx);
@@ -542,7 +541,6 @@ void systray_notifier_dbus_shutdown(Context_Notifier_Host 
*ctx)
 eldbus_object_unref(obj);
 ctx->watcher = NULL;
  }
-   eina_stringshare_replace(_PATH, NULL);
eldbus_connection_unref(ctx->conn);
eldbus_shutdown();
 }
diff --git a/src/modules/systray/e_mod_notifier_host_private.h 
b/src/modules/systray/e_mod_notifier_host_private.h
index ad3bcd6..a7e2ea8 100644
--- a/src/modules/systray/e_mod_notifier_host_private.h
+++ b/src/modules/systray/e_mod_notifier_host_private.h
@@ -63,8 +63,8 @@ struct _Notifier_Item
int attnimgw, attnimgh;
 };
 
-typedef void (*E_Notifier_Watcher_Item_Registered_Cb)(void *data, const char 
*service);
-typedef void (*E_Notifier_Watcher_Item_Unregistered_Cb)(void *data, const char 
*service);
+typedef void (*E_Notifier_Watcher_Item_Registered_Cb)(void *data, const char 
*service, const char *path);
+typedef void (*E_Notifier_Watcher_Item_Unregistered_Cb)(void *data, const char 
*service, const char *path);
 
 void systray_notifier_update_menu(void *data, E_DBusMenu_Item *new_root_item);
 void systray_notifier_item_update(Notifier_Item *item);
diff --git a/src/modules/systray/e_mod_notifier_watcher.c 
b/src/modules/systray/e_mod_notifier_watcher.c
index 666a5b4..3e9a47b 100644
--- a/src/modules/systray/e_mod_notifier_watcher.c
+++ b/src/modules/systray/e_mod_notifier_watcher.c
@@ -36,8 +36,8 @@ item_name_monitor_cb(void *data, const char *bus, const char 
*old_id EINA_UNUSED
eldbus_service_signal_emit(iface, ITEM_UNREGISTERED, svc);
items = 

[EGIT] [core/enlightenment] master 01/01: fix systray to work with spec-breaking apps, eg. steam

2015-10-04 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 6ff98d8a397a496bdfbdc9cf61533b82de3f206e
Author: Mike Blumenkrantz 
Date:   Sun Oct 4 08:41:07 2015 -0400

fix systray to work with spec-breaking apps, eg. steam

according to the StatusNotifierItem specification, applications
register "service org.freedesktop.StatusNotifierItem-PID-ID" on the
session bus, and then "must register the unique instance name
to the StatusNotifierWatcher".

some applications, such as steam, instead register the path that they
will run on (/org/ayatana/NotificationItem/steam) and then expect the
watcher to register the method call's send id bus: this is totally bogus.

to catch this, when registering the new item the enlightenment watcher must
first determine if the item is spec-conforming. if yes, proceed as normal.
if no, pretend the application knows what it's doing and try to make things
work as expected anyway

for more details, read the full spec here
http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem

fix T2763
---
 src/modules/systray/e_mod_notifier_host_dbus.c| 16 +++-
 src/modules/systray/e_mod_notifier_host_private.h |  4 ++--
 src/modules/systray/e_mod_notifier_watcher.c  | 14 +-
 3 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/src/modules/systray/e_mod_notifier_host_dbus.c 
b/src/modules/systray/e_mod_notifier_host_dbus.c
index 77ae5b5..8eba2b1 100644
--- a/src/modules/systray/e_mod_notifier_host_dbus.c
+++ b/src/modules/systray/e_mod_notifier_host_dbus.c
@@ -14,8 +14,6 @@
 extern const char *Category_Names[];
 extern const char *Status_Names[];
 
-static Eina_Stringshare *DBUS_PATH;
-
 typedef struct _Notifier_Host_Data {
Instance_Notifier_Host *host_inst;
void *data;
@@ -445,24 +443,26 @@ notifier_items_get_cb(void *data, const Eldbus_Message 
*msg, Eldbus_Pending *pen
 }
 
 static void
-item_registered_local_cb(void *data, const char *bus)
+item_registered_local_cb(void *data, const char *bus, const char *path)
 {
Context_Notifier_Host *ctx = data;
-   notifier_item_add(eina_stringshare_ref(DBUS_PATH), 
eina_stringshare_add(bus), ctx);
+   notifier_item_add(eina_stringshare_add(path), eina_stringshare_add(bus), 
ctx);
 }
 
 static void
-item_unregistered_local_cb(void *data, const char *bus)
+item_unregistered_local_cb(void *data, const char *bus, const char *path)
 {
Context_Notifier_Host *ctx = data;
Notifier_Item *item;
-   Eina_Stringshare *s;
+   Eina_Stringshare *s, *p;
 
s = eina_stringshare_add(bus);
-   item = notifier_item_find(DBUS_PATH, s, ctx);
+   p = eina_stringshare_add(path);
+   item = notifier_item_find(p, s, ctx);
if (item)
  systray_notifier_item_free(item);
eina_stringshare_del(s);
+   eina_stringshare_del(p);
 }
 
 static void
@@ -515,7 +515,6 @@ systray_notifier_dbus_init(Context_Notifier_Host *ctx)
eldbus_init();
ctx->conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SESSION);
if (!ctx->conn) return;
-   DBUS_PATH = eina_stringshare_add("/StatusNotifierItem");
p = eldbus_name_request(ctx->conn,
   WATCHER_BUS, 
ELDBUS_NAME_REQUEST_FLAG_REPLACE_EXISTING,
   name_request_cb, ctx);
@@ -542,7 +541,6 @@ void systray_notifier_dbus_shutdown(Context_Notifier_Host 
*ctx)
 eldbus_object_unref(obj);
 ctx->watcher = NULL;
  }
-   eina_stringshare_replace(_PATH, NULL);
eldbus_connection_unref(ctx->conn);
eldbus_shutdown();
 }
diff --git a/src/modules/systray/e_mod_notifier_host_private.h 
b/src/modules/systray/e_mod_notifier_host_private.h
index ad3bcd6..a7e2ea8 100644
--- a/src/modules/systray/e_mod_notifier_host_private.h
+++ b/src/modules/systray/e_mod_notifier_host_private.h
@@ -63,8 +63,8 @@ struct _Notifier_Item
int attnimgw, attnimgh;
 };
 
-typedef void (*E_Notifier_Watcher_Item_Registered_Cb)(void *data, const char 
*service);
-typedef void (*E_Notifier_Watcher_Item_Unregistered_Cb)(void *data, const char 
*service);
+typedef void (*E_Notifier_Watcher_Item_Registered_Cb)(void *data, const char 
*service, const char *path);
+typedef void (*E_Notifier_Watcher_Item_Unregistered_Cb)(void *data, const char 
*service, const char *path);
 
 void systray_notifier_update_menu(void *data, E_DBusMenu_Item *new_root_item);
 void systray_notifier_item_update(Notifier_Item *item);
diff --git a/src/modules/systray/e_mod_notifier_watcher.c 
b/src/modules/systray/e_mod_notifier_watcher.c
index 666a5b4..3e9a47b 100644
--- a/src/modules/systray/e_mod_notifier_watcher.c
+++ b/src/modules/systray/e_mod_notifier_watcher.c
@@ -36,8 +36,8 @@ item_name_monitor_cb(void *data, const char *bus, const char 
*old_id EINA_UNUSED
eldbus_service_signal_emit(iface, ITEM_UNREGISTERED, svc);
items = 

[EGIT] [website/www-content] master 01/01: remove PG as it is already in the session name.

2015-10-04 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit cf0336b9b27f3b0c32a20d6663f715a308a276af
Author: Cedric BAIL 
Date:   Sun Oct 4 10:24:59 2015 +0200

remove PG as it is already in the session name.
---
 pages/docs.txt | 30 +++---
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/pages/docs.txt b/pages/docs.txt
index 0bb6799..37c982c 100644
--- a/pages/docs.txt
+++ b/pages/docs.txt
@@ -56,21 +56,21 @@ Go check the current available version of EFL on each 
distro/platform:
 
 === Programming Guide ===
 
-  * [[program_guide/basic_application_structure_pg|Basic Application structure 
PG]]
-  * [[program_guide/eina_pg|Eina PG]]
-  * [[program_guide/connectivity_pg|Connectivity PG]]
-  * [[program_guide/main_loop_pg|Main Loop PG]]
-  * [[program_guide/threading_pg|Threading PG]]
-  * [[program_guide/evas_pg|Evas PG]]
-  * [[program_guide/edje_pg|Edje PG]]
-  * [[program_guide/event_effect_pg|Event and Effect PG]]
-  * [[program_guide/containers_pg|Containers PG]]
-  * [[program_guide/widgets_pg|Widgets PG]]
-  * [[program_guide/focus_ui_pg|Managing UI Component Focus PG]]
-  * [[program_guide/customizing_ui_pg|Customizing UI Components PG]]
-  * [[program_guide/scalability_pg|Scalability PG]]
-  * [[program_guide/multilingual_pg|Multilingual PG]]
-  * [[program_guide/evasgl_pg|Evas GL PG]]
+  * [[program_guide/basic_application_structure_pg|Basic Application 
structure]]
+  * [[program_guide/eina_pg|Eina]]
+  * [[program_guide/connectivity_pg|Connectivity]]
+  * [[program_guide/main_loop_pg|Main Loop]]
+  * [[program_guide/threading_pg|Threading]]
+  * [[program_guide/evas_pg|Evas]]
+  * [[program_guide/edje_pg|Edje]]
+  * [[program_guide/event_effect_pg|Event and Effect]]
+  * [[program_guide/containers_pg|Containers]]
+  * [[program_guide/widgets_pg|Widgets]]
+  * [[program_guide/focus_ui_pg|Managing UI Component Focus]]
+  * [[program_guide/customizing_ui_pg|Customizing UI Components]]
+  * [[program_guide/scalability_pg|Scalability]]
+  * [[program_guide/multilingual_pg|Multilingual]]
+  * [[program_guide/evasgl_pg|Evas GL]]
 
 === Samples ===
 

-- 




[EGIT] [core/efl] efl-1.15 01/01: eldbus - make method calls less crasy since libdbus likes to abort

2015-10-04 Thread Carsten Haitzler
discomfitor pushed a commit to branch efl-1.15.

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

commit d7c27e407b0bad663891faa667d76fa5d8438b58
Author: Carsten Haitzler (Rasterman) 
Date:   Sun Oct 4 17:53:46 2015 +0900

eldbus - make method calls less crasy since libdbus likes to abort

changes zmike made to e's systray make e abort due to libdbus seeing
the bus name as invalid. it actually is. it's
/org/ayatana/NotificationItem/steam for example - instead of
or.whatever.blah - thuis e aborts continually if you run steam at all.
eldbus should be more crash-proof thus this adds checks so dbus fun
doesnt cause an app to crash if it happens to call incorrect dbus names.

@fix
---
 src/lib/eldbus/eldbus_message.c | 16 
 1 file changed, 16 insertions(+)

diff --git a/src/lib/eldbus/eldbus_message.c b/src/lib/eldbus/eldbus_message.c
index 03b8d64..5b8763d 100644
--- a/src/lib/eldbus/eldbus_message.c
+++ b/src/lib/eldbus/eldbus_message.c
@@ -108,6 +108,22 @@ eldbus_message_method_call_new(const char *dest, const 
char *path, const char *i
EINA_SAFETY_ON_NULL_RETURN_VAL(iface, NULL);
EINA_SAFETY_ON_NULL_RETURN_VAL(method, NULL);
 
+   if (!dbus_validate_bus_name(dest, NULL))
+ {
+ERR("Invalid bus name '%s'", dest);
+return NULL;
+ }
+   if (!dbus_validate_path(path, NULL))
+ {
+ERR("Invalid path '%s'", path);
+return NULL;
+ }
+   if (!dbus_validate_interface(iface, NULL))
+ {
+ERR("Invalid interface '%s'", iface);
+return NULL;
+ }
+
msg = eldbus_message_new(EINA_TRUE);
EINA_SAFETY_ON_NULL_GOTO(msg, fail);
 

-- 




[EGIT] [core/efl] master 01/01: examples: fix eina_tmpstr example after revert of strftime

2015-10-04 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 82095adae4d17fc4d04d490d478771d9e1be0006
Author: Stefan Schmidt 
Date:   Sun Oct 4 09:19:53 2015 +0200

examples: fix eina_tmpstr example after revert of strftime

Was left broken after the eina_tmpstr_strftime revert.
---
 src/examples/eina/eina_tmpstr_01.c | 11 +--
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/src/examples/eina/eina_tmpstr_01.c 
b/src/examples/eina/eina_tmpstr_01.c
index a8f8d36..36d8c62 100644
--- a/src/examples/eina/eina_tmpstr_01.c
+++ b/src/examples/eina/eina_tmpstr_01.c
@@ -7,9 +7,7 @@
 int
 main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
 {
-   const char *str, *str2;
-   time_t curr_time;
-   struct tm * info;
+   const char *str;
const char *prologe = "The Cylons were created by man. They rebelled. They "
  "evolved.";
 
@@ -20,13 +18,6 @@ main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
printf("length: %d\n", eina_tmpstr_len(str));
eina_tmpstr_del(str);
 
-   curr_time = time(NULL);
-   info = localtime(_time);
-   str2 = eina_tmpstr_strftime("%I:%M%p", info);
-   printf("%s\n", str2);
-   printf("length: %d\n", eina_tmpstr_len(str2));
-   eina_tmpstr_del(str2);
-
eina_shutdown();
 
return 0;

-- 




[EGIT] [admin/devs] master 01/01: Dev: Update illogict’s revolvia key.

2015-10-04 Thread Chidambar Zinnoury
illogict pushed a commit to branch master.

http://git.enlightenment.org/admin/devs.git/commit/?id=3a9b1f27d599dba6d38c5ff610bf017a272d594a

commit 3a9b1f27d599dba6d38c5ff610bf017a272d594a
Author: Chidambar Zinnoury 
Date:   Sun Oct 4 15:25:40 2015 +0200

 Dev: Update illogict’s revolvia key.
---
 developers/illogict/id_ed25519-revolvia.pub | 1 +
 developers/illogict/id_rsa-revolvia.pub | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/developers/illogict/id_ed25519-revolvia.pub 
b/developers/illogict/id_ed25519-revolvia.pub
new file mode 100644
index 000..a3eaa5a
--- /dev/null
+++ b/developers/illogict/id_ed25519-revolvia.pub
@@ -0,0 +1 @@
+ssh-ed25519 
C3NzaC1lZDI1NTE5IANkAW6H2mQvBSpoOWLJPRXEXMX14Jow1DCx1sJlxnBT 
chidambar@revolvia
diff --git a/developers/illogict/id_rsa-revolvia.pub 
b/developers/illogict/id_rsa-revolvia.pub
deleted file mode 100644
index 583c6ff..000
--- a/developers/illogict/id_rsa-revolvia.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa 
B3NzaC1yc2EDAQABAAABAQDkZvGYApSQr+GH2gSLdW7DS97Ca5RDfvi4HJr5LOZ3rc/9HsmgaLB02jn3jMbV6AxbGhl5JbOO3L1sCBTk9bOOIWY5K74I5czbI6Hyxn36borhLieKe69r69+AoIBpxughH/t7u+m+ha1nHCJHAPZkdd4cQTnNyvctS7VeJCpSmOPmoU08hdd1xP9Trwf/DGu6jV2ccpDVFEdmjPG0SByPoUJMtrDjxlV6zW7VoWi5yl8mbGbavQ68Ip/6a7lcDfeZCYswYF+GZCqqN/BjIXjphrbmZvFrIHIco8MZMhvWHUjQO3UGBszJb9BFBXqlSti5CXVk+lcK7hlPH37oN2Qp
 chidambar@revolvia

-- 




[EGIT] [core/efl] master 01/01: eolian: fix out-of-bounds indexing on tokens

2015-10-04 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit cc0476041f9d879adf8a0af9813c3193fc495c96
Author: Daniel Kolesa 
Date:   Sun Oct 4 14:52:36 2015 +0100

eolian: fix out-of-bounds indexing on tokens

Fixes CID 1324818 @fix
---
 src/lib/eolian/eo_lexer.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c
index bd78958..d14c70f 100644
--- a/src/lib/eolian/eo_lexer.c
+++ b/src/lib/eolian/eo_lexer.c
@@ -1148,8 +1148,9 @@ eo_lexer_token_to_str(int token, char *buf)
  {
 const char *v;
 size_t idx = token - START_CUSTOM;
-if (idx >= sizeof(tokens))
-  v = keywords[idx - sizeof(tokens)];
+size_t tsz = sizeof(tokens) / sizeof(tokens[0]);
+if (idx >= tsz)
+  v = keywords[idx - tsz];
 else
   v = tokens[idx];
 memcpy(buf, v, strlen(v) + 1);

-- 




[EGIT] [core/elementary] master 02/06: elm_hoversel: refine hoversel scrollability function

2015-10-04 Thread Jee-Yong Um
cedric pushed a commit to branch master.

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

commit f216366148179a3c7c97c34fc815c3fc38bfbf40
Author: Jee-Yong Um 
Date:   Sun Oct 4 14:55:21 2015 +0200

elm_hoversel: refine hoversel scrollability function

Summary:
Some modifications for hoversel scrollability are applied.
For example,
The logic for generating scroller is changed. (newly added during 
activation)
If hoversel's contents are larger than hover,they will be resized to fit 
hover.
If hoversel is moved (by window rotation etc.), scroller will be resized.
Reduandant code are removed from popup for scrollability.

Test Plan:
You can see the sample for scrollable hoversel in second one
of "elementary_test hoversel".

Reviewers: Hermet, SanghyeonLee, cedric

Reviewed By: cedric

Subscribers: godlytalias, Hermet

Differential Revision: https://phab.enlightenment.org/D2926

Signed-off-by: Cedric BAIL 
---
 data/themes/edc/elm/hover.edc |   8 +-
 src/bin/test_hoversel.c   |   2 +
 src/lib/elc_hoversel.c| 271 --
 3 files changed, 191 insertions(+), 90 deletions(-)

diff --git a/data/themes/edc/elm/hover.edc b/data/themes/edc/elm/hover.edc
index 43fd5c5..b34d36a 100644
--- a/data/themes/edc/elm/hover.edc
+++ b/data/themes/edc/elm/hover.edc
@@ -676,11 +676,11 @@ group { name: 
"elm/hover/base/hoversel_horizontal/default";
  description { state: "default" 0.0;
 rel1.to_x: "elm.swallow.slot.left";
 rel1.to_y: "elm.swallow.slot.left";
-rel1.offset: -6 0;
+rel1.offset: -10 -10;
 rel2.to_x: "elm.swallow.slot.middle";
 rel2.to_y: "elm.swallow.slot.left";
 rel2.relative: 0.0 1.0;
-rel2.offset: 4 1;
+rel2.offset: 4 9;
 image {
normal: "button_normal.png";
border: 7 7 7 7;
@@ -691,10 +691,10 @@ group { name: 
"elm/hover/base/hoversel_horizontal/default";
 rel1.to_x: "elm.swallow.slot.middle";
 rel1.to_y: "elm.swallow.slot.right";
 rel1.relative: 1.0 0.0;
-rel1.offset: -5 0;
+rel1.offset: -5 -10;
 rel2.to_x: "elm.swallow.slot.right";
 rel2.to_y: "elm.swallow.slot.right";
-rel2.offset: 5 1;
+rel2.offset: 10 9;
 image {
normal: "button_normal.png";
border: 7 7 7 7;
diff --git a/src/bin/test_hoversel.c b/src/bin/test_hoversel.c
index 8fd2346..87f9e55 100644
--- a/src/bin/test_hoversel.c
+++ b/src/bin/test_hoversel.c
@@ -190,6 +190,8 @@ test_hoversel(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_
  NULL);
elm_hoversel_item_add(hoversel, "Item 4", "close", ELM_ICON_STANDARD, NULL,
  NULL);
+   elm_hoversel_item_add(hoversel, "Item 5 - Long Label Here", NULL, 
ELM_ICON_NONE, NULL,
+ NULL);
elm_box_pack_end(bx, hoversel);
evas_object_show(hoversel);
 
diff --git a/src/lib/elc_hoversel.c b/src/lib/elc_hoversel.c
index 82f5957..5f7d0a8 100644
--- a/src/lib/elc_hoversel.c
+++ b/src/lib/elc_hoversel.c
@@ -142,15 +142,168 @@ _item_unfocused_cb(void *data EINA_UNUSED,
 }
 
 static void
+_create_scroller(Evas_Object *obj, Elm_Hoversel_Data *sd)
+{
+   //table
+   sd->tbl = elm_table_add(obj);
+
+   //spacer
+   sd->spacer = evas_object_rectangle_add(evas_object_evas_get(obj));
+   evas_object_color_set(sd->spacer, 0, 0, 0, 0);
+   elm_table_pack(sd->tbl, sd->spacer, 0, 0, 1, 1);
+
+   //Scroller
+   sd->scr = elm_scroller_add(sd->tbl);
+   elm_object_style_set(sd->scr, "popup/no_inset_shadow");
+   evas_object_size_hint_weight_set(sd->scr, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(sd->scr, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   if (sd->horizontal)
+ {
+elm_scroller_policy_set(sd->scr, ELM_SCROLLER_POLICY_AUTO, 
ELM_SCROLLER_POLICY_OFF);
+elm_scroller_content_min_limit(sd->scr, EINA_FALSE, EINA_TRUE);
+elm_scroller_bounce_set(sd->scr, EINA_TRUE, EINA_FALSE);
+ }
+   else
+ {
+elm_scroller_policy_set(sd->scr, ELM_SCROLLER_POLICY_OFF, 
ELM_SCROLLER_POLICY_AUTO);
+elm_scroller_content_min_limit(sd->scr, EINA_TRUE, EINA_FALSE);
+elm_scroller_bounce_set(sd->scr, EINA_FALSE, EINA_TRUE);
+ }
+   elm_table_pack(sd->tbl, sd->scr, 0, 0, 1, 1);
+   evas_object_show(sd->scr);
+}
+
+static void
+_resizing_eval(Evas_Object *obj, Elm_Hoversel_Data *sd)
+{
+   Evas_Object *bx = NULL;
+   const char *max_size_str;
+   int max_size = 0;
+   char buf[128];
+   Evas_Coord box_w = -1, box_h = -1;
+   Evas_Coord x, y, w, h, xx, yy, ww, hh, vw = 0, vh = 0;
+   double align_x;
+   Eina_List *l;
+   Evas_Object *it;
+   

[EGIT] [core/elementary] master 04/06: elc_naviframe: fix crash in strcmp, if text_set is NULL issue

2015-10-04 Thread Shilpa Singh
cedric pushed a commit to branch master.

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

commit 1634653bb3b56a6344660d6062ee8247a766f434
Author: Shilpa Singh 
Date:   Sun Oct 4 15:26:08 2015 +0200

elc_naviframe: fix crash in strcmp, if text_set is NULL issue

Summary:
Issue: If text set is NULL to naviframe, crash happens in strcmp
Soln: Check for text if NULL,  before passing to strcmp

@fix

Test Plan:
//Pass the text as NULL
elm_object_part_text_set(nf, "title", NULL);

Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3052

Signed-off-by: Cedric BAIL 
---
 src/lib/elc_naviframe.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
index 4273480..673a694 100644
--- a/src/lib/elc_naviframe.c
+++ b/src/lib/elc_naviframe.c
@@ -1018,12 +1018,16 @@ EOLIAN static Eina_Bool
 _elm_naviframe_elm_layout_text_set(Eo *obj, Elm_Naviframe_Data *sd 
EINA_UNUSED, const char *part, const char *label)
 {
Elm_Object_Item *it;
+   const char *text = NULL;
 
it = elm_naviframe_top_item_get(obj);
if (!it) return EINA_FALSE;
 
elm_object_item_part_text_set(it, part, label);
-   return !strcmp(elm_object_item_part_text_get(it, part), label);
+   text = elm_object_item_part_text_get(it, part);
+   if ((text) && !strcmp(text, label))
+ return EINA_TRUE;
+   return EINA_FALSE;
 }
 
 EOLIAN static const char*

-- 




[EGIT] [core/elementary] master 01/06: elm_video: port eo_event callbacks to use eo_event arrays

2015-10-04 Thread Vivek Ellur
cedric pushed a commit to branch master.

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

commit ba30cf95b58aaeae5d877d79f8ce2d73a7dcb257
Author: Vivek Ellur 
Date:   Sun Oct 4 12:05:51 2015 +0200

elm_video: port eo_event callbacks to use eo_event arrays

Summary:
Changed eo_event_callback_add to use eo_event_callback_array_add
in elm_video.c

Signed-off-by: Vivek Ellur 

Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3096

Signed-off-by: Cedric BAIL 
---
 src/lib/elm_video.c | 49 +
 1 file changed, 37 insertions(+), 12 deletions(-)

diff --git a/src/lib/elm_video.c b/src/lib/elm_video.c
index 3502971..aea83a9 100644
--- a/src/lib/elm_video.c
+++ b/src/lib/elm_video.c
@@ -27,6 +27,32 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
{NULL, NULL}
 };
 
+
+static Eina_Bool
+_on_open_done(void *data,
+  Eo *obj EINA_UNUSED, const Eo_Event_Description *desc 
EINA_UNUSED,
+  void *event_info EINA_UNUSED);
+static Eina_Bool
+_on_playback_started(void *data,
+ Eo *obj EINA_UNUSED, const Eo_Event_Description *desc 
EINA_UNUSED,
+ void *event_info EINA_UNUSED);
+static Eina_Bool
+_on_playback_finished(void *data,
+  Eo *obj EINA_UNUSED, const Eo_Event_Description *desc 
EINA_UNUSED,
+  void *event_info EINA_UNUSED);
+static Eina_Bool
+_on_aspect_ratio_updated(void *data,
+ Eo *obj EINA_UNUSED, const Eo_Event_Description *desc 
EINA_UNUSED,
+ void *event_info EINA_UNUSED);
+static Eina_Bool
+_on_title_changed(void *data,
+  Eo *obj EINA_UNUSED, const Eo_Event_Description *desc 
EINA_UNUSED,
+  void *event_info EINA_UNUSED);
+static Eina_Bool
+_on_audio_level_changed(void *data,
+Eo *obj EINA_UNUSED, const Eo_Event_Description *desc 
EINA_UNUSED,
+void *event_info EINA_UNUSED);
+
 static Eina_Bool _key_action_move(Evas_Object *obj, const char *params);
 static Eina_Bool _key_action_play(Evas_Object *obj, const char *params);
 
@@ -36,6 +62,15 @@ static const Elm_Action key_actions[] = {
{NULL, NULL}
 };
 
+EO_CALLBACKS_ARRAY_DEFINE(_video_cb,
+   { EMOTION_OBJECT_EVENT_OPEN_DONE, _on_open_done },
+   { EMOTION_OBJECT_EVENT_PLAYBACK_STARTED, _on_playback_started },
+   { EMOTION_OBJECT_EVENT_PLAYBACK_FINISHED, _on_playback_finished },
+   { EMOTION_OBJECT_EVENT_FRAME_RESIZE, _on_aspect_ratio_updated },
+   { EMOTION_OBJECT_EVENT_TITLE_CHANGE, _on_title_changed },
+   { EMOTION_OBJECT_EVENT_AUDIO_LEVEL_CHANGE, _on_audio_level_changed }
+);
+
 static Eina_Bool
 _key_action_move(Evas_Object *obj, const char *params)
 {
@@ -155,6 +190,7 @@ _on_playback_started(void *data,
return EINA_TRUE;
 
 }
+
 static Eina_Bool
 _on_playback_finished(void *data,
   Eo *obj EINA_UNUSED, const Eo_Event_Description *desc 
EINA_UNUSED,
@@ -251,18 +287,7 @@ _elm_video_evas_object_smart_add(Eo *obj, Elm_Video_Data 
*priv)
 
elm_layout_content_set(obj, "elm.swallow.video", priv->emotion);
 
-   eo_do(priv->emotion, eo_event_callback_add
- (EMOTION_OBJECT_EVENT_OPEN_DONE, _on_open_done, obj));
-   eo_do(priv->emotion, eo_event_callback_add
- (EMOTION_OBJECT_EVENT_PLAYBACK_STARTED, _on_playback_started, obj));
-   eo_do(priv->emotion, eo_event_callback_add
- (EMOTION_OBJECT_EVENT_PLAYBACK_FINISHED, _on_playback_finished, obj));
-   eo_do(priv->emotion, eo_event_callback_add
- (EMOTION_OBJECT_EVENT_FRAME_RESIZE, _on_aspect_ratio_updated, obj));
-   eo_do(priv->emotion, eo_event_callback_add
- (EMOTION_OBJECT_EVENT_TITLE_CHANGE, _on_title_changed, obj));
-   eo_do(priv->emotion, eo_event_callback_add
- (EMOTION_OBJECT_EVENT_AUDIO_LEVEL_CHANGE, _on_audio_level_changed, obj));
+   eo_do(priv->emotion, eo_event_callback_array_add(_video_cb(), obj));
 
evas_object_event_callback_add
  (obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_size_hints_changed, NULL);

-- 




[EGIT] [core/elementary] master 03/06: elm_hoversel: add elm_hoversel_label_auto_changed_set/get() API

2015-10-04 Thread Jee-Yong Um
cedric pushed a commit to branch master.

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

commit 49ec1ec570561a260b94eb98c1a73a217822ba8d
Author: Jee-Yong Um 
Date:   Sun Oct 4 15:09:22 2015 +0200

elm_hoversel: add elm_hoversel_label_auto_changed_set/get() API

Summary:
Hoversel can be used like dropdown or pulldown menu.
In that case, changing hoversel label into selected item lable can be
considered as common usage of hoversel.
This API automatizes changing label.

Reviewers: SanghyeonLee, Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2963

Signed-off-by: Cedric BAIL 
---
 src/bin/test_hoversel.c   |  1 +
 src/lib/elc_hoversel.c| 37 +
 src/lib/elm_hoversel.eo   | 10 ++
 src/lib/elm_widget_hoversel.h |  1 +
 4 files changed, 49 insertions(+)

diff --git a/src/bin/test_hoversel.c b/src/bin/test_hoversel.c
index 87f9e55..e65efd9 100644
--- a/src/bin/test_hoversel.c
+++ b/src/bin/test_hoversel.c
@@ -182,6 +182,7 @@ test_hoversel(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_
 
hoversel = elm_hoversel_add(win);
elm_hoversel_scrollable_set(hoversel, EINA_TRUE);
+   elm_hoversel_label_auto_changed_set(hoversel, EINA_TRUE);
elm_hoversel_hover_parent_set(hoversel, win);
elm_object_text_set(hoversel, "Some Icons");
elm_hoversel_item_add(hoversel, "Item 1", NULL, ELM_ICON_NONE, NULL, NULL);
diff --git a/src/lib/elc_hoversel.c b/src/lib/elc_hoversel.c
index 5f7d0a8..6628bf5 100644
--- a/src/lib/elc_hoversel.c
+++ b/src/lib/elc_hoversel.c
@@ -110,8 +110,33 @@ _on_item_clicked(void *data EINA_UNUSED,
Evas_Object *obj2 = WIDGET(item);
Elm_Object_Item *eo_it = EO_OBJ(item);
 
+   ELM_HOVERSEL_DATA_GET(obj2, sd);
+
if (item->func) item->func((void *)WIDGET_ITEM_DATA_GET(eo_it), obj2, 
eo_it);
eo_do(obj2, 
eo_event_callback_call(EVAS_SELECTABLE_INTERFACE_EVENT_SELECTED, eo_it));
+
+   if (sd->auto_changed)
+ {
+Evas_Object *ic;
+
+ic = elm_object_part_content_unset(obj2, "icon");
+ELM_SAFE_FREE(ic, evas_object_del);
+
+if (item->icon_file)
+  {
+ ic = elm_icon_add(obj2);
+ elm_image_resizable_set(ic, EINA_FALSE, EINA_TRUE);
+ if (item->icon_type == ELM_ICON_FILE)
+   elm_image_file_set(ic, item->icon_file, item->icon_group);
+ else if (item->icon_type == ELM_ICON_STANDARD)
+   elm_icon_standard_set(ic, item->icon_file);
+ elm_object_part_content_set(obj2, "icon", ic);
+  }
+
+if(item->label)
+  elm_object_text_set(obj2, item->label);
+ }
+
elm_hoversel_hover_end(obj2);
 
return EINA_TRUE;
@@ -901,5 +926,17 @@ _elm_hoversel_scrollable_get(Eo *obj EINA_UNUSED, 
Elm_Hoversel_Data *sd)
return sd->scroll_enabled;
 }
 
+EOLIAN void
+_elm_hoversel_label_auto_changed_set(Eo *obj EINA_UNUSED, Elm_Hoversel_Data 
*sd, Eina_Bool auto_changed)
+{
+   sd->auto_changed = !!auto_changed;
+}
+
+EOLIAN Eina_Bool
+_elm_hoversel_label_auto_changed_get(Eo *obj EINA_UNUSED, Elm_Hoversel_Data 
*sd)
+{
+   return sd->auto_changed;
+}
+
 #include "elm_hoversel_item.eo.c"
 #include "elm_hoversel.eo.c"
diff --git a/src/lib/elm_hoversel.eo b/src/lib/elm_hoversel.eo
index 878b454..ca24396 100644
--- a/src/lib/elm_hoversel.eo
+++ b/src/lib/elm_hoversel.eo
@@ -57,6 +57,16 @@ class Elm.Hoversel (Elm.Button, Evas.Selectable_Interface,
 scrollable: bool; [[$true if scrollable $false otherwise.]]
  }
   }
+  @property label_auto_changed {
+ [[Change the label of hoversel to that of selected item 
automatically.]]
+ get{
+ }
+ set{
+ }
+ values {
+auto_changed: bool; [[$true if the label is changed automatically 
or $false otherwise]]
+ }
+  }
   hover_begin {
  [[This triggers the hoversel popup from code, the same as if the user 
had clicked the button.]]
   }
diff --git a/src/lib/elm_widget_hoversel.h b/src/lib/elm_widget_hoversel.h
index ff62512..2b97728 100644
--- a/src/lib/elm_widget_hoversel.h
+++ b/src/lib/elm_widget_hoversel.h
@@ -42,6 +42,7 @@ struct _Elm_Hoversel_Data
Eina_Bool horizontal: 1;
Eina_Bool expanded  : 1;
Eina_Bool scroll_enabled: 1;
+   Eina_Bool auto_changed  : 1;
 };
 
 typedef struct _Elm_Hoversel_Item_Data Elm_Hoversel_Item_Data;

-- 




[EGIT] [core/elementary] master 05/06: elm_hover: delay hover dismiss while handling edje signal

2015-10-04 Thread Jee-Yong Um
cedric pushed a commit to branch master.

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

commit 32c89740f3fcb6f2c6b9739bea0589517a55c48a
Author: Jee-Yong Um 
Date:   Sun Oct 4 15:38:52 2015 +0200

elm_hover: delay hover dismiss while handling edje signal

Summary:
elm_hover_dismiss() doesn't hide hover directly, but sends signal only.
It can be translated that "dismiss" do not hide hover only, but handles
some works. (EDC program, callbacks etc.)
However, "dismiss" sends signals after hide hover itself, so following
edje signals are ignored. (Hover cannot be seen already!)
This patch makes hover dismiss delayed while handling edje signal.

@fix

Test Plan: elementary_test hover2

Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: woohyun

Differential Revision: https://phab.enlightenment.org/D3068

Signed-off-by: Cedric BAIL 
---
 data/themes/edc/elm/hover.edc | 25 ++
 src/lib/elm_hover.c   | 80 ++-
 2 files changed, 88 insertions(+), 17 deletions(-)

diff --git a/data/themes/edc/elm/hover.edc b/data/themes/edc/elm/hover.edc
index b34d36a..afed708 100644
--- a/data/themes/edc/elm/hover.edc
+++ b/data/themes/edc/elm/hover.edc
@@ -1,5 +1,6 @@
 /* TODO: replicate diagonal swallow slots to the other hover styles */
 group { name: "elm/hover/base/default";
+   data.item: "dismiss" "on";
parts {
   part { name: "elm.swallow.offset"; type: SWALLOW;
  description { state: "default" 0.0;
@@ -131,10 +132,18 @@ group { name: "elm/hover/base/default";
  signal: "mouse,up,*"; source: "base";
  action: SIGNAL_EMIT "elm,action,dismiss" "elm";
   }
+  program { name: "hide";
+ signal: "elm,action,hide"; source: "elm";
+ after: "hidefinished";
+  }
+  program { name: "hidefinished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
+  }
}
 }
 
 group { name: "elm/hover/base/popout";
+   data.item: "dismiss" "on";
images.image: "button_normal.png" COMP;
parts {
   part { name: "elm.swallow.offset"; type: SWALLOW;
@@ -362,7 +371,12 @@ group { name: "elm/hover/base/popout";
   program { name: "hide";
  signal: "elm,action,hide"; source: "elm";
  action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.5;
  target: "base";
+ after: "hidefinished";
+  }
+  program { name: "hidefinished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
   }
   program { name: "leftshow";
  signal: "elm,action,slot,left,show"; source: "elm";
@@ -427,6 +441,7 @@ group { name: "elm/hover/base/hoversel_vertical/default";
alias: "elm/hover/base/hoversel_vertical/entry";
images.image: "button_normal.png" COMP;
images.image: "vertical_separated_bar_glow.png" COMP;
+   data.item: "dismiss" "on";
data.item: "max_size" "60";
parts {
   part { name: "elm.swallow.offset"; type: SWALLOW;
@@ -597,7 +612,12 @@ group { name: "elm/hover/base/hoversel_vertical/default";
   program { name: "hide";
  signal: "elm,action,hide"; source: "elm";
  action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.5;
  target: "base";
+ after: "hidefinished";
+  }
+  program { name: "hidefinished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
   }
   
   program { name: "topshow";
@@ -645,6 +665,7 @@ group { name: "elm/hover/base/hoversel_vertical/default";
 group { name: "elm/hover/base/hoversel_horizontal/default";
alias: "elm/hover/base/hoversel_horizontal/entry";
images.image: "button_normal.png" COMP;
+   data.item: "dismiss" "on";
data.item: "max_size" "120";
parts {
   part { name: "elm.swallow.offset"; type: SWALLOW;
@@ -774,6 +795,10 @@ group { name: "elm/hover/base/hoversel_horizontal/default";
  action: STATE_SET "default" 0.0;
  transition: DECELERATE 0.5;
  target: "base";
+ after: "hidefinished";
+  }
+  program { name: "hidefinished";
+ action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
   }
 
   program { name: "leftshow";
diff --git a/src/lib/elm_hover.c b/src/lib/elm_hover.c
index 9306c78..7bfc6db 100644
--- a/src/lib/elm_hover.c
+++ b/src/lib/elm_hover.c
@@ -511,15 +511,65 @@ _target_move_cb(void *data,
 }
 
 static void
+_hide_signals_emit(Evas_Object *obj)
+{
+   ELM_HOVER_DATA_GET(obj, sd);
+
+   elm_layout_signal_emit(obj, "elm,action,hide", "elm");
+
+   ELM_HOVER_PARTS_FOREACH
+ {
+char buf[1024];
+
+if (sd->subs[i].obj)
+  {
+ snprintf(buf, sizeof(buf), "elm,action,slot,%s,hide",
+  sd->subs[i].swallow);
+ elm_layout_signal_emit(obj, buf, "elm");
+  }

[EGIT] [core/efl] master 01/02: Eo: Remove dead code.

2015-10-04 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 6a4c603e0f016223b328751c4738579df639fcd4
Author: Tom Hacohen 
Date:   Sun Oct 4 14:56:57 2015 +0100

Eo: Remove dead code.

This removes code that became dead in commit:
389c6d35f2908018e8b6ae3f8294c02c6b5073a0
The commit doesn't explain why we don't shrink or grow when using mmap,
but this is how it is. No reason to keep old code there.

CID 1240224

@fix
---
 src/lib/eo/eo.c | 7 +--
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 95cb37e..13d41df 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -304,17 +304,12 @@ _eo_call_stack_mem_alloc(size_t size)
 static void
 _eo_call_stack_mem_resize(void **ptr EINA_UNUSED, size_t newsize, size_t size)
 {
-   // FIXME we don't grow
if (newsize > size)
  {
 CRI("eo call stack overflow, abort.");
 abort();
  }
-   // FIXME resize call stack down
-   return;
-   size_t addr = MEM_PAGE_SIZE * ((newsize + MEM_PAGE_SIZE - 1) /
-  MEM_PAGE_SIZE);
-   madvise(((unsigned char *)*ptr) + addr, size - addr, MADV_DONTNEED);
+   return; // Do nothing, code for actual implementation in history. See 
commit message for details.
 #else
 static void
 _eo_call_stack_mem_resize(void **ptr, size_t newsize, size_t size EINA_UNUSED)

-- 




[EGIT] [core/elementary] master 06/06: config: fix NULL access on invalid config loading

2015-10-04 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 21ee4b15880d68154787f6ed44c49fe07ed01d0f
Author: Cedric BAIL 
Date:   Sun Oct 4 16:00:54 2015 +0200

config: fix NULL access on invalid config loading

CID 1308381
---
 src/lib/elm_config.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elm_config.c b/src/lib/elm_config.c
index afb569d..f73cb7c 100644
--- a/src/lib/elm_config.c
+++ b/src/lib/elm_config.c
@@ -1524,7 +1524,7 @@ _config_flush_get(void)
_elm_recache();
_elm_clouseau_reload();
_elm_config_key_binding_hash();
-   _elm_win_access(_elm_config->access_mode);
+   if (_elm_config) _elm_win_access(_elm_config->access_mode);
ecore_event_add(ELM_EVENT_CONFIG_ALL_CHANGED, NULL, NULL, NULL);
 }
 

-- 




[EGIT] [core/efl] master 02/02: Edje test: remove unused variable.

2015-10-04 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 64a04eb77092d786aecf5ca01ed1a07c798209cd
Author: Tom Hacohen 
Date:   Sun Oct 4 15:01:08 2015 +0100

Edje test: remove unused variable.
---
 src/tests/edje/edje_test_edje.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/tests/edje/edje_test_edje.c b/src/tests/edje/edje_test_edje.c
index 6cc6cb0..631abea 100644
--- a/src/tests/edje/edje_test_edje.c
+++ b/src/tests/edje/edje_test_edje.c
@@ -253,7 +253,7 @@ START_TEST(edje_test_snapshot)
 {
Evas *evas = EDJE_TEST_INIT_EVAS();
const Evas_Object *sub;
-   Evas_Object *obj, *src = NULL;
+   Evas_Object *obj;
Eina_Bool b;
 
setenv("EVAS_DATA_DIR", EVAS_DATA_DIR, 1);

-- 




[EGIT] [core/enlightenment] master 01/01: e menus: Fix invalid comparisons.

2015-10-04 Thread Chidambar Zinnoury
illogict pushed a commit to branch master.

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

commit c57f2ff611e7c67d76b03259be2345ac9396c5c3
Author: Chidambar Zinnoury 
Date:   Sun Oct 4 16:35:43 2015 +0200

 e menus: Fix invalid comparisons.

 Fixes CID 1267215 and 1267216.
---
 src/bin/e_int_menus.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_int_menus.c b/src/bin/e_int_menus.c
index 7c50a2c..0c1c228 100644
--- a/src/bin/e_int_menus.c
+++ b/src/bin/e_int_menus.c
@@ -1325,7 +1325,7 @@ _e_int_menus_clients_add_by_desk(E_Desk *curr_desk, 
Eina_List *clients, E_Menu *
/* Deal with present desk first */
EINA_LIST_FOREACH(clients, l, ec)
  {
-if (ec->iconic && e_config->clientlist_separate_iconified_apps && 
E_CLIENTLIST_GROUPICONS_SEP)
+if (ec->iconic && (e_config->clientlist_separate_iconified_apps == 
E_CLIENTLIST_GROUPICONS_SEP))
   {
  ico = eina_list_append(ico, ec);
  continue;
@@ -1396,8 +1396,7 @@ _e_int_menus_clients_add_by_none(Eina_List *clients, 
E_Menu *m)
 
EINA_LIST_FOREACH(clients, l, ec)
  {
-if ((ec->iconic) && (e_config->clientlist_separate_iconified_apps) &&
-(E_CLIENTLIST_GROUPICONS_SEP))
+if ((ec->iconic) && (e_config->clientlist_separate_iconified_apps == 
E_CLIENTLIST_GROUPICONS_SEP))
   {
  ico = eina_list_append(ico, ec);
  continue;

-- 




[EGIT] [core/efl] master 01/02: eio: make poll backend pass eio_test_monitor.c test suite.

2015-10-04 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit a4c588b1e40c8a68348d14a2c82f601847bdbb5c
Author: Cedric BAIL 
Date:   Sun Oct 4 10:43:54 2015 +0200

eio: make poll backend pass eio_test_monitor.c test suite.

Summary: The current poll backend code uses only filename when reporting 
changes, while eio tests (and presumably other backends) use absolute path. 
This makes poll backends behavior more consistent with other backends.

Test Plan: Ran eio test suite with poll backend.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric

Projects: #efl

Differential Revision: https://phab.enlightenment.org/D3083

Signed-off-by: Cedric BAIL 
---
 src/lib/eio/eio_monitor_poll.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/lib/eio/eio_monitor_poll.c b/src/lib/eio/eio_monitor_poll.c
index 6b7b5a8..fc4b70e 100644
--- a/src/lib/eio/eio_monitor_poll.c
+++ b/src/lib/eio/eio_monitor_poll.c
@@ -148,29 +148,29 @@ _eio_monitor_fallback_heavy_cb(void *data, Ecore_Thread 
*thread)
 
 if (!backend->initialised)
   {
- eina_hash_add(backend->children, info->path + info->name_start, 
cmp);
+ eina_hash_add(backend->children, info->path, cmp);
   }
 else
   {
- cmp = eina_hash_find(backend->children, info->path + 
info->name_start);
+ cmp = eina_hash_find(backend->children, info->path);
  if (!cmp)
{
   /* New file or new directory added */
   ecore_thread_main_loop_begin();
-  _eio_monitor_send(backend->parent, info->path + 
info->name_start,
+  _eio_monitor_send(backend->parent, info->path,
 info->type != EINA_FILE_DIR ? 
EIO_MONITOR_FILE_CREATED : EIO_MONITOR_DIRECTORY_CREATED);
   ecore_thread_main_loop_end();
 
   cmp = malloc(sizeof (Eio_Monitor_Stat));
   memcpy(cmp, , sizeof (Eina_Stat));
 
-  eina_hash_add(backend->children, info->path + 
info->name_start, cmp);
+  eina_hash_add(backend->children, info->path, cmp);
}
  else if (memcmp(cmp, , sizeof (Eina_Stat)) != 0)
{
   /* file has been modified */
   ecore_thread_main_loop_begin();
-  _eio_monitor_send(backend->parent, info->path + 
info->name_start,
+  _eio_monitor_send(backend->parent, info->path,
 info->type != EINA_FILE_DIR ? 
EIO_MONITOR_FILE_MODIFIED : EIO_MONITOR_DIRECTORY_MODIFIED);
   ecore_thread_main_loop_end();
 

-- 




[EGIT] [core/efl] master 02/02: evas_box: fix children size and position calculation when padding is used for horizontal flow layout

2015-10-04 Thread Subodh Kumar
cedric pushed a commit to branch master.

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

commit 4290567fd67cee39a3e36fddf0dc526190250724
Author: Subodh Kumar 
Date:   Sun Oct 4 15:23:49 2015 +0200

evas_box: fix children size and position calculation when padding is used 
for horizontal flow layout

Summary:
Fix children size and position calculation when padding is used

For each child size calculation padding is adjusted
but box height should include  padding.
Secondly, x and y position of children should not  include
the vertical and horizonatal padding as child size has already
included the given paddings.

@fix

Test Plan:
Please modify test_box.c file in
function test_box_vert2 as follows:

   bx = elm_box_add(win);
   evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   elm_win_resize_object_add(win, bx);
   elm_box_padding_set(bx, 50, 50);
   elm_box_layout_set(bx, evas_object_box_layout_flow_horizontal, NULL, 
NULL);
   evas_object_show(bx);

Now,
1. open elementary_test
2. box
3. Box vert 2 (observe box is broken)
4. Try resizing the window (observe)

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3049

Signed-off-by: Cedric BAIL 
---
 src/lib/evas/canvas/evas_object_box.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_box.c 
b/src/lib/evas/canvas/evas_object_box.c
index a33a9e4..3510fb0 100644
--- a/src/lib/evas/canvas/evas_object_box.c
+++ b/src/lib/evas/canvas/evas_object_box.c
@@ -1333,7 +1333,7 @@ _evas_box_layout_flow_horizontal(Eo *o, 
Evas_Object_Box_Data *priv, Evas_Object_
  (priv, w, _count, row_max_h, row_break, row_width, _y, _w, 
_h);
 
inc_y = 0;
-   remain_y = h - (offset_y + max_h);
+   remain_y = h - (priv->pad.v * row_count -1) - (offset_y + max_h);
 
if (remain_y > 0)
  {
@@ -1353,7 +1353,7 @@ _evas_box_layout_flow_horizontal(Eo *o, 
Evas_Object_Box_Data *priv, Evas_Object_
 int row_size, remain_x;
 
 row_size = row_break[r] - i;
-remain_x = (w - row_width[r]);
+remain_x = (w - (row_width[r] - priv->pad.h));
 
 if (priv->align.h < 0.0)
   {
@@ -1403,6 +1403,9 @@ _evas_box_layout_flow_horizontal(Eo *o, 
Evas_Object_Box_Data *priv, Evas_Object_
 evas_object_geometry_get(o, , NULL, NULL, NULL);
 min_h += row_max_h[r];
 y += row_max_h[r] + inc_y;
+
+if (r > 0)
+  min_h += priv->pad.v;
  }
 
evas_object_size_hint_min_set(o, min_w, min_h);

-- 




[EGIT] [core/enlightenment] master 01/01: Add "(drag only)" to title for drag only edge bindings

2015-10-04 Thread Peter Kjellerstedt
discomfitor pushed a commit to branch master.

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

commit 1ea9d73d33b739ba18a94be491bb2196569ff76b
Author: Peter Kjellerstedt 
Date:   Sun Oct 4 11:53:31 2015 -0400

Add "(drag only)" to title for drag only edge bindings

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3128
---
 .../conf_bindings/e_int_config_edgebindings.c  | 26 ++
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/src/modules/conf_bindings/e_int_config_edgebindings.c 
b/src/modules/conf_bindings/e_int_config_edgebindings.c
index 981a33d..3796b5b 100644
--- a/src/modules/conf_bindings/e_int_config_edgebindings.c
+++ b/src/modules/conf_bindings/e_int_config_edgebindings.c
@@ -35,7 +35,7 @@ static void _add_edge_binding_cb(void *data, void 
*data2);
 static void _modify_edge_binding_cb(void *data, void *data2);
 
 /* Helper */
-static char*_edge_binding_text_get(E_Zone_Edge edge, float delay, int 
mod);
+static char*_edge_binding_text_get(E_Zone_Edge edge, float delay, int 
mod, int drag_only);
 static void _auto_apply_changes(E_Config_Dialog_Data *cfdata);
 static void _find_edge_binding_action(const char *action, const char 
*params, int *g, int *a, int *n);
 
@@ -765,7 +765,7 @@ _update_edge_binding_list(E_Config_Dialog_Data *cfdata)
 
 bi = l->data;
 
-b = _edge_binding_text_get(bi->edge, bi->delay, bi->modifiers);
+b = _edge_binding_text_get(bi->edge, bi->delay, bi->modifiers, 
bi->drag_only);
 if (!b) continue;
 
 ic = edje_object_add(cfdata->evas);
@@ -930,7 +930,7 @@ _edge_grab_wnd_show(E_Config_Dialog_Data *cfdata)
 
if (cfdata->locals.edge)
  {
-label = _edge_binding_text_get(cfdata->locals.edge, 
((float)cfdata->locals.delay), cfdata->locals.modifiers);
+   label = _edge_binding_text_get(cfdata->locals.edge, 
((float)cfdata->locals.delay), cfdata->locals.modifiers, 
cfdata->locals.drag_only);
 edje_object_part_text_set(cfdata->gui.o_selector, "e.text.selection", 
label);
 E_FREE(label);
  }
@@ -978,7 +978,8 @@ _edge_grab_wnd_slider_changed_cb(void *data, Evas_Object 
*obj EINA_UNUSED)
if (!cfdata->locals.edge) return;
label = _edge_binding_text_get(cfdata->locals.edge,
   ((float)cfdata->locals.delay),
-  cfdata->locals.modifiers);
+  cfdata->locals.modifiers,
+  cfdata->locals.drag_only);
edje_object_part_text_set(cfdata->gui.o_selector, "e.text.selection", 
label);
E_FREE(label);
 }
@@ -992,12 +993,12 @@ _edge_grab_wnd_check_changed_cb(void *data, Evas_Object 
*obj EINA_UNUSED)
if (cfdata->locals.click)
  {
 if (cfdata->locals.edge && cfdata->locals.button)
-  label = _edge_binding_text_get(cfdata->locals.edge, -1.0 * 
cfdata->locals.button, cfdata->locals.modifiers);
+  label = _edge_binding_text_get(cfdata->locals.edge, -1.0 * 
cfdata->locals.button, cfdata->locals.modifiers, cfdata->locals.drag_only);
  }
else
  {
 if (cfdata->locals.edge)
-  label = _edge_binding_text_get(cfdata->locals.edge, 
((float)cfdata->locals.delay), cfdata->locals.modifiers);
+  label = _edge_binding_text_get(cfdata->locals.edge, 
((float)cfdata->locals.delay), cfdata->locals.modifiers, 
cfdata->locals.drag_only);
 e_widget_disabled_set(cfdata->gui.o_slider, 0);
  }
e_widget_disabled_set(cfdata->gui.o_slider, cfdata->locals.click);
@@ -1087,7 +1088,8 @@ stop:
 
label = _edge_binding_text_get(cfdata->locals.edge,
   cfdata->locals.click ? (-1.0 * 
cfdata->locals.button) : ((float)cfdata->locals.delay),
-  cfdata->locals.modifiers);
+  cfdata->locals.modifiers,
+  cfdata->locals.drag_only);
edje_object_part_text_set(cfdata->gui.o_selector, "e.text.selection", 
label);
E_FREE(label);
 }
@@ -1204,7 +1206,7 @@ _edge_grab_wnd_selection_apply(E_Config_Dialog_Data 
*cfdata)
   {
  char *label;
 
- label = _edge_binding_text_get(bi->edge, bi->delay, 
bi->modifiers);
+ label = _edge_binding_text_get(bi->edge, bi->delay, 
bi->modifiers, bi->drag_only);
  e_widget_ilist_nth_label_set(cfdata->gui.o_binding_list, n, 
label);
  free(label);
   }
@@ -1357,7 +1359,7 @@ _find_edge_binding_action(const char *action, const char 
*params, int *g, int *a
 }
 
 static char *
-_edge_binding_text_get(E_Zone_Edge edge, float delay, int mod)
+_edge_binding_text_get(E_Zone_Edge edge, float delay, int mod, int drag_only)
 {
char b[256] = "";
 
@@ -1439,6 

[EGIT] [core/efl] master 01/02: Ecore pipe: clean up handling of already read information.

2015-10-04 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 625eba7d0fc0df4a1508a210fe0be19da306b2eb
Author: Tom Hacohen 
Date:   Sun Oct 4 15:34:48 2015 +0100

Ecore pipe: clean up handling of already read information.

Coverity was complaining about a possible integer overflow. This isn't
actually possible, but coverity has no way to know that because we were
in fact using a too big of a type. I fixed it to be the right type so
now everything should work.

CID 98384

@fix
---
 src/lib/ecore/ecore_pipe.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/ecore/ecore_pipe.c b/src/lib/ecore/ecore_pipe.c
index ba6c32b..ac000a6 100644
--- a/src/lib/ecore/ecore_pipe.c
+++ b/src/lib/ecore/ecore_pipe.c
@@ -92,7 +92,7 @@ struct _Ecore_Pipe
Ecore_Pipe_Cb handler;
unsigned int  len;
int   handling;
-   size_talready_read;
+   unsigned int  already_read;
void *passed_data;
int   message;
Eina_Bool delete_me : 1;
@@ -656,12 +656,12 @@ _ecore_pipe_read(void *data,
 
 /* catch the non error case first */
 /* if we read enough data to finish the message/buffer */
-if (ret == (ssize_t)(p->len - p->already_read))
+if (ret == (p->len - p->already_read))
   _ecore_pipe_handler_call(p, p->passed_data, p->len);
 else if (ret > 0)
   {
  /* more data left to read */
-  p->already_read += ret;
+  p->already_read += (unsigned int) ret;
   _ecore_pipe_unhandle(p);
   return ECORE_CALLBACK_RENEW;
   }

-- 




[EGIT] [core/efl] master 01/01: ector: fix leak of dash info in Cairo backend.

2015-10-04 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 77a732eb8b1378b1b5c9794b05c61319bf6603ea
Author: Cedric BAIL 
Date:   Sun Oct 4 17:36:42 2015 +0200

ector: fix leak of dash info in Cairo backend.

CID 1316270
---
 src/lib/ector/cairo/ector_renderer_cairo_shape.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/lib/ector/cairo/ector_renderer_cairo_shape.c 
b/src/lib/ector/cairo/ector_renderer_cairo_shape.c
index c598a2c..0f9193e 100644
--- a/src/lib/ector/cairo/ector_renderer_cairo_shape.c
+++ b/src/lib/ector/cairo/ector_renderer_cairo_shape.c
@@ -166,7 +166,7 @@ 
_ector_renderer_cairo_shape_ector_renderer_generic_base_draw(Eo *obj, Ector_Rend
 {
int r, g, b, a;
unsigned i;
-   double *dashinfo;
+
if (pd->path == NULL) return EINA_FALSE;
 
USE(obj, cairo_save, EINA_FALSE);
@@ -206,6 +206,8 @@ 
_ector_renderer_cairo_shape_ector_renderer_generic_base_draw(Eo *obj, Ector_Rend
 cairo_set_source_rgba(pd->parent->cairo, r/255.0, g/255.0, 
b/255.0, a/255.0);
 if (pd->shape->stroke.dash)
   {
+ double *dashinfo;
+
  dashinfo = (double *) malloc(2 * 
pd->shape->stroke.dash_length * sizeof(double));
  for (i = 0; i < pd->shape->stroke.dash_length; i++)
{
@@ -214,6 +216,7 @@ 
_ector_renderer_cairo_shape_ector_renderer_generic_base_draw(Eo *obj, Ector_Rend
}
  USE(obj, cairo_set_dash, EINA_FALSE);
  cairo_set_dash(pd->parent->cairo, dashinfo, 
pd->shape->stroke.dash_length * 2, 0);
+ free(dashinfo);
   }
  }
 

-- 




[EGIT] [core/elementary] master 01/01: Revert "Genlist: only get item data if needed."

2015-10-04 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit d2bdd969aa30439d53fb68c9c3ef2bfd6b221fb4
Author: Tom Hacohen 
Date:   Sun Oct 4 17:51:29 2015 +0100

Revert "Genlist: only get item data if needed."

This actually doesn't work for coverity, I guess we just need to mark it
as false-positive, as it will never be null.

This reverts commit 178e7e6ac9419742d1bbe583fd252fc6536e5649.
---
 src/lib/elm_genlist.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
index a5a34ff..cb71fb9 100644
--- a/src/lib/elm_genlist.c
+++ b/src/lib/elm_genlist.c
@@ -3941,12 +3941,11 @@ _swipe_do(Elm_Gen_Item *it)
 {
int i, sum = 0;
Eina_Bool tmp;
+   ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
 
if (_is_no_select(it) ||
eo_do_ret(EO_OBJ(it), tmp, elm_wdg_item_disabled_get())) return;
 
-   ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
-
sd->swipe = EINA_FALSE;
for (i = 0; i < sd->movements; i++)
  {

-- 




[EGIT] [core/enlightenment] master 01/01: e fm: Use correct string length when copying path.

2015-10-04 Thread Chidambar Zinnoury
illogict pushed a commit to branch master.

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

commit 2a3742a52ada09b75f8431d9a9941207c45f27d3
Author: Chidambar Zinnoury 
Date:   Sun Oct 4 18:44:38 2015 +0200

 e fm: Use correct string length when copying path.

 Sometimes, trying to go to the parent directory wouldn’t work and end up 
showing some garbage. Unfortunately, the code ended up not NULL-ending the 
path, which made searching for the path separator buggy.
---
 src/bin/e_fm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c
index e7661a0..34b173e 100644
--- a/src/bin/e_fm.c
+++ b/src/bin/e_fm.c
@@ -1451,7 +1451,7 @@ e_fm2_parent_go(Evas_Object *obj)
char buf[PATH_MAX];
EFM_SMART_CHECK();
if (!sd->path) return;
-   path = memcpy(buf, sd->path, strlen(sd->path + 1));
+   path = memcpy(buf, sd->path, strlen(sd->path) + 1);
if ((p = strrchr(path, '/'))) *p = 0;
if (*path)
  e_fm2_path_set(obj, sd->dev, path);

-- 




[EGIT] [core/efl] master 01/01: evas-3d: fix primitives

2015-10-04 Thread perepelits.m
cedric pushed a commit to branch master.

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

commit 0dd60ced443f087a142a8fd0f5664af732a9b029
Author: perepelits.m 
Date:   Sun Oct 4 16:37:17 2015 +0200

evas-3d: fix primitives

Summary:
There were warnings after adding primitive in the same frame more then 
once, the check was added to avoid it

@fix

Reviewers: cedric, raster, Hermet

Subscribers: cedric, artem.popov

Differential Revision: https://phab.enlightenment.org/D3090

Signed-off-by: Cedric BAIL 
---
 src/lib/evas/canvas/evas_canvas3d_mesh.c| 11 +++
 src/lib/evas/canvas/evas_canvas3d_mesh.eo   |  8 
 src/lib/evas/common3d/primitives/primitive_common.h | 14 --
 3 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/src/lib/evas/canvas/evas_canvas3d_mesh.c 
b/src/lib/evas/canvas/evas_canvas3d_mesh.c
index 892ecd1..e7bc091 100644
--- a/src/lib/evas/canvas/evas_canvas3d_mesh.c
+++ b/src/lib/evas/canvas/evas_canvas3d_mesh.c
@@ -306,6 +306,17 @@ _evas_canvas3d_mesh_vertex_count_get(Eo *obj EINA_UNUSED, 
Evas_Canvas3D_Mesh_Dat
return pd->vertex_count;
 }
 
+EOLIAN static Eina_Bool
+_evas_canvas3d_mesh_frame_exist(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data 
*pd, int frame)
+{
+   Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
+
+   if (f)
+ return EINA_TRUE;
+
+   return EINA_FALSE;
+}
+
 EOLIAN static void
 _evas_canvas3d_mesh_frame_add(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, int frame)
 {
diff --git a/src/lib/evas/canvas/evas_canvas3d_mesh.eo 
b/src/lib/evas/canvas/evas_canvas3d_mesh.eo
index aa1a23e..df01a85 100644
--- a/src/lib/evas/canvas/evas_canvas3d_mesh.eo
+++ b/src/lib/evas/canvas/evas_canvas3d_mesh.eo
@@ -156,6 +156,14 @@ class Evas.Canvas3D.Mesh (Evas.Canvas3D.Object, 
Evas.Common_Interface, Efl.File)
  ]]
   }
 
+  frame_exist {
+ [[Returns EINA_TRUE if frame was added and EINA_FALSE in other case.]]
+ params {
+@in frame: int; [[Frame number.]]
+ }
+ return: Eina_Bool;
+  }
+
   frame_add {
  [[Add a key frame to the given mesh.
 
diff --git a/src/lib/evas/common3d/primitives/primitive_common.h 
b/src/lib/evas/common3d/primitives/primitive_common.h
index 7f4e39d..50092d7 100644
--- a/src/lib/evas/common3d/primitives/primitive_common.h
+++ b/src/lib/evas/common3d/primitives/primitive_common.h
@@ -17,9 +17,14 @@
unsigned short *indices = malloc(sizeof(short) * icount);
 
 #define SET_VERTEX_DATA(frame) 
\
+   Eina_Bool frame_exist; \
+   eo_do(mesh, \
+ frame_exist = evas_canvas3d_mesh_frame_exist(frame)); \
+   if (!frame_exist) \
+   eo_do(mesh, \
+ evas_canvas3d_mesh_frame_add(frame)); \
eo_do(mesh, 
\
  evas_canvas3d_mesh_vertex_count_set(vcount),  
  \
- evas_canvas3d_mesh_frame_add(frame),  
  \
  
evas_canvas3d_mesh_index_data_copy_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT,
 \
   icount, [0]));   
\
_set_vec3_vertex_data(mesh, frame, vcount, vertices, 
EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION);  \
@@ -29,9 +34,14 @@
free(indices);
 
 #define SET_VERTEX_DATA_FROM_ARRAY(mesh, frame, varray, vcount, indices, 
icount) \
+   Eina_Bool frame_exist; \
+   eo_do(mesh, \
+ frame_exist = evas_canvas3d_mesh_frame_exist(frame)); \
+   if (!frame_exist) \
+   eo_do(mesh, \
+ evas_canvas3d_mesh_frame_add(frame)); \
eo_do(mesh, \
  evas_canvas3d_mesh_vertex_count_set(vcount), \
- evas_canvas3d_mesh_frame_add(frame), \
  
evas_canvas3d_mesh_index_data_copy_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT,
 \
   icount, [0])); \
_set_vertex_data_from_array(mesh, frame, varray, 
EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, \

-- 




[EGIT] [core/efl] master 01/01: Ecore con: Prevent possible use of uninitialised buffer on the stack.

2015-10-04 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 681328feb54e92e8653f7d4913ed6d6b78e84437
Author: Tom Hacohen 
Date:   Sun Oct 4 16:27:52 2015 +0100

Ecore con: Prevent possible use of uninitialised buffer on the stack.

I'm not actually sure if it's a false, because finding the possible
options is hard. Just to be safe, it's better to set buf to "" in the
else case. I'm doing this instead of initialising the variable so the
compiler/static analyser will be able to warn us if there are other code
paths that should probably set buf, but don't.

CID 1316016

@fix
---
 src/lib/ecore_con/ecore_con_local.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/lib/ecore_con/ecore_con_local.c 
b/src/lib/ecore_con/ecore_con_local.c
index d3d3ada..c493cc5 100644
--- a/src/lib/ecore_con/ecore_con_local.c
+++ b/src/lib/ecore_con/ecore_con_local.c
@@ -303,6 +303,10 @@ ecore_con_local_listen(
 strncpy(buf, svr->name, sizeof(buf) - 1);
 buf[sizeof(buf) - 1] = 0;
  }
+   else
+ {
+buf[0] = '\0';
+ }
 
pmode = umask(mask);
 start:

-- 




[EGIT] [core/elementary] master 01/01: Genlist: only get item data if needed.

2015-10-04 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 178e7e6ac9419742d1bbe583fd252fc6536e5649
Author: Tom Hacohen 
Date:   Sun Oct 4 15:09:40 2015 +0100

Genlist: only get item data if needed.

Moved the data fetching to be after the tests. This doesn't really
matter and is mostly there to silence coverity. Coverity was complaining
about "it" being dereferenced before the null check (implicit in
EO_OBJ), so reordering it will fix it.

CID 104
---
 src/lib/elm_genlist.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
index cb71fb9..a5a34ff 100644
--- a/src/lib/elm_genlist.c
+++ b/src/lib/elm_genlist.c
@@ -3941,11 +3941,12 @@ _swipe_do(Elm_Gen_Item *it)
 {
int i, sum = 0;
Eina_Bool tmp;
-   ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
 
if (_is_no_select(it) ||
eo_do_ret(EO_OBJ(it), tmp, elm_wdg_item_disabled_get())) return;
 
+   ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
+
sd->swipe = EINA_FALSE;
for (i = 0; i < sd->movements; i++)
  {

--