[EGIT] [core/elementary] master 01/02: test: correct argument order for calloc()
stefan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=37536054042df43b1756a98231ca5253c799f057 commit 37536054042df43b1756a98231ca5253c799f057 Author: Stefan SchmidtDate: Mon Nov 30 21:57:58 2015 +0100 test: correct argument order for calloc() calloc() expects count first and the actual size to allocate as second argument. Say Thank You to smatch for finding this issues for us. --- src/bin/test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/test.c b/src/bin/test.c index c1539d5..cb602f7 100644 --- a/src/bin/test.c +++ b/src/bin/test.c @@ -388,7 +388,7 @@ _space_removed_string_get(const char *name) char *ret; len = strlen(name); - ret = calloc(sizeof(char), len + 1); + ret = calloc(len + 1, sizeof(char)); while (name[i]) { --
[EGIT] [core/elementary] master 02/02: elm_font: correct argument order for calloc()
stefan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=63677ba6849debc02613f205d8033d72e88cd120 commit 63677ba6849debc02613f205d8033d72e88cd120 Author: Stefan SchmidtDate: Mon Nov 30 21:58:39 2015 +0100 elm_font: correct argument order for calloc() calloc() expects count first and the actual size to allocate as second argument. Say Thank You to smatch for finding this issues for us. --- src/lib/elm_font.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_font.c b/src/lib/elm_font.c index 1f34681..797ecad 100644 --- a/src/lib/elm_font.c +++ b/src/lib/elm_font.c @@ -24,7 +24,7 @@ _elm_font_properties_get(Eina_Hash **font_hash, /* get font name */ len = token - font; -name = calloc(sizeof(char), len + 1); +name = calloc(len + 1, sizeof(char)); if (!name) return NULL; strncpy(name, font, len); @@ -68,7 +68,7 @@ _elm_font_properties_get(Eina_Hash **font_hash, char *style_old = style; len = substyle - style; - style = calloc(sizeof(char), len + 1); + style = calloc(len + 1, sizeof(char)); if (style) { strncpy(style, style_old, len); --
[EGIT] [core/enlightenment] master 01/01: add config option for allowing sticky windows to receive focus reverts
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a08ac02e820ba7fc6064f74414cfe810e775d5ed commit a08ac02e820ba7fc6064f74414cfe810e775d5ed Author: Mike BlumenkrantzDate: Mon Nov 30 16:27:04 2015 -0500 add config option for allowing sticky windows to receive focus reverts since forever, sticky windows have not been allowed to receive focus after various events, eg. desk flip or window close. in some workflows, however, this may actually be desired behavior disabled by default fix T2837 --- src/bin/e_client.c| 2 +- src/bin/e_config.c| 2 ++ src/bin/e_config.h| 1 + src/bin/e_desk.c | 2 +- src/modules/conf_window_manipulation/e_int_config_focus.c | 9 + 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 28191e9..d6eb0c4 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -3579,7 +3579,7 @@ e_client_activate(E_Client *ec, Eina_Bool just_do_it) if (!ec->lock_user_iconify) e_client_uniconify(ec); } -if ((!ec->iconic) && (!ec->sticky)) +if ((!ec->iconic) && ((!ec->sticky) || e_config->focus_revert_allow_sticky)) { int val = e_config->focus_last_focused_per_desktop; diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 80501aa..00d4207 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -525,6 +525,7 @@ _e_config_edd_init(Eina_Bool old) E_CONFIG_VAL(D, T, resize_info_visible, INT); /**/ E_CONFIG_VAL(D, T, focus_last_focused_per_desktop, INT); /**/ E_CONFIG_VAL(D, T, focus_revert_on_hide_or_close, INT); /**/ + E_CONFIG_VAL(D, T, focus_revert_allow_sticky, INT); /**/ E_CONFIG_VAL(D, T, pointer_slide, INT); /**/ E_CONFIG_VAL(D, T, disable_all_pointer_warps, INT); /**/ E_CONFIG_VAL(D, T, pointer_warp_speed, DOUBLE); /**/ @@ -1410,6 +1411,7 @@ e_config_load(void) E_CONFIG_LIMIT(e_config->resize_info_visible, 0, 1); E_CONFIG_LIMIT(e_config->focus_last_focused_per_desktop, 0, 1); E_CONFIG_LIMIT(e_config->focus_revert_on_hide_or_close, 0, 1); + E_CONFIG_LIMIT(e_config->focus_revert_allow_sticky, 0, 1); E_CONFIG_LIMIT(e_config->pointer_slide, 0, 1); E_CONFIG_LIMIT(e_config->disable_all_pointer_warps, 0, 1); E_CONFIG_LIMIT(e_config->pointer_warp_speed, 0.0, 1.0); diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 2874ac7..a2f9a7a 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -161,6 +161,7 @@ struct _E_Config int resize_info_visible; // GUI int focus_last_focused_per_desktop; // GUI int focus_revert_on_hide_or_close; // GUI + int focus_revert_allow_sticky; // GUI int disable_all_pointer_warps; // GUI int pointer_slide; // GUI double pointer_warp_speed; // GUI diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index 77f157a..c7b3d5f 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -377,7 +377,7 @@ e_desk_last_focused_focus(E_Desk *desk) /* this was the window last focused in this desktop */ if (!ec->lock_focus_out) { - if (ec->sticky) + if (ec->sticky && (!e_config->focus_revert_allow_sticky)) { ecs = ec; continue; diff --git a/src/modules/conf_window_manipulation/e_int_config_focus.c b/src/modules/conf_window_manipulation/e_int_config_focus.c index ceb84f3..f5c6f00 100644 --- a/src/modules/conf_window_manipulation/e_int_config_focus.c +++ b/src/modules/conf_window_manipulation/e_int_config_focus.c @@ -26,6 +26,7 @@ struct _E_Config_Dialog_Data intalways_click_to_focus; intfocus_last_focused_per_desktop; intfocus_revert_on_hide_or_close; + intfocus_revert_allow_sticky; intpointer_slide; intdisable_all_pointer_warps; double pointer_warp_speed; @@ -75,6 +76,8 @@ _fill_data(E_Config_Dialog_Data *cfdata) e_config->focus_last_focused_per_desktop; cfdata->focus_revert_on_hide_or_close = e_config->focus_revert_on_hide_or_close; + cfdata->focus_revert_allow_sticky = + e_config->focus_revert_allow_sticky; cfdata->pointer_slide = e_config->pointer_slide; cfdata->disable_all_pointer_warps = e_config->disable_all_pointer_warps; cfdata->pointer_warp_speed = e_config->pointer_warp_speed; @@ -181,6 +184,8 @@ _advanced_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata) cfdata->focus_last_focused_per_desktop; e_config->focus_revert_on_hide_or_close = cfdata->focus_revert_on_hide_or_close; + e_config->focus_revert_allow_sticky = +
[EGIT] [core/efl] master 01/02: Evil: add support for LC_MESSAGES for setlocale()
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cbb6e9b20f3d85b41b0c3c525fd3ae68864118b1 commit cbb6e9b20f3d85b41b0c3c525fd3ae68864118b1 Author: Vincent Torri Date: Fri Nov 27 18:43:54 2015 +0100 Evil: add support for LC_MESSAGES for setlocale() LC_MESSAGES is an extension to C ANSI and does not exist on Windows. So add LC_MESSAGES API and overload setlocale() to support it @feature --- src/Makefile_Evil.am | 2 ++ src/lib/evil/Evil.h| 3 +++ src/lib/evil/evil_locale.c | 55 +++ src/lib/evil/evil_locale.h | 65 ++ 4 files changed, 125 insertions(+) diff --git a/src/Makefile_Evil.am b/src/Makefile_Evil.am index 4f9ae3f..5c27eca 100644 --- a/src/Makefile_Evil.am +++ b/src/Makefile_Evil.am @@ -10,6 +10,7 @@ lib/evil/Evil.h \ lib/evil/evil_fcntl.h \ lib/evil/evil_inet.h \ lib/evil/evil_langinfo.h \ +lib/evil/evil_locale.h \ lib/evil/evil_macro.h \ lib/evil/evil_macro_pop.h \ lib/evil/evil_main.h \ @@ -35,6 +36,7 @@ lib/evil/evil_fnmatch.c \ lib/evil/evil_fnmatch_list_of_states.c \ lib/evil/evil_inet.c \ lib/evil/evil_langinfo.c \ +lib/evil/evil_locale.c \ lib/evil/evil_link_xp.cpp \ lib/evil/evil_main.c \ lib/evil/evil_mman.c \ diff --git a/src/lib/evil/Evil.h b/src/lib/evil/Evil.h index 780b8b0..6a69f7b 100644 --- a/src/lib/evil/Evil.h +++ b/src/lib/evil/Evil.h @@ -73,6 +73,8 @@ * @li @ref Evil_Mman * @li @ref Evil_Unistd_Group * @li @ref Evil_Dlfcn + * @li @ref Evil_Langinfo_Group + * @li @ref Evil_Locale_Group * @li @ref Evil_Pwd_Group * @li @ref Evil_Stdio_Group * @li @ref Evil_Main_Group @@ -115,6 +117,7 @@ typedef unsigned long gid_t; #include "evil_fcntl.h" #include "evil_inet.h" #include "evil_langinfo.h" +#include "evil_locale.h" #include "evil_main.h" #include "evil_stdlib.h" #include "evil_stdio.h" diff --git a/src/lib/evil/evil_locale.c b/src/lib/evil/evil_locale.c new file mode 100644 index 000..d243ad8 --- /dev/null +++ b/src/lib/evil/evil_locale.c @@ -0,0 +1,55 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include + +#ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +#endif +#include +#undef WIN32_LEAN_AND_MEAN + +#include "evil_macro.h" +#include "evil_locale.h" +#include "evil_private.h" + +/* + * LOCALE_SISO639LANGNAME and LOCALE_SISO3166CTRYNAME need at least a buffer + * of 9 char each (including NULL char). So we need 2*8 + the trailing NULL + * char + '_', so 18 char. + */ +static char _evil_locale_buf[18]; + +char *evil_setlocale(int category, const char *locale) +{ + char buf[9]; + int l1; + int l2; + + if (category != LC_MESSAGES) + return setlocale(category, locale); + + if (locale != NULL) + { +errno = EINVAL; +return NULL; + } + + l1 = GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SISO639LANGNAME, + buf, sizeof(buf)); + if (!l1) return NULL; + + memcpy(_evil_locale_buf, buf, l1 - 1); + _evil_locale_buf[l1 - 1] = '_'; + + l2 = GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SISO3166CTRYNAME, + buf, sizeof(buf)); + if (!l2) return NULL; + + memcpy(_evil_locale_buf + l1, buf, l2); + + return _evil_locale_buf; +} diff --git a/src/lib/evil/evil_locale.h b/src/lib/evil/evil_locale.h new file mode 100644 index 000..6196800 --- /dev/null +++ b/src/lib/evil/evil_locale.h @@ -0,0 +1,65 @@ +#ifndef __EVIL_LOCALE_H__ +#define __EVIL_LOCALE_H__ + + +/** + * @file evil_locale.h + * @brief The file that provides functions ported from Unix in locale.h. + * @defgroup Evil_Locale_Group locale.h functions. + * @ingroup Evil + * + * This header provides functions ported from Unix in locale.h. + * + * @{ + */ + + +/** + * @def LC_MESSAGES + * + * New locale value, based on the one in libintl.h + */ +#ifdef LC_MESSAGES +# undef LC_MESSAGES +#endif +#define LC_MESSAGES 1729 + +/** + * @brief Return the string associated to the given locale and category. + * + * @param category The category affected by locale. + * @param locale The locale specifier. + * @return The string associated to the specified locale and category. + * + * This function returns the string associated to @p locale and + * @p category. If @p category is LC_ALL, LC_COLLATE, LC_CTYPE, + * LC_MONETARY, LC_NUMERIC or LC_TIME, it just returns the standard + * setlocale() function. If @p category is #LC_MESSAGES, then if @p locale + * is not @c NULL, errno is set to EINVAL and @c NULL is returned, otherwise + * the string _ is returned. This string is a static buffer + * and must not be freed. It will also be rewritten each time @category is + * #LC_MESSAGES and @p locale is @c NULL. + * + * Conformity: Non applicable. + * + * Supported OS: Windows XP. + */ +EAPI char *evil_setlocale(int category, const char *locale); + +/** + * @def setlocale(cat, loc) + * + * Wrapper around evil_setlocale(). + */
[EGIT] [core/efl] master 01/02: evas_font_dir: do not passed free'd memory to eina_list_remove()
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=54abe37c44cae3500b514a6ab3563ff93e330725 commit 54abe37c44cae3500b514a6ab3563ff93e330725 Author: Stefan SchmidtDate: Mon Nov 30 17:16:28 2015 +0100 evas_font_dir: do not passed free'd memory to eina_list_remove() Free the actual memory after we removed it from the list. --- src/lib/evas/canvas/evas_font_dir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_font_dir.c b/src/lib/evas/canvas/evas_font_dir.c index df0f5ef..dc9ac20 100644 --- a/src/lib/evas/canvas/evas_font_dir.c +++ b/src/lib/evas/canvas/evas_font_dir.c @@ -1209,8 +1209,8 @@ object_text_font_cache_dir_add(char *dir) } free(tmp); } - free(fdir->data); fdir = eina_list_remove(fdir, fdir->data); + free(fdir->data); } /* fonts.alias */ --
[EGIT] [core/efl] master 02/02: evas_3d_utils: do not bitwise AND against 0 in condition
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3a11868201344c3c79719269a4cebd375b3c3872 commit 3a11868201344c3c79719269a4cebd375b3c3872 Author: Stefan SchmidtDate: Mon Nov 30 17:22:42 2015 +0100 evas_3d_utils: do not bitwise AND against 0 in condition We need to check against the state here and if the compilers assignes 0 to the first item in an enum we are screwed here as the bitwise AND will always evaluate to false. This is a re-incarnation from a486671bce76e405a8d7261f19b0f67ca678f0c4 --- src/lib/evas/include/evas_3d_utils.h | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/evas/include/evas_3d_utils.h b/src/lib/evas/include/evas_3d_utils.h index 10192cc..52a9511 100644 --- a/src/lib/evas/include/evas_3d_utils.h +++ b/src/lib/evas/include/evas_3d_utils.h @@ -349,7 +349,7 @@ evas_vec3_transform(Evas_Vec3 *out, const Evas_Vec3 *v, const Eina_Matrix3 *m) { Evas_Vec3 tmp; - if (eina_matrix3_type_get(m) & EINA_MATRIX_TYPE_IDENTITY) + if (eina_matrix3_type_get(m) == EINA_MATRIX_TYPE_IDENTITY) { evas_vec3_copy(out, v); return; @@ -367,7 +367,7 @@ evas_vec3_homogeneous_position_transform(Evas_Vec3 *out, const Evas_Vec3 *v, con { Evas_Vec3 tmp; - if (eina_matrix4_type_get(m) & EINA_MATRIX_TYPE_IDENTITY) + if (eina_matrix4_type_get(m) == EINA_MATRIX_TYPE_IDENTITY) { evas_vec3_copy(out, v); return; @@ -386,7 +386,7 @@ evas_vec3_homogeneous_direction_transform(Evas_Vec3 *out, const Evas_Vec3 *v, co { Evas_Vec3 tmp; - if (eina_matrix4_type_get(m) & EINA_MATRIX_TYPE_IDENTITY) + if (eina_matrix4_type_get(m) == EINA_MATRIX_TYPE_IDENTITY) { evas_vec3_copy(out, v); return; @@ -564,7 +564,7 @@ evas_vec4_transform(Evas_Vec4 *out, const Evas_Vec4 *v, const Eina_Matrix4 *m) { Evas_Vec4 tmp; - if (eina_matrix4_type_get(m) & EINA_MATRIX_TYPE_IDENTITY) + if (eina_matrix4_type_get(m) == EINA_MATRIX_TYPE_IDENTITY) { evas_vec4_copy(out, v); return; --
[EGIT] [core/efl] master 02/02: Evas: use LC_MESSAGES on Windows to fix compilation
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=db8d1883d75343bc58657e61b88314feed0393b0 commit db8d1883d75343bc58657e61b88314feed0393b0 Author: Vincent Torri Date: Fri Nov 27 18:47:12 2015 +0100 Evas: use LC_MESSAGES on Windows to fix compilation Compilation is broken on Windows because LC_MESSAGES does not exist on this platform Include Evil.h to provide support of LC_MESSAGES @fix --- src/lib/evas/common/language/evas_language_utils.c | 4 1 file changed, 4 insertions(+) diff --git a/src/lib/evas/common/language/evas_language_utils.c b/src/lib/evas/common/language/evas_language_utils.c index 737b510..19638d5 100644 --- a/src/lib/evas/common/language/evas_language_utils.c +++ b/src/lib/evas/common/language/evas_language_utils.c @@ -23,6 +23,10 @@ #include #include +#ifdef HAVE_EVIL +# include +#endif + #include #include "evas_language_utils.h" --
[EGIT] [core/elementary] master 01/03: test_access: correct argument order for calloc()
stefan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=23dc11debca551b35aabcb475420cd3e29df38e5 commit 23dc11debca551b35aabcb475420cd3e29df38e5 Author: Stefan SchmidtDate: Mon Nov 30 15:11:06 2015 +0100 test_access: correct argument order for calloc() calloc() expects count first and the actual size to allocate as second argument. Say Thank You to smatch for finding this issues for us. --- src/bin/test_access.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/test_access.c b/src/bin/test_access.c index ae567ca..80b8ea3 100644 --- a/src/bin/test_access.c +++ b/src/bin/test_access.c @@ -100,7 +100,7 @@ Evas_Object *gl_access_content_full_get(void *data EINA_UNUSED, Evas_Object *obj for (i = 0; i < 4; i++) { -Item_Data *id = calloc(sizeof(Item_Data), 1); +Item_Data *id = calloc(1, sizeof(Item_Data)); id->index = i; elm_gengrid_item_append(grid, gic, id, NULL, NULL); @@ -188,7 +188,7 @@ test_access(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in for (i = 1; i < 10; i++) { -Item_Data *id = calloc(sizeof(Item_Data), 1); +Item_Data *id = calloc(1, sizeof(Item_Data)); id->index = i; if (i % 4) --
[EGIT] [core/elementary] master 01/01: Entry: add markup cnp handlers
herdsman pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=e03e50b4c6b8bcc5d772fb1e5610a3808ba37151 commit e03e50b4c6b8bcc5d772fb1e5610a3808ba37151 Author: Daniel HirtDate: Mon Nov 30 15:29:06 2015 +0200 Entry: add markup cnp handlers In Elm_Cnp, a markup data preparer was missing, which resulted in _x11_notify_handler_targets not requesting "application/x-elementary-markup" (requested "UTF8_STRING" instead) when trying to paste markup text from one entry to another (or itself). Also, there was a missing handling in the selection data callback for ELM_SEL_FORMAT_MARKUP data format. This fixes issues like not being able to paste "item" formats to the entry widget. @fix --- src/lib/elm_cnp.c | 13 + src/lib/elm_entry.c | 4 2 files changed, 17 insertions(+) diff --git a/src/lib/elm_cnp.c b/src/lib/elm_cnp.c index fb3f2ae..0701057 100644 --- a/src/lib/elm_cnp.c +++ b/src/lib/elm_cnp.c @@ -218,6 +218,7 @@ static Eina_Bool _x11_vcard_send (char *target, void *data, i static Eina_Bool _x11_is_uri_type_data (X11_Cnp_Selection *sel EINA_UNUSED, Ecore_X_Event_Selection_Notify *notify); static Eina_Bool _x11_notify_handler_targets (X11_Cnp_Selection *sel, Ecore_X_Event_Selection_Notify *notify); static Eina_Bool _x11_data_preparer_text (Ecore_X_Event_Selection_Notify *notify, Elm_Selection_Data *ddata, Tmp_Info **tmp_info); +static Eina_Bool _x11_data_preparer_markup (Ecore_X_Event_Selection_Notify *notify, Elm_Selection_Data *ddata, Tmp_Info **tmp_info); static Eina_Bool _x11_data_preparer_image (Ecore_X_Event_Selection_Notify *notify, Elm_Selection_Data *ddata, Tmp_Info **tmp_info); static Eina_Bool _x11_data_preparer_uri (Ecore_X_Event_Selection_Notify *notify, Elm_Selection_Data *ddata, Tmp_Info **tmp_info); //static int_x11_notify_handler_html (X11_Cnp_Selection *sel, Ecore_X_Event_Selection_Notify *notify); @@ -451,6 +452,7 @@ static Cnp_Atom _atoms[CNP_N_ATOMS] = { .formats = ELM_SEL_FORMAT_MARKUP, #ifdef HAVE_ELEMENTARY_X .x_converter = _x11_general_converter, +.x_data_preparer = _x11_data_preparer_markup, #endif }, ARRAYINIT(CNP_ATOM_text_urilist) { @@ -956,6 +958,17 @@ _x11_data_preparer_text(Ecore_X_Event_Selection_Notify *notify, return EINA_TRUE; } +static Eina_Bool +_x11_data_preparer_markup(Ecore_X_Event_Selection_Notify *notify, + Elm_Selection_Data *ddata, Tmp_Info **tmp_info EINA_UNUSED) +{ + Ecore_X_Selection_Data *data = notify->data; + ddata->format = ELM_SEL_FORMAT_MARKUP; + ddata->data = eina_memdup(data->data, data->length, EINA_TRUE); + ddata->len = data->length; + return EINA_TRUE; +} + /** * So someone is pasting an image into my entry or widget... */ diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index 147a809..b20ed77 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c @@ -673,6 +673,10 @@ _selection_data_cb(void *data EINA_UNUSED, snprintf(entry_tag, len + 1, tag_string, buf); _edje_entry_user_insert(obj, entry_tag); } + else if (sel_data->format & ELM_SEL_FORMAT_MARKUP) + { +_edje_entry_user_insert(obj, buf); + } else { char *txt = _elm_util_text_to_mkup(buf); --
[EGIT] [core/elementary] master 01/01: elementary: Fix test_colorclass function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=110aa7768289d7a9cc4ddd7be0298c98451d3663 commit 110aa7768289d7a9cc4ddd7be0298c98451d3663 Author: Chris MichaelDate: Mon Nov 30 09:45:12 2015 -0500 elementary: Fix test_colorclass function The test_colorclass function (and prototype) were incorrect in that they did not have the proper function parameters defined. This lead to a warning when building elementary tests. @fix Signed-off-by: Chris Michael --- src/bin/test.c| 2 +- src/bin/test_colorclass.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/test.c b/src/bin/test.c index ddd1c4e..c1539d5 100644 --- a/src/bin/test.c +++ b/src/bin/test.c @@ -268,7 +268,7 @@ void test_win_dialog(void *data, Evas_Object *obj, void *event_info); void test_box_disable(void *data, Evas_Object *obj, void *event_info); void test_layout_disable(void *data, Evas_Object *obj, void *event_info); -void test_colorclass(void); +void test_colorclass(void *data, Evas_Object *obj, void *event_info); Evas_Object *win, *tbx; // TODO: refactoring void *tt; diff --git a/src/bin/test_colorclass.c b/src/bin/test_colorclass.c index d110d23..8764065 100644 --- a/src/bin/test_colorclass.c +++ b/src/bin/test_colorclass.c @@ -5,7 +5,7 @@ void -test_colorclass() +test_colorclass(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *cc; --
[EGIT] [core/elementary] master 02/03: atspi: correct argument order for calloc()
stefan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=0c02f97facf1aba977f197964ac95c6b55e7f417 commit 0c02f97facf1aba977f197964ac95c6b55e7f417 Author: Stefan SchmidtDate: Mon Nov 30 15:15:52 2015 +0100 atspi: correct argument order for calloc() calloc() expects count first and the actual size to allocate as second argument. Say Thank You to smatch for finding this issues for us. --- src/lib/elm_atspi_bridge.c | 4 ++-- src/lib/elm_interface_atspi_accessible.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c index 6b08728..f0eec7d 100644 --- a/src/lib/elm_atspi_bridge.c +++ b/src/lib/elm_atspi_bridge.c @@ -2476,7 +2476,7 @@ _collection_iter_match_rule_get(Eldbus_Message_Iter *iter, struct collection_mat const char *key, *value; if (eldbus_message_iter_arguments_get(iter_arg, "ss", , )) { - Elm_Atspi_Attribute *attrib = calloc(sizeof(Elm_Atspi_Attribute), 1); + Elm_Atspi_Attribute *attrib = calloc(1, sizeof(Elm_Atspi_Attribute)); attrib->key = eina_stringshare_add(key); attrib->value = eina_stringshare_add(value); rule->attributes = eina_list_append(rule->attributes, attrib); @@ -4471,7 +4471,7 @@ _key_event_info_new(int event_type, const Ecore_Event_Key *data, Eo *bridge) Key_Event_Info *ret; EINA_SAFETY_ON_NULL_RETURN_VAL(data, NULL); - ret = calloc(sizeof(Key_Event_Info), 1); + ret = calloc(1, sizeof(Key_Event_Info)); ret->type = event_type; ret->event = *data; diff --git a/src/lib/elm_interface_atspi_accessible.c b/src/lib/elm_interface_atspi_accessible.c index 3e3d8c1..2a38380 100644 --- a/src/lib/elm_interface_atspi_accessible.c +++ b/src/lib/elm_interface_atspi_accessible.c @@ -331,7 +331,7 @@ _elm_interface_atspi_accessible_event_emit(Eo *class EINA_UNUSED, void *pd EINA_ EOLIAN Elm_Atspi_Event_Handler * _elm_interface_atspi_accessible_event_handler_add(Eo *class EINA_UNUSED, void *pd EINA_UNUSED, Eo_Event_Cb cb, void *data) { - Elm_Atspi_Event_Handler *ret = calloc(sizeof(Elm_Atspi_Event_Handler), 1); + Elm_Atspi_Event_Handler *ret = calloc(1, sizeof(Elm_Atspi_Event_Handler)); ret->cb = cb; ret->data = data; @@ -380,7 +380,7 @@ elm_atspi_relation_free(Elm_Atspi_Relation *relation) EAPI Elm_Atspi_Relation * elm_atspi_relation_clone(const Elm_Atspi_Relation *relation) { - Elm_Atspi_Relation *ret = calloc(sizeof(Elm_Atspi_Relation), 1); + Elm_Atspi_Relation *ret = calloc(1, sizeof(Elm_Atspi_Relation)); if (!ret) return NULL; ret->type = relation->type; @@ -434,7 +434,7 @@ elm_atspi_relation_set_relation_append(Elm_Atspi_Relation_Set *set, Elm_Atspi_Re } } - rel = calloc(sizeof(Elm_Atspi_Relation), 1); + rel = calloc(1, sizeof(Elm_Atspi_Relation)); if (!rel) return EINA_FALSE; rel->type = type; --
[EGIT] [core/efl] master 02/02: emotion: correct argument order for calloc()
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=527ac119f1de21034e761b24923b0cb06d946649 commit 527ac119f1de21034e761b24923b0cb06d946649 Author: Stefan SchmidtDate: Mon Nov 30 16:23:00 2015 +0100 emotion: correct argument order for calloc() calloc() expects count first and the actual size to allocate as second argument. Say Thank You to smatch for finding this issues for us. --- src/modules/ethumb/emotion/emotion.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/ethumb/emotion/emotion.c b/src/modules/ethumb/emotion/emotion.c index 6134406..2247318 100644 --- a/src/modules/ethumb/emotion/emotion.c +++ b/src/modules/ethumb/emotion/emotion.c @@ -367,7 +367,7 @@ _thumb_generate(Ethumb *e) const char *file; Ethumb_Thumb_Format f; double dv; - struct _emotion_plugin *_plugin = calloc(sizeof(struct _emotion_plugin), 1); + struct _emotion_plugin *_plugin = calloc(1, sizeof(struct _emotion_plugin)); o = emotion_object_add(ethumb_evas_get(e)); r = emotion_object_init(o, NULL); --
[EGIT] [core/elementary] elementary-1.16 01/01: Entry: add markup cnp handlers
herdsman pushed a commit to branch elementary-1.16. http://git.enlightenment.org/core/elementary.git/commit/?id=90cc853ae6ff82e36422ba4240357a06a7bbce38 commit 90cc853ae6ff82e36422ba4240357a06a7bbce38 Author: Daniel HirtDate: Mon Nov 30 15:29:06 2015 +0200 Entry: add markup cnp handlers In Elm_Cnp, a markup data preparer was missing, which resulted in _x11_notify_handler_targets not requesting "application/x-elementary-markup" (requested "UTF8_STRING" instead) when trying to paste markup text from one entry to another (or itself). Also, there was a missing handling in the selection data callback for ELM_SEL_FORMAT_MARKUP data format. This fixes issues like not being able to paste "item" formats to the entry widget. @fix --- src/lib/elm_cnp.c | 13 + src/lib/elm_entry.c | 4 2 files changed, 17 insertions(+) diff --git a/src/lib/elm_cnp.c b/src/lib/elm_cnp.c index fb3f2ae..0701057 100644 --- a/src/lib/elm_cnp.c +++ b/src/lib/elm_cnp.c @@ -218,6 +218,7 @@ static Eina_Bool _x11_vcard_send (char *target, void *data, i static Eina_Bool _x11_is_uri_type_data (X11_Cnp_Selection *sel EINA_UNUSED, Ecore_X_Event_Selection_Notify *notify); static Eina_Bool _x11_notify_handler_targets (X11_Cnp_Selection *sel, Ecore_X_Event_Selection_Notify *notify); static Eina_Bool _x11_data_preparer_text (Ecore_X_Event_Selection_Notify *notify, Elm_Selection_Data *ddata, Tmp_Info **tmp_info); +static Eina_Bool _x11_data_preparer_markup (Ecore_X_Event_Selection_Notify *notify, Elm_Selection_Data *ddata, Tmp_Info **tmp_info); static Eina_Bool _x11_data_preparer_image (Ecore_X_Event_Selection_Notify *notify, Elm_Selection_Data *ddata, Tmp_Info **tmp_info); static Eina_Bool _x11_data_preparer_uri (Ecore_X_Event_Selection_Notify *notify, Elm_Selection_Data *ddata, Tmp_Info **tmp_info); //static int_x11_notify_handler_html (X11_Cnp_Selection *sel, Ecore_X_Event_Selection_Notify *notify); @@ -451,6 +452,7 @@ static Cnp_Atom _atoms[CNP_N_ATOMS] = { .formats = ELM_SEL_FORMAT_MARKUP, #ifdef HAVE_ELEMENTARY_X .x_converter = _x11_general_converter, +.x_data_preparer = _x11_data_preparer_markup, #endif }, ARRAYINIT(CNP_ATOM_text_urilist) { @@ -956,6 +958,17 @@ _x11_data_preparer_text(Ecore_X_Event_Selection_Notify *notify, return EINA_TRUE; } +static Eina_Bool +_x11_data_preparer_markup(Ecore_X_Event_Selection_Notify *notify, + Elm_Selection_Data *ddata, Tmp_Info **tmp_info EINA_UNUSED) +{ + Ecore_X_Selection_Data *data = notify->data; + ddata->format = ELM_SEL_FORMAT_MARKUP; + ddata->data = eina_memdup(data->data, data->length, EINA_TRUE); + ddata->len = data->length; + return EINA_TRUE; +} + /** * So someone is pasting an image into my entry or widget... */ diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index 5cf77a5..a8f263d 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c @@ -673,6 +673,10 @@ _selection_data_cb(void *data EINA_UNUSED, snprintf(entry_tag, len + 1, tag_string, buf); _edje_entry_user_insert(obj, entry_tag); } + else if (sel_data->format & ELM_SEL_FORMAT_MARKUP) + { +_edje_entry_user_insert(obj, buf); + } else { char *txt = _elm_util_text_to_mkup(buf); --
[EGIT] [core/efl] master 01/02: examples ecore_buffer: correct argument order for calloc()
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=384261978c47441f10f119f03fa78579866f5731 commit 384261978c47441f10f119f03fa78579866f5731 Author: Stefan SchmidtDate: Mon Nov 30 16:22:02 2015 +0100 examples ecore_buffer: correct argument order for calloc() calloc() expects count first and the actual size to allocate as second argument. Say Thank You to smatch for finding this issues for us. --- src/examples/ecore/ecore_buffer_consumer_example.c | 2 +- src/examples/ecore/ecore_buffer_provider_example.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/examples/ecore/ecore_buffer_consumer_example.c b/src/examples/ecore/ecore_buffer_consumer_example.c index 1363aa0..96f18a8 100644 --- a/src/examples/ecore/ecore_buffer_consumer_example.c +++ b/src/examples/ecore/ecore_buffer_consumer_example.c @@ -144,7 +144,7 @@ main(void) return -1; } - cd = (Consumer_Data *)calloc(sizeof(Consumer_Data), 1); + cd = (Consumer_Data *)calloc(1, sizeof(Consumer_Data)); if (!cd || !(cd->consumer = ecore_buffer_consumer_new(name, queue_size, WIDTH, HEIGHT))) { diff --git a/src/examples/ecore/ecore_buffer_provider_example.c b/src/examples/ecore/ecore_buffer_provider_example.c index 5d1d5b0..7b1d433 100644 --- a/src/examples/ecore/ecore_buffer_provider_example.c +++ b/src/examples/ecore/ecore_buffer_provider_example.c @@ -244,7 +244,7 @@ main(void) return -1; } - pd = (Provider_Data *)calloc(sizeof(Provider_Data), 1); + pd = (Provider_Data *)calloc(1, sizeof(Provider_Data)); if (!pd || !(pd->provider = ecore_buffer_provider_new(name))) { --
[EGIT] [core/efl] master 01/01: ecore-drm: Add logical pointer x, y variable in seat for reflecting multiple pointer's movement
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=21b1a3f221fb6bd477cfefbb9d0099717c13523d commit 21b1a3f221fb6bd477cfefbb9d0099717c13523d Author: Duna OhDate: Mon Nov 30 11:05:07 2015 -0500 ecore-drm: Add logical pointer x, y variable in seat for reflecting multiple pointer's movement Summary: When one pointer moves, we should update the position of other devices. Test Plan: (1) Two pointer devices are connected. (2) Move the cursor to (x, y) position using "device 1". (3) When you move the cursor using "device 2", the cursor doesn't start from (x, y) position. This causes discontinuous mouse motion. Reviewers: raster, zmike, gwanglim, stefan_schmidt, devilhorns, ManMower Reviewed By: devilhorns, ManMower Subscribers: cedric, Jeon, input.hacker, jpeg Differential Revision: https://phab.enlightenment.org/D3384 --- src/lib/ecore_drm/ecore_drm_device.c | 6 +-- src/lib/ecore_drm/ecore_drm_evdev.c | 86 +++ src/lib/ecore_drm/ecore_drm_private.h | 5 ++ 3 files changed, 56 insertions(+), 41 deletions(-) diff --git a/src/lib/ecore_drm/ecore_drm_device.c b/src/lib/ecore_drm/ecore_drm_device.c index 3e70d24..9d0442c 100644 --- a/src/lib/ecore_drm/ecore_drm_device.c +++ b/src/lib/ecore_drm/ecore_drm_device.c @@ -442,12 +442,12 @@ ecore_drm_device_pointer_xy_get(Ecore_Drm_Device *dev, int *x, int *y) { EINA_LIST_FOREACH(seat->devices, ll, edev) { - if (!libinput_device_has_capability(edev->device, + if (!libinput_device_has_capability(edev->device, LIBINPUT_DEVICE_CAP_POINTER)) continue; - if (x) *x = edev->mouse.dx; - if (y) *y = edev->mouse.dy; + if (x) *x = seat->ptr.dx; + if (y) *y = seat->ptr.dy; return; } diff --git a/src/lib/ecore_drm/ecore_drm_evdev.c b/src/lib/ecore_drm/ecore_drm_evdev.c index 69b398f..824fb09 100644 --- a/src/lib/ecore_drm/ecore_drm_evdev.c +++ b/src/lib/ecore_drm/ecore_drm_evdev.c @@ -80,8 +80,10 @@ _device_output_set(Ecore_Drm_Evdev *edev) if (libinput_device_has_capability(edev->device, LIBINPUT_DEVICE_CAP_POINTER)) { -edev->mouse.dx = edev->output->current_mode->width / 2; -edev->mouse.dy = edev->output->current_mode->height / 2; +edev->seat->ptr.ix = edev->seat->ptr.dx = edev->output->current_mode->width / 2; +edev->seat->ptr.iy = edev->seat->ptr.dy = edev->output->current_mode->height / 2; +edev->mouse.dx = edev->seat->ptr.dx; +edev->mouse.dy = edev->seat->ptr.dy; } } @@ -359,15 +361,18 @@ _device_pointer_motion(Ecore_Drm_Evdev *edev, struct libinput_event_pointer *eve if (!(ev = calloc(1, sizeof(Ecore_Event_Mouse_Move return; - if (edev->mouse.ix < edev->mouse.minx) - edev->mouse.dx = edev->mouse.ix = edev->mouse.minx; - else if (edev->mouse.ix >= (edev->mouse.minx + edev->mouse.maxw)) - edev->mouse.dx = edev->mouse.ix = (edev->mouse.minx + edev->mouse.maxw - 1); + if (edev->seat->ptr.ix < edev->mouse.minx) + edev->seat->ptr.dx = edev->seat->ptr.ix = edev->mouse.minx; + else if (edev->seat->ptr.ix >= (edev->mouse.minx + edev->mouse.maxw)) + edev->seat->ptr.dx = edev->seat->ptr.ix = (edev->mouse.minx + edev->mouse.maxw - 1); - if (edev->mouse.iy < edev->mouse.miny) - edev->mouse.dy = edev->mouse.iy = edev->mouse.miny; - else if (edev->mouse.iy >= (edev->mouse.miny + edev->mouse.maxh)) - edev->mouse.dy = edev->mouse.iy = (edev->mouse.miny + edev->mouse.maxh - 1); + if (edev->seat->ptr.iy < edev->mouse.miny) + edev->seat->ptr.dy = edev->seat->ptr.iy = edev->mouse.miny; + else if (edev->seat->ptr.iy >= (edev->mouse.miny + edev->mouse.maxh)) + edev->seat->ptr.dy = edev->seat->ptr.iy = (edev->mouse.miny + edev->mouse.maxh - 1); + + edev->mouse.dx = edev->seat->ptr.dx; + edev->mouse.dy = edev->seat->ptr.dy; ev->window = (Ecore_Window)input->dev->window; ev->event_window = (Ecore_Window)input->dev->window; @@ -378,8 +383,8 @@ _device_pointer_motion(Ecore_Drm_Evdev *edev, struct libinput_event_pointer *eve _device_modifiers_update(edev); ev->modifiers = edev->xkb.modifiers; - ev->x = edev->mouse.ix; - ev->y = edev->mouse.iy; + ev->x = edev->seat->ptr.ix; + ev->y = edev->seat->ptr.iy; ev->root.x = ev->x; ev->root.y = ev->y; @@ -404,14 +409,17 @@ _device_handle_pointer_motion(struct libinput_device *device, struct libinput_ev if (!(edev = libinput_device_get_user_data(device))) return; - edev->mouse.dx += libinput_event_pointer_get_dx(event); - edev->mouse.dy += libinput_event_pointer_get_dy(event); + edev->seat->ptr.dx += libinput_event_pointer_get_dx(event); + edev->seat->ptr.dy
[EGIT] [core/enlightenment] master 01/02: (1) e_config.c/e_comp_wl.c: add code for making repeat values configurable (2) e.src(s): add keyboard.repeat_delay, keyboard.repeat_rate into e.src files
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=6826608961a903dd7b117535bd16e8f83cfb26a0 commit 6826608961a903dd7b117535bd16e8f83cfb26a0 Author: Sung-Jin ParkDate: Mon Nov 30 14:05:10 2015 -0500 (1) e_config.c/e_comp_wl.c: add code for making repeat values configurable (2) e.src(s): add keyboard.repeat_delay, keyboard.repeat_rate into e.src files Summary: As of now, the default values of repeat delay/rate are being set in e_comp_wl.c. Those values need to be configurable and will be used in e_comp_wl_init(). The limit of each of the values is defined from -1 to 1000. (maximum 1s). If one of the two is negative, it means default repeat delay/rate are going to be used. (e.g. delay:400, rate:25) Test Plan: N/A Signed-off-by: Sung-Jin Park Reviewers: raster, stefan_schmidt, gwanglim, devilhorns, zmike Subscribers: Jeon, ohduna, cedric Differential Revision: https://phab.enlightenment.org/D3364 --- config/default/e.src | 2 ++ config/mobile/e.src | 2 ++ config/standard/e.src | 2 ++ config/tiling/e.src | 2 ++ src/bin/e_comp_wl.h | 2 ++ src/bin/e_comp_wl_input.c | 13 +++-- src/bin/e_config.c| 14 ++ src/bin/e_config.h| 10 -- 8 files changed, 43 insertions(+), 4 deletions(-) diff --git a/config/default/e.src b/config/default/e.src index db89920..b7cb835 100644 --- a/config/default/e.src +++ b/config/default/e.src @@ -215,6 +215,8 @@ group "E_Config" struct { value "update.later" uchar: 0; value "xkb.only_label" int: 0; value "xkb.default_model" string: "default"; + value "keyboard.repeat_delay" int: 400; + value "keyboard.repeat_rate" int: 25; value "exe_always_single_instance" uchar: 0; value "use_desktop_window_profile" int: 0; value "powersave.none" double: 0.25; diff --git a/config/mobile/e.src b/config/mobile/e.src index f4e6070..1431dde 100644 --- a/config/mobile/e.src +++ b/config/mobile/e.src @@ -865,6 +865,8 @@ group "E_Config" struct { } value "xkb.only_label" int: 0; value "xkb.default_model" string: "default"; +value "keyboard.repeat_delay" int: 400; +value "keyboard.repeat_rate" int: 25; value "exe_always_single_instance" uchar: 1; value "use_desktop_window_profile" int: 0; } diff --git a/config/standard/e.src b/config/standard/e.src index 585d3f0..b41057c 100644 --- a/config/standard/e.src +++ b/config/standard/e.src @@ -1106,6 +1106,8 @@ group "E_Config" struct { } value "xkb.only_label" int: 0; value "xkb.default_model" string: "default"; +value "keyboard.repeat_delay" int: 400; +value "keyboard.repeat_rate" int: 25; value "exe_always_single_instance" uchar: 0; value "use_desktop_window_profile" int: 0; } diff --git a/config/tiling/e.src b/config/tiling/e.src index 8bde334..afeac1f 100644 --- a/config/tiling/e.src +++ b/config/tiling/e.src @@ -1128,6 +1128,8 @@ group "E_Config" struct { } value "xkb.only_label" int: 0; value "xkb.default_model" string: "default"; +value "keyboard.repeat_delay" int: 400; +value "keyboard.repeat_rate" int: 25; value "exe_always_single_instance" uchar: 0; value "use_desktop_window_profile" int: 0; } diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index 7142f4d..dc268dc 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -155,6 +155,8 @@ struct _E_Comp_Wl_Data struct wl_array keys; struct wl_resource *focus; int mod_changed; +int repeat_delay; +int repeat_rate; } kbd; struct diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index 2793448..d27d72a 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -181,9 +181,9 @@ _e_comp_wl_input_cb_keyboard_get(struct wl_client *client, struct wl_resource *r e_comp->wl_comp_data, _e_comp_wl_input_cb_keyboard_unbind); - /* FIXME: These values should be configurable */ + /* send current repeat_info */ if (wl_resource_get_version(res) >= WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION) - wl_keyboard_send_repeat_info(res, 25, 400); + wl_keyboard_send_repeat_info(res, e_comp_wl->kbd.repeat_rate, e_comp_wl->kbd.repeat_delay); /* send current keymap */ wl_keyboard_send_keymap(res, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, @@ -419,6 +419,15 @@ e_comp_wl_input_init(void) e_comp_wl->xkb.fd = -1; + /* get default keyboard repeat rate/delay from configuration */ + e_comp_wl->kbd.repeat_delay = e_config->keyboard.repeat_delay; + e_comp_wl->kbd.repeat_rate = e_config->keyboard.repeat_rate; + + /* check for valid repeat_delay and repeat_rate value */ + /* if invalid, set the default value of repeat delay and rate value */ + if
[EGIT] [core/enlightenment] master 02/02: remove e_comp_wl struct keyboard repeat members
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e5e31a2501c12723bdd5fcf26e46e212a67abdb5 commit e5e31a2501c12723bdd5fcf26e46e212a67abdb5 Author: Mike BlumenkrantzDate: Mon Nov 30 14:12:27 2015 -0500 remove e_comp_wl struct keyboard repeat members duplicating these from e_config serves no purpose ref D3364 --- src/bin/e_comp_wl.h | 2 -- src/bin/e_comp_wl_input.c | 11 +-- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index dc268dc..7142f4d 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -155,8 +155,6 @@ struct _E_Comp_Wl_Data struct wl_array keys; struct wl_resource *focus; int mod_changed; -int repeat_delay; -int repeat_rate; } kbd; struct diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index d27d72a..7e8f2e9 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -183,7 +183,7 @@ _e_comp_wl_input_cb_keyboard_get(struct wl_client *client, struct wl_resource *r /* send current repeat_info */ if (wl_resource_get_version(res) >= WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION) - wl_keyboard_send_repeat_info(res, e_comp_wl->kbd.repeat_rate, e_comp_wl->kbd.repeat_delay); + wl_keyboard_send_repeat_info(res, e_config->keyboard.repeat_rate, e_config->keyboard.repeat_delay); /* send current keymap */ wl_keyboard_send_keymap(res, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, @@ -419,15 +419,6 @@ e_comp_wl_input_init(void) e_comp_wl->xkb.fd = -1; - /* get default keyboard repeat rate/delay from configuration */ - e_comp_wl->kbd.repeat_delay = e_config->keyboard.repeat_delay; - e_comp_wl->kbd.repeat_rate = e_config->keyboard.repeat_rate; - - /* check for valid repeat_delay and repeat_rate value */ - /* if invalid, set the default value of repeat delay and rate value */ - if (e_comp_wl->kbd.repeat_delay < 0) e_comp_wl->kbd.repeat_delay = 400; - if (e_comp_wl->kbd.repeat_rate < 0) e_comp_wl->kbd.repeat_rate = 25; - /* create the global resource for input seat */ e_comp_wl->seat.global = wl_global_create(e_comp_wl->wl.disp, _seat_interface, 4, --
[EGIT] [core/enlightenment] enlightenment-0.19 01/02: 19.14 release
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7eb415cc988a397842bdc80fe896c69a4fe16b83 commit 7eb415cc988a397842bdc80fe896c69a4fe16b83 Author: Mike BlumenkrantzDate: Mon Nov 30 14:10:46 2015 -0500 19.14 release --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 1ab2156..c9db47a 100644 --- a/configure.ac +++ b/configure.ac @@ -2,11 +2,11 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [0]) m4_define([v_min], [19]) -m4_define([v_mic], [13]) +m4_define([v_mic], [14]) m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl ##-- When released, remove the dnl on the below line m4_undefine([v_rev]) -m4_define([relname], [0.19.13]) +m4_define([relname], [0.19.14]) ##-- When doing snapshots - change soname. remove dnl on below line m4_define([relname], [ver-serious-0.19]) m4_define([v_rel], [-release relname]) --
[EGIT] [core/enlightenment] enlightenment-0.19 02/02: 19.14 NEWS updates
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d153532b4a5916284e500657078d5eefdaa2aae5 commit d153532b4a5916284e500657078d5eefdaa2aae5 Author: Mike BlumenkrantzDate: Mon Nov 30 14:11:38 2015 -0500 19.14 NEWS updates --- NEWS | 22 ++ 1 file changed, 22 insertions(+) diff --git a/NEWS b/NEWS index c1f1b0f..fcaa80f 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,25 @@ +Release 0.19.14: +- +Mike Blumenkrantz (14): + improve x11 client focusing with mouse-based focus policies on mouse move + do not add new deskmirror clients on desk_set event if client already exists + do not refill all tasks bars when a sticky window changes desks + update E_Client->desk member upon focusing a sticky client + further improve csd calculations for x11 clients + always create compositor mirror objects, ignore pixmap image state + block task gadget refills while a drag is active + Revert "e deskmirror - fix loss of mirror object from deskmirror" + ensure that a deskmirror object does not orphan child objects + avoid setting incorrect geometry during new_client frame calc + use CSD geometry during move/resize display + do not apply max client geometry restriction if max geometry is not set + allow more client hooks to bypass delete check + re-swallow bg_object after wallpaper transition has completed + +Stafford Horne (1): + e/core: Fix minor mem leak when reading module paths + + Release 0.19.13: - Carsten Haitzler (4): --
[EGIT] [core/enlightenment] annotated tag v0.19.14 created (now 87e2690)
This is an automated email from the git hooks/post-receive script. discomfitor pushed a change to annotated tag v0.19.14 in repository core/enlightenment. at 87e2690 (tag) tagging d153532b4a5916284e500657078d5eefdaa2aae5 (commit) replaces v0.19.12 tagged by Mike Blumenkrantz on Mon Nov 30 14:28:46 2015 -0500 - Log - 0.19.14 release Carsten Haitzler (4): e - ibar - fix clash when 2 icons of the same path get added somehow e exec tracker - fix tracking to update desktop files on efreet change ibar - fix shutdown if ibar client menu is up e deskmirror - fix loss of mirror object from deskmirror Mike Blumenkrantz (49): when removing VERTICAL maximize state, also remove LEFT and RIGHT states don't crash desktop gadget systrays when adjusting image sizing make wake-on-urgent apply for all cases of window urgency force full damage for first frame of x11 override clients subtract x11 client damage region even when forcing full override damage fix typo in previous damage rect commit do not return when x11 damage event returns no rects trap shaped x11 clients and prevent compositor blocking with high rect count reject deleted clients from x11 sync alarm event callback clear x11 client pixmap when returning from iconic force a software render in all cases when finalizing x11 client iconify update csd using deltas of previous values make comp config unresizable...again remove dead modules from whitelist only apply frame geometry deltas for CSD if the CSD region exists reject frame theme changes for clients which have CSD simplify client SMART/EXPAND maximize add native surface (gl) clients to post render list adjust efm multi-icon drag positioning by the current pan coords break out x11 client visibility setting into util functions move client iconic hint setting into x11 hide function emit ibox icon signals to the internal edje object of the e_icon add counter and smart callbacks for comp object visible mirrors add e_comp_object_mirror_visibility_check() toggle x11 client iconic/mapped state based on mirror visibility Revert "force a software render in all cases when finalizing x11 client iconify" disable client menu stacking functions for unstackable windows enforce fullscreen client stacking during nocomp end IFF client is fullscreen check client comp data existence in x11 mirror visibility callbacks use unsigned int for client focus tracking freeze state null efm icon eio handle in error callback 19.13 release 19.13 NEWS updates improve x11 client focusing with mouse-based focus policies on mouse move do not add new deskmirror clients on desk_set event if client already exists do not refill all tasks bars when a sticky window changes desks update E_Client->desk member upon focusing a sticky client further improve csd calculations for x11 clients always create compositor mirror objects, ignore pixmap image state block task gadget refills while a drag is active Revert "e deskmirror - fix loss of mirror object from deskmirror" ensure that a deskmirror object does not orphan child objects avoid setting incorrect geometry during new_client frame calc use CSD geometry during move/resize display do not apply max client geometry restriction if max geometry is not set allow more client hooks to bypass delete check re-swallow bg_object after wallpaper transition has completed 19.14 release 19.14 NEWS updates Stafford Horne (3): e/conf_apps: Fix resizing of "Startup Application" dialog e/ilist: Fix issue with multiselect returning wrong index e/core: Fix minor mem leak when reading module paths Thierry (1): mouse_config: fix accel threshold and numerator limits. shorne (1): e/win_config: allow content of some dialogs to resize with the window --- No new revisions were added by this update. --
[EGIT] [core/enlightenment] master 04/05: unset release mode
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=9c470f7a731a172828cfdfa31197076716a33e16 commit 9c470f7a731a172828cfdfa31197076716a33e16 Author: Mike BlumenkrantzDate: Mon Nov 30 15:42:20 2015 -0500 unset release mode feature freeze is over, have fun --- configure.ac | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index af7586e..6ab4e87 100644 --- a/configure.ac +++ b/configure.ac @@ -1,11 +1,11 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [0]) -m4_define([v_min], [20]) -m4_define([v_mic], [0]) +m4_define([v_min], [19]) +m4_define([v_mic], [99]) m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl ##-- When released, remove the dnl on the below line -m4_undefine([v_rev]) +dnl m4_undefine([v_rev]) m4_define([relname], [0.20.0]) ##-- When doing snapshots - change soname. remove dnl on below line m4_define([relname], [ver-autocannoli-0.20]) @@ -54,7 +54,7 @@ AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version]) AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version]) AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version]) AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison]) -AC_DEFINE_UNQUOTED(E_RELEASE_BUILD, [1], [doin it]) +##AC_DEFINE_UNQUOTED(E_RELEASE_BUILD, [1], [doin it]) version_info="lt_cur:lt_rev:lt_age" release_info="v_rel" AC_SUBST([version_info]) --
[EGIT] [core/enlightenment] master 03/05: 20.0 NEWS updates
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=09954da308036dee619c909876e2708e02a18d8d commit 09954da308036dee619c909876e2708e02a18d8d Author: Mike BlumenkrantzDate: Mon Nov 30 14:51:55 2015 -0500 20.0 NEWS updates --- NEWS | 64 +--- 1 file changed, 57 insertions(+), 7 deletions(-) diff --git a/NEWS b/NEWS index 366934d..d2835a7 100644 --- a/NEWS +++ b/NEWS @@ -52,7 +52,7 @@ Bryce Harrington (14): wayland: whitespace cleanup wayland: Free temporary string on error exit -Carsten Haitzler (114): +Carsten Haitzler (118): mixer: Optionally select an external mixer application. e backlight - limit min to 0.05 to avoid totally off backlight fix README to be more up to date @@ -167,6 +167,10 @@ Carsten Haitzler (114): ibar - fix shutdown if ibar client menu is up e deskmirror - fix loss of mirror object from deskmirror e screens/zones/randr - store randr2 id in xinerama and zones for lookup + e mixer fix - fix default mixer to pulse if there + e - fix compositor fade out ghosting + e msgbus - move almost all of core dbus methods to msgbus module + e - efm - rate limit dbus requests to open dirs or files to avoid dos Cedric BAIL (3): lokker: empty string should not be translated. @@ -179,7 +183,7 @@ Chidambar Zinnoury (4): e menus: Fix invalid comparisons. e fm: Use correct string length when copying path. -Christopher Michael (355): +Christopher Michael (357): bugfix: Fix e_msgbus file having missing initializers for Eldbus Messages & Signals bugfix: Fix e_notification file having missing initializers for Eldbus Messages & Signals bugfix: Cleanup appmenu module having missing field initializers for Eldbus Messages & Signals @@ -535,6 +539,8 @@ Christopher Michael (355): enlightenment: Use 'fabs' to compute absolute value of floating point types enlightenment: Make sure we have a zone before calling _bgpreview_viewport_update Fix e_menu trying to swallow an object from a different canvas + Fix formatting and remove extra blank line + Fix invalid compositor type check in e_dpms_force_update Conrad Meyer (4): Mixer Pulse: Fix trivial use-after-free. @@ -569,7 +575,7 @@ Dave Andreoli (3): Update gtk bookmarks to work with new gtk3 path Improve italian lang -Derek Foreman (31): +Derek Foreman (32): Conditionally ignore wayland cursor set events Provide wl_output interface to clients Provide wl_output events on hotplug @@ -601,6 +607,7 @@ Derek Foreman (31): wayland: Only send keyboard modifiers to focused resources wayland: Always add frame callbacks to current state on commit wayland: force wl surface frame callbacks on commit for undamaged surfaces + Stop using MIN macros when choosing versions for wayland resources Duna Oh (1): fix crash when activating menu that is not in range @@ -641,7 +648,8 @@ Jean-Philippe ANDRÉ (6): Jee-Yong Um (1): e_actions: Fix to parse syntax correctly in key binding settings -Kai Huuhko (1): +Kai Huuhko (2): + L10N: Update Finnish translations L10N: Update Finnish translations Leif Middelschulte (2): @@ -698,7 +706,7 @@ Massimo Maiurana (12): Updating italian translation Updating catalan translation -Mike Blumenkrantz (1041): +Mike Blumenkrantz (1074): unset release mode bump version Revert "mixer: Optionally select an external mixer application." @@ -1740,6 +1748,39 @@ Mike Blumenkrantz (1041): use unsigned int for client focus tracking freeze state ensure that all mixer volumes resolve to the appropriate gadget icon null efm icon eio handle in error callback + 20.0-rc release + 20.0-rc NEWS updates + unset release mode + install emixer icon to $(datadir)/pixmaps instead of /icons + improve readability of E_FIRST_FRAME environment variable detection + improve x11 client focusing with mouse-based focus policies on mouse move + do not add new deskmirror clients on desk_set event if client already exists + do not refill all tasks bars when a sticky window changes desks + update E_Client->desk member upon focusing a sticky client + further improve csd calculations for x11 clients + add safety checks to e_client_focus/raise_latest_set() fns + always create compositor mirror objects, ignore pixmap image state + block task gadget refills while a drag is active + Revert "e deskmirror - fix loss of mirror object from deskmirror" + ensure that a deskmirror object does not orphan child objects + always set wayland E_Client->redirected during client creation + ensure fwin efm delete callback does not trigger crash
[EGIT] [core/enlightenment] master 02/05: e20 release
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=15bf3f0439df1985b82386554c51a2fa567a5446 commit 15bf3f0439df1985b82386554c51a2fa567a5446 Author: Mike BlumenkrantzDate: Mon Nov 30 14:46:43 2015 -0500 e20 release --- configure.ac | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 6ab4e87..af7586e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,11 +1,11 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [0]) -m4_define([v_min], [19]) -m4_define([v_mic], [99]) +m4_define([v_min], [20]) +m4_define([v_mic], [0]) m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl ##-- When released, remove the dnl on the below line -dnl m4_undefine([v_rev]) +m4_undefine([v_rev]) m4_define([relname], [0.20.0]) ##-- When doing snapshots - change soname. remove dnl on below line m4_define([relname], [ver-autocannoli-0.20]) @@ -54,7 +54,7 @@ AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version]) AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version]) AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version]) AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison]) -##AC_DEFINE_UNQUOTED(E_RELEASE_BUILD, [1], [doin it]) +AC_DEFINE_UNQUOTED(E_RELEASE_BUILD, [1], [doin it]) version_info="lt_cur:lt_rev:lt_age" release_info="v_rel" AC_SUBST([version_info]) --
[EGIT] [core/enlightenment] master 01/05: add NEWS from 19.13-14 releases
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=302407e6b117453c5ce0f2657219a1f5071c2e7d commit 302407e6b117453c5ce0f2657219a1f5071c2e7d Author: Mike BlumenkrantzDate: Mon Nov 30 14:49:03 2015 -0500 add NEWS from 19.13-14 releases --- NEWS | 74 1 file changed, 74 insertions(+) diff --git a/NEWS b/NEWS index 0473178..366934d 100644 --- a/NEWS +++ b/NEWS @@ -1961,6 +1961,80 @@ vivek (3): wl_desktop_shell: Fixed the issue to check if wl surface is active or hung up +Release 0.19.14: +- +Mike Blumenkrantz (14): + improve x11 client focusing with mouse-based focus policies on mouse move + do not add new deskmirror clients on desk_set event if client already exists + do not refill all tasks bars when a sticky window changes desks + update E_Client->desk member upon focusing a sticky client + further improve csd calculations for x11 clients + always create compositor mirror objects, ignore pixmap image state + block task gadget refills while a drag is active + Revert "e deskmirror - fix loss of mirror object from deskmirror" + ensure that a deskmirror object does not orphan child objects + avoid setting incorrect geometry during new_client frame calc + use CSD geometry during move/resize display + do not apply max client geometry restriction if max geometry is not set + allow more client hooks to bypass delete check + re-swallow bg_object after wallpaper transition has completed + +Stafford Horne (1): + e/core: Fix minor mem leak when reading module paths + + +Release 0.19.13: +- +Carsten Haitzler (4): + e - ibar - fix clash when 2 icons of the same path get added somehow + e exec tracker - fix tracking to update desktop files on efreet change + ibar - fix shutdown if ibar client menu is up + e deskmirror - fix loss of mirror object from deskmirror + +Mike Blumenkrantz (31): + when removing VERTICAL maximize state, also remove LEFT and RIGHT states + don't crash desktop gadget systrays when adjusting image sizing + make wake-on-urgent apply for all cases of window urgency + force full damage for first frame of x11 override clients + subtract x11 client damage region even when forcing full override damage + fix typo in previous damage rect commit + do not return when x11 damage event returns no rects + trap shaped x11 clients and prevent compositor blocking with high rect count + reject deleted clients from x11 sync alarm event callback + clear x11 client pixmap when returning from iconic + force a software render in all cases when finalizing x11 client iconify + update csd using deltas of previous values + make comp config unresizable...again + remove dead modules from whitelist + only apply frame geometry deltas for CSD if the CSD region exists + reject frame theme changes for clients which have CSD + simplify client SMART/EXPAND maximize + add native surface (gl) clients to post render list + adjust efm multi-icon drag positioning by the current pan coords + break out x11 client visibility setting into util functions + move client iconic hint setting into x11 hide function + emit ibox icon signals to the internal edje object of the e_icon + add counter and smart callbacks for comp object visible mirrors + add e_comp_object_mirror_visibility_check() + toggle x11 client iconic/mapped state based on mirror visibility + Revert "force a software render in all cases when finalizing x11 client iconify" + disable client menu stacking functions for unstackable windows + enforce fullscreen client stacking during nocomp end IFF client is fullscreen + check client comp data existence in x11 mirror visibility callbacks + use unsigned int for client focus tracking freeze state + null efm icon eio handle in error callback + +Stafford Horne (2): + e/conf_apps: Fix resizing of "Startup Application" dialog + e/ilist: Fix issue with multiselect returning wrong index + +Thierry (1): + mouse_config: fix accel threshold and numerator limits. + +shorne (1): + e/win_config: allow content of some dialogs to resize with the window + + Release 0.19.12: - Amitesh Singh (1): --
[EGIT] [core/efl] master 08/09: efl: updated efl_gfx_shape_dup() implementation to use direct access to internal data.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e79dd4c1612b32428800b13b2b0385f1aec0312a commit e79dd4c1612b32428800b13b2b0385f1aec0312a Author: Subhransu MohantyDate: Wed Nov 18 15:27:59 2015 +0900 efl: updated efl_gfx_shape_dup() implementation to use direct access to internal data. As I don't see the use of inheritance for stroke anymore, we will use internal access rather than inherited get/set function. This behavior can be reverted if anyone find a real use case for it. Signed-off-by: Cedric BAIL --- src/lib/efl/interfaces/efl_gfx_shape.c | 74 +- 1 file changed, 29 insertions(+), 45 deletions(-) diff --git a/src/lib/efl/interfaces/efl_gfx_shape.c b/src/lib/efl/interfaces/efl_gfx_shape.c index e285e27..364bd44 100644 --- a/src/lib/efl/interfaces/efl_gfx_shape.c +++ b/src/lib/efl/interfaces/efl_gfx_shape.c @@ -434,51 +434,6 @@ _efl_gfx_shape_equal_commands(Eo *obj EINA_UNUSED, } static void -_efl_gfx_shape_dup(Eo *obj, Efl_Gfx_Shape_Data *pd, const Eo *dup_from) -{ - const Efl_Gfx_Dash *dash = NULL; - Efl_Gfx_Shape_Data *from; - Efl_Gfx_Fill_Rule fill_rule; - unsigned int dash_length = 0; - Efl_Gfx_Cap cap; - Efl_Gfx_Join j; - int sr, sg, sb, sa; - double scale, location; - double sw; - - if (obj == dup_from) return ; - from = eo_data_scope_get(dup_from, EFL_GFX_SHAPE_MIXIN); - if (!from) return ; - - eo_do(dup_from, - scale = efl_gfx_shape_stroke_scale_get(), - efl_gfx_shape_stroke_color_get(, , , ), - sw = efl_gfx_shape_stroke_width_get(), - location = efl_gfx_shape_stroke_location_get(), - efl_gfx_shape_stroke_dash_get(, _length), - cap = efl_gfx_shape_stroke_cap_get(), - j = efl_gfx_shape_stroke_join_get(), - fill_rule = efl_gfx_shape_fill_rule_get()); - eo_do(obj, - efl_gfx_shape_stroke_scale_set(scale), - efl_gfx_shape_stroke_color_set(sr, sg, sb, sa), - efl_gfx_shape_stroke_width_set(sw), - efl_gfx_shape_stroke_location_set(location), - efl_gfx_shape_stroke_dash_set(dash, dash_length), - efl_gfx_shape_stroke_cap_set(cap), - efl_gfx_shape_stroke_join_set(j), - efl_gfx_shape_fill_rule_set(fill_rule)); - - _efl_gfx_shape_path_set(obj, pd, from->commands, from->points); - - pd->convex = from->convex; - - eo_do(obj, - eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL), - eo_event_callback_call(EFL_GFX_CHANGED, NULL)); -} - -static void _efl_gfx_shape_reset(Eo *obj, Efl_Gfx_Shape_Data *pd) { free(pd->commands); @@ -1836,4 +1791,33 @@ _efl_gfx_shape_fill_rule_get(Eo *obj EINA_UNUSED, return pd->fill_rule; } +static void +_efl_gfx_shape_dup(Eo *obj, Efl_Gfx_Shape_Data *pd, const Eo *dup_from) +{ + Efl_Gfx_Shape_Data *from; + + if (obj == dup_from) return ; + from = eo_data_scope_get(dup_from, EFL_GFX_SHAPE_MIXIN); + if (!from) return ; + + pd->public.stroke.scale = from->public.stroke.scale; + pd->public.stroke.width = from->public.stroke.width; + pd->public.stroke.centered = from->public.stroke.centered; + pd->public.stroke.cap = from->public.stroke.cap; + pd->public.stroke.join = from->public.stroke.join; + pd->public.stroke.color.r = from->public.stroke.color.r; + pd->public.stroke.color.g = from->public.stroke.color.g; + pd->public.stroke.color.b = from->public.stroke.color.b; + pd->public.stroke.color.a = from->public.stroke.color.a; + pd->fill_rule = from->fill_rule; + pd->convex = from->convex; + + _efl_gfx_shape_stroke_dash_set(obj, pd, from->public.stroke.dash, from->public.stroke.dash_length); + _efl_gfx_shape_path_set(obj, pd, from->commands, from->points); + + eo_do(obj, + eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL), + eo_event_callback_call(EFL_GFX_CHANGED, NULL)); +} + #include "interfaces/efl_gfx_shape.eo.c" --
[EGIT] [core/efl] master 07/09: efl: add bookkeeping for convex shapes.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=71b2efe94d7973ec64e7ab56ec3ddbeb44842a52 commit 71b2efe94d7973ec64e7ab56ec3ddbeb44842a52 Author: Subhransu MohantyDate: Fri Nov 6 15:30:49 2015 +0900 efl: add bookkeeping for convex shapes. Signed-off-by: Cedric BAIL --- src/lib/efl/interfaces/efl_gfx_shape.c | 14 -- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lib/efl/interfaces/efl_gfx_shape.c b/src/lib/efl/interfaces/efl_gfx_shape.c index 212e25b..e285e27 100644 --- a/src/lib/efl/interfaces/efl_gfx_shape.c +++ b/src/lib/efl/interfaces/efl_gfx_shape.c @@ -25,6 +25,7 @@ struct _Efl_Gfx_Shape_Data unsigned int commands_count; unsigned int points_count; + Eina_Bool convex; }; static inline unsigned int @@ -93,7 +94,7 @@ efl_gfx_path_grow(Efl_Gfx_Path_Command command, cmd_tmp[cmd_length - 1] = command; // NULL terminate the stream cmd_tmp[cmd_length] = EFL_GFX_PATH_COMMAND_TYPE_END; - + pd->convex = EINA_FALSE; return EINA_TRUE; } @@ -470,6 +471,8 @@ _efl_gfx_shape_dup(Eo *obj, Efl_Gfx_Shape_Data *pd, const Eo *dup_from) _efl_gfx_shape_path_set(obj, pd, from->commands, from->points); + pd->convex = from->convex; + eo_do(obj, eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL), eo_event_callback_call(EFL_GFX_CHANGED, NULL)); @@ -490,7 +493,7 @@ _efl_gfx_shape_reset(Eo *obj, Efl_Gfx_Shape_Data *pd) pd->current.y = 0; pd->current_ctrl.x = 0; pd->current_ctrl.y = 0; - + pd->convex = EINA_FALSE; eo_do(obj, eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL), eo_event_callback_call(EFL_GFX_CHANGED, NULL)); @@ -1141,8 +1144,11 @@ static void _efl_gfx_shape_append_circle(Eo *obj, Efl_Gfx_Shape_Data *pd, double xc, double yc, double radius) { + Eina_Bool first = (pd->commands_count <= 0); _efl_gfx_shape_append_arc(obj, pd, xc - radius, yc - radius, 2*radius, 2*radius, 0, 360); _efl_gfx_shape_append_close(obj, pd); + //update convex flag + pd->convex = first; } static void @@ -1150,6 +1156,7 @@ _efl_gfx_shape_append_rect(Eo *obj, Efl_Gfx_Shape_Data *pd, double x, double y, double w, double h, double rx, double ry) { + Eina_Bool first = (pd->commands_count <= 0); // check for invalid rectangle if (w <=0 || h<= 0) return; @@ -1177,6 +1184,9 @@ _efl_gfx_shape_append_rect(Eo *obj, Efl_Gfx_Shape_Data *pd, _efl_gfx_shape_append_arc(obj, pd, x + w - rx, y, rx, ry, 0, 90); _efl_gfx_shape_append_arc(obj, pd, x, y, rx, ry, 90, 90); _efl_gfx_shape_append_close(obj, pd); + + //update convex flag + pd->convex = first; } static void --
[EGIT] [core/efl] master 01/09: eina: fix missing header
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b6a43da447876f9afb33e3d6fe51d49c810d869a commit b6a43da447876f9afb33e3d6fe51d49c810d869a Author: Jean Guyomarc'hDate: Fri Oct 16 15:14:22 2015 +0200 eina: fix missing header This caused functions from eina_util to be undefined at compile time. The compiler would make implicit casts of return values into ints, which had major side effects (e.g. segfault edje_cc) @fix Signed-off-by: Cedric BAIL --- src/lib/eina/eina_file_common.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/eina/eina_file_common.h b/src/lib/eina/eina_file_common.h index 3eb84ec..e8241d9 100644 --- a/src/lib/eina/eina_file_common.h +++ b/src/lib/eina/eina_file_common.h @@ -23,6 +23,7 @@ #include "eina_tmpstr.h" #include "eina_lock.h" #include "eina_list.h" +#include "eina_util.h" #define EINA_FILE_MAGIC 0xFEEDBEEF --
[EGIT] [core/efl] master 04/09: efl: add alternative append_arc implementation
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4a48a7e9eab5551f21c4832fd0a1bf2cfd7a8483 commit 4a48a7e9eab5551f21c4832fd0a1bf2cfd7a8483 Author: Subhransu MohantyDate: Thu Nov 5 19:29:55 2015 +0900 efl: add alternative append_arc implementation This allow to reduce the number of generated arc, but doesn't follow SVG specification. This is just used internally and can't be used by outside call. Signed-off-by: Cedric BAIL --- src/lib/efl/interfaces/efl_gfx_shape.c | 300 + 1 file changed, 300 insertions(+) diff --git a/src/lib/efl/interfaces/efl_gfx_shape.c b/src/lib/efl/interfaces/efl_gfx_shape.c index 8ffdb76..e4efcef 100644 --- a/src/lib/efl/interfaces/efl_gfx_shape.c +++ b/src/lib/efl/interfaces/efl_gfx_shape.c @@ -824,6 +824,306 @@ _efl_gfx_shape_append_arc_to(Eo *obj, Efl_Gfx_Shape_Data *pd, } } +// append arc implementation +typedef struct _Point +{ + double x; + double y; +} Point; + +inline static void +_bezier_coefficients(double t, double *ap, double *bp, double *cp, double *dp) +{ + double a,b,c,d; + double m_t = 1. - t; + + b = m_t * m_t; + c = t * t; + d = c * t; + a = b * m_t; + b *= 3. * t; + c *= 3. * m_t; + *ap = a; + *bp = b; + *cp = c; + *dp = d; +} + +#define PATH_KAPPA 0.5522847498 +static double +_efl_gfx_t_for_arc_angle(double angle) +{ + double radians, cos_angle, sin_angle, tc, ts, t; + + if (angle < 0.1) + return 0; + + if (angle == 90.0) + return 1; + + radians = M_PI * angle / 180; + cos_angle = cos(radians); + sin_angle = sin(radians); + + // initial guess + tc = angle / 90; + // do some iterations of newton's method to approximate cos_angle + // finds the zero of the function b.pointAt(tc).x() - cos_angle + tc -= 2-3*PATH_KAPPA) * tc + 3*(PATH_KAPPA-1)) * tc) * tc + 1 - cos_angle) // value + / (((6-9*PATH_KAPPA) * tc + 6*(PATH_KAPPA-1)) * tc); // derivative + tc -= 2-3*PATH_KAPPA) * tc + 3*(PATH_KAPPA-1)) * tc) * tc + 1 - cos_angle) // value + / (((6-9*PATH_KAPPA) * tc + 6*(PATH_KAPPA-1)) * tc); // derivative + + // initial guess + ts = tc; + // do some iterations of newton's method to approximate sin_angle + // finds the zero of the function b.pointAt(tc).y() - sin_angle + ts -= 3*PATH_KAPPA-2) * ts - 6*PATH_KAPPA + 3) * ts + 3*PATH_KAPPA) * ts - sin_angle) + / (((9*PATH_KAPPA-6) * ts + 12*PATH_KAPPA - 6) * ts + 3*PATH_KAPPA); + ts -= 3*PATH_KAPPA-2) * ts - 6*PATH_KAPPA + 3) * ts + 3*PATH_KAPPA) * ts - sin_angle) + / (((9*PATH_KAPPA-6) * ts + 12*PATH_KAPPA - 6) * ts + 3*PATH_KAPPA); + + // use the average of the t that best approximates cos_angle + // and the t that best approximates sin_angle + t = 0.5 * (tc + ts); + return t; +} + +static void +_find_ellipse_coords(double x, double y, double w, double h, double angle, double length, + Point* start_point, Point *end_point) +{ + int i, quadrant; + double theta, t, a, b, c, d, px, py, cx, cy; + double w2 = w / 2; + double h2 = h / 2; + double angles[2] = { angle, angle + length }; + Point *points[2]; + + if (!w || !h) + { +if (start_point) + start_point->x = 0 , start_point->y = 0; +if (end_point) + end_point->x = 0 , end_point->y = 0; +return; + } + + points[0] = start_point; + points[1] = end_point; + for (i = 0; i < 2; ++i) + { +if (!points[i]) + continue; + +theta = angles[i] - 360 * floor(angles[i] / 360); +t = theta / 90; +// truncate +quadrant = (int)t; +t -= quadrant; + +t = _efl_gfx_t_for_arc_angle(90 * t); + +// swap x and y? +if (quadrant & 1) + t = 1 - t; + +_bezier_coefficients(t, , , , ); +px = a + b + c*PATH_KAPPA; +py = d + c + b*PATH_KAPPA; + +// left quadrants +if (quadrant == 1 || quadrant == 2) + px = -px; + +// top quadrants +if (quadrant == 0 || quadrant == 1) + py = -py; +cx = x+w/2; +cy = y+h/2; +points[i]->x = cx + w2 * px; +points[i]->y = cy + h2 * py; + } +} + +// The return value is the starting point of the arc +static Point +_curves_for_arc(double x, double y, double w, double h, +double start_angle, double sweep_length, +Point *curves, int *point_count) +{ + int start_segment, end_segment, delta, i, j, end, quadrant; + double start_t, end_t; + Eina_Bool split_at_start, split_at_end; + Eina_Bezier b, res; + Point start_point, end_point; + double w2 = w / 2; + double w2k = w2 * PATH_KAPPA; + double h2 = h / 2; + double h2k = h2 * PATH_KAPPA; + + Point points[16] = + { + // start point + { x + w, y + h2 }, + + // 0 -> 270 degrees + { x + w, y + h2 + h2k }, + {
[EGIT] [core/efl] master 05/09: efl: update append_circle implementation to use _efl_gfx_shape_append_arc.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d5719aad9da4ba3d3495b9b6a56a7fb3b8389cb0 commit d5719aad9da4ba3d3495b9b6a56a7fb3b8389cb0 Author: Subhransu MohantyDate: Thu Nov 5 19:32:08 2015 +0900 efl: update append_circle implementation to use _efl_gfx_shape_append_arc. Signed-off-by: Cedric BAIL --- src/lib/efl/interfaces/efl_gfx_shape.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/lib/efl/interfaces/efl_gfx_shape.c b/src/lib/efl/interfaces/efl_gfx_shape.c index e4efcef..49b6e5f 100644 --- a/src/lib/efl/interfaces/efl_gfx_shape.c +++ b/src/lib/efl/interfaces/efl_gfx_shape.c @@ -1141,9 +1141,8 @@ static void _efl_gfx_shape_append_circle(Eo *obj, Efl_Gfx_Shape_Data *pd, double xc, double yc, double radius) { - _efl_gfx_shape_append_move_to(obj, pd, xc - radius, yc); - _efl_gfx_shape_append_arc_to(obj, pd, xc + radius, yc, radius, radius, 0, EINA_TRUE, EINA_TRUE); - _efl_gfx_shape_append_arc_to(obj, pd, xc - radius, yc, radius, radius, 0, EINA_TRUE, EINA_TRUE); + _efl_gfx_shape_append_arc(obj, pd, xc - radius, yc - radius, 2*radius, 2*radius, 0, 360); + _efl_gfx_shape_append_close(obj, pd); } static void --
[EGIT] [core/efl] master 03/09: eina: add new api eina_bezier_on_interval()
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8212f2aee3b15082294eaaa011ac943ba7c6a0b8 commit 8212f2aee3b15082294eaaa011ac943ba7c6a0b8 Author: Subhransu MohantyDate: Wed Nov 25 14:09:59 2015 +0900 eina: add new api eina_bezier_on_interval() I couldn't come up with a better name, if anyone has a suggestion. Signed-off-by: Cedric BAIL --- src/lib/eina/eina_bezier.c| 18 ++ src/lib/eina/eina_bezier.h| 13 + src/tests/eina/eina_test_bezier.c | 22 ++ 3 files changed, 53 insertions(+) diff --git a/src/lib/eina/eina_bezier.c b/src/lib/eina/eina_bezier.c index f07ca61..6494551 100644 --- a/src/lib/eina/eina_bezier.c +++ b/src/lib/eina/eina_bezier.c @@ -313,3 +313,21 @@ eina_bezier_bounds_get(const Eina_Bezier *b, double *x, double *y, double *w, do if (w) *w = xmax - xmin; if (h) *h = ymax - ymin; } + +EAPI void +eina_bezier_on_interval(Eina_Bezier *b, double t0, double t1, Eina_Bezier *result) +{ + Eina_Bezier bezier; + double t; + + if (t0 == 0 && t1 == 1) + { +*result = *b; +return; + } + + bezier = *b; + _eina_bezier_split_left(, t0, result); + t = (t1-t0)/(1-t0); + _eina_bezier_split_left(, t, result); +} diff --git a/src/lib/eina/eina_bezier.h b/src/lib/eina/eina_bezier.h index 407deb5..7fd0a79 100644 --- a/src/lib/eina/eina_bezier.h +++ b/src/lib/eina/eina_bezier.h @@ -157,4 +157,17 @@ EAPI void eina_bezier_split_at_length(const Eina_Bezier *b, double len, Eina_Bez */ EAPI void eina_bezier_bounds_get(const Eina_Bezier *b, double *x, double *y, double *w, double *h) EINA_ARG_NONNULL(1); +/** + * @brief find the bezier at given interval. + * + * @param b The floating point bezier. + * @param t0 The start interval. + * @param t1 The end interval. + * @param result The result bezier. + * + * @p b. No check is done on @p b. + * @since 1.16 + */ +EAPI void eina_bezier_on_interval(Eina_Bezier *b, double t0, double t1, Eina_Bezier *result); + #endif // EINA_BEZIER_H diff --git a/src/tests/eina/eina_test_bezier.c b/src/tests/eina/eina_test_bezier.c index fdfd9a3..a7a1598 100644 --- a/src/tests/eina/eina_test_bezier.c +++ b/src/tests/eina/eina_test_bezier.c @@ -195,6 +195,27 @@ START_TEST(eina_bezier_test_bounds_get) } END_TEST +START_TEST(eina_bezier_test_on_interval) +{ + Eina_Bezier b, res; + double px1, px2, py1, py2; + + eina_init(); + eina_bezier_values_set(, + 0, 0, + 10, 20, + 20, 90, + 30, 0); + eina_bezier_point_at(, 0.25, , ); + eina_bezier_on_interval(, 0.25, 0.5, ); + eina_bezier_point_at(, 0, , ); + + fail_if(px1 != px2 || py1 != py2); + + eina_shutdown(); +} +END_TEST + void eina_test_bezier(TCase *tc) { @@ -205,4 +226,5 @@ eina_test_bezier(TCase *tc) tcase_add_test(tc, eina_bezier_test_point_at); tcase_add_test(tc, eina_bezier_test_split_at_length); tcase_add_test(tc, eina_bezier_test_bounds_get); + tcase_add_test(tc, eina_bezier_test_on_interval); } --
[EGIT] [core/efl] master 06/09: efl: update append_rect implementation.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f6a1694181dccf03fa6d05bdf48bc4758179d84f commit f6a1694181dccf03fa6d05bdf48bc4758179d84f Author: Subhransu MohantyDate: Fri Nov 6 10:47:37 2015 +0900 efl: update append_rect implementation. This now generate more optimized path by reducing the use of arc and switching to only line whenever possible. Signed-off-by: Cedric BAIL --- src/lib/efl/interfaces/efl_gfx_shape.c | 42 +- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/src/lib/efl/interfaces/efl_gfx_shape.c b/src/lib/efl/interfaces/efl_gfx_shape.c index 49b6e5f..212e25b 100644 --- a/src/lib/efl/interfaces/efl_gfx_shape.c +++ b/src/lib/efl/interfaces/efl_gfx_shape.c @@ -1150,22 +1150,32 @@ _efl_gfx_shape_append_rect(Eo *obj, Efl_Gfx_Shape_Data *pd, double x, double y, double w, double h, double rx, double ry) { - // clamp the x and y radius value. - if (rx > w/2) rx = w/2; - if (ry > h/2) ry = h/2; - - _efl_gfx_shape_append_move_to(obj, pd, x, y + ry); - // Top left corner - _efl_gfx_shape_append_arc_to(obj, pd, x + rx, y, rx, ry, 0, EINA_FALSE, EINA_TRUE); - _efl_gfx_shape_append_line_to(obj, pd, x + w - rx, y); - // Top right corner - _efl_gfx_shape_append_arc_to(obj, pd, x + w, y + ry, rx, ry, 0, EINA_FALSE, EINA_TRUE); - _efl_gfx_shape_append_line_to(obj, pd, x + w, y + h - ry); - // Bottom right corner - _efl_gfx_shape_append_arc_to(obj, pd, x + w - rx, y + h, rx, ry, 0, EINA_FALSE, EINA_TRUE); - _efl_gfx_shape_append_line_to(obj, pd, x + rx, y + h); - // Bottom left corner - _efl_gfx_shape_append_arc_to(obj, pd, x, y + h - ry, rx, ry, 0, EINA_FALSE, EINA_TRUE); + // check for invalid rectangle + if (w <=0 || h<= 0) + return; + + if (rx <=0 || ry<=0) + { + // add a normal rect. + _efl_gfx_shape_append_move_to(obj, pd, x, y); + _efl_gfx_shape_append_line_to(obj, pd, x, y + h); + _efl_gfx_shape_append_line_to(obj, pd, x + w, y + h); + _efl_gfx_shape_append_line_to(obj, pd, x + w, y); + _efl_gfx_shape_append_close(obj, pd); + return; + } + + // clamp the rx and ry radius value. + rx = 2*rx; + ry = 2*ry; + if (rx > w) rx = w; + if (ry > h) ry = h; + + _efl_gfx_shape_append_move_to(obj, pd, x, y + h/2); + _efl_gfx_shape_append_arc(obj, pd, x, y + h - ry, rx, ry, 180, 90); + _efl_gfx_shape_append_arc(obj, pd, x + w - rx, y + h - ry, rx, ry, 270, 90); + _efl_gfx_shape_append_arc(obj, pd, x + w - rx, y, rx, ry, 0, 90); + _efl_gfx_shape_append_arc(obj, pd, x, y, rx, ry, 90, 90); _efl_gfx_shape_append_close(obj, pd); } --
[EGIT] [core/efl] master 02/09: eina: fix bad use of calloc.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=78eb21296c63ca5cda88fa36ba2266132cad8803 commit 78eb21296c63ca5cda88fa36ba2266132cad8803 Author: Cedric BAILDate: Mon Nov 30 14:10:35 2015 -0800 eina: fix bad use of calloc. --- src/lib/eina/eina_strbuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eina/eina_strbuf.c b/src/lib/eina/eina_strbuf.c index 1470805..81ab30a 100644 --- a/src/lib/eina/eina_strbuf.c +++ b/src/lib/eina/eina_strbuf.c @@ -213,7 +213,7 @@ eina_strbuf_substr_get(Eina_Strbuf *buf, size_t pos, size_t len) if ((!buf) || ((pos + len) > buf->len)) return NULL; - str = calloc(0, len + 1); + str = calloc(1, len + 1); strncpy(str,((char *)(buf->buf)) + pos, len); --
[EGIT] [core/efl] master 09/09: efl: change efl_gfx_shape_cubic_to() api signature to follow other API (cairo and freetype).
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=38902ef2919f0bc303e81081c5275412114fed8e commit 38902ef2919f0bc303e81081c5275412114fed8e Author: Subhransu MohantyDate: Mon Nov 23 10:43:46 2015 +0900 efl: change efl_gfx_shape_cubic_to() api signature to follow other API (cairo and freetype). Signed-off-by: Cedric BAIL --- src/examples/evas/evas-vg-simple.c | 4 +-- src/lib/ector/cairo/ector_renderer_cairo_shape.c | 8 ++--- .../ector/software/ector_renderer_software_shape.c | 9 ++--- src/lib/efl/interfaces/efl_gfx_shape.c | 40 +++--- src/lib/efl/interfaces/efl_gfx_shape.eo| 4 +-- 5 files changed, 30 insertions(+), 35 deletions(-) diff --git a/src/examples/evas/evas-vg-simple.c b/src/examples/evas/evas-vg-simple.c index 96afcb1..17416eb 100644 --- a/src/examples/evas/evas-vg-simple.c +++ b/src/examples/evas/evas-vg-simple.c @@ -370,9 +370,9 @@ void _arcto(Efl_VG *obj, int x, int y, int width, int height, int startAngle, in for (i = 0; i < point_count; i += 3) { evas_vg_shape_shape_append_cubic_to(obj, - pts[i+2].x, pts[i+2].y, pts[i].x, pts[i].y, - pts[i+1].x, pts[i+1].y); + pts[i+1].x, pts[i+1].y, + pts[i+2].x, pts[i+2].y); } evas_vg_shape_shape_append_close(obj); } diff --git a/src/lib/ector/cairo/ector_renderer_cairo_shape.c b/src/lib/ector/cairo/ector_renderer_cairo_shape.c index a174cd1..aafec7b 100644 --- a/src/lib/ector/cairo/ector_renderer_cairo_shape.c +++ b/src/lib/ector/cairo/ector_renderer_cairo_shape.c @@ -130,12 +130,10 @@ _ector_renderer_cairo_shape_ector_renderer_generic_base_prepare(Eo *obj, Ector_R pts += 2; break; case EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO: - // Be careful, we do have a different order than - // cairo, first is destination point, followed by - // the control point. The opposite of cairo. + cairo_curve_to(pd->parent->cairo, - pts[2], pts[3], pts[4], pts[5], // control points - pts[0], pts[1]); // destination point + pts[0], pts[1], pts[2], pts[3], // control points + pts[4], pts[5]); // destination point pts += 6; break; diff --git a/src/lib/ector/software/ector_renderer_software_shape.c b/src/lib/ector/software/ector_renderer_software_shape.c index a9a8c95..2d4947e 100644 --- a/src/lib/ector/software/ector_renderer_software_shape.c +++ b/src/lib/ector/software/ector_renderer_software_shape.c @@ -224,12 +224,9 @@ _generate_outline(const Efl_Gfx_Path_Command *cmds, const double *pts, Outline * break; case EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO: - // Be careful, we do have a different order than - // freetype first is destination point, followed by - // the control point. The opposite of cairo. _outline_cubic_to(outline, - pts[2], pts[3], pts[4], pts[5], // control points - pts[0], pts[1]); // destination point + pts[0], pts[1], pts[2], pts[3], // control points + pts[4], pts[5]); // destination point pts += 6; break; @@ -474,7 +471,7 @@ _generate_dashed_outline(const Efl_Gfx_Path_Command *cmds, const double *pts, Ou pts += 2; break; case EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO: - _dasher_cubic_to(, pts[2], pts[3], pts[4], pts[5], pts[0], pts[1]); + _dasher_cubic_to(, pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]); pts += 6; break; diff --git a/src/lib/efl/interfaces/efl_gfx_shape.c b/src/lib/efl/interfaces/efl_gfx_shape.c index 364bd44..9fe4d9e 100644 --- a/src/lib/efl/interfaces/efl_gfx_shape.c +++ b/src/lib/efl/interfaces/efl_gfx_shape.c @@ -498,9 +498,9 @@ _efl_gfx_shape_append_line_to(Eo *obj, Efl_Gfx_Shape_Data *pd, static void _efl_gfx_shape_append_cubic_to(Eo *obj, Efl_Gfx_Shape_Data *pd, - double x, double y, double ctrl_x0, double ctrl_y0, - double ctrl_x1, double ctrl_y1) + double ctrl_x1, double ctrl_y1, + double x, double y) { double *offset_point; @@ -508,12 +508,12 @@ _efl_gfx_shape_append_cubic_to(Eo *obj,
[EGIT] [core/efl] master 01/01: Evil: fix warning
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0a44c3f78b0950d8363465bb0d487ea17ee043b7 commit 0a44c3f78b0950d8363465bb0d487ea17ee043b7 Author: Vincent Torri Date: Fri Nov 27 18:48:55 2015 +0100 Evil: fix warning Use the USERPROFILE environment variable instead of deprecated evil_homedir_get function. Also set the shell to cmd.exe if the SHELL var is not found --- src/lib/evil/evil_pwd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/evil/evil_pwd.c b/src/lib/evil/evil_pwd.c index 5b323f4..f53b1d8 100644 --- a/src/lib/evil/evil_pwd.c +++ b/src/lib/evil/evil_pwd.c @@ -57,10 +57,10 @@ getpwnam(const char *n) pw.pw_name = user_name; snprintf(user_gecos, sizeof(user_gecos), "%s,,,", user_name); pw.pw_gecos = user_gecos; - pw.pw_dir = (char *)evil_homedir_get(); + pw.pw_dir = getenv("USERPROFILE"); pw.pw_shell = getenv("SHELL"); if (!pw.pw_shell) - pw.pw_shell = "sh"; + pw.pw_shell = "cmd.exe"; return } --
[EGIT] [core/efl] master 01/01: eolian: fix eo makefile example of --eo option.
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0d1c1d5ad6e6e7f60512677bb80b74efb05973b6 commit 0d1c1d5ad6e6e7f60512677bb80b74efb05973b6 Author: JinsolParkDate: Mon Nov 30 10:37:10 2015 + eolian: fix eo makefile example of --eo option. Summary: eolian: fix eo makefile example of --eo option. Reviewers: cedric, q66 Reviewed By: q66 Subscribers: jpeg, q66 Differential Revision: https://phab.enlightenment.org/D3389 --- src/examples/eolian_cxx/Makefile.examples | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/examples/eolian_cxx/Makefile.examples b/src/examples/eolian_cxx/Makefile.examples index 7577932..d3a29a3 100644 --- a/src/examples/eolian_cxx/Makefile.examples +++ b/src/examples/eolian_cxx/Makefile.examples @@ -28,10 +28,10 @@ all: $(OBJS) examples codegen: $(EOLIAN_CXX) $(EOLIAN_FLAGS) -I./colourable.eo -o colourable.eo.hh $(EOLIAN_CXX) $(EOLIAN_FLAGS) -I./colourablesquare.eo -o colourablesquare.eo.hh - $(EOLIAN_GEN) --eo --legacy $(EOLIAN_FLAGS) --gc -o colourable.eo.c colourable.eo - $(EOLIAN_GEN) --eo --legacy $(EOLIAN_FLAGS) --gc -o colourablesquare.eo.c colourablesquare.eo - $(EOLIAN_GEN) --eo $(EOLIAN_FLAGS) --gh -o colourable.eo.h colourable.eo - $(EOLIAN_GEN) --eo $(EOLIAN_FLAGS) --gh -o colourablesquare.eo.h colourablesquare.eo + $(EOLIAN_GEN) --legacy $(EOLIAN_FLAGS) --gc -o colourable.eo.c colourable.eo + $(EOLIAN_GEN) --legacy $(EOLIAN_FLAGS) --gc -o colourablesquare.eo.c colourablesquare.eo + $(EOLIAN_GEN) $(EOLIAN_FLAGS) --gh -o colourable.eo.h colourable.eo + $(EOLIAN_GEN) $(EOLIAN_FLAGS) --gh -o colourablesquare.eo.h colourablesquare.eo $(OBJS): codegen $(CC) -c colourable.c $(COMMON_FLAGS) --
[EGIT] [core/efl] master 01/01: evas-3d: Fix missing field initializers
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=886c20a43b75256f7895328af2edf40c284f0b4f commit 886c20a43b75256f7895328af2edf40c284f0b4f Author: Chris MichaelDate: Mon Nov 30 09:15:53 2015 -0500 evas-3d: Fix missing field initializers Clang spits warnings here about missing field initializers for Evas_Vec3 (missing y and z fields), so we will explicitly initialize them to 0 (matching the x field). @fix Signed-off-by: Chris Michael --- src/lib/evas/include/evas_3d_utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/include/evas_3d_utils.h b/src/lib/evas/include/evas_3d_utils.h index c29f24f..10192cc 100644 --- a/src/lib/evas/include/evas_3d_utils.h +++ b/src/lib/evas/include/evas_3d_utils.h @@ -1578,7 +1578,7 @@ convex_hull_vertex_set(Evas_Triangle3 *el, unsigned short int *vertex_count, flo unsigned short int **index, unsigned int k, int *leader, int coord) { int color_coords, normal_coords; - Evas_Vec3 vect = {0}; + Evas_Vec3 vect = {0, 0, 0}; switch (coord) { case 0: --