[EGIT] [core/efl] master 01/07: Eina: Fix eina_file_mk[ds]temp when a path is passed

2016-01-19 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit e472f97d9670207896635985cebd3119fcb21b89
Author: Jean-Philippe Andre 
Date:   Tue Jan 19 11:50:54 2016 +0900

Eina: Fix eina_file_mk[ds]temp when a path is passed

If the template is a path, mkstemp and mkdtemp would fail
miserably as they would try to create a file inside
/run/user/1000//path/to/file.XX even if the path did not
exist.

This patch fixes that by creating temp files inside the sys temp
dir iif the templatename is just a basic name without path
separator.

@fix
---
 src/lib/eina/eina_file.h| 35 +++
 src/lib/eina/eina_file_common.c | 52 +
 2 files changed, 67 insertions(+), 20 deletions(-)

diff --git a/src/lib/eina/eina_file.h b/src/lib/eina/eina_file.h
index 4235f1c..3e20bd0 100644
--- a/src/lib/eina/eina_file.h
+++ b/src/lib/eina/eina_file.h
@@ -353,14 +353,14 @@ EAPI Eina_Iterator *eina_file_stat_ls(const char *dir) 
EINA_WARN_UNUSED_RESULT E
 EAPI int eina_file_statat(void *container, Eina_File_Direct_Info *info, 
Eina_Stat *buf) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2, 3);
 
 /**
- * @brief Generates and creates a uniquely named temporary file from template.
- *Generated file is opened with the open(2) O_EXCL flag.
+ * @brief Generates and creates a uniquely named temporary file from a 
template name.
+ *The generated file is opened with the open(2) @c O_EXCL flag.
  *
  * @param[in] templatename This is a string. It must contain the six 
characters 'XX'
  * at the end or directly followed by an extension as 
in 
  * 'prefixXX.ext'.
- * @param[out] path Where to put the name of the created file. If not @c NULL
- *  should be released by eina_tmpstr_del().
+ * @param[out] path The path to the created temporary file, or @c NULL in case 
of failure.
+ *  It must be released by eina_tmpstr_del().
  * @return On success @c file descriptor of the temporary file is returned, 
  * On error @c -1 is returned, in which case @c errno is set 
appropriately.
  *
@@ -371,28 +371,43 @@ EAPI int eina_file_statat(void *container, 
Eina_File_Direct_Info *info, Eina_Sta
  * @note If a filename extension was specified in @p templatename, then the 
new @p path
  *   will also contain this extension (since 1.10).
  *
+ * @note If the @p templatename is a simple file name (no relative or absolute
+ *   path to another directory), then a temporary file will be created 
inside
+ *   the system temporary directory (@see eina_environment_tmp_get()). If 
the
+ *   @p templatename contains a directory separator ('/', or '\\' on 
Windows)
+ *   then the file will be created inside this directory, which must exist 
and
+ *   be writable. Use ./filename.XX to create files in the current
+ *   working directory. (since 1.17)
+ *
  * @see eina_file_mkdtemp()
  * @since 1.8
  */
-EAPI int eina_file_mkstemp(const char *templatename, Eina_Tmpstr **path);
+EAPI int eina_file_mkstemp(const char *templatename, Eina_Tmpstr **path) 
EINA_ARG_NONNULL(1);
 
 /**
- * @brief Generates and creates a uniquely named temporary directory from 
template.
+ * @brief Generates and creates a uniquely named temporary directory from a 
template name.
  *
  * @param[in] templatename This is a string. The last six characters of @p 
templatename 
  * must be XX.
- * @param[out] path Where to put the name of the created directory. If not @c 
NULL
- *  should be released by eina_tmpstr_del().
+ * @param[out] path The path to the created temporary directory, or @c NULL in 
case of failure.
+ *  It must be released by eina_tmpstr_del().
  * @return On success @c EINA_TRUE is returned, On error @c EINA_FALSE is 
returned, 
  *in which case @c errno is set appropriately.
  *
  * @details This function calls mkdtemp(). The directory is then created with 
- *   permissions 0700. 
+ *   permissions 0700.
+ *
+ * @note If the @p templatename is a simple directory name (no relative or 
absolute
+ *   path to another directory), then a temporary directory will be 
created inside
+ *   the system temporary directory (@see eina_environment_tmp_get()). If 
the
+ *   @p templatename contains a directory separator ('/', or '\\' on 
Windows)
+ *   then the temporary directory will be created inside that other 
directory,
+ *   which must exist and be writable. (since 1.17)
  *
  * @see eina_file_mkstemp()
  * @since 1.8
  */
-EAPI Eina_Bool eina_file_mkdtemp(const char *templatename, Eina_Tmpstr **path);
+EAPI Eina_Bool eina_file_mkdtemp(const char *templatename, Eina_Tmpstr **path) 
EINA_ARG_NONNULL(1,2);
 
 /**
  * 

[EGIT] [core/efl] master 07/07: Ecore: Remove all temporary files after running make check

2016-01-19 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 0402b5fd125081c1f7a8d02e4849fe037cc101f6
Author: Jean-Philippe Andre 
Date:   Tue Jan 19 18:15:20 2016 +0900

Ecore: Remove all temporary files after running make check
---
 src/tests/ecore/ecore_test_ecore_file.c | 37 +
 src/tests/eina/eina_test_file.c |  2 ++
 2 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/src/tests/ecore/ecore_test_ecore_file.c 
b/src/tests/ecore/ecore_test_ecore_file.c
index 28ffb83..9100362 100644
--- a/src/tests/ecore/ecore_test_ecore_file.c
+++ b/src/tests/ecore/ecore_test_ecore_file.c
@@ -32,8 +32,8 @@ _writeToFile(const char *filePath, char *text)
fclose(f);
 }
 
-Eina_Tmpstr*
-get_tmp_dir()
+static Eina_Tmpstr*
+get_tmp_dir(void)
 {
Eina_Tmpstr *tmp_dir;
 
@@ -47,18 +47,19 @@ get_tmp_dir()
return tmp_dir;
 }
 
-Eina_Tmpstr*
-get_tmp_file()
+static Eina_Tmpstr*
+get_tmp_file(void)
 {
Eina_Tmpstr *tmp_file;
 
-   Eina_Bool created = eina_file_mkstemp("EcoreFileTestXX", _file);
+   int fd = eina_file_mkstemp("EcoreFileTestXX", _file);
 
-   if (!created)
+   if (fd < 0)
  {
 return NULL;
  }
 
+   close(fd);
return tmp_file;
 }
 
@@ -135,7 +136,6 @@ START_TEST(ecore_test_ecore_file_operations)
const char *src_dir, *src_file, *dest_file;
const char *not_exist_file;
const char *tmpdir = NULL;
-   char *dup_dir;
char *random_text = "This is random test String";
char *escaped_text = "This\\ is\\ random\\ test\\ String";
char *exe_cmd = "test.sh --opt1=a --opt2=b";
@@ -164,6 +164,8 @@ START_TEST(ecore_test_ecore_file_operations)
fail_if(res != EINA_FALSE);
res = ecore_file_remove(src_file);
fail_if(res != EINA_TRUE);
+   res = ecore_file_exists(src_file);
+   fail_if(res != EINA_FALSE);
 
res = ecore_file_is_dir(src_dir);
fail_if(res != EINA_TRUE);
@@ -173,6 +175,8 @@ START_TEST(ecore_test_ecore_file_operations)
fail_if(res != EINA_FALSE);
res = ecore_file_remove(src_dir);
fail_if(res != EINA_TRUE);
+   res = ecore_file_is_dir(src_dir);
+   fail_if(res != EINA_FALSE);
 
src_dir = get_tmp_dir();
fail_if(!src_dir);
@@ -235,8 +239,7 @@ START_TEST(ecore_test_ecore_file_operations)
fail_if(ecore_file_can_read(dest_file) != EINA_TRUE);
fail_if(ecore_file_can_write(dest_file) != EINA_TRUE);
fail_if(ecore_file_can_exec(dest_file) != EINA_FALSE);
-   res = ecore_file_remove(dest_file);
-   fail_if(res != EINA_TRUE);
+   fail_if(ecore_file_remove(dest_file) != EINA_TRUE);
 
ck_assert_str_eq(ecore_file_app_exe_get(exe_cmd), exe);
ck_assert_str_eq(ecore_file_escape_name(random_text), escaped_text);
@@ -250,10 +253,6 @@ START_TEST(ecore_test_ecore_file_operations)
fail_if(fd < 0);
fail_if(close(fd) != 0);
fail_if(ecore_file_can_exec(src_file) != EINA_TRUE);
-   dup_dir = strdup(src_file);
-   fail_if(!dup_dir);
-   dest_file = basename(dup_dir);
-   dup_dir = strdup(src_file);
 
src_dir = get_tmp_dir();
fail_if(!src_dir);
@@ -279,6 +278,8 @@ START_TEST(ecore_test_ecore_file_operations)
fail_if(ecore_file_mksubdirs(NULL, dirs) != -1);
fail_if(ecore_file_mksubdirs("", dirs) != -1);
fail_if(ecore_file_mksubdirs(src_file, dirs) != 0);
+   fail_if(ecore_file_remove(src_file) != EINA_TRUE);
+   fail_if(ecore_file_recursive_rm(src_dir) != EINA_TRUE);
 
src_dir = get_tmp_dir();
fail_if(!src_dir);
@@ -306,6 +307,7 @@ START_TEST(ecore_test_ecore_file_operations)
fail_if(ecore_file_can_write(src_file) != EINA_FALSE);
fail_if(ecore_file_can_exec(src_file) != EINA_FALSE);
fail_if(ecore_file_cp(src_file, src_file) != EINA_FALSE);
+   fail_if(ecore_file_remove(src_file) != EINA_TRUE);
 
src_file = get_tmp_file();
fail_if(!src_file);
@@ -316,6 +318,7 @@ START_TEST(ecore_test_ecore_file_operations)
fail_if(ecore_file_can_read(src_file) != EINA_FALSE);
fail_if(ecore_file_can_write(src_file) != EINA_TRUE);
fail_if(ecore_file_can_exec(src_file) != EINA_FALSE);
+   fail_if(ecore_file_remove(src_file) != EINA_TRUE);
 
src_file = get_tmp_file();
fail_if(!src_file);
@@ -326,15 +329,21 @@ START_TEST(ecore_test_ecore_file_operations)
fail_if(ecore_file_can_read(src_file) != EINA_FALSE);
fail_if(ecore_file_can_write(src_file) != EINA_FALSE);
fail_if(ecore_file_can_exec(src_file) != EINA_TRUE);
+   fail_if(ecore_file_remove(src_file) != EINA_TRUE);
 
fail_if(ecore_file_unlink(not_exist_file) != EINA_FALSE);
fail_if(ecore_file_remove(not_exist_file) != EINA_FALSE);
fail_if(ecore_file_cp(not_exist_file, "test_file") != EINA_FALSE);
fail_if(ecore_file_mv(not_exist_file, "test_file") != EINA_FALSE);
 
+   chdir(eina_environment_tmp_get());
fail_if(ecore_file_mkpath(src_dir) != EINA_TRUE);
+   fail_if(ecore_file_rmdir(src_dir) != EINA_TRUE);

[EGIT] [core/efl] master 03/07: elua: Fix use of eina_file_mkstemp after previous patch

2016-01-19 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 24417ff1a5885f9de89107e180aa273cab8567d0
Author: Jean-Philippe Andre 
Date:   Tue Jan 19 14:14:44 2016 +0900

elua: Fix use of eina_file_mkstemp after previous patch

The API (that didn't work in the first place) was used wrongly
as it was assumed its behaviour was the same as mkstemp (duh!).
It turns out eina's version doesn't replace the input string but
returns a tmpstr instead.

@fix
---
 src/lib/elua/cache.c | 16 ++--
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/src/lib/elua/cache.c b/src/lib/elua/cache.c
index 67268a4..fe6825f 100644
--- a/src/lib/elua/cache.c
+++ b/src/lib/elua/cache.c
@@ -59,19 +59,14 @@ writef(lua_State *L EINA_UNUSED, const void *p, size_t 
size, void *ud)
 static FILE *
 bc_tmp_open(const char *fname, char *buf, size_t buflen)
 {
+   Eina_Tmpstr *tmp_file;
int fd;
-   /* FIXME: use ecore_file_file_get() ? */
-   char *fs = strrchr(fname, '/'), *bs = strrchr(fname, '\\');
-   if (!fs && !bs)
- snprintf(buf, buflen, "./XX.cache");
-   else
- {
-char *ss = (fs > bs) ? fs : bs;
-snprintf(buf, buflen, "%.*sXX.cache", (int)(ss - fname + 1), 
fname);
- }
-   fd = eina_file_mkstemp(buf, NULL);
+   snprintf(buf, buflen, "%s.XX.cache", fname);
+   fd = eina_file_mkstemp(buf, _file);
if (fd < 0)
  return NULL;
+   eina_strlcpy(buf, tmp_file, buflen);
+   eina_tmpstr_del(tmp_file);
return fdopen(fd, "wb");
 }
 
@@ -88,6 +83,7 @@ write_bc(lua_State *L, const char *fname)
  fclose(f);
  /* there really is nothing to handle here */
  (void)!!remove(buf);
+ return;
   }
 else fclose(f);
 snprintf(buf2, sizeof(buf2), "%sc", fname);

-- 




[EGIT] [core/efl] master 05/07: Evas GL: Also fix surface cap cache

2016-01-19 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit a2ef5f7cc5cb827fa68fae66706c31c65d5e0ef5
Author: Jean-Philippe Andre 
Date:   Tue Jan 19 16:26:37 2016 +0900

Evas GL: Also fix surface cap cache

This follows the fix in eina_file_mkstemp. Not sure how it could
even work before.

@fix
---
 src/modules/evas/engines/gl_common/evas_gl_core.c  | 32 ++
 .../evas/engines/gl_common/evas_gl_shader.c|  6 ++--
 2 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/evas_gl_core.c 
b/src/modules/evas/engines/gl_common/evas_gl_core.c
index f851d56..e5414b4 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_core.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_core.c
@@ -816,43 +816,51 @@ _surface_cap_cache_save()
 {
/* check eet */
Eet_File *et = NULL; //check eet file
-   int tmpfd;
-   int res = 0;
+   int tmpfd = -1;
char cap_dir_path[PATH_MAX];
char cap_file_path[PATH_MAX];
-   char tmp_file[PATH_MAX];
+   char tmp_file_name[PATH_MAX];
+   Eina_Tmpstr *tmp_file_path = NULL;
 
/* use eet */
if (!eet_init()) return 0;
 
if (!evas_gl_common_file_cache_dir_check(cap_dir_path, 
sizeof(cap_dir_path)))
  {
-res = evas_gl_common_file_cache_mkpath(cap_dir_path);
-if (!res) return 0; /* we can't make directory */
+if (!evas_gl_common_file_cache_mkpath(cap_dir_path))
+  return 0; /* we can't make directory */
  }
 
evas_gl_common_file_cache_file_check(cap_dir_path, "surface_cap", 
cap_file_path,
 sizeof(cap_dir_path));
 
/* use mkstemp for writing */
-   snprintf(tmp_file, sizeof(tmp_file), "%s.XX.cache", cap_file_path);
-   tmpfd = eina_file_mkstemp(tmp_file, NULL);
+   snprintf(tmp_file_name, sizeof(tmp_file_name), "%s.XX.cache", 
cap_file_path);
+   tmpfd = eina_file_mkstemp(tmp_file_name, _file_path);
if (tmpfd < 0) goto error;
-   close(tmpfd);
 
-   et = eet_open(tmp_file, EET_FILE_MODE_WRITE);
+   et = eet_open(tmp_file_path, EET_FILE_MODE_WRITE);
if (!et) goto error;
 
if (!_surface_cap_save(et)) goto error;
 
-   if (eet_close(et) != EET_ERROR_NONE) goto error;
-   if (rename(tmp_file,cap_file_path) < 0) goto error;
+   if (eet_close(et) != EET_ERROR_NONE) goto destroyed;
+   if (rename(tmp_file_path, cap_file_path) < 0) goto destroyed;
+   eina_tmpstr_del(tmp_file_path);
+   close(tmpfd);
eet_shutdown();
+
return 1;
 
+destroyed:
+   et = NULL;
+
 error:
+   if (tmpfd >= 0) close(tmpfd);
if (et) eet_close(et);
-   if (evas_gl_common_file_cache_file_exists(tmp_file)) unlink(tmp_file);
+   if (evas_gl_common_file_cache_file_exists(tmp_file_path))
+ unlink(tmp_file_path);
+   eina_tmpstr_del(tmp_file_path);
eet_shutdown();
return 0;
 }
diff --git a/src/modules/evas/engines/gl_common/evas_gl_shader.c 
b/src/modules/evas/engines/gl_common/evas_gl_shader.c
index 2b7fa42..6156503 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_shader.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_shader.c
@@ -243,7 +243,7 @@ _evas_gl_common_shader_binary_save(Evas_GL_Shared *shared)
char bin_dir_path[PATH_MAX];
char bin_file_path[PATH_MAX];
char tmp_file_name[PATH_MAX];
-   int tmpfd = -1, res = 0, copy;
+   int tmpfd = -1, copy;
Eina_Tmpstr *tmp_file_path = NULL;
Eet_File *ef = NULL;
Evas_GL_Program *p;
@@ -255,8 +255,8 @@ _evas_gl_common_shader_binary_save(Evas_GL_Shared *shared)
 
if (!evas_gl_common_file_cache_dir_check(bin_dir_path, 
sizeof(bin_dir_path)))
  {
-res = evas_gl_common_file_cache_mkpath(bin_dir_path);
-if (!res) return 0; /* we can't make directory */
+if (!evas_gl_common_file_cache_mkpath(bin_dir_path))
+  return 0; /* we can't make directory */
  }
 
copy = evas_gl_common_file_cache_file_check(bin_dir_path, "binary_shader", 
bin_file_path,

-- 




[EGIT] [core/efl] master 04/07: Eina: Convert eina_test_file.c to UTF-8

2016-01-19 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 7832bab2533afa07afc434074243933c5f37d020
Author: Jean-Philippe Andre 
Date:   Tue Jan 19 15:19:51 2016 +0900

Eina: Convert eina_test_file.c to UTF-8

It was encoded as ISO-8859 (Latin-1) before.
Maybe this will break these checks on Windows, but all of EFL APIs take
UTF-8 strings, so it doesn't make sense to have ISO-8859 here.
---
 src/tests/eina/eina_test_file.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/tests/eina/eina_test_file.c b/src/tests/eina/eina_test_file.c
index 5012e06..33493f6 100644
--- a/src/tests/eina/eina_test_file.c
+++ b/src/tests/eina/eina_test_file.c
@@ -183,6 +183,8 @@ START_TEST(eina_file_direct_ls_simple)
 * 1) Do not end a directory with a period
 * 2) '*' (asterisk) is a reserved character
 * 3) ':' (colon) is a reserved character
+*
+* Note: UTF-8 symbol U+03BC is greek lower mu
 */
 
const char *good_dirs[] =
@@ -195,7 +197,7 @@ START_TEST(eina_file_direct_ls_simple)
 #ifndef _WIN32
 "~$a@:-*$b!{}"
 #else
-"~$a@�-#$b!{}"
+"~$a@\u03bc-#$b!{}"
 #endif
  };
const int good_dirs_count = sizeof(good_dirs) / sizeof(const char *);
@@ -257,7 +259,7 @@ START_TEST(eina_file_ls_simple)
 #ifndef _WIN32
 "~$b@:-*$a!{}"
 #else
-"~$b@�-#$a!{}"
+"~$b@\u03bc-#$a!{}"
 #endif
  };
const int good_dirs_count = sizeof(good_dirs) / sizeof(const char *);

-- 




[EGIT] [core/enlightenment] master 01/01: remove WAYLAND_ONLY ifdefs from kbd layout change actions

2016-01-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 00d3cdd7ab0fe5a596198ea5e3792736681cc0ba
Author: Mike Blumenkrantz 
Date:   Tue Jan 19 16:03:58 2016 -0500

remove WAYLAND_ONLY ifdefs from kbd layout change actions
---
 src/bin/e_actions.c | 6 --
 1 file changed, 6 deletions(-)

diff --git a/src/bin/e_actions.c b/src/bin/e_actions.c
index 3d8d2c4..badc1c3 100644
--- a/src/bin/e_actions.c
+++ b/src/bin/e_actions.c
@@ -2928,23 +2928,17 @@ ACT_FN_GO(kbd_layout, )
errno = 0;
x = strtoul(params, NULL, 10);
if (errno || (x > eina_list_count(e_config->xkb.used_layouts) - 1)) return;
-#ifndef HAVE_WAYLAND_ONLY
e_xkb_layout_set(eina_list_nth(e_config->xkb.used_layouts, x));
-#endif
 }
 
 ACT_FN_GO(kbd_layout_next, EINA_UNUSED)
 {
-#ifndef HAVE_WAYLAND_ONLY
e_xkb_layout_next();
-#endif
 }
 
 ACT_FN_GO(kbd_layout_prev, EINA_UNUSED)
 {
-#ifndef HAVE_WAYLAND_ONLY
e_xkb_layout_prev();
-#endif
 }
 
 ACT_FN_GO(module_enable, )

-- 




[EGIT] [core/elementary] master 01/01: Combobox: rename the "selected" event to "item, selected" as it should be.

2016-01-19 Thread Dave Andreoli
davemds pushed a commit to branch master.

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

commit 31027d719fc21122c042aab90dad7ae6d817b40c
Author: Dave Andreoli 
Date:   Tue Jan 19 20:33:47 2016 +0100

Combobox: rename the "selected" event to "item,selected" as it should be.

Also updated the test to reflect this change
---
 src/bin/test_combobox.c | 16 +---
 src/lib/elc_combobox.c  |  6 +++---
 src/lib/elm_combobox.eo |  2 +-
 3 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/src/bin/test_combobox.c b/src/bin/test_combobox.c
index b5f1172..43bd4ef 100644
--- a/src/bin/test_combobox.c
+++ b/src/bin/test_combobox.c
@@ -12,11 +12,11 @@ _combobox_clicked_cb(void *data EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED,
 }
 
 static void
-_combobox_selected_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
-  void *event_info)
+_combobox_item_selected_cb(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
+   void *event_info)
 {
const char *txt = elm_object_item_text_get(event_info);
-   printf("'selected' callback is called. (selected item : %s)\n", txt);
+   printf("'item,selected' callback is called. (selected item : %s)\n", txt);
 }
 
 static void
@@ -125,12 +125,12 @@ test_combobox(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
(void*)(uintptr_t)(i * 10));
evas_object_smart_callback_add(combobox, "clicked",
   _combobox_clicked_cb, NULL);
-   evas_object_smart_callback_add(combobox, "selected",
-  _combobox_selected_cb, NULL);
evas_object_smart_callback_add(combobox, "dismissed",
   _combobox_dismissed_cb, NULL);
evas_object_smart_callback_add(combobox, "expanded",
   _combobox_expanded_cb, NULL);
+   evas_object_smart_callback_add(combobox, "item,selected",
+  _combobox_item_selected_cb, NULL);
evas_object_smart_callback_add(combobox, "item,pressed",
   _combobox_item_pressed_cb, NULL);
evas_object_smart_callback_add(combobox, "filter,done",
@@ -148,8 +148,10 @@ test_combobox(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
(void*)(uintptr_t)(i * 10));
evas_object_smart_callback_add(combobox, "clicked",
   _combobox_clicked_cb, NULL);
-   evas_object_smart_callback_add(combobox, "selected",
-  _combobox_selected_cb, NULL);
+   evas_object_smart_callback_add(combobox, "item,selected",
+  _combobox_item_selected_cb, NULL);
+   evas_object_smart_callback_add(combobox, "item,pressed",
+  _combobox_item_pressed_cb, NULL);
evas_object_smart_callback_add(combobox, "dismissed",
   _combobox_dismissed_cb, NULL);
evas_object_smart_callback_add(combobox, "expanded",
diff --git a/src/lib/elc_combobox.c b/src/lib/elc_combobox.c
index 9e11a2f..4076c41 100644
--- a/src/lib/elc_combobox.c
+++ b/src/lib/elc_combobox.c
@@ -15,16 +15,16 @@
 #define MY_CLASS_NAME "Elm_Combobox"
 #define MY_CLASS_NAME_LEGACY "elm_combobox"
 
-static const char SIG_SELECTED[] = "selected";
 static const char SIG_DISMISSED[] = "dismissed";
 static const char SIG_EXPANDED[] = "expanded";
+static const char SIG_ITEM_SELECTED[] = "item,selected";
 static const char SIG_ITEM_PRESSED[] = "item,pressed";
 static const char SIG_FILTER_DONE[] = "filter,done";
 
 static const Evas_Smart_Cb_Description _smart_callbacks[] = {
-   {SIG_SELECTED, ""},
{SIG_DISMISSED, ""},
{SIG_EXPANDED, ""},
+   {SIG_ITEM_SELECTED, ""},
{SIG_ITEM_PRESSED, ""},
{SIG_FILTER_DONE, ""},
{"clicked", ""}, /**< handled by parent button class */
@@ -165,7 +165,7 @@ _on_item_selected(void *data , Evas_Object *obj 
EINA_UNUSED, void *event)
 {
ELM_COMBOBOX_DATA_GET(data, sd);
elm_object_focus_set(sd->entry, EINA_TRUE);
-   eo_do(data, eo_event_callback_call(ELM_COMBOBOX_EVENT_SELECTED, event));
+   eo_do(data, eo_event_callback_call(ELM_COMBOBOX_EVENT_ITEM_SELECTED, 
event));
 }
 
 static void
diff --git a/src/lib/elm_combobox.eo b/src/lib/elm_combobox.eo
index 80e5532..f189fca 100644
--- a/src/lib/elm_combobox.eo
+++ b/src/lib/elm_combobox.eo
@@ -48,10 +48,10 @@ class Elm_Combobox (Elm.Button, Evas.Selectable_Interface,
   Elm_Interface_Atspi_Widget_Action.elm_actions.get;
}
events {
-  selected;
   dismissed;
   expanded;
   clicked;
+  item,selected;
   item,pressed;
   filter,done;
}

-- 




[EGIT] [core/enlightenment] master 03/06: only do passthrough surface map on xwayland surfaces during commit

2016-01-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 0a2442d3b70a03b28f5be58772a990ef01886437
Author: Mike Blumenkrantz 
Date:   Tue Jan 19 13:46:29 2016 -0500

only do passthrough surface map on xwayland surfaces during commit

these was a workaround for handling early internal windows which is
no longer necessary now that they will handle their map states more
effectively

now, any wayland surface (not xwayland) requires a shell to map the
surface as intended
---
 src/bin/e_comp_wl.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 579c4ff..626f6b3 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1068,7 +1068,7 @@ _e_comp_wl_surface_state_commit(E_Client *ec, 
E_Comp_Wl_Surface_State *state)
   {
  if ((ec->comp_data->shell.surface) && 
(ec->comp_data->shell.unmap))
ec->comp_data->shell.unmap(ec->comp_data->shell.surface);
- else
+ else if (e_client_has_xwindow(ec))
{
   ec->visible = EINA_FALSE;
   evas_object_hide(ec->frame);
@@ -1082,7 +1082,7 @@ _e_comp_wl_surface_state_commit(E_Client *ec, 
E_Comp_Wl_Surface_State *state)
   {
  if ((ec->comp_data->shell.surface) && (ec->comp_data->shell.map))
ec->comp_data->shell.map(ec->comp_data->shell.surface);
- else
+ else if (e_client_has_xwindow(ec))
{
   ec->visible = EINA_TRUE;
   ec->ignored = 0;
@@ -2756,7 +2756,7 @@ e_comp_wl_surface_commit(E_Client *ec)
   {
  if ((ec->comp_data->shell.surface) && 
(ec->comp_data->shell.unmap))
ec->comp_data->shell.unmap(ec->comp_data->shell.surface);
- else
+ else if (e_client_has_xwindow(ec))
{
   ec->visible = EINA_FALSE;
   evas_object_hide(ec->frame);
@@ -2770,7 +2770,7 @@ e_comp_wl_surface_commit(E_Client *ec)
   {
  if ((ec->comp_data->shell.surface) && (ec->comp_data->shell.map))
ec->comp_data->shell.map(ec->comp_data->shell.surface);
- else
+ else if (e_client_has_xwindow(ec))
{
   ec->visible = EINA_TRUE;
   ec->ignored = 0;

-- 




[EGIT] [core/enlightenment] master 04/06: more correctly handle evry mouse detection on wayland

2016-01-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit e3f829ace78419ef91997d3637f048dd2a399de2
Author: Mike Blumenkrantz 
Date:   Tue Jan 19 13:49:10 2016 -0500

more correctly handle evry mouse detection on wayland

in this case, mouse events which are not originating from the internal
window are for the screen, and these coords can be used for determining
"mouse out". if the mouse event comes from the window, it is inside the 
window.

ref 7c661b54a94351717201ac18f4c79a44a3207320
---
 src/modules/everything/evry.c | 22 ++
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c
index 959f776..eed3f8c 100644
--- a/src/modules/everything/evry.c
+++ b/src/modules/everything/evry.c
@@ -890,7 +890,7 @@ _evry_cb_mouse(void *data, int type, void *event)
if (!win->grab)
  return ECORE_CALLBACK_PASS_ON;
 
-   if ((win->grab && (ev->event_window != ecore_evas_window_get(e_comp->ee))) 
&&
+   if ((ev->event_window != ecore_evas_window_get(e_comp->ee)) &&
(ev->event_window != elm_win_window_id_get(win->ewin)))
  return ECORE_CALLBACK_PASS_ON;
 
@@ -954,12 +954,20 @@ _evry_cb_mouse(void *data, int type, void *event)
  {
 win->mouse_out = 0;
 
-if (!E_INSIDE(e_comp_canvas_x_root_adjust(ev->root.x),
-  e_comp_canvas_y_root_adjust(ev->root.y), x, y, w, h))
+if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
   {
- win->mouse_out = 1;
- return ECORE_CALLBACK_PASS_ON;
+ if (ev->event_window == ecore_evas_window_get(e_comp->ee))
+   {
+  if (!E_INSIDE(e_comp_canvas_x_root_adjust(ev->root.x),
+  e_comp_canvas_y_root_adjust(ev->root.y), x, y, w, h))
+win->mouse_out = 1;
+   }
   }
+else if (!E_INSIDE(e_comp_canvas_x_root_adjust(ev->root.x),
+ e_comp_canvas_y_root_adjust(ev->root.y), x, y, w, h))
+  win->mouse_out = 1;
+if (win->mouse_out)
+  return ECORE_CALLBACK_PASS_ON;
 
 win->mouse_button = ev->buttons;
  }
@@ -967,9 +975,7 @@ _evry_cb_mouse(void *data, int type, void *event)
  {
 win->mouse_button = 0;
 
-if (win->mouse_out &&
-(!E_INSIDE(e_comp_canvas_x_root_adjust(ev->root.x),
-  e_comp_canvas_y_root_adjust(ev->root.y), x, y, w, h)))
+if (win->mouse_out)
   {
  evry_hide(win, 0);
  return ECORE_CALLBACK_PASS_ON;

-- 




[EGIT] [core/enlightenment] master 02/06: set want_focus for xdg popup surfaces on creation

2016-01-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 0df8c9457287b1b6d6e52f063434e970c2cc4371
Author: Mike Blumenkrantz 
Date:   Tue Jan 19 13:45:08 2016 -0500

set want_focus for xdg popup surfaces on creation

these types of surfaces should grab focus as early as possible, and
setting the flag at this time ensures that it will be handled during
the next client eval
---
 src/modules/wl_desktop_shell/e_mod_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index b765298..32a43c4 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -1249,7 +1249,7 @@ _e_xdg_shell_cb_popup_get(struct wl_client *client, 
struct wl_resource *resource
cdata->shell.unmap = _e_xdg_shell_surface_unmap;
 
EC_CHANGED(ec);
-   ec->new_client = ec->override = 1;
+   ec->new_client = ec->want_focus = ec->override = 1;
e_client_unignore(ec);
e_comp->new_clients++;
if (!ec->internal)

-- 




[EGIT] [core/enlightenment] master 06/06: |= instead of = flag setting for want_focus during wayland surface commit

2016-01-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit d4bbe0727e5dbf4aef9f56879e44c04a0342e0ed
Author: Mike Blumenkrantz 
Date:   Tue Jan 19 13:52:07 2016 -0500

|= instead of = flag setting for want_focus during wayland surface commit

if want_focus has already been set, this check should not unset it
---
 src/bin/e_comp_wl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 111a786..686e323 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1143,7 +1143,7 @@ _e_comp_wl_surface_state_commit(E_Client *ec, 
E_Comp_Wl_Surface_State *state)
 if (ec->new_client)
   {
  ec->placed = placed;
- ec->want_focus = ec->icccm.accepts_focus && (!ec->override);
+ ec->want_focus |= ec->icccm.accepts_focus && (!ec->override);
   }
 else if ((first) && (ec->placed) && (!ec->internal) && (!ec->override))
   {

-- 




[EGIT] [core/enlightenment] master 05/06: improve focus setting during wayland client show callback

2016-01-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 77485f322ed82dc31a3f1efec228fcf9500f6613
Author: Mike Blumenkrantz 
Date:   Tue Jan 19 13:51:05 2016 -0500

improve focus setting during wayland client show callback

take_focus will only be handled if the new_client flag is set. in all
other casees, focus_set should be called directly

new_client flag implies changed flag
---
 src/bin/e_comp_wl.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 626f6b3..111a786 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -125,8 +125,10 @@ _e_comp_wl_evas_cb_show(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *obj EIN
 
if (!ec->ignored)
  {
-ec->take_focus = !starting;
-EC_CHANGED(ec);
+if (ec->new_client)
+  ec->take_focus = !starting;
+else
+  evas_object_focus_set(ec->frame, !starting);
  }
 
EINA_LIST_FOREACH(ec->e.state.video_child, l, tmp)

-- 




[EGIT] [core/efl] master 01/02: edje_cc: fix detecting missing part for insert_before/after

2016-01-19 Thread Jee-Yong Um
jpeg pushed a commit to branch master.

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

commit 2ca99b8b68bd52ce187c2da54944144f12afb0b6
Author: Jee-Yong Um 
Date:   Wed Jan 20 11:42:53 2016 +0900

edje_cc: fix detecting missing part for insert_before/after

Summary:
Detecting missing part for insert_before/after is broken.
This patch makes the feature work and clarifies error message,
and removes redundant internal function.

Reviewers: cedric, jpeg

Subscribers: jpeg

Maniphest Tasks: T2513

Differential Revision: https://phab.enlightenment.org/D3576
---
 src/bin/edje/edje_cc.h  |  1 -
 src/bin/edje/edje_cc_handlers.c | 12 ++---
 src/bin/edje/edje_cc_out.c  | 58 ++---
 3 files changed, 22 insertions(+), 49 deletions(-)

diff --git a/src/bin/edje/edje_cc.h b/src/bin/edje/edje_cc.h
index aa49caa..b4da941 100644
--- a/src/bin/edje/edje_cc.h
+++ b/src/bin/edje/edje_cc.h
@@ -240,7 +240,6 @@ char   *mem_strdup(const char *s);
 #define SZ sizeof
 
 voidusing_file(const char *filename, const char type);
-Eina_Bool needed_part_exists(Edje_Part_Collection *pc, const char *name);
 
 voiderror_and_abort(Eet_File *ef, const char *fmt, ...);
 
diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index 9b348f3..5e31e85 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -5982,16 +5982,12 @@ st_collections_group_parts_part_physics_body(void)
 static void
 st_collections_group_parts_part_insert_before(void)
 {
-   /* Edje_Part_Collection *pc; */
Edje_Part_Parser *epp;
-   char *name;
 
check_arg_count(1);
 
-   /* pc = eina_list_data_get(eina_list_last(edje_collections)); */
-   name = parse_str(0);
epp = (Edje_Part_Parser *)current_part;
-   epp->reorder.insert_before = name;
+   epp->reorder.insert_before = parse_str(0);
 }
 
 /**
@@ -6010,16 +6006,12 @@ st_collections_group_parts_part_insert_before(void)
 static void
 st_collections_group_parts_part_insert_after(void)
 {
-   /* Edje_Part_Collection *pc; */
Edje_Part_Parser *epp;
-   char *name;
 
check_arg_count(1);
 
-   /* pc = eina_list_data_get(eina_list_last(edje_collections)); */
-   name = parse_str(0);
epp = (Edje_Part_Parser *)current_part;
-   epp->reorder.insert_after = name;
+   epp->reorder.insert_after = parse_str(0);
 }
 
 /**
diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index cc11fad..5023862 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -2595,7 +2595,8 @@ reorder_parts(void)
   {
  ep = (Edje_Part_Parser *)pc->parts[i];
  if (ep->reorder.insert_before && ep->reorder.insert_after)
-   ERR("Unable to use together insert_before and insert_after in 
part \"%s\".", pc->parts[i]->name);
+   error_and_abort(NULL, "In group \"%s\": Unable to use together 
insert_before and insert_after in part \"%s\".",
+   pc->part, pc->parts[i]->name);
 
  if (ep->reorder.done)
{
@@ -2609,15 +2610,13 @@ reorder_parts(void)
if (ep->reorder.insert_before &&
!strcmp(ep->reorder.insert_before, 
pc->parts[j]->name))
  {
-needed_part_exists(pc, ep->reorder.insert_before);
-
 ep2 = (Edje_Part_Parser *)pc->parts[j];
 if (ep2->reorder.after)
-  ERR("The part \"%s\" is ambiguous ordered part.",
-  pc->parts[i]->name);
+  error_and_abort(NULL, "In group \"%s\": The part 
\"%s\" is ambiguous ordered part.",
+  pc->part, pc->parts[i]->name);
 if (ep2->reorder.linked_prev)
-  ERR("Unable to insert two or more parts in same 
part \"%s\".",
-  pc->parts[j]->name);
+  error_and_abort(NULL, "In group \"%s\": Unable 
to insert two or more parts in same part \"%s\".",
+  pc->part, pc->parts[j]->name);
 /* Need it to be able to insert an element before 
the first */
 if (j == 0) k = 0;
 else k = j - 1;
@@ -2634,13 +2633,13 @@ reorder_parts(void)
else if (ep->reorder.insert_after &&
 !strcmp(ep->reorder.insert_after, 
pc->parts[j]->name))
  {
-needed_part_exists(pc, ep->reorder.insert_after);
-
 ep2 = (Edje_Part_Parser *)pc->parts[j];
 if (ep2->reorder.before)
-  

[EGIT] [core/efl] master 01/01: edje/edje_edit: make posible to unset the program filter part and state

2016-01-19 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

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

commit 7f4f215cd0beb7c8a46150dbe9c4a6e47c860ad1
Author: Vyacheslav Reutskiy 
Date:   Tue Jan 19 15:44:34 2016 +0200

edje/edje_edit: make posible to unset the program filter part and state

@fix
---
 src/lib/edje/edje_edit.c | 4 
 1 file changed, 4 deletions(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index f4f282a..a9ec942 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -9153,8 +9153,6 @@ edje_edit_program_filter_part_set(Evas_Object *obj, const 
char *prog, const char
GET_ED_OR_RETURN(EINA_FALSE);
GET_EPR_OR_RETURN(EINA_FALSE);
 
-   if (!filter_part) return EINA_FALSE;
-
_edje_if_string_replace(ed, >filter.part, filter_part);
 
return EINA_TRUE;
@@ -9175,8 +9173,6 @@ edje_edit_program_filter_state_set(Evas_Object *obj, 
const char *prog, const cha
GET_ED_OR_RETURN(EINA_FALSE);
GET_EPR_OR_RETURN(EINA_FALSE);
 
-   if (!filter_state) return EINA_FALSE;
-
_edje_if_string_replace(ed, >filter.state, filter_state);
 
return EINA_TRUE;

-- 




[EGIT] [core/efl] efl-1.16 01/01: edje/edje_edit: make posible to unset the program filter part and state

2016-01-19 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch efl-1.16.

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

commit 14cbbccb3902cf964410e51a3035cd83e4864afc
Author: Vyacheslav Reutskiy 
Date:   Tue Jan 19 15:47:23 2016 +0200

edje/edje_edit: make posible to unset the program filter part and state

@fix
---
 src/lib/edje/edje_edit.c | 4 
 1 file changed, 4 deletions(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 8d09e45..f989e82 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -9156,8 +9156,6 @@ edje_edit_program_filter_part_set(Evas_Object *obj, const 
char *prog, const char
GET_ED_OR_RETURN(EINA_FALSE);
GET_EPR_OR_RETURN(EINA_FALSE);
 
-   if (!filter_part) return EINA_FALSE;
-
_edje_if_string_replace(ed, >filter.part, filter_part);
 
return EINA_TRUE;
@@ -9178,8 +9176,6 @@ edje_edit_program_filter_state_set(Evas_Object *obj, 
const char *prog, const cha
GET_ED_OR_RETURN(EINA_FALSE);
GET_EPR_OR_RETURN(EINA_FALSE);
 
-   if (!filter_state) return EINA_FALSE;
-
_edje_if_string_replace(ed, >filter.state, filter_state);
 
return EINA_TRUE;

-- 




[EGIT] [tools/eflete] master 03/07: groupedit: load USER image by name

2016-01-19 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=a217faa3234f6acfd9e7f64fc264cece98a7d9ef

commit a217faa3234f6acfd9e7f64fc264cece98a7d9ef
Author: Vyacheslav Reutskiy 
Date:   Mon Jan 18 16:54:50 2016 +0200

groupedit: load USER image by name

Change-Id: I58334ffa482faca7f3cd565c4911172a247ee322
---
 src/bin/ui/workspace/groupedit_calc.c | 21 ++---
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/bin/ui/workspace/groupedit_calc.c 
b/src/bin/ui/workspace/groupedit_calc.c
index 941e386..23ac562 100644
--- a/src/bin/ui/workspace/groupedit_calc.c
+++ b/src/bin/ui/workspace/groupedit_calc.c
@@ -829,13 +829,20 @@ _image_param_update(Groupedit_Part *gp, Evas_Object 
*edit_obj)
 
image_normal = edje_edit_state_image_get(edit_obj, gp->part->name, state, 
value);
if (!image_normal) return;
-   id = edje_edit_image_id_get(edit_obj, image_normal);
-   edje_edit_string_free(image_normal);
-   buf = eina_stringshare_printf("edje/images/%i", id);
-   evas_object_image_file_set(gp->proxy_part, ap.project->dev, buf);
-   err = evas_object_image_load_error_get(gp->proxy_part);
-   if (err != EVAS_LOAD_ERROR_NONE)
- WARN("Could not update image:\"%s\"\n", evas_load_error_str(err));
+   if (edje_edit_image_compression_type_get(edit_obj, image_normal) == 
EDJE_EDIT_IMAGE_COMP_USER)
+ {
+evas_object_image_file_set(gp->proxy_part, image_normal, NULL);
+ }
+   else
+ {
+id = edje_edit_image_id_get(edit_obj, image_normal);
+edje_edit_string_free(image_normal);
+buf = eina_stringshare_printf("edje/images/%i", id);
+evas_object_image_file_set(gp->proxy_part, ap.project->dev, buf);
+err = evas_object_image_load_error_get(gp->proxy_part);
+if (err != EVAS_LOAD_ERROR_NONE)
+  WARN("Could not update image:\"%s\"\n", evas_load_error_str(err));
+ }
 
edje_edit_state_image_border_get(edit_obj, gp->part->name, state, value,
 , , , );

-- 




[EGIT] [tools/eflete] master 07/07: property_macro: need to be able to set labels instead of predined x: and y:

2016-01-19 Thread Vitalii Vorobiov
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=4f66833f96d805d9969936d83ef41d001360de80

commit 4f66833f96d805d9969936d83ef41d001360de80
Author: Vitalii Vorobiov 
Date:   Tue Jan 19 12:46:34 2016 +

property_macro: need to be able to set labels instead of predined x: and y:
---
 src/bin/ui/property_group.c  | 10 +++---
 src/bin/ui/property_macros.h | 82 
 2 files changed, 67 insertions(+), 25 deletions(-)

diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c
index 27e2bc3..2e15ca7 100644
--- a/src/bin/ui/property_group.c
+++ b/src/bin/ui/property_group.c
@@ -2783,12 +2783,12 @@ _on_combobox_##SUB##_##VALUE##_change(void *data, \
evas_object_smart_callback_call(ap.win, SIGNAL_PROPERTY_ATTRIBUTE_CHANGED, 
NULL); \
 }
 
-#define STATE_ATTR_2COMBOBOX_V(TEXT, SUB, VALUE1, VALUE2, MEMBER, TOOLTIP1, 
TOOLTIP2, DESCRIPTION1, DESCRIPTION2) \
+#define STATE_ATTR_2COMBOBOX_V(TEXT, SUB, VALUE1, VALUE2, MEMBER, TOOLTIP1, 
TOOLTIP2, DESCRIPTION1, DESCRIPTION2, LABEL1, LABEL2) \
STATE_ATTR_1COMBOBOX_CALLBACK(SUB, VALUE1, MEMBER, DESCRIPTION1) \
STATE_ATTR_1COMBOBOX_CALLBACK(SUB, VALUE2, MEMBER, DESCRIPTION2) \
STATE_ATTR_SOURCE_UPDATE(SUB, VALUE1, MEMBER, part->type, ==) \
STATE_ATTR_SOURCE_UPDATE(SUB, VALUE2, MEMBER, part->type, ==) \
-   STATE_ATTR_2COMBOBOX_ADD(TEXT, SUB, VALUE1, VALUE2, MEMBER, TOOLTIP1, 
TOOLTIP2)
+   STATE_ATTR_2COMBOBOX_ADD(TEXT, SUB, VALUE1, VALUE2, MEMBER, TOOLTIP1, 
TOOLTIP2, LABEL1, LABEL2)
 
 #define STATE_ATTR_2SPINNER_ICON(TEXT, SUB, VALUE1, VALUE2, MEMBER, MIN, MAX, 
STEP, FMT, \
  L1_START, L1_END, L2_START, L2_END, TOOLTIP1, 
TOOLTIP2, MULTIPLIER, \
@@ -2804,7 +2804,8 @@ STATE_ATTR_2COMBOBOX_V(_("relative to"), state, 
rel1_to_x, rel1_to_y, state_obje
_("Causes a corner to be positioned relatively to the Y 
axis of another "
  "part. Setting to \"\" will un-set this value"),
_("rel1.to_x changed to \"%s\""),
-   _("rel1.to_y changed to \"%s\""))
+   _("rel1.to_y changed to \"%s\""),
+   _("x:"), _("y:"))
 STATE_ATTR_2SPINNER_ICON(_("align"), state, rel1_relative_x, rel1_relative_y, 
state_object_area,
  -500, 500, 1, NULL, "x:", "%", "y:", "%",
  _("Define the position of left-up corner of the 
part's container. "
@@ -2829,7 +2830,8 @@ STATE_ATTR_2COMBOBOX_V(_("relative to"), state, 
rel2_to_x, rel2_to_y, state_obje
_("Causes a corner to be positioned relatively to the Y 
axis of another "
  "part. Setting to \"\" will un-set this value"),
_("rel2.to_x changed to \"%s\""),
-   _("rel2.to_y changed to \"%s\""))
+   _("rel2.to_y changed to \"%s\""),
+   _("x:"), _("y:"))
 STATE_ATTR_2SPINNER_ICON(_("align"), state, rel2_relative_x, rel2_relative_y, 
state_object_area,
  -500, 500, 1, NULL, "x:", "%", "y:", "%",
  _("Define the position of right-down corner of the 
part's container. "
diff --git a/src/bin/ui/property_macros.h b/src/bin/ui/property_macros.h
index 2158259..e5b529c 100644
--- a/src/bin/ui/property_macros.h
+++ b/src/bin/ui/property_macros.h
@@ -585,6 +585,43 @@ _on_##SUB##_##VALUE##_activated(void *data, \
eina_stringshare_del(val); \
 }
 
+/**
+ * Macro defines a creating of COMMON_ATTR_2COMBOBOX.
+ *
+ * @param TEXT Text of attribute mix
+ * @param SUB The prefix of main parameter of attribute
+ * @param VALUE1 The first value of attribute
+ * @param VALUE2 The second value of attribute
+ * @param MEMBER position of attribute controls in struct
+ * @param TOOLTIP1 tooltip for first control
+ * @param TOOLTIP2 tooltip for second control
+ * @param LABEL1 label for first control
+ * @param LABEL2 label for second control
+ *
+ * @ingroup Property_Macro
+ */
+#define COMMON_ATTR_2COMBOBOX_ADD(TEXT, SUB, VALUE1, VALUE2, MEMBER, TOOLTIP1, 
TOOLTIP2, LABEL1, LABEL2) \
+static Evas_Object * \
+prop_##MEMBER##_##VALUE1##_##VALUE2##_add(Evas_Object *parent, Group_Prop_Data 
*pd) \
+{ \
+   PROPERTY_ITEM_ADD(parent, TEXT, "2swallow_vertical_pad") \
+   elm_object_part_text_set(item, "label.swallow1.start", LABEL1); \
+   EWE_COMBOBOX_ADD(item, pd->attributes.MEMBER.VALUE1) \
+   if (TOOLTIP1) elm_object_tooltip_text_set(pd->attributes.MEMBER.VALUE1, 
TOOLTIP1); \
+   evas_object_smart_callback_add(pd->attributes.MEMBER.VALUE1, "selected", \
+  _on_##MEMBER##_##VALUE1##_change, pd); \
+   elm_object_part_content_set(item, "swallow.content1", 
pd->attributes.MEMBER.VALUE1); \
+   elm_object_part_text_set(item, "label.swallow2.start", LABEL2); \
+   EWE_COMBOBOX_ADD(item, pd->attributes.MEMBER.VALUE2) \

[EGIT] [tools/eflete] master 04/07: notify: delete this module

2016-01-19 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=a4bdbe14c11262d883f3c55cc0779db2e31ab1cf

commit a4bdbe14c11262d883f3c55cc0779db2e31ab1cf
Author: Vyacheslav Reutskiy 
Date:   Mon Jan 18 17:21:26 2016 +0200

notify: delete this module

This module is old and not used yet, because now for print info
for user used statusbar. And in future need to use only statusbar

Change-Id: Ia5d42294300e0569cc04459646e4bf26c653703b
---
 po/POTFILES.in  |   1 -
 src/bin/Makefile.am |   3 +-
 src/bin/eflete.h|   1 -
 src/bin/main.c  |   2 -
 src/bin/ui/editors/colorclass_manager.c |   2 +-
 src/bin/ui/editors/image_editor.c   |   4 +-
 src/bin/ui/editors/sound_editor.c   |  16 ++--
 src/bin/ui/editors/style_editor.c   |  20 ++---
 src/bin/ui/notification/notify.c| 142 
 src/bin/ui/notification/notify.h| 135 --
 src/bin/ui/project_close.c  |   4 +-
 src/bin/ui/project_common.c |   6 +-
 src/bin/ui/tab_home_new.c   |   2 +-
 13 files changed, 28 insertions(+), 310 deletions(-)

diff --git a/po/POTFILES.in b/po/POTFILES.in
index abe88c4..1ca810d 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -57,7 +57,6 @@ src/bin/ui/main_window.c
 src/bin/ui/menu.c
 src/bin/ui/modal_window/modal_window.c
 src/bin/ui/project_navigator.c
-src/bin/ui/notification/notify.c
 src/bin/ui/group_navigator.c
 src/bin/ui/preference/preference.c
 src/bin/ui/project_close.c
diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am
index a32a123..965f14b 100644
--- a/src/bin/Makefile.am
+++ b/src/bin/Makefile.am
@@ -100,8 +100,7 @@ libete_a_SOURCES = \
 ../../src/bin/ui/live_view/elementary/live_spinner.c \
 ../../src/bin/ui/live_view/elementary/live_progressbar.c \
 ../../src/bin/ui/live_view/elementary/live_toolbar.c \
-../../src/bin/ui/live_view/elementary/live_naviframe.c \
-../../src/bin/ui/notification/notify.c
+../../src/bin/ui/live_view/elementary/live_naviframe.c
 
 eflete_SOURCES  = ../../src/bin/main.c
 
diff --git a/src/bin/eflete.h b/src/bin/eflete.h
index 6a4563b..976b5ea 100644
--- a/src/bin/eflete.h
+++ b/src/bin/eflete.h
@@ -74,7 +74,6 @@ TODO("delete it, and remake all strings to eina_stringshare 
or eina_strbuff")
 
 #include 
 #include "logger.h"
-#include "notify.h"
 #include "string_common.h"
 #include "editor.h"
 #include "signals.h"
diff --git a/src/bin/main.c b/src/bin/main.c
index 0ecb18e..e882a00 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -71,7 +71,6 @@ _import_end(void *data __UNUSED__, PM_Project_Result result)
 STATUSBAR_PROJECT_PATH(ap.project->pro_path);
 STATUSBAR_PROJECT_SAVE_TIME_UPDATE();
 
-NOTIFY_INFO(3, _("Project '%s' is opened."), pro->name);
 evas_object_smart_callback_call(ap.win, SIGNAL_PROJECT_OPENED, NULL);
  }
evas_object_show(ap.win);
@@ -91,7 +90,6 @@ _open_end(void *data __UNUSED__, PM_Project_Result result)
 ui_menu_disable_set(ap.menu, MENU_FILE_CLOSE_PROJECT, false);
 project_navigator_project_set();
 
-NOTIFY_INFO(3, _("Project '%s' is opened."), pro->name);
 STATUSBAR_PROJECT_PATH(ap.project->pro_path);
 STATUSBAR_PROJECT_SAVE_TIME_UPDATE();
 evas_object_smart_callback_call(ap.win, SIGNAL_PROJECT_OPENED, NULL);
diff --git a/src/bin/ui/editors/colorclass_manager.c 
b/src/bin/ui/editors/colorclass_manager.c
index 50209dd..b74797f 100644
--- a/src/bin/ui/editors/colorclass_manager.c
+++ b/src/bin/ui/editors/colorclass_manager.c
@@ -161,7 +161,7 @@ _on_button_delete_clicked_cb(void *data __UNUSED__,
  symbs += strlen(res->name);
  break; TODO("remove this break after warning style remake")
   }
-NOTIFY_WARNING("%s", buf);
+WARN("%s", buf);
 return;
  }
 
diff --git a/src/bin/ui/editors/image_editor.c 
b/src/bin/ui/editors/image_editor.c
index b419cff..628ca4b 100644
--- a/src/bin/ui/editors/image_editor.c
+++ b/src/bin/ui/editors/image_editor.c
@@ -381,7 +381,7 @@ _on_button_delete_clicked_cb(void *data,
  symbs += strlen(res->name);
  break; TODO("remove this break after warning style remake")
   }
-NOTIFY_WARNING("%s", buf);
+WARN("%s", buf);
  }
else if (notdeleted >1)
  {
@@ -397,7 +397,7 @@ _on_button_delete_clicked_cb(void *data,
   }
 if (notdeleted >= 4)
snprintf(buf + symbs, BUFF_MAX - symbs, "...");
-NOTIFY_WARNING("%s", buf);
+WARN("%s", buf);
  }
 
editor_save(ap.project->global_object);
diff --git a/src/bin/ui/editors/sound_editor.c 
b/src/bin/ui/editors/sound_editor.c
index 853ed4c..eb26137 100644
--- a/src/bin/ui/editors/sound_editor.c
+++ b/src/bin/ui/editors/sound_editor.c
@@ -294,7 +294,7 @@ _fs_del(void *data)
 
 

[EGIT] [tools/eflete] master 01/07: property_macro: since Afters and Target are same, make macro definition

2016-01-19 Thread Vitalii Vorobiov
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=502727e4798cf67e1b3b0f033e705a4f5aa33888

commit 502727e4798cf67e1b3b0f033e705a4f5aa33888
Author: Vitalii Vorobiov 
Date:   Mon Jan 18 16:51:33 2016 +

property_macro: since Afters and Target are same, make macro definition

Though while Targets works with both Parts and Programs sometimes,
 Afters works with Programs only.
---
 src/bin/ui/property_group.c  | 302 ---
 src/bin/ui/property_macros.h | 263 +
 2 files changed, 288 insertions(+), 277 deletions(-)

diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c
index dca..62552b8 100644
--- a/src/bin/ui/property_group.c
+++ b/src/bin/ui/property_group.c
@@ -208,6 +208,9 @@ struct _Group_Prop_Data
  Evas_Object *target;
  Evas_Object *target_box;
  Evas_Object *targets_frame; /* it's a frame */
+ Evas_Object *after;
+ Evas_Object *after_box;
+ Evas_Object *afters_frame; /* it's a frame */
 } program;
} attributes;
 };
@@ -361,6 +364,9 @@ prop_program_tone_name_update(Group_Prop_Data *pd);
 static void
 prop_program_targets_update(Group_Prop_Data *pd);
 
+static void
+prop_program_afters_update(Group_Prop_Data *pd);
+
 static Eina_Bool
 ui_property_state_obj_area_set(Evas_Object *property);
 
@@ -995,6 +1001,9 @@ _on_editor_attribute_changed(void *data,
   case ATTRIBUTE_PROGRAM_SAMPLE_SPEED:
  COMMON_1SPINNER_UPDATE(program, sample_speed, program, int, 1, 
PROGRAM_ARGS)
  break;
+  case ATTRIBUTE_PROGRAM_AFTER:
+ prop_program_afters_update(pd);
+ break;
   case ATTRIBUTE_PROGRAM_CHANNEL:
  PROGRAM_ATTR_1COMBOBOX_LIST_UPDATE(program, channel, program)
  break;
@@ -1018,7 +1027,6 @@ _on_editor_attribute_changed(void *data,
   case ATTRIBUTE_PROGRAM_API_NAME:
   case ATTRIBUTE_PROGRAM_API_DESCRIPTION:
   case ATTRIBUTE_PROGRAM_NAME:
-  case ATTRIBUTE_PROGRAM_AFTER:
  TODO("implement");
  break;
  /* Don't add 'default:'. Compiler must warn about missing cases */
@@ -1931,282 +1939,8 @@ prop_program_action_add(Evas_Object *parent, 
Group_Prop_Data *pd)
return item;
 }
 
-static void
-_add_target(void *data, Evas_Object *obj, void *event_info);
-
-#define COMBOBOX_TARGET "Combobox_Target"
-
-static void
-_del_target(void *data,
-Evas_Object *obj __UNUSED__,
-void *event_info __UNUSED__)
-{
-   Evas_Object *item = (Evas_Object *)data;
-   Evas_Object *ic, *button, *new_item, *target_combo, *first_item;
-   Group_Prop_Data *pd = evas_object_data_get(item, GROUP_PROP_DATA);
-   Eina_List *items = elm_box_children_get(pd->attributes.program.target_box);
-   Eina_Stringshare *current_title;
-
-   /* User clicked on Delete button while there are only one target.
-* In here we should just disable button and clear Combobox into NULL */
-   if (eina_list_count(items) == 1)
- {
-first_item = eina_list_data_get(items);
-target_combo = elm_layout_content_get(first_item, NULL);
-ewe_combobox_text_set(target_combo, NULL);
-button = elm_layout_content_get(first_item, "swallow.button_del");
-elm_object_disabled_set(button, true);
- }
-
-   /* check the first item, if deleted object the first in the list, we need to
-* set the label to next item and move btn_add */
-   if ((eina_list_data_get(items) == item) && (eina_list_count(items) != 1))
- {
-new_item = eina_list_data_get(eina_list_next(items));
-button = elm_button_add(new_item);
-ic = elm_icon_add(button);
-elm_icon_standard_set(ic, "plus");
-elm_object_part_content_set(button, NULL, ic);
-elm_layout_content_set(item, "swallow.button_add", button);
-evas_object_smart_callback_add(button, "clicked", _add_target, pd);
-elm_layout_content_set(new_item, "swallow.button_add", button);
- }
-
-   target_combo = elm_layout_content_get(item, NULL);
-   Eina_Stringshare *value = evas_object_data_get(target_combo, 
COMBOBOX_TARGET);
-   if (value)
- {
-Eina_Stringshare *msg = eina_stringshare_printf(_("removed target %s 
from program %s"),
-value,
-
pd->attributes.program.program);
-Change *change = change_add(msg);
-eina_stringshare_del(msg);
-editor_program_target_del(pd->group->edit_object, change, false,
-  pd->attributes.program.program,
-  value);
-history_change_add(pd->group->history, change);
-
-current_title = evas_object_data_get(target_combo, COMBOBOX_TARGET);
-eina_stringshare_del(current_title);
-

[EGIT] [tools/eflete] master 06/07: property_group: remove unused members from program structure

2016-01-19 Thread Vitalii Vorobiov
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=feabffb79d71db94f04ae7599228b7677703f348

commit feabffb79d71db94f04ae7599228b7677703f348
Author: Vitalii Vorobiov 
Date:   Mon Jan 18 17:44:48 2016 +

property_group: remove unused members from program structure
---
 src/bin/ui/property_group.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c
index a13651b..27e2bc3 100644
--- a/src/bin/ui/property_group.c
+++ b/src/bin/ui/property_group.c
@@ -205,10 +205,8 @@ struct _Group_Prop_Data
  Evas_Object *channel;
  Evas_Object *tone_name;
  Evas_Object *tone_duration;
- Evas_Object *target;
  Evas_Object *target_box;
  Evas_Object *targets_frame; /* it's a frame */
- Evas_Object *after;
  Evas_Object *after_box;
  Evas_Object *afters_frame; /* it's a frame */
  Evas_Object *in_from, *in_range;

-- 




[EGIT] [tools/eflete] master 02/07: property_group: break was forgotten after ATTRIBUTE_PROGRAM_STATE2

2016-01-19 Thread Vitalii Vorobiov
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=7bbf961be7b570be096270a9a0d5d45ee20180da

commit 7bbf961be7b570be096270a9a0d5d45ee20180da
Author: Vitalii Vorobiov 
Date:   Mon Jan 18 18:26:22 2016 +

property_group: break was forgotten after ATTRIBUTE_PROGRAM_STATE2
---
 src/bin/ui/property_group.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c
index 62552b8..b9c8ab7 100644
--- a/src/bin/ui/property_group.c
+++ b/src/bin/ui/property_group.c
@@ -992,6 +992,7 @@ _on_editor_attribute_changed(void *data,
  break;
   case ATTRIBUTE_PROGRAM_VALUE2:
  COMMON_1SPINNER_UPDATE(program, value2, program, double, 1, 
PROGRAM_ARGS)
+ break;
   case ATTRIBUTE_PROGRAM_TARGET:
  prop_program_targets_update(pd);
  break;

-- 




[EGIT] [tools/eflete] master 05/07: property_group: in_from and in_range for program properties

2016-01-19 Thread Vitalii Vorobiov
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=86e695da5c4e1b17429d170ec76cb5c0d0fb588d

commit 86e695da5c4e1b17429d170ec76cb5c0d0fb588d
Author: Vitalii Vorobiov 
Date:   Mon Jan 18 18:56:41 2016 +

property_group: in_from and in_range for program properties
---
 src/bin/ui/property_group.c  | 20 
 src/bin/ui/property_macros.h | 19 +++
 2 files changed, 39 insertions(+)

diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c
index b9c8ab7..a13651b 100644
--- a/src/bin/ui/property_group.c
+++ b/src/bin/ui/property_group.c
@@ -211,6 +211,7 @@ struct _Group_Prop_Data
  Evas_Object *after;
  Evas_Object *after_box;
  Evas_Object *afters_frame; /* it's a frame */
+ Evas_Object *in_from, *in_range;
 } program;
} attributes;
 };
@@ -1017,7 +1018,9 @@ _on_editor_attribute_changed(void *data,
   case ATTRIBUTE_PROGRAM_TRANSITION_TYPE:
   case ATTRIBUTE_PROGRAM_TRANSITION_FROM_CURRENT:
   case ATTRIBUTE_PROGRAM_IN_FROM:
+ COMMON_1SPINNER_UPDATE(program, in_range, program, double, 1, 
PROGRAM_ARGS)
   case ATTRIBUTE_PROGRAM_IN_RANGE:
+ COMMON_1SPINNER_UPDATE(program, in_from, program, double, 1, 
PROGRAM_ARGS)
   case ATTRIBUTE_PROGRAM_TRANSITION_TIME:
   case ATTRIBUTE_PROGRAM_TRANSITION_VALUE1:
   case ATTRIBUTE_PROGRAM_TRANSITION_VALUE2:
@@ -1943,6 +1946,21 @@ prop_program_action_add(Evas_Object *parent, 
Group_Prop_Data *pd)
 PROGRAM_MULTIPLE_COMBOBOX(target, "Previous_Target", _("target can be part or 
program"), true)
 PROGRAM_MULTIPLE_COMBOBOX(after, "Previous_After", _("after can be program"), 
false)
 
+#define PROGRAM_ATTR_2SPINNER(TEXT, SUB, VALUE1, VALUE2, MEMBER, MIN, MAX, 
STEP, FMT, \
+  L1_START, L1_END, L2_START, L2_END, TOOLTIP1, 
TOOLTIP2, MULTIPLIER, \
+  TYPE, DESC1, DESC2) \
+   PROGRAM_SPINNER_CALLBACK(SUB, VALUE1, MEMBER, TYPE, MULTIPLIER, DESC1) \
+   PROGRAM_SPINNER_CALLBACK(SUB, VALUE2, MEMBER, TYPE, MULTIPLIER, DESC2) \
+   COMMON_2SPINNER_ADD(PROGRAM, TEXT, "2swallow", SUB, VALUE1, VALUE2, MEMBER, 
TYPE, MIN, MAX, STEP, FMT, \
+   L1_START, L1_END, L2_START, L2_END, TOOLTIP1, 
TOOLTIP2, MULTIPLIER)
+
+PROGRAM_ATTR_2SPINNER(_("in"), program, in_from, in_range, program, 0.0, 
.0, 0.1, "%.1f", "from:", "", "range:", "",
+_("Constant time to wait till program would start"),
+_("Random number of seconds (from 0 to 'range') added to 
constant time"),
+1, double,
+_("in from changed from %.2f to %.2f"),
+_("in range changed from %.2f to %.2f"))
+
 static void
 _ui_property_program_set(Evas_Object *property, const char *program)
 {
@@ -1964,6 +1982,8 @@ _ui_property_program_set(Evas_Object *property, const 
char *program)
 elm_box_pack_end(box, item);
 item = prop_program_source_add(box, pd, NULL);
 elm_box_pack_end(box, item);
+item = prop_program_in_from_in_range_add(box, pd);
+elm_box_pack_end(box, item);
 item = prop_program_action_add(box, pd);
 elm_box_pack_end(box, item);
 FRAME_PROPERTY_ADD(box, pd->attributes.program.action_params, true, 
_("Action params"), pd->scroller)
diff --git a/src/bin/ui/property_macros.h b/src/bin/ui/property_macros.h
index 9db906b..2158259 100644
--- a/src/bin/ui/property_macros.h
+++ b/src/bin/ui/property_macros.h
@@ -854,6 +854,25 @@ _on_group_##SUB1##_##VALUE##_change(void *data, \
 #define PROGRAM_ATTR_1COMBOBOX_LIST_CALLBACK(TEXT, SUB, VALUE, TYPE, 
DESCRIPTION) \
COMMON_COMBOBOX_LIST_CALLBACK(TEXT, SUB, VALUE, TYPE, PROGRAM_ARGS, 
DESCRIPTION)
 
+/*/
+/* PROGRAM 1 SPINNER CONTROL */
+/*/
+/**
+ * Macro defines a callback for STATE_ATTR_1(2)SPINNER_ADD.
+ *
+ * @param SUB The prefix of main parameter of state attribute;
+ * @param VALUE The value of state attribute.
+ * @param TYPE The spinner value type: int, double
+ * @param MULTIPLIER The multiplier to convert the value to percent
+ *
+ * @ingroup Property_Macro
+ */
+#define PROGRAM_SPINNER_CALLBACK(SUB, VALUE, MEMBER, TYPE, MULTIPLIER, 
DESCRIPTION) \
+   COMMON_SPINNER_CALLBACK(SUB, VALUE, MEMBER, TYPE, MULTIPLIER, PROGRAM_ARGS, 
DESCRIPTION)
+
+#define PROGRAM_ATTR_2SPINNER_UPDATE(SUB, VALUE1, VALUE2, MEMBER, TYPE, 
MULTIPLIER) \
+   COMMON_1SPINNER_UPDATE(SUB, VALUE1, MEMBER, TYPE,  MULTIPLIER, 
PROGRAM_ARGS) \
+   COMMON_1SPINNER_UPDATE(SUB, VALUE2, MEMBER, TYPE,  MULTIPLIER, PROGRAM_ARGS)
 
 /*/
 /* PART 1 CHECK 

[EGIT] [core/enlightenment] master 01/02: Fix issue of compositor surface create passing wrong parameter to e_pixmap_new function

2016-01-19 Thread Chris Michael
devilhorns pushed a commit to branch master.

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

commit 67170f40a1a901101591c8102631dbec8e49794b
Author: Chris Michael 
Date:   Tue Jan 19 10:44:37 2016 -0500

Fix issue of compositor surface create passing wrong parameter to
e_pixmap_new function

e_pixmap_new (when creating wayland windows) is expecting to get a
uintptr_t type passed into it (surface id). Previously we were passing
the entire wl_resource.

ref T3058

Signed-off-by: Chris Michael 
---
 src/bin/e_comp_wl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 0833db1..ba62070 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1502,7 +1502,7 @@ _e_comp_wl_compositor_cb_surface_create(struct wl_client 
*client, struct wl_reso
 E_Pixmap *ep;
 
 /* try to create new pixmap */
-if (!(ep = e_pixmap_new(E_PIXMAP_TYPE_WL, res)))
+if (!(ep = e_pixmap_new(E_PIXMAP_TYPE_WL, (uintptr_t)id)))
   {
  ERR("Could not create new pixmap");
  wl_resource_destroy(res);

-- 




[EGIT] [core/enlightenment] master 02/02: Fix issue of using the wrong id when finding pixmap client

2016-01-19 Thread Chris Michael
devilhorns pushed a commit to branch master.

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

commit 1b36f93956ea80173c5fef2fa8fbb0d9a886efb1
Author: Chris Michael 
Date:   Tue Jan 19 10:46:03 2016 -0500

Fix issue of using the wrong id when finding pixmap client

Previously, we were passing in the wl window id into the
pixmap_find_client function. This is improper as the e_pixmap_new
functions take the surface resource id. To solve this, we will get the
Ecore_Wl2_window from the Evas_Object, fetch the surface id from that,
then pass those into e_pixmap_find_client.

This resolves an issue where the everything module was not working
properly.

ref T3058

Signed-off-by: Chris Michael 
---
 src/bin/e_win.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_win.c b/src/bin/e_win.c
index 266d43f..51c21a4 100644
--- a/src/bin/e_win.c
+++ b/src/bin/e_win.c
@@ -79,11 +79,13 @@ _e_elm_win_trap_show(void *data, Evas_Object *o)
 #ifdef HAVE_WAYLAND
 if (!strncmp(ecore_evas_engine_name_get(ee), "wayland", 7))
   {
+ Ecore_Wl2_Window *ewin = elm_win_wl_window_get(o);
+
  type = E_PIXMAP_TYPE_WL;
  ecore_evas_object_cursor_set(ee, NULL, 0, 0, 0);
  ctx->pointer = e_comp->pointer;
  elm_win_borderless_set(o, 1);
- wl_win_id = win;
+ wl_win_id = ecore_wl2_window_surface_id_get(ewin);
   }
 else
 #endif

-- 




[EGIT] [core/enlightenment] master 01/02: remove need_reparent, reparented, first_damage flags from wl client comp_data

2016-01-19 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit fbe959d5c2af6b62aaaeff1e1fae3117e6d9
Author: Mike Blumenkrantz 
Date:   Tue Jan 19 12:10:49 2016 -0500

remove need_reparent, reparented, first_damage flags from wl client 
comp_data

these flags, and related code, have no functional purpose in wayland
---
 src/bin/e_comp_wl.c | 119 
 src/bin/e_comp_wl.h |   3 --
 2 files changed, 122 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index ba62070..c282ef8 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -122,12 +122,6 @@ _e_comp_wl_evas_cb_show(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *obj EIN
 
if (!ec->override) e_hints_window_visible_set(ec);
 
-   if ((!ec->override) && (!ec->re_manage) && (!ec->comp_data->reparented) &&
-   (!ec->comp_data->need_reparent))
- {
-ec->comp_data->need_reparent = EINA_TRUE;
-ec->visible = EINA_TRUE;
- }
 
if (!ec->ignored)
  {
@@ -135,17 +129,6 @@ _e_comp_wl_evas_cb_show(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *obj EIN
 EC_CHANGED(ec);
  }
 
-   if (!ec->comp_data->need_reparent)
- {
-if ((ec->hidden) || (ec->iconic))
-  {
- evas_object_hide(ec->frame);
- e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h);
-  }
-else if (!ec->internal_elm_win)
-  evas_object_show(ec->frame);
- }
-
EINA_LIST_FOREACH(ec->e.state.video_child, l, tmp)
  evas_object_show(tmp->frame);
 }
@@ -700,11 +683,6 @@ _e_comp_wl_evas_cb_kill_request(void *data, Evas_Object 
*obj EINA_UNUSED, void *
/* if (ec->netwm.ping) e_client_ping(ec); */
 
e_comp_ignore_win_del(E_PIXMAP_TYPE_WL, e_pixmap_window_get(ec->pixmap));
-   if (ec->comp_data)
- {
-if (ec->comp_data->reparented)
-  e_client_comp_hidden_set(ec, EINA_TRUE);
- }
 
evas_object_pass_events_set(ec->frame, EINA_TRUE);
if (ec->visible) evas_object_hide(ec->frame);
@@ -2236,9 +2214,6 @@ _e_comp_wl_client_cb_new(void *data EINA_UNUSED, E_Client 
*ec)
 
/* set initial client data properties */
ec->comp_data->mapped = EINA_FALSE;
-   ec->comp_data->first_damage = ec->internal;
-
-   ec->comp_data->need_reparent = !ec->internal;
 
/* add this client to the hash */
/* eina_hash_add(clients_win_hash, , ec); */
@@ -2254,16 +2229,6 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, 
E_Client *ec)
/* make sure this is a wayland client */
if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) return;
 
-   if ((!ec->already_unparented) && (ec->comp_data->reparented))
- _e_comp_wl_focus_down_set(ec);
-
-   ec->already_unparented = EINA_TRUE;
-   if (ec->comp_data->reparented)
- {
-/* reset pixmap parent window */
-e_pixmap_parent_window_set(ec->pixmap, 0);
- }
-
/* remove sub list */
EINA_LIST_FREE(ec->comp_data->sub.list, subc)
  subc->comp_data->sub.data->parent = NULL;
@@ -2289,87 +2254,6 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, 
E_Client *ec)
_e_comp_wl_focus_check();
 }
 
-#if 0
-static void
-_e_comp_wl_client_cb_pre_frame(void *data EINA_UNUSED, E_Client *ec)
-{
-   uint64_t parent;
-
-   if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) return;
-   if (!ec->comp_data->need_reparent) return;
-
-   DBG("Client Pre Frame: %d", wl_resource_get_id(ec->comp_data->surface));
-
-   parent = e_client_util_pwin_get(ec);
-
-   /* set pixmap parent window */
-   e_pixmap_parent_window_set(ec->pixmap, parent);
-
-   ec->border_size = 0;
-   ec->border.changed = EINA_TRUE;
-   ec->changes.shape = EINA_TRUE;
-   ec->changes.shape_input = EINA_TRUE;
-   EC_CHANGED(ec);
-
-   if (ec->visible)
- {
-if ((ec->comp_data->set_win_type) && (ec->internal_elm_win))
-  {
- int type = ECORE_WL_WINDOW_TYPE_TOPLEVEL;
-
- switch (ec->netwm.type)
-   {
-case E_WINDOW_TYPE_DIALOG:
-  /* NB: If there is No transient set, then dialogs get
-   * treated as Normal Toplevel windows */
-  if (ec->icccm.transient_for)
-type = ECORE_WL_WINDOW_TYPE_TRANSIENT;
-  break;
-case E_WINDOW_TYPE_DESKTOP:
-  type = ECORE_WL_WINDOW_TYPE_FULLSCREEN;
-  break;
-case E_WINDOW_TYPE_DND:
-  type = ECORE_WL_WINDOW_TYPE_DND;
-  break;
-case E_WINDOW_TYPE_MENU:
-case E_WINDOW_TYPE_DROPDOWN_MENU:
-case E_WINDOW_TYPE_POPUP_MENU:
-  type = ECORE_WL_WINDOW_TYPE_MENU;
-  break;
-case E_WINDOW_TYPE_NORMAL:
-default:
-break;
-   }
-