[EGIT] [core/efl] master 02/02: eina: API for base64url decode.

2015-12-15 Thread Srivardhan Hebbar
jpeg pushed a commit to branch master.

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

commit 1243b24f9b2967433e0a00d36c58117afe21d56b
Author: Srivardhan Hebbar 
Date:   Wed Dec 16 16:15:43 2015 +0900

eina: API for base64url decode.

Summary:
eina_base64url_decode API.

Signed-off-by: Srivardhan Hebbar 

Reviewers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D3434
---
 src/lib/eina/eina_str.c | 155 +++-
 1 file changed, 88 insertions(+), 67 deletions(-)

diff --git a/src/lib/eina/eina_str.c b/src/lib/eina/eina_str.c
index 9fbd730..3a83d03 100644
--- a/src/lib/eina/eina_str.c
+++ b/src/lib/eina/eina_str.c
@@ -301,9 +301,12 @@ eina_str_split_full_helper(const char *str,
return str_array;
 }
 
-static inline Eina_Bool is_base64(unsigned char c)
+static inline Eina_Bool is_base64_char(unsigned char c, Eina_Bool is_base64url)
 {
-   return (isalnum(c) || (c == '+') || (c == '/'));
+   if (is_base64url)
+ return (isalnum(c) || (c == '-') || (c == '_'));
+   else
+ return (isalnum(c) || (c == '+') || (c == '/'));
 }
 
 static char *
@@ -366,6 +369,83 @@ eina_str_base64_encode_common(const unsigned char *src, 
unsigned int len, Eina_B
return dest;
 }
 
+static
+unsigned char *eina_str_base64_decode_common(const char * src, int 
*decoded_str_len, Eina_Bool is_base64url_decode)
+{
+   unsigned char inarr[4], outarr[3];
+   int i = 0, j = 0, k = 0, l = 0;
+   int len;
+   unsigned char *dest;
+   const char *base64_table;
+
+   if (!src)
+ goto error;
+
+   len = strlen(src);
+   /* The encoded string length should be a multiple of 4. Else it is not a
+* valid encoded string.
+*/
+   if (!is_base64url_decode && (len % 4))
+ goto error;
+
+   /* This is the max size the destination string can have.
+*/
+   dest = (unsigned char *)malloc(sizeof(unsigned char) * ((len * 3 / 4) + 1));
+   if (!dest)
+ goto error;
+
+   if (is_base64url_decode)
+ base64_table = base64_table_url;
+   else
+ base64_table = base64_table_normal;
+
+   while (len-- && (src[k] != '=') && is_base64_char(src[k], 
is_base64url_decode))
+ {
+   inarr[i++] = src[k++];
+   if (i == 4)
+ {
+   for (i = 0; i <4; i++)
+ inarr[i] = strchr(base64_table,(int) inarr[i]) - base64_table;
+
+   outarr[0] = (inarr[0] << 2) + ((inarr[1] & 0x30) >> 4);
+   outarr[1] = ((inarr[1] & 0xf) << 4) + ((inarr[2] & 0x3c) >> 2);
+   outarr[2] = ((inarr[2] & 0x3) << 6) + inarr[3];
+
+   for (i = 0; (i < 3); i++)
+ dest[l++] = outarr[i];
+   i = 0;
+ }
+ }
+
+   if (i)
+ {
+   for (j = i; j <4; j++)
+ inarr[j] = 0;
+
+   for (j = 0; j <4; j++)
+ inarr[j] = strchr(base64_table, (int) inarr[j]) - base64_table;
+
+   outarr[0] = (inarr[0] << 2) + ((inarr[1] & 0x30) >> 4);
+   outarr[1] = ((inarr[1] & 0xf) << 4) + ((inarr[2] & 0x3c) >> 2);
+   outarr[2] = ((inarr[2] & 0x3) << 6) + inarr[3];
+
+   for (j = 0; (j < i - 1); j++)
+ dest[l++] = outarr[j];
+ }
+
+   /* This is to prevent the applications from crashing. */
+   dest[l] = '\0';
+
+   if (decoded_str_len)
+ *decoded_str_len = l;
+   return dest;
+
+error:
+   if (decoded_str_len)
+ *decoded_str_len = 0;
+   return NULL;
+}
+
 /**
  * @endcond
  */
@@ -810,70 +890,11 @@ eina_str_base64url_encode(const unsigned char *src, 
unsigned int len)
 EAPI
 unsigned char *eina_str_base64_decode(const char * src, int *decoded_str_len)
 {
-   unsigned char inarr[4], outarr[3];
-   int i = 0, j = 0, k = 0, l = 0;
-   int len;
-   unsigned char *dest;
-
-   if (!src)
- goto error;
-
-   len = strlen(src);
-   /* The encoded string length should be a multiple of 4. Else it is not a
-* valid encoded string.
-*/
-   if (len % 4)
- goto error;
-
-   /* This is the max size the destination string can have.
-*/
-   dest = (unsigned char *)malloc(sizeof(unsigned char) * ((len * 3 / 4) + 1));
-   if (!dest)
- goto error;
-
-   while (len-- && ( src[k] != '=') && is_base64(src[k]))
- {
-   inarr[i++] = src[k++];
-   if (i ==4)
- {
-   for (i = 0; i <4; i++)
- inarr[i] = strchr(base64_table_normal,(int) inarr[i]) - 
base64_table_normal;
-
-   outarr[0] = (inarr[0] << 2) + ((inarr[1] & 0x30) >> 4);
-   outarr[1] = ((inarr[1] & 0xf) << 4) + ((inarr[2] & 0x3c) >> 2);
-   outarr[2] = ((inarr[2] & 0x3) << 6) + inarr[3];
-
-   for (i = 0; (i < 3); i++)
- dest[l++] = outarr[i];
-   i = 0;
- }
- }
-
-   if (i)
- {
-   for (j = i; j <4; j++)
- inarr[j] = 0;
-
-   for (j = 0; j <4; j++)
- inarr[j] = strchr(base64_table_normal, (int) inarr[j]) - 
base64_table_normal;
-
-   outarr[0] = (inarr[0] << 2) + ((inarr[1] & 0x30) >> 4);
-  

[EGIT] [core/efl] master 01/02: eina: Added testcase for base64url encoding API.

2015-12-15 Thread Srivardhan Hebbar
jpeg pushed a commit to branch master.

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

commit 9f9921372378d5badc1e5dd4ac1a294df3847d81
Author: Srivardhan Hebbar 
Date:   Wed Dec 16 16:11:27 2015 +0900

eina: Added testcase for base64url encoding API.

Summary:
Depends on D414

Signed-off-by: Srivardhan Hebbar 

Reviewers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D3432
---
 src/tests/eina/eina_test_str.c | 64 +++---
 1 file changed, 41 insertions(+), 23 deletions(-)

diff --git a/src/tests/eina/eina_test_str.c b/src/tests/eina/eina_test_str.c
index d13b32b..dcef1dc 100644
--- a/src/tests/eina/eina_test_str.c
+++ b/src/tests/eina/eina_test_str.c
@@ -365,29 +365,31 @@ START_TEST(str_strftime)
 }
 END_TEST
 
+/* All cases are taken from https://en.wikipedia.org/wiki/Base64 */
+static const struct {
+   char *decoded_str;
+   char *encoded_normal;
+   char *encoded_url;
+   unsigned int len;
+   Eina_Bool not;
+} tests[] = {
+  { "any carnal pleasure.", "YW55IGNhcm5hbCBwbGVhc3VyZS4=", 
"YW55IGNhcm5hbCBwbGVhc3VyZS4", 20 },
+  { "any carnal pleasure.", "YW55IGNhcm5hbCBwbGVhc3VyZQ==", 
"YW55IGNhcm5hbCBwbGVhc3VyZQ", 19 },
+  { "any carnal pleasure.", "YW55IGNhcm5hbCBwbGVhc3Vy", 
"YW55IGNhcm5hbCBwbGVhc3Vy", 18 },
+  { "any carnal pleasure.", "YW55IGNhcm5hbCBwbGVhc3U=", 
"YW55IGNhcm5hbCBwbGVhc3U", 17 },
+  { "any carnal pleasure.", "YW55IGNhcm5hbCBwbGVhcw==", 
"YW55IGNhcm5hbCBwbGVhcw", 16 },
+  { "pleasure.", "cGxlYXN1cmUu", "cGxlYXN1cmUu", 9 },
+  { "leasure.", "bGVhc3VyZS4=", "bGVhc3VyZS4", 8 },
+  { "easure.", "ZWFzdXJlLg==", "ZWFzdXJlLg", 7 },
+  { "asure.", "YXN1cmUu", "YXN1cmUu", 6 },
+  { "sure.", "c3VyZS4=", "c3VyZS4", 5 },
+  /* The following 2 cases are manually generated for -/ testing*/
+  { "aabc123!?", "YWFiYzEyMyE/", "YWFiYzEyMyE_", 9 },
+  { "abc123!?$*&()'-=@~", "YWJjMTIzIT8kKiYoKSctPUB+", 
"YWJjMTIzIT8kKiYoKSctPUB-", 18 }
+};
+
 START_TEST(str_base64_encode_decode)
 {
-   /* All cases are taken from https://en.wikipedia.org/wiki/Base64 */
-   static const struct {
-  char *decoded_str;
-  char *encoded_str;
-  int len;
-  Eina_Bool not;
-   } tests[] = {
- { "any carnal pleasure.", "YW55IGNhcm5hbCBwbGVhc3VyZS4=", 20 },
- { "any carnal pleasure.", "YW55IGNhcm5hbCBwbGVhc3VyZQ==", 19 },
- { "any carnal pleasure.", "YW55IGNhcm5hbCBwbGVhc3Vy", 18 },
- { "any carnal pleasure.", "YW55IGNhcm5hbCBwbGVhc3U=", 17 },
- { "any carnal pleasure.", "YW55IGNhcm5hbCBwbGVhcw==", 16 },
- { "pleasure.", "cGxlYXN1cmUu", 9 },
- { "leasure.", "bGVhc3VyZS4=", 8 },
- { "easure.", "ZWFzdXJlLg==", 7 },
- { "asure.", "YXN1cmUu", 6 },
- { "sure.", "c3VyZS4=", 5 },
- /* The following 2 cases are manually generated for '-' and '/' testing*/
- { "aabc123!?", "YWFiYzEyMyE/", 9 },
- { "abc123!?$*&()'-=@~", "YWJjMTIzIT8kKiYoKSctPUB+", 18 }
-   };
unsigned int i;
int len;
unsigned char *decoded;
@@ -397,9 +399,9 @@ START_TEST(str_base64_encode_decode)
 char *encoded;
 
 encoded = eina_str_base64_encode((unsigned char*) 
tests[i].decoded_str, tests[i].len);
-fail_if(strcmp(encoded, tests[i].encoded_str));
+fail_if(strcmp(encoded, tests[i].encoded_normal));
 
-decoded = eina_str_base64_decode(tests[i].encoded_str, &len);
+decoded = eina_str_base64_decode(tests[i].encoded_normal, &len);
 fail_if(memcmp(decoded, tests[i].decoded_str, tests[i].len));
 
 fprintf(stderr, "len = %d, tests[%d].len = %d\n", len, i, 
tests[i].len);
@@ -421,6 +423,21 @@ START_TEST(str_base64_encode_decode)
 }
 END_TEST
 
+START_TEST(str_base64url_encode)
+{
+   unsigned int i;
+
+   for (i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
+ {
+char *encoded;
+
+encoded = eina_str_base64url_encode((unsigned char*) 
tests[i].decoded_str, tests[i].len);
+fail_if(strcmp(encoded, tests[i].encoded_url));
+free(encoded);
+ }
+}
+END_TEST
+
 #ifdef HAVE_ICONV
 START_TEST(str_convert)
 {
@@ -461,6 +478,7 @@ eina_test_str(TCase *tc)
tcase_add_test(tc, str_memdup);
tcase_add_test(tc, str_strftime);
tcase_add_test(tc, str_base64_encode_decode);
+   tcase_add_test(tc, str_base64url_encode);
 #ifdef HAVE_ICONV
tcase_add_test(tc, str_convert);
 #endif

-- 




[EGIT] [core/efl] master 01/01: Evas GL: Fix shaders for bigendian

2015-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 4a538ec2461a42507a1917cd63006507e52f5889
Author: Jean-Philippe Andre 
Date:   Wed Dec 16 15:55:10 2015 +0900

Evas GL: Fix shaders for bigendian

Fixes T2918
---
 src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x | 4 ++--
 src/modules/evas/engines/gl_common/shader/fragment.glsl | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x 
b/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x
index 19120e2..a0132aa 100644
--- a/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x
+++ b/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x
@@ -67,13 +67,13 @@ static const char fragment_glsl[] =
"# define SWZ \n"
"#else\n"
"# ifndef SHD_BGRA\n"
-   "#  if defined(SHD_IMG) && defined(BIGENDIAN)\n"
+   "#  if defined(SHD_IMG) && defined(SHD_BIGENDIAN)\n"
"#   define SWZ gbar\n"
"#  else\n"
"#   define SWZ bgra\n"
"#endif\n"
"# else\n"
-   "#  if defined(SHD_IMG) && defined(BIGENDIAN)\n"
+   "#  if defined(SHD_IMG) && defined(SHD_BIGENDIAN)\n"
"#   define SWZ grab\n"
"#  else\n"
"#   define SWZ rgba\n"
diff --git a/src/modules/evas/engines/gl_common/shader/fragment.glsl 
b/src/modules/evas/engines/gl_common/shader/fragment.glsl
index 3dce873..baa22e3 100644
--- a/src/modules/evas/engines/gl_common/shader/fragment.glsl
+++ b/src/modules/evas/engines/gl_common/shader/fragment.glsl
@@ -60,13 +60,13 @@ varying vec2 masktex_s[4];
 # define SWZ 
 #else
 # ifndef SHD_BGRA
-#  if defined(SHD_IMG) && defined(BIGENDIAN)
+#  if defined(SHD_IMG) && defined(SHD_BIGENDIAN)
 #   define SWZ gbar
 #  else
 #   define SWZ bgra
 #endif
 # else
-#  if defined(SHD_IMG) && defined(BIGENDIAN)
+#  if defined(SHD_IMG) && defined(SHD_BIGENDIAN)
 #   define SWZ grab
 #  else
 #   define SWZ rgba

-- 




[EGIT] [core/efl] master 01/01: edje: add size_class test case

2015-12-15 Thread Jee-Yong Um
jpeg pushed a commit to branch master.

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

commit 395ed14f63ac7f96847c7a950ebc3a1f3a8360c6
Author: Jee-Yong Um 
Date:   Wed Dec 16 14:53:59 2015 +0900

edje: add size_class test case

Summary: add edje size_class APIs' test case

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3391
---
 src/Makefile_Edje.am|  8 +++--
 src/tests/edje/data/test_size_class.edc | 24 ++
 src/tests/edje/edje_test_edje.c | 55 +
 3 files changed, 85 insertions(+), 2 deletions(-)

diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am
index 1e5059f..ca0eefc 100644
--- a/src/Makefile_Edje.am
+++ b/src/Makefile_Edje.am
@@ -255,6 +255,7 @@ tests/edje/data/test_parens.edc \
 tests/edje/data/test_masking.edc \
 tests/edje/data/test_filters.edc \
 tests/edje/data/test_snapshot.edc \
+tests/edje/data/test_size_class.edc \
 tests/edje/data/filter.lua
 
 
@@ -297,6 +298,7 @@ EDJE_DATA_FILES = tests/edje/data/test_layout.edc \
   tests/edje/data/test_masking.edc \
   tests/edje/data/test_filters.edc \
   tests/edje/data/test_snapshot.edc \
+  tests/edje/data/test_size_class.edc \
   tests/edje/data/filter.lua
 
 edjedatafilesdir = $(datadir)/edje/data
@@ -305,14 +307,16 @@ edjedatafiles_DATA = tests/edje/data/test_layout.edj \
  tests/edje/data/test_parens.edj \
  tests/edje/data/test_masking.edj \
  tests/edje/data/test_filters.edj \
- tests/edje/data/test_snapshot.edj
+ tests/edje/data/test_snapshot.edj \
+ tests/edje/data/test_size_class.edj
 
 CLEANFILES += tests/edje/data/test_layout.edj \
   tests/edje/data/complex_layout.edj \
   tests/edje/data/test_parens.edj \
   tests/edje/data/test_masking.edj \
   tests/edje/data/test_filters.edj \
-  tests/edje/data/test_snapshot.edj
+  tests/edje/data/test_snapshot.edj \
+  tests/edje/data/test_size_class.edj
 
 endif
 
diff --git a/src/tests/edje/data/test_size_class.edc 
b/src/tests/edje/data/test_size_class.edc
new file mode 100644
index 000..1baf831
--- /dev/null
+++ b/src/tests/edje/data/test_size_class.edc
@@ -0,0 +1,24 @@
+collections {
+   group { name: "test_group";
+  parts {
+ part { name: "background";
+type: RECT;
+description { state: "default" 0.0;
+   color: 33 32 32 255;
+   rel1.relative: 0 0;
+   rel2.relative: 1 1;
+   max: 200 200;
+}
+ }
+ part { name: "rect";
+type: RECT;
+description { state: "default" 0.0;
+   rel1.relative: 0.5 0.5;
+   rel2.relative: 0.5 0.5;
+   min: 50 50;
+   size_class: "rect_size";
+}
+ }
+  }
+   }
+}
diff --git a/src/tests/edje/edje_test_edje.c b/src/tests/edje/edje_test_edje.c
index 631abea..536de1d 100644
--- a/src/tests/edje/edje_test_edje.c
+++ b/src/tests/edje/edje_test_edje.c
@@ -273,6 +273,60 @@ START_TEST(edje_test_snapshot)
 }
 END_TEST
 
+START_TEST(edje_test_size_class)
+{
+   int minw, minh, minw2, minh2;
+   Evas *evas = EDJE_TEST_INIT_EVAS();
+   Eina_List *l;
+   Eina_Stringshare *name;
+   Evas_Object *obj, *obj2;
+   Eina_Bool b;
+
+   obj = edje_object_add(evas);
+   fail_unless(edje_object_file_set(obj, 
test_layout_get("test_size_class.edj"), "test_group"));
+
+   obj2 = edje_object_add(evas);
+   fail_unless(edje_object_file_set(obj2, 
test_layout_get("test_size_class.edj"), "test_group"));
+
+   evas_object_resize(obj, 200, 200);
+   evas_object_resize(obj2, 200, 200);
+
+   /* check predefined min size of rect part by edc */
+   edje_object_part_geometry_get(obj, "rect", NULL, NULL, &minw, &minh);
+   fail_if(minw != 50 || minh != 50);
+
+   /* check that edje_size_class_set works */
+   b = edje_size_class_set("rect_size", 100, 100, -1, -1);
+   edje_object_part_geometry_get(obj, "rect", NULL, NULL, &minw, &minh);
+   edje_object_part_geometry_get(obj2, "rect", NULL, NULL, &minw2, &minh2);
+   fail_if(!b || minw != 100 || minh != 100 || minw2 != 100 || minh2 != 100);
+
+   /* check that edje_size_class_get works */
+   b = edje_size_class_get("rect_size", &minw, &minh, NULL, NULL);
+   fail_if(!b || minw != 100 || minh != 100);
+
+   /* check that edje_size_class_list works */
+   l = edje_size_class_list();
+   EINA_LIST_FREE(l, name)
+ {
+fail_if(strcmp(name, "rect_size"));
+eina_stringshare_del(name);
+ }
+
+   /* check that edje_object_size_class_set works */
+   b = edje_object_size_class_set(obj, "rect_size", 150, 150, -1, -1);
+   edj

[EGIT] [tools/enventor] master 02/02: Localization: update localization and enventor.pot content.

2015-12-15 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=3fc121acd54e8b2b7f36b41ed7bcf5cf9814bb69

commit 3fc121acd54e8b2b7f36b41ed7bcf5cf9814bb69
Author: Mykyta Biliavskyi 
Date:   Wed Dec 16 10:30:30 2015 +0900

Localization: update localization and enventor.pot content.
---
 po/en.po| 100 
 po/enventor.pot | 100 
 po/ru.po|  74 +++--
 3 files changed, 177 insertions(+), 97 deletions(-)

diff --git a/po/en.po b/po/en.po
index 1be1b2f..2783ece 100644
--- a/po/en.po
+++ b/po/en.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: enventor 0.6.0\n"
 "Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n"
-"POT-Creation-Date: 2015-11-17 17:37+\n"
+"POT-Creation-Date: 2015-12-16 10:22+0900\n"
 "PO-Revision-Date: 2015-11-17 17:37+\n"
 "Last-Translator: nikawhite belyavski...@gmail.com \n"
 "Language-Team: \n"
@@ -21,30 +21,30 @@ msgstr ""
 msgid "%s - Enventor"
 msgstr ""
 
-#: src/bin/config_data.c:66
+#: src/bin/config_data.c:67
 msgid "Failed to generate tmp folder!"
 msgstr ""
 
-#: src/bin/config_data.c:85 src/bin/config_data.c:98
+#: src/bin/config_data.c:86 src/bin/config_data.c:99
 #, c-format
 msgid "Cannot create a config folder \"%s\""
 msgstr ""
 
-#: src/bin/config_data.c:109
+#: src/bin/config_data.c:110
 #, c-format
 msgid "Cannot save a config file \"%s\""
 msgstr ""
 
-#: src/bin/config_data.c:148
+#: src/bin/config_data.c:149
 #, c-format
 msgid "Cannot load a config file \"%s\""
 msgstr ""
 
-#: src/bin/config_data.c:156 src/bin/file_mgr.c:193 src/bin/goto.c:132
+#: src/bin/config_data.c:157 src/bin/file_mgr.c:193 src/bin/goto.c:132
 #: src/bin/menu.c:687 src/bin/newfile.c:140 src/bin/panes.c:281
-#: src/bin/search.c:332 src/bin/setting.c:467 src/bin/statusbar.c:42
-#: src/bin/text_setting.c:487 src/bin/text_setting.c:540
-#: src/bin/text_setting.c:571 src/bin/text_setting.c:1070 src/bin/tools.c:170
+#: src/bin/search.c:332 src/bin/setting.c:476 src/bin/statusbar.c:42
+#: src/bin/text_setting.c:490 src/bin/text_setting.c:543
+#: src/bin/text_setting.c:574 src/bin/text_setting.c:1087 src/bin/tools.c:170
 msgid "Failed to allocate Memory!"
 msgstr ""
 
@@ -131,37 +131,37 @@ msgstr ""
 msgid "Auto Indentation Disabled."
 msgstr ""
 
-#: src/bin/main.c:179
+#: src/bin/main.c:180
 #, c-format
 msgid "Live View Scale: %2.2fx"
 msgstr ""
 
-#: src/bin/main.c:205
+#: src/bin/main.c:206
 #, c-format
 msgid "Font Size: %1.1fx"
 msgstr ""
 
-#: src/bin/main.c:458
+#: src/bin/main.c:459
 #, c-format
 msgid "Program Run: \"%s\""
 msgstr ""
 
-#: src/bin/main.c:557
+#: src/bin/main.c:558
 msgid "Insertion of template code is disabled while in Live Edit mode"
 msgstr ""
 
-#: src/bin/main.c:565
+#: src/bin/main.c:566
 #, c-format
 msgid "Template code inserted, (%s)"
 msgstr ""
 
-#: src/bin/main.c:571
+#: src/bin/main.c:572
 msgid ""
 "Can't insert template code here. Move the cursor inside the \"Collections,"
 "Images,Parts,Part,Programs\" scope."
 msgstr ""
 
-#: src/bin/main.c:824
+#: src/bin/main.c:825
 #, c-format
 msgid "Failed to grab key - %s"
 msgstr ""
@@ -170,7 +170,7 @@ msgstr ""
 msgid "New File: Choose a template"
 msgstr ""
 
-#: src/bin/menu.c:168 src/bin/menu.c:212 src/bin/setting.c:522
+#: src/bin/menu.c:168 src/bin/menu.c:212 src/bin/setting.c:532
 msgid "Cancel"
 msgstr ""
 
@@ -232,7 +232,7 @@ msgstr ""
 msgid "New"
 msgstr ""
 
-#: src/bin/menu.c:656
+#: src/bin/menu.c:656 src/bin/setting.c:492
 msgid "Settings"
 msgstr ""
 
@@ -292,76 +292,104 @@ msgstr ""
 msgid "Replace All"
 msgstr ""
 
-#: src/bin/setting.c:288
+#: src/bin/setting.c:249
+msgid "Image Paths:"
+msgstr ""
+
+#: src/bin/setting.c:257
+msgid "Sound Paths:"
+msgstr ""
+
+#: src/bin/setting.c:265
+msgid "Font Paths:"
+msgstr ""
+
+#: src/bin/setting.c:273
+msgid "Data Paths:"
+msgstr ""
+
+#: src/bin/setting.c:278
+msgid "Preferences:"
+msgstr ""
+
+#: src/bin/setting.c:297
 msgid "Live View Scale"
 msgstr ""
 
-#: src/bin/setting.c:315
+#: src/bin/setting.c:324
 msgid "Fixed Live View Size"
 msgstr ""
 
-#: src/bin/setting.c:376
+#: src/bin/setting.c:385
 msgid "Part Highlighting"
 msgstr ""
 
-#: src/bin/setting.c:381
+#: src/bin/setting.c:390
 msgid "Dummy Swallow"
 msgstr ""
 
-#: src/bin/setting.c:386
+#: src/bin/setting.c:395
 msgid "Status"
 msgstr ""
 
-#: src/bin/setting.c:391
+#: src/bin/setting.c:400
 msgid "Tools"
 msgstr ""
 
-#: src/bin/setting.c:396
+#: src/bin/setting.c:405
 msgid "Auto Hiding Console"
 msgstr ""
 
-#: src/bin/setting.c:492
+#: src/bin/setting.c:502
 msgid "General"
 msgstr ""
 
-#: src/bin/setting.c:493
+#: src/bin/setting.c:503
 msgid "Text Editor"
 msgstr ""
 
-#: src/bin/setting.c:508
+#: src/bin/setting.c:518
 msgid "Apply"
 msgstr ""
 
-#: src/bin/setting.c:515
+#: src/bin/setting.c:525
 msgid "Reset"
 msgstr ""
 
-#: src/bin/text_setting.c:5

[EGIT] [tools/enventor] master 01/02: Localization: add texts from setting layouts to locale.

2015-12-15 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=d1c5cebb24e6f3cbdcb297453624aa616123

commit d1c5cebb24e6f3cbdcb297453624aa616123
Author: Mykyta Biliavskyi 
Date:   Wed Dec 16 10:09:50 2015 +0900

Localization: add texts from setting layouts to locale.
---
 src/bin/setting.c  | 7 +++
 src/bin/text_setting.c | 1 +
 2 files changed, 8 insertions(+)

diff --git a/src/bin/setting.c b/src/bin/setting.c
index 3d3c9ca..786d9bc 100644
--- a/src/bin/setting.c
+++ b/src/bin/setting.c
@@ -246,6 +246,7 @@ general_layout_create(setting_data *sd, Evas_Object *parent)
elm_object_focus_set(img_path_entry, EINA_TRUE);
elm_object_part_content_set(layout, "elm.swallow.img_path_entry",
img_path_entry);
+   elm_layout_text_set(layout, "img_path_guide", _("Image Paths:"));
 
//Sound Path Entry
Evas_Object *snd_path_entry = entry_create(layout);
@@ -253,12 +254,15 @@ general_layout_create(setting_data *sd, Evas_Object 
*parent)
  (Eina_List *)config_snd_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.snd_path_entry",
snd_path_entry);
+   elm_layout_text_set(layout, "snd_path_guide", _("Sound Paths:"));
+
//Font Path Entry
Evas_Object *fnt_path_entry = entry_create(layout);
fnt_path_entry_update(fnt_path_entry,
  (Eina_List *)config_fnt_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.fnt_path_entry",
fnt_path_entry);
+   elm_layout_text_set(layout, "fnt_path_guide", _("Font Paths:"));
 
//Data Path Entry
Evas_Object *dat_path_entry = entry_create(layout);
@@ -266,10 +270,12 @@ general_layout_create(setting_data *sd, Evas_Object 
*parent)
  (Eina_List *)config_dat_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.dat_path_entry",
dat_path_entry);
+   elm_layout_text_set(layout, "dat_path_guide", _("Data Paths:"));
 
//Preference
Evas_Object *scroller = elm_scroller_add(layout);
elm_object_part_content_set(layout, "elm.swallow.preference", scroller);
+   elm_layout_text_set(layout, "preference_guide", _("Preferences:"));
 
//Box
Evas_Object *box = elm_box_add(scroller);
@@ -483,6 +489,7 @@ setting_open(void)
elm_object_signal_callback_add(layout, "elm,state,dismiss,done", "",
   setting_dismiss_done_cb, sd);
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
+   elm_layout_text_set(layout, "title_name", _("Settings"));
evas_object_show(layout);
base_win_resize_object_add(layout);
 
diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c
index 071eef8..e4fb384 100644
--- a/src/bin/text_setting.c
+++ b/src/bin/text_setting.c
@@ -799,6 +799,7 @@ text_setting_layout_create(Evas_Object *parent)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_layout_text_set(layout, "text_setting_guide", _("Double click a keyword 
to change its color :"));
 
//Font information
const char *font_name;

-- 




[EGIT] [core/efl] master 01/01: emile: fix compilation with --enable-liblz4

2015-12-15 Thread Hein-Pieter van Braam
cedric pushed a commit to branch master.

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

commit c46ab1d864ba274fd1950a87e5d7559eb42fe5e2
Author: Hein-Pieter van Braam 
Date:   Tue Dec 15 17:15:46 2015 -0800

emile: fix compilation with --enable-liblz4

Signed-off-by: Cedric BAIL 
---
 src/Makefile_Emile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Makefile_Emile.am b/src/Makefile_Emile.am
index 17e5151..423650d 100644
--- a/src/Makefile_Emile.am
+++ b/src/Makefile_Emile.am
@@ -54,7 +54,7 @@ lib_emile_libemile_la_LIBADD = @EMILE_LIBS@
 lib_emile_libemile_la_DEPENDENCIES = @EMILE_INTERNAL_LIBS@
 lib_emile_libemile_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@
 
-if ! ENABLE_LIBLZ4
+if ENABLE_LIBLZ4
 lib_emile_libemile_la_LIBADD += @LIBLZ4_LIBS@
 endif
 

-- 




[EGIT] [core/efl] efl-1.16 01/01: emile: fix compilation with --enable-liblz4

2015-12-15 Thread Hein-Pieter van Braam
cedric pushed a commit to branch efl-1.16.

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

commit ba8dac9172684db1d6a5eb02fb3f5f78d3f58eb3
Author: Hein-Pieter van Braam 
Date:   Tue Dec 15 17:15:46 2015 -0800

emile: fix compilation with --enable-liblz4

Signed-off-by: Cedric BAIL 
---
 src/Makefile_Emile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Makefile_Emile.am b/src/Makefile_Emile.am
index 17e5151..423650d 100644
--- a/src/Makefile_Emile.am
+++ b/src/Makefile_Emile.am
@@ -54,7 +54,7 @@ lib_emile_libemile_la_LIBADD = @EMILE_LIBS@
 lib_emile_libemile_la_DEPENDENCIES = @EMILE_INTERNAL_LIBS@
 lib_emile_libemile_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@
 
-if ! ENABLE_LIBLZ4
+if ENABLE_LIBLZ4
 lib_emile_libemile_la_LIBADD += @LIBLZ4_LIBS@
 endif
 

-- 




[EGIT] [core/efl] efl-1.14 01/01: emile: fix compilation with --enable-liblz4

2015-12-15 Thread Hein-Pieter van Braam
cedric pushed a commit to branch efl-1.14.

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

commit 14ea2662087ad300a253c490f5cfc8c589908a1f
Author: Hein-Pieter van Braam 
Date:   Tue Dec 15 17:15:46 2015 -0800

emile: fix compilation with --enable-liblz4

Signed-off-by: Cedric BAIL 
---
 src/Makefile_Emile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Makefile_Emile.am b/src/Makefile_Emile.am
index 9607b52..8fb6dc8 100644
--- a/src/Makefile_Emile.am
+++ b/src/Makefile_Emile.am
@@ -54,7 +54,7 @@ lib_emile_libemile_la_LIBADD = @EMILE_LIBS@
 lib_emile_libemile_la_DEPENDENCIES = @EMILE_INTERNAL_LIBS@
 lib_emile_libemile_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@
 
-if ! ENABLE_LIBLZ4
+if ENABLE_LIBLZ4
 lib_emile_libemile_la_LIBADD += @LIBLZ4_LIBS@
 endif
 

-- 




[EGIT] [core/efl] efl-1.15 01/01: emile: fix compilation with --enable-liblz4

2015-12-15 Thread Hein-Pieter van Braam
cedric pushed a commit to branch efl-1.15.

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

commit d3f91f5e41607a96f90e699b2d3ed1c87b9517b9
Author: Hein-Pieter van Braam 
Date:   Tue Dec 15 17:15:46 2015 -0800

emile: fix compilation with --enable-liblz4

Signed-off-by: Cedric BAIL 
---
 src/Makefile_Emile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Makefile_Emile.am b/src/Makefile_Emile.am
index 17e5151..423650d 100644
--- a/src/Makefile_Emile.am
+++ b/src/Makefile_Emile.am
@@ -54,7 +54,7 @@ lib_emile_libemile_la_LIBADD = @EMILE_LIBS@
 lib_emile_libemile_la_DEPENDENCIES = @EMILE_INTERNAL_LIBS@
 lib_emile_libemile_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@
 
-if ! ENABLE_LIBLZ4
+if ENABLE_LIBLZ4
 lib_emile_libemile_la_LIBADD += @LIBLZ4_LIBS@
 endif
 

-- 




[EGIT] [core/efl] master 01/01: evas: update/clarify RENDER_FLUSH callback docs

2015-12-15 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit fc4b927a83979d86fdd6e44ef720ef1a876f495e
Author: Mike Blumenkrantz 
Date:   Tue Dec 15 17:57:37 2015 -0500

evas: update/clarify RENDER_FLUSH callback docs
---
 src/lib/evas/canvas/evas_types.eot | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/evas/canvas/evas_types.eot 
b/src/lib/evas/canvas/evas_types.eot
index 818aa6a..2b41d4e 100644
--- a/src/lib/evas/canvas/evas_types.eot
+++ b/src/lib/evas/canvas/evas_types.eot
@@ -193,8 +193,8 @@ enum Evas.Callback_Type
 
canvas_focus_in, [[Canvas got focus as a whole]]
canvas_focus_out, [[Canvas lost focus as a whole]]
-   render_flush_pre, [[Called just before rendering is updated on the canvas 
target]]
-   render_flush_post, [[Called just after rendering is updated on the canvas 
target]]
+   render_flush_pre, [[Called after render update regions have been 
calculated, but only if update regions exist]]
+   render_flush_post, [[Called after render update regions have been sent to 
the display server, but only if update regions existed for the most recent 
frame]]
canvas_object_focus_in, [[Canvas object got focus]]
canvas_object_focus_ouT, [[Canvas object lost focus]]
 

-- 




[EGIT] [apps/ephoto] master 01/01: Ephoto: Add ability to search images

2015-12-15 Thread Stephen okra Houston
okra pushed a commit to branch master.

http://git.enlightenment.org/apps/ephoto.git/commit/?id=230ffeaa8caf326d8fb10ca61b5f710cc64a9b3a

commit 230ffeaa8caf326d8fb10ca61b5f710cc64a9b3a
Author: Stephen okra Houston 
Date:   Tue Dec 15 16:42:38 2015 -0600

Ephoto: Add ability to search images
---
 TODO   |   1 -
 src/bin/ephoto_thumb_browser.c | 206 +++--
 2 files changed, 179 insertions(+), 28 deletions(-)

diff --git a/TODO b/TODO
index fead8c3..e3a12fd 100644
--- a/TODO
+++ b/TODO
@@ -6,7 +6,6 @@ Add more effects, filters as necessary
 Clean up Cropper
 -Thumb Browser:
 Add ability to view more info on image(Exif perhaps?)
-Add ability to search
 -Slideshow:
 Possibly look at implementing moving slideshows.
 -Other Possibilities:
diff --git a/src/bin/ephoto_thumb_browser.c b/src/bin/ephoto_thumb_browser.c
index 054b4ba..2378f6b 100644
--- a/src/bin/ephoto_thumb_browser.c
+++ b/src/bin/ephoto_thumb_browser.c
@@ -22,6 +22,7 @@ struct _Ephoto_Thumb_Browser
Ephoto *ephoto;
Evas_Object *main;
Evas_Object *table;
+   Evas_Object *gridbox;
Evas_Object *grid;
Evas_Object *nolabel;
Evas_Object *infolabel;
@@ -32,8 +33,10 @@ struct _Ephoto_Thumb_Browser
Evas_Object *leftbox;
Evas_Object *direntry;
Evas_Object *ficon;
+   Evas_Object *search;
Elm_Object_Item *dir_current;
Elm_Object_Item *last_sel;
+   Elm_Object_Item *last_search;
Ephoto_Sort sort;
Eio_File *ls;
Eina_List *cut_items;
@@ -49,6 +52,7 @@ struct _Ephoto_Thumb_Browser
int totimages;
int file_errors;
int dragging;
+   int searching;
double totsize;
struct
{
@@ -120,6 +124,7 @@ _on_list_expanded(void *data, Evas_Object *obj EINA_UNUSED, 
void *event_info)
tb->thumbs_only = 0;
ephoto_directory_set(tb->ephoto, path, it, tb->dirs_only, tb->thumbs_only);
ephoto_title_set(tb->ephoto, tb->ephoto->config->directory);
+   elm_object_focus_set(tb->main, EINA_TRUE);
 }
 
 static void
@@ -143,6 +148,7 @@ _on_list_contracted(void *data, Evas_Object *obj 
EINA_UNUSED, void *event_info)
tb->dirs_only, tb->thumbs_only);
ephoto_title_set(tb->ephoto,
tb->ephoto->config->directory);
+   elm_object_focus_set(tb->main, EINA_TRUE);
 }
 
 static void
@@ -158,6 +164,7 @@ _dir_job(void *data)
ephoto_directory_set(tb->ephoto, path, NULL,
tb->dirs_only, tb->thumbs_only);
ephoto_title_set(tb->ephoto, tb->ephoto->config->directory);
+   elm_object_focus_set(tb->main, EINA_TRUE);
 }
 
 static void
@@ -519,6 +526,7 @@ _ephoto_dir_go_up(void *data, Evas_Object *obj EINA_UNUSED,
ephoto_directory_set(tb->ephoto, dirname(path), NULL,
 tb->dirs_only, tb->thumbs_only);
ephoto_title_set(tb->ephoto, tb->ephoto->config->directory);
+elm_object_focus_set(tb->main, EINA_TRUE);
  }
 }
 
@@ -539,6 +547,7 @@ _ephoto_dir_go_trash(void *data, Evas_Object *obj 
EINA_UNUSED,
ephoto_directory_set(tb->ephoto, path, NULL,
tb->dirs_only, tb->thumbs_only);
ephoto_title_set(tb->ephoto, _("Trash"));
+   elm_object_focus_set(tb->main, EINA_TRUE);
 }
 
 static void
@@ -558,10 +567,64 @@ _ephoto_direntry_go(void *data, Evas_Object *obj 
EINA_UNUSED,
ephoto_directory_set(tb->ephoto, dir, NULL,
 tb->dirs_only, tb->thumbs_only);
ephoto_title_set(tb->ephoto, tb->ephoto->config->directory);
+elm_object_focus_set(tb->main, EINA_TRUE);
  }
 }
 
 static void
+_ephoto_search_go(void *data, Evas_Object *obj EINA_UNUSED,
+void *event_info EINA_UNUSED)
+{
+   Evas_Object *search = data;
+   Ephoto_Thumb_Browser *tb = evas_object_data_get(search, "thumb_browser");
+   Elm_Object_Item *next = NULL;
+   Elm_Object_Item *found = NULL;
+   Elm_Object_Item *o = NULL;
+   Eina_List *sel = eina_list_clone(elm_gengrid_selected_items_get(tb->grid));
+   Eina_List *l;
+   const char *search_text = elm_object_text_get(search);
+   char pattern[PATH_MAX];
+
+   if (tb->last_search)
+ next = elm_gengrid_item_next_get(tb->last_search);
+   if (!next)
+ next = elm_gengrid_first_item_get(tb->grid);
+
+   snprintf(pattern, PATH_MAX, "*%s*", search_text);
+
+   EINA_LIST_FOREACH(sel, l, o)
+ {
+elm_gengrid_item_selected_set(o, EINA_FALSE);
+ }
+   eina_list_free(sel);
+
+   found = elm_gengrid_search_by_text_item_get(tb->grid, next, NULL, pattern, 
+   ELM_GLOB_MATCH_NOCASE);
+   tb->last_search = found;
+   if (found)
+ {
+elm_gengrid_item_selected_set(found, EINA_TRUE);
+elm_gengrid_item_bring_in(found, ELM_GENGRID_ITEM_SCROLLTO_MIDDLE);
+elm_object_focus_set(search, EINA_TRUE);
+ }
+}
+
+static void
+_ephoto_search_cancel(void *data, Evas_Object *obj EINA_UNUSED,
+void *event_info EINA_UNUSED)
+{
+   Evas_Object *search = data;
+   Evas_Object *hbox = evas_object_data_get(search, "parent");
+   Ephoto_Thumb_Browser *tb = evas_object_data_get(search, "thumb_browser");
+
+   evas_object_del(

[EGIT] [apps/terminology] master 01/01: do not force full textgrid width update if preedit_str is ""

2015-12-15 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=7f53f4daf784d073f9c4c0ad3072f146314bbde7

commit 7f53f4daf784d073f9c4c0ad3072f146314bbde7
Author: Mike Blumenkrantz 
Date:   Tue Dec 15 17:29:44 2015 -0500

do not force full textgrid width update if preedit_str is ""

in many cases this will be the value which has been set, so ignoring it
will yield moderate performance improvements

Reviewed-by: Boris Faure 
---
 src/bin/termio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/termio.c b/src/bin/termio.c
index 8b04b81..d75f8ab 100644
--- a/src/bin/termio.c
+++ b/src/bin/termio.c
@@ -4821,7 +4821,7 @@ _smart_apply(Evas_Object *obj)
   evas_object_textgrid_update_add(sd->grid.obj, ch1, y,
   ch2 - ch1 + 1, 1);
  }
-   if (sd->preedit_str)
+   if (sd->preedit_str && sd->preedit_str[0])
  {
 Eina_Unicode *uni, g;
 int len = 0, i, jump, xx, backx;

-- 




[EGIT] [core/efl] master 05/05: evas: do not unset/delete master clip after every frame

2015-12-15 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit fb8c547077024dfe0287beb3b9359c0e002fa183
Author: Mike Blumenkrantz 
Date:   Tue Dec 15 17:21:42 2015 -0500

evas: do not unset/delete master clip after every frame

this is not ideal since it triggers a client-side rerender of every object
which was clipped to the master clip (double render) and then this ends up
forcing the server to rerender the same area twice as well

not only that, it causes all surface damages to to be the size of the entire
window - framespace for every frame

@fix
---
 src/lib/evas/canvas/evas_render.c | 20 
 1 file changed, 20 deletions(-)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 3247b7c..4ae9af9 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2882,26 +2882,6 @@ evas_render_updates_internal(Evas *eo_e,
   }
  }
 
-   if (!strncmp(e->engine.module->definition->name, "wayland", 7))
- {
-/* unclip objects from master clip */
-for (i = 0; i < e->render_objects.count; ++i)
-  {
- obj = eina_array_data_get(&e->render_objects, i);
- if (obj->is_frame) continue;
- if (obj->object == e->framespace.clip) continue;
-
- if (evas_object_clip_get(obj->object) == e->framespace.clip)
-   {
-  /* unclip this object from the master clip */
-  evas_object_clip_unset(obj->object);
-   }
-  }
-
-/* delete master clip */
-evas_object_del(e->framespace.clip);
-e->framespace.clip = NULL;
- }
 
e->changed = EINA_FALSE;
e->viewport.changed = EINA_FALSE;

-- 




[EGIT] [core/efl] master 04/05: evas: trigger FLUSH_PRE callback prior to kicking off an async render

2015-12-15 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 1d3c4162b3d863a798c68865829c892c0832d903
Author: Mike Blumenkrantz 
Date:   Tue Dec 15 17:18:36 2015 -0500

evas: trigger FLUSH_PRE callback prior to kicking off an async render

while not occurring immediately before flush as in sync rendering, this
is functionally close enough that it will serve the purpose for which the
callback was intended, namely receiving a callback that occurs after render
update calculations have occurred but before flush happens

@fix

ref cbb447c878ef779230ebf4470b615b8276c50fa2
---
 src/lib/evas/canvas/evas_render.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 90bb687..3247b7c 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2787,7 +2787,8 @@ evas_render_updates_internal(Evas *eo_e,
  eo_ref(eo_e);
  e->rendering = EINA_TRUE;
  _rendering_evases = eina_list_append(_rendering_evases, e);
-
+ if (haveup)
+   _cb_always_call(eo_e, EVAS_CALLBACK_RENDER_FLUSH_PRE, NULL);
  evas_thread_queue_flush((Evas_Thread_Command_Cb)done_func, 
done_data);
   }
 else if (haveup)
@@ -3009,7 +3010,6 @@ evas_render_wakeup(Evas *eo_e)
   {
  _evas_object_image_video_overlay_do(eo_obj);
   }
-_cb_always_call(eo_e, EVAS_CALLBACK_RENDER_FLUSH_PRE, NULL);
 _cb_always_call(eo_e, EVAS_CALLBACK_RENDER_FLUSH_POST, NULL);
  }
 

-- 




[EGIT] [core/efl] master 01/05: ecore-evas wayland: move frame sending to pre-flush callback

2015-12-15 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 54df1d9c6a5e42d72aadc59265fbd64e7f7871b3
Author: Mike Blumenkrantz 
Date:   Tue Dec 15 17:14:43 2015 -0500

ecore-evas wayland: move frame sending to pre-flush callback

it was possible to deadlock rendering if a pre-render occurred but
the resulting render had no updated regions

@fix
---
 .../ecore_evas/engines/wayland/ecore_evas_wayland_common.c| 11 +--
 .../ecore_evas/engines/wayland/ecore_evas_wayland_egl.c   |  3 ---
 .../ecore_evas/engines/wayland/ecore_evas_wayland_shm.c   |  3 ---
 3 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 75ac428..f10f4d0 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -1289,7 +1289,7 @@ static const struct wl_callback_listener _anim_listener =
 };
 
 void
-_ecore_evas_wl_common_render_pre(void *data, Evas *evas EINA_UNUSED, void 
*event EINA_UNUSED)
+_ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas EINA_UNUSED, 
void *event EINA_UNUSED)
 {
Ecore_Evas *ee = data;
Ecore_Evas_Engine_Wl_Data *wdata;
@@ -1299,15 +1299,6 @@ _ecore_evas_wl_common_render_pre(void *data, Evas *evas 
EINA_UNUSED, void *event
  wl_surface_frame(ecore_wl2_window_surface_get(wdata->win));
wl_callback_add_listener(wdata->anim_callback, &_anim_listener, ee);
ecore_evas_manual_render_set(ee, 1);
-}
-
-void
-_ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas EINA_UNUSED, 
void *event EINA_UNUSED)
-{
-   Ecore_Evas *ee = data;
-   Ecore_Evas_Engine_Wl_Data *wdata;
-
-   wdata = ee->engine.data;
if (wdata->win->configure_ack && wdata->win->configure_serial)
  wdata->win->configure_ack(wdata->win->xdg_surface,
wdata->win->configure_serial);
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
index 8836630..c6def65 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
@@ -314,9 +314,6 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, 
unsigned int parent,
  evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST, 
  _ecore_evas_wl_common_render_updates, ee);
 
-   evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
-_ecore_evas_wl_common_render_pre, ee);
-
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
_ecore_evas_wl_common_render_flush_pre, ee);
 
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
index c815f79..be092fb 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
@@ -312,9 +312,6 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, 
unsigned int parent,
  evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST,
 _ecore_evas_wl_common_render_updates, ee);
 
-   evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
-_ecore_evas_wl_common_render_pre, ee);
-
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
_ecore_evas_wl_common_render_flush_pre, ee);
 

-- 




[EGIT] [core/efl] master 02/05: evas: do not add unclipped smart members to the master clip

2015-12-15 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 990c23c840e1da53a4d3accd96d7645927129f2b
Author: Mike Blumenkrantz 
Date:   Tue Dec 15 17:16:26 2015 -0500

evas: do not add unclipped smart members to the master clip

this is probably a pretty unlikely scenario, but messing with smart
members in this way is probably not a great idea

@fix
---
 src/lib/evas/canvas/evas_render.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 1645ebc..830516e 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2527,7 +2527,7 @@ evas_render_updates_internal(Evas *eo_e,
  if (!eina_rectangles_intersect(&clip_rect, &obj_rect))
continue;
 
- if (!evas_object_clip_get(obj->object))
+ if ((!evas_object_clip_get(obj->object)) && (!obj->smart.parent))
{
   /* clip this object to the master clip */
   evas_object_clip_set(obj->object, e->framespace.clip);

-- 




[EGIT] [core/efl] master 03/05: evas: resize master clip if framespace|viewport.changed is set

2015-12-15 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 092d7a6f3d3015b258bdada1a33c676d99eec0c7
Author: Mike Blumenkrantz 
Date:   Tue Dec 15 17:17:36 2015 -0500

evas: resize master clip if framespace|viewport.changed is set
---
 src/lib/evas/canvas/evas_render.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 830516e..90bb687 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2600,6 +2600,10 @@ evas_render_updates_internal(Evas *eo_e,
 ERR("viewport size != output size!");
  }
 
+   if (e->framespace.clip && (e->framespace.changed || e->viewport.changed))
+ evas_object_resize(e->framespace.clip,
+   e->viewport.w - e->framespace.w,
+   e->viewport.h - e->framespace.h);
if (e->framespace.changed)
  {
 /* NB: If the framespace changes, we need to add a redraw rectangle

-- 




[EGIT] [apps/ephoto] master 01/01: Ephoto: No reason to block window with popup on directory load.

2015-12-15 Thread Stephen okra Houston
okra pushed a commit to branch master.

http://git.enlightenment.org/apps/ephoto.git/commit/?id=598e33f646a93387dcd5d64fe4a2ee12aa616f0c

commit 598e33f646a93387dcd5d64fe4a2ee12aa616f0c
Author: Stephen okra Houston 
Date:   Tue Dec 15 12:39:46 2015 -0600

Ephoto: No reason to block window with popup on directory load.
---
 src/bin/ephoto_thumb_browser.c | 25 +
 1 file changed, 1 insertion(+), 24 deletions(-)

diff --git a/src/bin/ephoto_thumb_browser.c b/src/bin/ephoto_thumb_browser.c
index be8b11c..0e7c671 100644
--- a/src/bin/ephoto_thumb_browser.c
+++ b/src/bin/ephoto_thumb_browser.c
@@ -31,7 +31,6 @@ struct _Ephoto_Thumb_Browser
Evas_Object *max;
Evas_Object *leftbox;
Evas_Object *direntry;
-   Evas_Object *dir_loading;
Evas_Object *ficon;
Elm_Object_Item *dir_current;
Elm_Object_Item *last_sel;
@@ -417,13 +416,7 @@ _todo_items_process(void *data)
  {
 if (tb->animator.count == 0)
   return EINA_TRUE;
-   if (tb->dir_loading)
- {
-evas_object_del(tb->dir_loading);
- evas_object_freeze_events_set(tb->main, EINA_FALSE);
- elm_object_focus_set(tb->main, EINA_TRUE);
- }
-   tb->animator.todo_items = NULL;
+tb->animator.todo_items = NULL;
return EINA_FALSE;
  }
if ((tb->ls) && (eina_list_count(tb->todo_items) < TODO_ITEM_MIN_BATCH))
@@ -3105,10 +3098,6 @@ _ephoto_thumb_populate_start(void *data, int type 
EINA_UNUSED,
 
evas_object_smart_callback_call(tb->main, "changed,directory", NULL);
 
-   tb->dir_loading =
-   _processing(tb, _("Loading Directory"),
-   _("Please wait while the directory is loaded."));
-   evas_object_show(tb->dir_loading);
tb->animator.processed = 0;
tb->animator.count = 0;
 
@@ -3189,12 +3178,6 @@ _ephoto_thumb_populate_end(void *data, int type 
EINA_UNUSED,
tb->totimages), _("Size"), isize);
elm_object_text_set(tb->infolabel, image_info);
  }
-   if (tb->dir_loading && (tb->animator.processed == tb->animator.count))
- {
-   evas_object_del(tb->dir_loading);
-evas_object_freeze_events_set(tb->main, EINA_FALSE);
-elm_object_focus_set(tb->main, EINA_TRUE);
- }
tb->dirs_only = 0;
tb->thumbs_only = 0;
 
@@ -3207,12 +3190,6 @@ _ephoto_thumb_populate_error(void *data, int type 
EINA_UNUSED,
 {
Ephoto_Thumb_Browser *tb = data;
 
-   if (tb->dir_loading)
- {
-evas_object_del(tb->dir_loading);
-evas_object_freeze_events_set(tb->main, EINA_FALSE);
-elm_object_focus_set(tb->main, EINA_TRUE);
- }
tb->dirs_only = 0;
tb->thumbs_only = 0;
 

-- 




[EGIT] [apps/ephoto] master 01/01: Ephoto: Clear the grid selection when clicking in the empty space.

2015-12-15 Thread Stephen okra Houston
okra pushed a commit to branch master.

http://git.enlightenment.org/apps/ephoto.git/commit/?id=d5cb51942249c22dd6e9edabc3820e47f3d96912

commit d5cb51942249c22dd6e9edabc3820e47f3d96912
Author: Stephen okra Houston 
Date:   Tue Dec 15 12:44:54 2015 -0600

Ephoto: Clear the grid selection when clicking in the empty space.
---
 src/bin/ephoto_thumb_browser.c | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/src/bin/ephoto_thumb_browser.c b/src/bin/ephoto_thumb_browser.c
index 0e7c671..054b4ba 100644
--- a/src/bin/ephoto_thumb_browser.c
+++ b/src/bin/ephoto_thumb_browser.c
@@ -2854,6 +2854,20 @@ _grid_mouse_up_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
  tb->last_sel = item;
   }
  }
+   if (info->button == 1 && !item)
+ {
+Eina_List *sel = eina_list_clone(selected);
+Eina_List *node;
+Elm_Object_Item *it;
+if (eina_list_count(sel) > 0)
+  {
+ EINA_LIST_FOREACH(sel, node, it)
+   {
+  elm_gengrid_item_selected_set(it, EINA_FALSE);
+   }
+ eina_list_free(sel);
+  }
+ }
if (info->button != 3)
   return;
 

-- 




[EGIT] [apps/empc] master 01/01: set HAVE_AZY_PARSER more accurately when not found during configure

2015-12-15 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/apps/empc.git/commit/?id=ad6decde3f9b98dd31d82d9e8a48f2f5a0b9716c

commit ad6decde3f9b98dd31d82d9e8a48f2f5a0b9716c
Author: Mike Blumenkrantz 
Date:   Tue Dec 15 12:09:39 2015 -0500

set HAVE_AZY_PARSER more accurately when not found during configure
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 1cb7e62..a7ed634 100644
--- a/configure.ac
+++ b/configure.ac
@@ -109,7 +109,7 @@ PKG_CHECK_MODULES([ELM], [evas >= 1.12 elementary >= 1.12])
 PKG_CHECK_MODULES([ESQL], [esskyuehl], [have_esql=yes], [have_esql=no])
 PKG_CHECK_MODULES([EIO], [eio])
 AC_PATH_PROG([AZY_PARSER], [azy_parser], [no])
-AM_CONDITIONAL([HAVE_AZY_PARSER], [test "x$AZY_PARSER" != "x"])
+AM_CONDITIONAL([HAVE_AZY_PARSER], [test "x$AZY_PARSER" != "xno"])
 # MODULES ###
 want_glyr_gmpc=maybe
 AC_ARG_ENABLE([module-glyr-gmpc],

-- 




[EGIT] [core/enlightenment] master 01/01: Fix type of size fields for E_Shell_Data

2015-12-15 Thread Chris Michael
devilhorns pushed a commit to branch master.

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

commit e40033be0a9d7cab056d0f7bd52db7a1e2bb2d9b
Author: Chris Michael 
Date:   Tue Dec 15 10:20:33 2015 -0500

Fix type of size fields for E_Shell_Data

In the xdg_surface_configure_send function, the size params
(width/height) come in as int32_t. This patch makes the E_Shell_Data
fields for width & height match those (else we end up with compiler
warnings when comparing int32_t to uint32_t).

Signed-off-by: Chris Michael 
---
 src/modules/wl_desktop_shell/e_mod_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index 9935c35..bb4020d 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -8,8 +8,8 @@
 struct E_Shell_Data
 {
uint32_t edges;
-   uint32_t width;
-   uint32_t height;
+   int32_t width;
+   int32_t height;
Eina_Bool fullscreen : 1;
Eina_Bool maximized : 1;
Eina_Bool activated : 1;

-- 




[EGIT] [core/efl] master 01/01: ecore-drm: Fix failure of setting/closing evdev->fd which causes fd leak

2015-12-15 Thread Duna Oh
devilhorns pushed a commit to branch master.

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

commit cb23fd2af2d07c17ae2d6c08a7c87cf8abf45814
Author: Duna Oh 
Date:   Tue Dec 15 10:02:49 2015 -0500

ecore-drm: Fix failure of setting/closing evdev->fd which causes fd leak

Summary:
When a input device is plugged in, _cb_open_restricted() is called before 
creating evdev.
So setting fd value on evdev was failed in _cb_open_restricted() and also 
closing evdev->fd was invalid.
Using a eina_hash which has 'path-fd' pairs, we can find fd value after 
evdev is created.

@fix

Test Plan:
(1) Multiple input devices are connected. Their evdev->fd remains zero or 
initial value.
(2) When one of those devices are plugged out, fd leak would happen.

Reviewers: raster, zmike, gwanglim, stefan_schmidt, devilhorns, ManMower

Subscribers: cedric, jpeg, Jeon, input.hacker

Differential Revision: https://phab.enlightenment.org/D3428
---
 src/lib/ecore_drm/ecore_drm.c  |  4 
 src/lib/ecore_drm/ecore_drm_inputs.c   | 39 +-
 src/lib/ecore_drm/ecore_drm_launcher.c |  1 +
 src/lib/ecore_drm/ecore_drm_private.h  |  2 ++
 4 files changed, 31 insertions(+), 15 deletions(-)

diff --git a/src/lib/ecore_drm/ecore_drm.c b/src/lib/ecore_drm/ecore_drm.c
index 6bbbde0..02dd76e 100644
--- a/src/lib/ecore_drm/ecore_drm.c
+++ b/src/lib/ecore_drm/ecore_drm.c
@@ -87,6 +87,8 @@ ecore_drm_init(void)
/* try to init eeze */
if (!eeze_init()) goto eeze_err;
 
+   _ecore_drm_inputs_init();
+
ECORE_DRM_EVENT_ACTIVATE = ecore_event_type_new();
ECORE_DRM_EVENT_OUTPUT = ecore_event_type_new();
ECORE_DRM_EVENT_SEAT_ADD = ecore_event_type_new();
@@ -141,6 +143,8 @@ ecore_drm_shutdown(void)
/* shutdown eina */
eina_shutdown();
 
+   _ecore_drm_inputs_shutdown();
+
/* return init count */
return _ecore_drm_init_count;
 }
diff --git a/src/lib/ecore_drm/ecore_drm_inputs.c 
b/src/lib/ecore_drm/ecore_drm_inputs.c
index 75655ec..df46b19 100644
--- a/src/lib/ecore_drm/ecore_drm_inputs.c
+++ b/src/lib/ecore_drm/ecore_drm_inputs.c
@@ -5,15 +5,13 @@
 #include "ecore_drm_private.h"
 
 EAPI int ECORE_DRM_EVENT_SEAT_ADD = -1;
+static Eina_Hash *_fd_hash = NULL;
 
 /* local functions */
 static int 
 _cb_open_restricted(const char *path, int flags, void *data)
 {
Ecore_Drm_Input *input;
-   Ecore_Drm_Seat *seat;
-   Ecore_Drm_Evdev *edev;
-   Eina_List *l, *ll;
int fd = -1;
 
if (!(input = data)) return -1;
@@ -21,18 +19,8 @@ _cb_open_restricted(const char *path, int flags, void *data)
/* try to open the device */
fd = _ecore_drm_launcher_device_open_no_pending(path, flags);
if (fd < 0) ERR("Could not open device");
-
-   EINA_LIST_FOREACH(input->dev->seats, l, seat)
- {
-EINA_LIST_FOREACH(seat->devices, ll, edev)
-  {
- if (strstr(path, edev->path))
-   {
-  edev->fd = fd;
-  return fd;
-   }
-  }
- }
+   if (_fd_hash)
+ eina_hash_add(_fd_hash, path, (void *)(intptr_t)fd);
 
return fd;
 }
@@ -54,6 +42,9 @@ _cb_close_restricted(int fd, void *data)
  if (edev->fd == fd)
{
   _ecore_drm_launcher_device_close(edev->path, fd);
+
+  /* re-initialize fd after closing */
+  edev->fd = -1;
   return;
}
   }
@@ -118,6 +109,8 @@ _device_added(Ecore_Drm_Input *input, struct 
libinput_device *device)
 return;
  }
 
+   edev->fd = (int)(intptr_t)eina_hash_find(_fd_hash, edev->path);
+
/* append this device to the seat */
seat->devices = eina_list_append(seat->devices, edev);
 }
@@ -134,6 +127,9 @@ _device_removed(Ecore_Drm_Input *input EINA_UNUSED, struct 
libinput_device *devi
/* remove this evdev from the seat's list of devices */
edev->seat->devices = eina_list_remove(edev->seat->devices, edev);
 
+   if (_fd_hash)
+ eina_hash_del_by_key(_fd_hash, edev->path);
+
/* tell launcher to release device */
_ecore_drm_launcher_device_close(edev->path, edev->fd);
 
@@ -345,3 +341,16 @@ ecore_drm_inputs_disable(Ecore_Drm_Input *input)
 
input->suspended = EINA_TRUE;
 }
+
+void
+_ecore_drm_inputs_init(void)
+{
+   _fd_hash = eina_hash_string_superfast_new(NULL);
+}
+
+void
+_ecore_drm_inputs_shutdown(void)
+{
+   eina_hash_free(_fd_hash);
+   _fd_hash = NULL;
+}
diff --git a/src/lib/ecore_drm/ecore_drm_launcher.c 
b/src/lib/ecore_drm/ecore_drm_launcher.c
index 2baa550..6ba92ec 100644
--- a/src/lib/ecore_drm/ecore_drm_launcher.c
+++ b/src/lib/ecore_drm/ecore_drm_launcher.c
@@ -167,5 +167,6 @@ _ecore_drm_launcher_device_close(const char *device, int fd)
 {
if ((logind) && (device)) _ecore_drm_logind_device_close(device);
 
+   if (fd < 0) return;
close(fd);
 }
diff --git a/src/lib/ecore_drm/ecore_drm_pr

[EGIT] [core/elementary] master 02/02: hoversel: accessibility enhancements

2015-12-15 Thread Lukasz Stanislawski
stanluk pushed a commit to branch master.

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

commit b67ab124df4ac55bad9b4235622fc81758f47bc5
Author: Lukasz Stanislawski 
Date:   Tue Dec 15 13:30:52 2015 +0100

hoversel: accessibility enhancements

Allow to dismiss hover using accessibility API.
Change accessibiility role to popup.
---
 src/lib/elm_hover.c  | 20 +++-
 src/lib/elm_hover.eo |  3 ++-
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/lib/elm_hover.c b/src/lib/elm_hover.c
index e7659a9..1216cc5 100644
--- a/src/lib/elm_hover.c
+++ b/src/lib/elm_hover.c
@@ -3,6 +3,7 @@
 #endif
 
 #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
+#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
 
 #include 
 
@@ -685,7 +686,7 @@ _elm_hover_eo_base_constructor(Eo *obj, Elm_Hover_Data *_pd 
EINA_UNUSED)
eo_do(obj,
  evas_obj_type_set(MY_CLASS_NAME_LEGACY),
  evas_obj_smart_callbacks_descriptions_set(_smart_callbacks),
- elm_interface_atspi_accessible_role_set(ELM_ATSPI_ROLE_GLASS_PANE));
+ elm_interface_atspi_accessible_role_set(ELM_ATSPI_ROLE_POPUP_MENU));
 
return obj;
 }
@@ -836,4 +837,21 @@ _elm_hover_class_constructor(Eo_Class *klass)
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
 }
 
+static Eina_Bool
+_action_dismiss(Evas_Object *obj, const char *params EINA_UNUSED)
+{
+   eo_do(obj, elm_obj_hover_dismiss());
+   return EINA_TRUE;
+}
+
+EOLIAN const Elm_Atspi_Action *
+_elm_hover_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj 
EINA_UNUSED, Elm_Hover_Data *pd EINA_UNUSED)
+{
+   static Elm_Atspi_Action atspi_actions[] = {
+  { "dismiss", NULL, NULL, _action_dismiss},
+  { NULL, NULL, NULL, NULL}
+   };
+   return &atspi_actions[0];
+}
+
 #include "elm_hover.eo.c"
diff --git a/src/lib/elm_hover.eo b/src/lib/elm_hover.eo
index 03a84b5..65a3238 100644
--- a/src/lib/elm_hover.eo
+++ b/src/lib/elm_hover.eo
@@ -7,7 +7,7 @@ enum Elm.Hover.Axis
both [[ELM_HOVER_AXIS_BOTH -- both.]]
 }
 
-class Elm.Hover (Elm.Layout, Evas.Clickable_Interface)
+class Elm.Hover (Elm.Layout, Evas.Clickable_Interface, 
Elm_Interface_Atspi_Widget_Action)
 {
eo_prefix: elm_obj_hover;
methods {
@@ -75,6 +75,7 @@ class Elm.Hover (Elm.Layout, Evas.Clickable_Interface)
   Elm.Container.content_unset;
   Elm.Layout.sizing_eval;
   Elm.Layout.content_aliases.get;
+  Elm_Interface_Atspi_Widget_Action.elm_actions.get;
}
events {
   smart,changed;

-- 




[EGIT] [core/elementary] master 01/02: hoversel: change accessibility role to popup

2015-12-15 Thread Lukasz Stanislawski
stanluk pushed a commit to branch master.

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

commit 709cf816c112859c253b5423a22a6896ec072b8f
Author: Lukasz Stanislawski 
Date:   Tue Dec 15 13:30:20 2015 +0100

hoversel: change accessibility role to popup
---
 src/lib/elc_hoversel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elc_hoversel.c b/src/lib/elc_hoversel.c
index d45b687..0d91ae0 100644
--- a/src/lib/elc_hoversel.c
+++ b/src/lib/elc_hoversel.c
@@ -627,7 +627,7 @@ _elm_hoversel_eo_base_constructor(Eo *obj, 
Elm_Hoversel_Data *_pd EINA_UNUSED)
eo_do(obj,
  evas_obj_type_set(MY_CLASS_NAME_LEGACY),
  evas_obj_smart_callbacks_descriptions_set(_smart_callbacks),
- elm_interface_atspi_accessible_role_set(ELM_ATSPI_ROLE_GLASS_PANE));
+ elm_interface_atspi_accessible_role_set(ELM_ATSPI_ROLE_PUSH_BUTTON));
 
return obj;
 }

-- 




[EGIT] [core/efl] master 02/02: Eina safety: Set error flag in case of safety check error

2015-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 7fd907a1322ae251ca171f610dcaf06c700565e7
Author: Jean-Philippe Andre 
Date:   Tue Dec 15 17:39:37 2015 +0900

Eina safety: Set error flag in case of safety check error

Eina_Error is almost not used at all. Meh.
---
 src/lib/eina/eina_safety_checks.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/eina/eina_safety_checks.c 
b/src/lib/eina/eina_safety_checks.c
index 57b863d..4ead9d6 100644
--- a/src/lib/eina/eina_safety_checks.c
+++ b/src/lib/eina/eina_safety_checks.c
@@ -69,6 +69,7 @@ eina_safety_checks_init(void)
if (!(initcnt++))
  {
 EINA_SAFETY_LOG_DOMAIN = eina_log_domain_register("eina_safety", 
EINA_COLOR_RED);
+EINA_ERROR_SAFETY_FAILED = eina_error_msg_static_register("Safety 
check failed");
  }
return EINA_TRUE;
 }
@@ -76,6 +77,7 @@ eina_safety_checks_init(void)
 EAPI void
 _eina_safety_error(const char *file, const char *func, int line, const char 
*str)
 {
+   eina_error_set(EINA_ERROR_SAFETY_FAILED);
if (EINA_SAFETY_LOG_DOMAIN)
  {
 eina_log_print(EINA_SAFETY_LOG_DOMAIN, EINA_LOG_LEVEL_ERR,

-- 




[EGIT] [core/efl] master 01/02: Eina safety: Add internal function to log errors

2015-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 5ad9654fbc789c0d11aea265f9875b43d0ec5652
Author: Jean-Philippe Andre 
Date:   Tue Dec 15 16:56:13 2015 +0900

Eina safety: Add internal function to log errors

The main reason is convenience for debugging when using GDB,
this will give a simple breakpoint for all safety check failures.

Also, this creates a more visible log domain (red).
---
 src/lib/eina/eina_safety_checks.c | 63 ---
 src/lib/eina/eina_safety_checks.h | 35 --
 2 files changed, 59 insertions(+), 39 deletions(-)

diff --git a/src/lib/eina/eina_safety_checks.c 
b/src/lib/eina/eina_safety_checks.c
index 1ee6991..57b863d 100644
--- a/src/lib/eina/eina_safety_checks.c
+++ b/src/lib/eina/eina_safety_checks.c
@@ -25,45 +25,33 @@
 #include "eina_log.h"
 #include "eina_safety_checks.h"
 
-/**
-*  Local *
-**/
+EAPI Eina_Error EINA_ERROR_SAFETY_FAILED = 0;
 
-/**
-* Global *
-**/
+static int EINA_SAFETY_LOG_DOMAIN = 0;
+static int initcnt = 0;
 
 /**
- * @internal
- * @brief Shut down the safety checks module.
+ * Log entry-point called every time an eina safety check fails.
  *
- * @return #EINA_TRUE on success, #EINA_FALSE on failure.
+ * One purpose of this dedicated function is to provide a convenient breakpoint
+ * for GDB debugging. Also, this gives it a dedicated log domain, rather than
+ * using the default one.
  *
- * This function shuts down the error module set up by
- * eina_safety_checks_init(). It is called by eina_shutdown().
- *
- * @see eina_shutdown()
+ * @since 1.17
+ * @internal
  */
 Eina_Bool
 eina_safety_checks_shutdown(void)
 {
+   if (!initcnt) return EINA_FALSE;
+   if (!(--initcnt))
+ {
+eina_log_domain_unregister(EINA_SAFETY_LOG_DOMAIN);
+EINA_SAFETY_LOG_DOMAIN = 0;
+ }
return EINA_TRUE;
 }
 
-/**
-*   API  *
-**/
-
-/**
- * @cond LOCAL
- */
-
-EAPI Eina_Error EINA_ERROR_SAFETY_FAILED = 0;
-
-/**
- * @endcond
- */
-
 /**
  * @internal
  * @brief Initialize the safety checks module.
@@ -78,9 +66,24 @@ EAPI Eina_Error EINA_ERROR_SAFETY_FAILED = 0;
 Eina_Bool
 eina_safety_checks_init(void)
 {
+   if (!(initcnt++))
+ {
+EINA_SAFETY_LOG_DOMAIN = eina_log_domain_register("eina_safety", 
EINA_COLOR_RED);
+ }
return EINA_TRUE;
 }
 
-/**
- * @}
- */
+EAPI void
+_eina_safety_error(const char *file, const char *func, int line, const char 
*str)
+{
+   if (EINA_SAFETY_LOG_DOMAIN)
+ {
+eina_log_print(EINA_SAFETY_LOG_DOMAIN, EINA_LOG_LEVEL_ERR,
+   file, func, line, "%s", str);
+ }
+   else
+ {
+eina_log_print(EINA_LOG_DOMAIN_DEFAULT, EINA_LOG_LEVEL_ERR,
+   file, func, line, "%s", str);
+ }
+}
diff --git a/src/lib/eina/eina_safety_checks.h 
b/src/lib/eina/eina_safety_checks.h
index d40eeb9..656054b 100644
--- a/src/lib/eina/eina_safety_checks.h
+++ b/src/lib/eina/eina_safety_checks.h
@@ -93,12 +93,29 @@ EAPI extern Eina_Error EINA_ERROR_SAFETY_FAILED;
 
 #include "eina_log.h"
 
+# ifdef EFL_BETA_API_SUPPORT
+/**
+ * Log entry-point called every time an eina safety check fails.
+ *
+ * One purpose of this dedicated function is to provide a convenient breakpoint
+ * for GDB debugging. Also, this gives it a dedicated log domain, rather than
+ * using the default one.
+ *
+ * @since 1.17
+ * @internal
+ */
+EAPI void _eina_safety_error(const char *file, const char *func, int line, 
const char *str);
+#  define EINA_SAFETY_ERROR(msg) _eina_safety_error(__FILE__, __FUNCTION__, 
__LINE__, msg)
+# else
+#  define EINA_SAFETY_ERROR(msg) EINA_LOG_ERR("%s", msg)
+# endif
+
 #define EINA_SAFETY_ON_NULL_RETURN(exp)   \
   do  \
 { \
if (EINA_UNLIKELY((exp) == NULL))  \
  {\
-EINA_LOG_ERR("%s", "safety check failed: " # exp " == NULL"); \
+EINA_SAFETY_ERROR("safety check failed: " # exp " == NULL");  \
 return;