[EGIT] [website/www-content] master 01/01: Wiki page docs changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=1505bca6bf3ccd31ce095c614b490cff8dc8b4f5 commit 1505bca6bf3ccd31ce095c614b490cff8dc8b4f5 Author: Raster Date: Mon Jun 22 22:48:57 2015 -0700 Wiki page docs changed with summary [] by Raster --- pages/docs.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/docs.txt b/pages/docs.txt index c88d985..e69cdd8 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -11,7 +11,7 @@ course you can use stable packages for your distribution as well. === Getting EFL === * [[docs-efl-start|Get EFL installed from source]] - * [[distros/ubuntu-start|EFL on Ubuntu (packages and source)]] + * [[distros/ubuntu-start|EFL on Ubuntu]] * [[distros/archlinux-start|EFL on Arch Linux]] * [[distros/debian-start|EFL on Debian]] * [[distros/fedora-start|EFL on Fedora]] --
[EGIT] [website/www-content] master 01/01: Wiki page apps_efl_debugging changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=22e9715054895080aa5ece2b7004cfd57f9a4d61 commit 22e9715054895080aa5ece2b7004cfd57f9a4d61 Author: Raster Date: Mon Jun 22 22:42:17 2015 -0700 Wiki page apps_efl_debugging changed with summary [] by Raster --- pages/debugging/apps_efl_debugging.txt | 476 ++--- 1 file changed, 205 insertions(+), 271 deletions(-) diff --git a/pages/debugging/apps_efl_debugging.txt b/pages/debugging/apps_efl_debugging.txt index 413b031..a3158db 100644 --- a/pages/debugging/apps_efl_debugging.txt +++ b/pages/debugging/apps_efl_debugging.txt @@ -1,51 +1,46 @@ ~~Title: Apps debugging~~ EFL application debugging -This tutorial goal is to help you debug your EFL applications with several -use cases that you can reproduce. -It gives you approaches to know if the bug comes from your application or -from EFL libraries. +> //Please also see [[docs-efl-debug]]. This should probably be merged with this page.// -Then, if you are sure the bug does not come from your -application, you can [[/debugging/report_bugs|report a bug]]. +This tutorial's goal is to help you debug your EFL applications with several use cases that you can reproduce. It gives you approaches to know if the bug comes from your application or from the EFL libraries. + +Then, if you are sure the bug does not come from your application, you can [[/debugging/report_bugs|report a bug]]. + +In this tutorial we'll cover log levels and tracing the sources of bugs: -In this tutorial, log level and 4 use cases will be studied: - [[apps_efl_debugging#Log level]] - [[apps_efl_debugging#Wrong function on an object]] - [[apps_efl_debugging#Segfault in callback function]] - [[apps_efl_debugging#Memory leak]] - [[apps_efl_debugging#Clouseau]] -Before debugging, make sure your debug symbols are enabled. If not, go to the -[[/docs-efl-start#Enable_debug_symbols_Optional|Enable debug symbols]] -section. +Before debugging, make sure your debug symbols are enabled. If not, go to the [[/docs-efl-start#Enable_debug_symbols_Optional|Enable debug symbols]] section. -You can also have a look at the -[[https://phab.enlightenment.org/w/coding_convention/|EFL coding convention]]. +You can also have a look at the [[https://phab.enlightenment.org/w/coding_convention/|EFL coding convention]] if you modify code and want to send patches. === Log level === -The Eina log module provides log level traces, there are 5 debugging levels -with their respective macros: +The Eina log module provides log level traces, there are 5 debugging levels with their respective macros: -- Critical log level: EINA_LOG_LEVEL_CRITICAL() -- Error log level: EINA_LOG_ERR() -- Warning log level:EINA_LOG_WARN() -- Info log level: EINA_LOG_INFO() -- Debug log level: EINA_LOG_DBG() +^Level^Macro ^ +|Critical |EINA_LOG_LEVEL_CRITICAL() | +|Error|EINA_LOG_ERR()| +|Warning |EINA_LOG_WARN() | +|Info |EINA_LOG_INFO() | +|Debug|EINA_LOG_DBG()| -Global log level can be set with the EINA_LOG_LEVEL environment variable. +Global log level can be set with the ''EINA_LOG_LEVEL'' environment variable. -#debug log level +# Debug log level EINA_LOG_LEVEL=5 ./my_test_efl -The EINA_LOG_LEVELS variable provide a way to activate logs only for specific -modules. +The ''EINA_LOG_LEVELS'' variable provide a way to activate logs only for specific modules. -#it will set respectively module1 and module2 level to 5 and to 2 +# This will set module1 and module2 respectively to log level 5 and 2 EINA_LOG_LEVELS=module1:5,module2:2 ./my_test_efl @@ -53,57 +48,47 @@ EINA_LOG_LEVELS=module1:5,module2:2 ./my_test_efl === Wrong function on an object === -The code below creates 3 Elementary objects: win, box and btn. It displays a -window with an //OK// button that closes the window when it is clicked. -Here, the //elm_box_pack_end()// function is called on a wrong object (win) -which generates an error: +The code below creates 3 Elementary objects: win, box and btn. It displays a window with an //OK// button that closes the window when it is clicked. Here, the //elm_box_pack_end()// function is called on a wrong object (win) which generates an error: -//hello.c #include -static void + +static void on_done(void *data, Evas_Object *obj, void *event_info) { -// quit the mainloop (elm_run function will return) -elm_exit(); + // quit the mainloop (elm_run function will return) + elm_exit(); } -EAPI_MAIN int +EAPI_MAIN int elm_main(int argc, char **argv) { -Evas_Object *win, *box, *btn; - -// new window -win = elm_win_util_standard_add("hello", "Hello"); - -// add a box object -box = elm_box_add(win); - -// add obje
[EGIT] [tools/enventor] master 01/01: config: store/recover the editor panes position.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=802d68ff833a32cfdd6521396772c1354f5f5ef8 commit 802d68ff833a32cfdd6521396772c1354f5f5ef8 Author: ChunEon Park Date: Tue Jun 23 14:39:48 2015 +0900 config: store/recover the editor panes position. --- src/bin/config_data.c | 21 +++-- src/bin/panes.c | 6 -- src/include/common.h | 2 +- src/include/config_data.h | 2 ++ src/include/panes.h | 2 ++ 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/bin/config_data.c b/src/bin/config_data.c index 2a3d7ad..c7ce95c 100644 --- a/src/bin/config_data.c +++ b/src/bin/config_data.c @@ -21,6 +21,7 @@ typedef struct config_s unsigned int version; float font_scale; double view_scale; + double editor_size; double console_size; void (*update_cb)(void *data); @@ -151,8 +152,9 @@ config_load(void) cd->edc_snd_path_list = NULL; cd->edc_fnt_path_list = NULL; cd->edc_dat_path_list = NULL; -cd->font_scale = 1.0f; +cd->font_scale = 1; cd->view_scale = 1; +cd->editor_size = DEFAULT_EDITOR_SIZE; cd->console_size = DEFAULT_CONSOLE_SIZE; cd->stats_bar = EINA_TRUE; cd->linenumber = EINA_TRUE; @@ -237,6 +239,8 @@ eddc_init(void) EET_T_FLOAT); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "view_scale", view_scale, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "editor_size", + editor_size, EET_T_DOUBLE); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "console_size", console_size, EET_T_DOUBLE); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "view_size_w", @@ -301,7 +305,6 @@ config_init(const char *edc_path, const char *edj_path, if (edc_dat_path) g_cd->edc_dat_path_list = edc_dat_path; - } void @@ -784,6 +787,20 @@ config_view_size_configurable_get(void) } double +config_editor_size_get(void) +{ + config_data *cd = g_cd; + return cd->editor_size; +} + +void +config_editor_size_set(double size) +{ + config_data *cd = g_cd; + cd->editor_size = size; +} + +double config_console_size_get(void) { config_data *cd = g_cd; diff --git a/src/bin/panes.c b/src/bin/panes.c index 138de8f..59e9c3b 100644 --- a/src/bin/panes.c +++ b/src/bin/panes.c @@ -87,6 +87,7 @@ h_unpress_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) panes_data *pd = data; double size = elm_panes_content_right_size_get(obj); if (pd->horiz.last_size[0] != size) pd->horiz.last_size[1] = size; +config_editor_size_set(size); } static void @@ -309,9 +310,10 @@ panes_init(Evas_Object *parent) pd->horiz.obj = panes_h; pd->horiz.state = PANES_SPLIT_VIEW; - pd->horiz.last_size[0] = 0.5; - pd->horiz.last_size[1] = 0.5; + pd->horiz.last_size[0] = config_editor_size_get(); + pd->horiz.last_size[1] = config_editor_size_get(); + elm_panes_content_right_size_set(panes_h, config_editor_size_get()); elm_panes_content_right_size_set(panes_v, config_console_size_get()); return panes_v; diff --git a/src/include/common.h b/src/include/common.h index 9f38c36..0217277 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -55,7 +55,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" #define REL2_X 0.75f #define REL2_Y 0.75f -#define ENVENTOR_CONFIG_VERSION 1 +#define ENVENTOR_CONFIG_VERSION 2 #define ENVENTOR_BETA_API_SUPPORT 1 #include diff --git a/src/include/config_data.h b/src/include/config_data.h index bd984ce..dc236d6 100644 --- a/src/include/config_data.h +++ b/src/include/config_data.h @@ -53,6 +53,8 @@ void config_config_set(Eina_Bool enabled); double config_console_size_get(void); void config_console_size_set(double size); Eina_Bool config_console_get(void); +void config_editor_size_set(double size); +double config_editor_size_get(void); void config_console_set(Eina_Bool enabled); void config_win_size_get(Evas_Coord *w, Evas_Coord *h); void config_win_size_set(Evas_Coord w, Evas_Coord h); diff --git a/src/include/panes.h b/src/include/panes.h index 7e6e706..b9f2e6f 100644 --- a/src/include/panes.h +++ b/src/include/panes.h @@ -1,3 +1,5 @@ +#define DEFAULT_EDITOR_SIZE 0.5 + Evas_Object *panes_init(Evas_Object *parent); void panes_term(void); void panes_text_editor_full_view(void); --
[EGIT] [tools/enventor] master 01/01: live_edit: support zoom on live editing.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=9dd9e0d9ebc59c562b7a866566b1686bf7082e04 commit 9dd9e0d9ebc59c562b7a866566b1686bf7082e04 Author: ChunEon Park Date: Tue Jun 23 13:14:11 2015 +0900 live_edit: support zoom on live editing. previously, it doesn't care the view zooming on live editing. now it's working perfectly. --- src/bin/live_edit.c | 57 + src/bin/main.c | 3 +++ src/include/live_edit.h | 1 + 3 files changed, 43 insertions(+), 18 deletions(-) diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c index f25a3e6..7b0848a 100644 --- a/src/bin/live_edit.c +++ b/src/bin/live_edit.c @@ -69,7 +69,7 @@ typedef struct live_editor_s Eina_Bool on : 1; } live_data; -static void live_edit_update(live_data *ld); +static void live_edit_update_internal(live_data *ld); static const ctxpopup_it_data CTXPOPUP_ITEMS[] = { @@ -90,8 +90,7 @@ info_text_update(live_data *ld) char buf[256]; Evas_Coord lx, ly, lw, lh; - evas_object_geometry_get(ld->live_view, &lx, &ly, NULL, NULL); - config_view_size_get(&lw, &lh); + evas_object_geometry_get(ld->live_view, &lx, &ly, &lw, &lh); //Rel1 snprintf(buf, sizeof(buf), "%.2f %.2f (%d, %d)", @@ -561,7 +560,7 @@ cp_mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) case Ctrl_Pt_Cnt: //for avoiding compiler warning. break; } - live_edit_update(ld); + live_edit_update_internal(ld); } static void @@ -616,6 +615,7 @@ ctrl_pt_init(live_data *ld) for (i = 0; i < Ctrl_Pt_Cnt; i++) { Evas_Object *layout = elm_layout_add(ld->layout); +evas_object_smart_member_add(layout, ld->layout); elm_layout_file_set(layout, EDJE_PATH, "ctrl_pt"); evas_object_resize(layout, ctrl_size, ctrl_size); evas_object_show(layout); @@ -651,22 +651,28 @@ static void layout_update(live_data *ld) { Evas_Coord x, y, w, h; + Evas_Coord scaled_w, scaled_h; evas_object_geometry_get(ld->live_view, &x, &y, NULL, NULL); config_view_size_get(&w, &h); + scaled_w = (w * config_view_scale_get()); + scaled_h = (h * config_view_scale_get()); + + Evas_Coord x2 = round(((double) scaled_w) * ld->part_info.rel1_x); + Evas_Coord y2 = round(((double) scaled_h) * ld->part_info.rel1_y); - Evas_Coord x2 = round(((double) w) * ld->part_info.rel1_x); - Evas_Coord y2 = round(((double) h) * ld->part_info.rel1_y); - evas_object_move(ld->layout, (x + x2), (y + y2)); + evas_object_move(ld->layout, +(x + x2 + ((w - scaled_w) * 0.5)), +(y + y2 + ((h - scaled_h) * 0.5))); Evas_Coord w2 = - round(((double) w * (ld->part_info.rel2_x - ld->part_info.rel1_x))); + round(((double) scaled_w * (ld->part_info.rel2_x - ld->part_info.rel1_x))); Evas_Coord h2 = - round(((double) h * (ld->part_info.rel2_y - ld->part_info.rel1_y))); + round(((double) scaled_h * (ld->part_info.rel2_y - ld->part_info.rel1_y))); evas_object_resize(ld->layout, w2, h2); } static void -live_edit_update(live_data *ld) +live_edit_update_internal(live_data *ld) { layout_update(ld); ctrl_pt_update(ld); @@ -679,7 +685,7 @@ live_view_geom_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { live_data *ld = data; - live_edit_update(ld); + live_edit_update_internal(ld); } static void @@ -693,6 +699,11 @@ layout_mouse_move_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, evas_object_geometry_get(ld->live_view, &lx, &ly, NULL, NULL); config_view_size_get(&lw, &lh); + Evas_Coord scaled_w = lw * config_view_scale_get(); + Evas_Coord scaled_h = lh * config_view_scale_get(); + Evas_Coord scaled_x = (lx + ((lw - scaled_w) * 0.5)); + Evas_Coord scaled_y = (ly + ((lh - scaled_h) * 0.5)); + Evas_Coord x, y, w, h; evas_object_geometry_get(obj, &x, &y, &w, &h); @@ -706,15 +717,15 @@ layout_mouse_move_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, y = ev->cur.canvas.y - ld->move_delta.y; //limit to live view boundary - if (lx > x) x = lx; - if ((x + w) > (lx + lw)) x -= ((x + w) - (lx + lw)); - if (ly > y) y = ly; - if ((y + h) > (ly + lh)) y -= ((y + h) - (ly + lh)); + if (scaled_x > x) x = scaled_x; + if ((x + w) > (scaled_x + scaled_w)) x -= ((x + w) - (scaled_x + scaled_w)); + if (scaled_y > y) y = scaled_y; + if ((y + h) > (scaled_y + scaled_h)) y -= ((y + h) - (scaled_y + scaled_h)); double orig_rel1_x = ld->part_info.rel1_x; double orig_rel1_y = ld->part_info.rel1_y; - ld->part_info.rel1_x = ROUNDING(((double) (x - lx) / lw), 2); - ld->part_info.rel1_y = ROUNDING(((double) (y - ly) / lh), 2); + ld->part_info.rel1_x = ROUNDING(((double) (x - scaled_x) / scaled_w), 2); + ld->part_info.rel1_y = ROUNDING(((double) (y - scaled_y) / scale
[EGIT] [website/www-content] master 01/01: Wiki page debian-start changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=4f7c304f8b12ea518ffbdf36ec98edec86aa9ae9 commit 4f7c304f8b12ea518ffbdf36ec98edec86aa9ae9 Author: Raster Date: Mon Jun 22 20:35:52 2015 -0700 Wiki page debian-start changed with summary [] by Raster --- pages/distros/debian-start.txt | 24 +++- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/pages/distros/debian-start.txt b/pages/distros/debian-start.txt index 7ed45af..3bc3259 100644 --- a/pages/distros/debian-start.txt +++ b/pages/distros/debian-start.txt @@ -1,13 +1,9 @@ ~~Title: Debian~~ Debian -Enlightenment and EFL Debian official packages are outdated. In this part, -the installation for Debian is done from sources like in the -[[/docs-efl-start|Get EFL installed]] tutorial. +Enlightenment and EFL Debian official packages are outdated. In this part, the installation for Debian is done from sources like in the [[/docs-efl-start|Get EFL installed]] tutorial. -The following part provides a script and shows how to install -Enlightenment and Terminology with their dependencies on Debian. The script -below can be easily adapted for Elementary. +The following part provides a script and shows how to install Enlightenment and Terminology with their dependencies on Debian. The script below can be easily adapted for Elementary. Start by creating a new directory to work in: @@ -38,11 +34,9 @@ sudo aptitude install \ libbullet-dev libgstreamer-plugins-base1.0-dev libvlc-dev - == Enlightenment and EFL build script == -Copy the source code of the shell script below in a file called -"build_enlight.sh". +Copy the source code of the shell script below in a file called ''build_enlight.sh''. #!/bin/bash @@ -53,8 +47,7 @@ PREFIX="/usr/local" # List of the needed packages # To adapt to your needs -PROJECTS="efl emotion_generic_players evas_generic_loaders elementary \ -elementary enlightenment" +PROJECTS="efl emotion_generic_players evas_generic_loaders elementary elementary enlightenment" # Download url SITE=" http://git.enlightenment.org/core/"; @@ -98,12 +91,10 @@ sudo ldconfig rm -rf e* # Create the menu entry of Enlightenment for gdm, kdm or liqhtdm -sudo cp /usr/local/share/xsessions/enlightenment.desktop /usr/share/xsessions/ +sudo ln -s /usr/local/share/xsessions/enlightenment.desktop /usr/share/xsessions/ -This script clones the repositories, builds and installs the EFL libraries, -then builds and installs Terminology. -Finally, it creates the link to launch enlightenment in the display manager. +This script clones the repositories, builds and installs the EFL libraries, then builds and installs Terminology. Finally, it creates the link to launch enlightenment in the display manager. Set the script executable: @@ -111,5 +102,4 @@ Set the script executable: chmod ug+x build_enlight.sh -Then, execute the script. Once done, you can reboot and choose enlightenment as -a window manager. +Then, execute the script. Once done, you can reboot and choose Enlightenment as a window manager. \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page docs changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=54917caf30310f9a95d7ed9e4bd1cd0fa0e9e49f commit 54917caf30310f9a95d7ed9e4bd1cd0fa0e9e49f Author: Raster Date: Mon Jun 22 20:29:08 2015 -0700 Wiki page docs changed with summary [] by Raster --- pages/docs.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/docs.txt b/pages/docs.txt index 6e46e65..c88d985 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -15,7 +15,7 @@ course you can use stable packages for your distribution as well. * [[distros/archlinux-start|EFL on Arch Linux]] * [[distros/debian-start|EFL on Debian]] * [[distros/fedora-start|EFL on Fedora]] - * [[distros/opensuse-start|EFL on openSUSE]] + * [[distros/opensuse-start|EFL on OpenSUSE]] * [[distros/yocto-start|EFL on Yocto]] === Working with EFL and code === --
[EGIT] [website/www-content] master 01/01: Wiki page report_bugs changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=6e1e42cb827b04c7c851e7224bc2a1709250abfd commit 6e1e42cb827b04c7c851e7224bc2a1709250abfd Author: Raster Date: Mon Jun 22 20:28:38 2015 -0700 Wiki page report_bugs changed with summary [] by Raster --- pages/debugging/report_bugs.txt | 23 ++- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/pages/debugging/report_bugs.txt b/pages/debugging/report_bugs.txt index f320ea0..b67d826 100644 --- a/pages/debugging/report_bugs.txt +++ b/pages/debugging/report_bugs.txt @@ -11,34 +11,23 @@ //**__Can you reproduce the bug?__**// -Try to reproduce the bug with the latest version of the software, it could -already be fixed. If it is not the case, make sure the bug is reproducible, -make sure you have not changed a setting somewhere and know the way to get it. +> Try to reproduce the bug with the latest version of the software, it could already be fixed. If it is not the case, make sure the bug is reproducible, make sure you have not changed a setting somewhere and know the way to get it. //**__Has someone else already reported the issue?__**// -Check [[https://phab.enlightenment.org/maniphest/query/all|here]] if your bug has -already been reported, if not you can report it. +> Check [[https://phab.enlightenment.org/maniphest/query/all|here]] if your bug has already been reported, if not you can report it. //**__Where to report the bug?__**// -Only report bugs [[https://phab.enlightenment.org/maniphest/task/create|here]]. -Don't send bug reports and patches to the Enlightenment mailing list, bugs -will be lost. If there is more discussion needed add a bug report before or -after the discussion on the mailing list. +> Only report bugs [[https://phab.enlightenment.org/maniphest/task/create|here]]. Don't send bug reports and patches to the Enlightenment mailing list, bugs will be lost. If there is more discussion needed add a bug report before or after the discussion on the mailing list. //**__Is it a visual bug?__**// -If reporting a visual bug, make absolutely sure you test with the default -theme. EFL developers do not support other themes, and bug related to other -themes must be sent directly to the theme's author. +> If reporting a visual bug, make absolutely sure you test with the default theme. EFL developers do not support other themes, and bug related to other themes must be sent directly to the theme's author. //**__Are there a lot of traces of Valgrind, GDB, etc. for your bug?__**// -If there is a ton of output traces, please attach them as file uploads. And go -check in [[/debugging/apps_efl_debugging|Application EFL Debugging]] and -[[/debugging/enlightenment_debugging|Enlightenment Debugging]] sections to get -information. +> If there is a ton of output traces, please attach them as file uploads. And go check in [[/debugging/apps_efl_debugging|Application EFL Debugging]] and [[/debugging/enlightenment_debugging|Enlightenment Debugging]] sections to get information. === Reporting bugs === @@ -54,5 +43,5 @@ information. - Actual results: What the program errors are, the log traces (if it is not too long) - Expected results: what the program should have done if there was no bug - Additional information -- To attach a log or screenshot, etc, click on the Upload File button in the tool bar of description field. +- To attach a log or screenshot, etc, click on the Upload File button in the tool bar of description field - Read again what you wrote and create task --
[EGIT] [website/www-content] master 01/01: Wiki page yocto-start changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=1180195f8b886f028ef490aaeab2ced413d82615 commit 1180195f8b886f028ef490aaeab2ced413d82615 Author: Raster Date: Mon Jun 22 20:26:32 2015 -0700 Wiki page yocto-start changed with summary [] by Raster --- pages/distros/yocto-start.txt | 13 + 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/pages/distros/yocto-start.txt b/pages/distros/yocto-start.txt index 90a789a..7f185a4 100644 --- a/pages/distros/yocto-start.txt +++ b/pages/distros/yocto-start.txt @@ -1,10 +1,9 @@ ~~Title: Yocto~~ Yocto -In Yocto, a meta-efl layer is provided by the meta-openembedded layer. It -contains efl, elementary, enlightenment, terminology and other recipes. +In Yocto, a ''meta-efl'' layer is provided by the ''meta-openembedded'' layer. It contains EFL, Elementary, Enlightenment, Terminology and other recipes. -So, the first step is to add this layer in conf/bblayer.conf: +So, the first step is to add this layer in ''conf/bblayer.conf'': BBLAYERS ?= \ @@ -15,8 +14,7 @@ BBLAYERS ?= \ " -Next, to install Enlightenment and Terminology, add the following lines to your -recipe: +Next, to install Enlightenment and Terminology, add the following lines to your recipe: #add enlightenment window manager @@ -24,9 +22,8 @@ IMAGE_INSTALL += "e-wm" IMAGE_INSTALL += "terminology" -If you just want Elementary and EFL, just add the lines below or something -that depends on EFL or Elementary: +If you just want Elementary and EFL, just add the lines below or something that depends on EFL or Elementary: IMAGE_INSTALL += "elementary-tests" - + \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page archlinux-start changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=c60d8925a196815fcab4e99a7da62215e869ee56 commit c60d8925a196815fcab4e99a7da62215e869ee56 Author: Raster Date: Mon Jun 22 20:24:46 2015 -0700 Wiki page archlinux-start changed with summary [] by Raster --- pages/distros/archlinux-start.txt | 60 --- 1 file changed, 12 insertions(+), 48 deletions(-) diff --git a/pages/distros/archlinux-start.txt b/pages/distros/archlinux-start.txt index 4364427..159dbfd 100644 --- a/pages/distros/archlinux-start.txt +++ b/pages/distros/archlinux-start.txt @@ -1,66 +1,30 @@ -~~Title: Archlinux~~ - Archlinux +~~Title: Arch Linux~~ + Arch -The way to install Enlightenment on Archlinux is quite easy, use the official -repo : +The way to install Enlightenment on Arch Linux is quite easy, use the official repo: -#depends on elementary pacman -S enlightenment -#EFL-based terminal emulator -pacman -S terminology #optionnal +pacman -S terminology # optional terminal -Many apps or efl tools are available in AUR packages, for example with yaourt: +Many apps or efl tools are available in AUR packages, for example with [[https://wiki.archlinux.org/index.php/Yaourt|Yaourt]]: + -yaourt -S clousseau-git +yaourt -S clouseau-git -If you only want elementary with efl : +If you only want Elementary with EFL: -#depends on efl pacman -S elementary -If you want to install enlightenment from sources, make sure you get all the -dependencies: +If you want to install Enlightenment and/or EFL from source, the easiest way is to first install the arch packages to have them pull in dependencies, then remove them: -#dependencies for enlightenment -bluez-libs -ttf-font -udisks2 -hicolor-icon-theme -pixman -mesa -desktop-file-utils -xcb-util-keysyms -bullet -libjpeg-turbo -gst-plugins-base -luajit -curl -fribidi -libpulse -libxcomposite -libxinerama -libxrandr -libxss -libxcursor -libxp -libwebp -shared-mime-info -libxkbcommon -wayland -lz4 -openjpeg -avahi -librsvg -poppler -libraw -libspectre +pacman -S elementary +pacman -R efl -Then go to [[/docs-efl-start|Get EFL installed]] tutorial, to install -Enlightenment from sources. +Then go to [[/docs-efl-start]] tutorial, to install Enlightenment and/or EFL from source. --
[EGIT] [website/www-content] master 01/01: Wiki page enlightenment_debugging changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=eb13747f831034ea7a84a418868662a7f060ed4a commit eb13747f831034ea7a84a418868662a7f060ed4a Author: Raster Date: Mon Jun 22 20:15:15 2015 -0700 Wiki page enlightenment_debugging changed with summary [] by Raster --- pages/debugging/enlightenment_debugging.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/debugging/enlightenment_debugging.txt b/pages/debugging/enlightenment_debugging.txt index d0fe4e9..d78c29d 100644 --- a/pages/debugging/enlightenment_debugging.txt +++ b/pages/debugging/enlightenment_debugging.txt @@ -22,7 +22,7 @@ Then setup SEGV to segfault enlightenment. kill -SIGSEGV $(pidof enlightenment) -''enlightenment_start will'' open a pop-up named Enlightenment Error. This pop-up indicates that Enlightenment segfaulted and allows to recover or log out but also detaches from the child process (Enlightenment) and let advanced users use GDB to debug it. +''enlightenment_start'' will open a pop-up named Enlightenment Error. This pop-up indicates that Enlightenment segfaulted and allows to recover or log out but also detaches from the child process (Enlightenment) and let advanced users use GDB to debug it. #gdb on the running enlightenment process --
[EGIT] [website/www-content] master 01/01: Wiki page enlightenment_debugging changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=f9dd535056eb2a72d0b56fd15124fafb69a1d305 commit f9dd535056eb2a72d0b56fd15124fafb69a1d305 Author: Raster Date: Mon Jun 22 20:14:52 2015 -0700 Wiki page enlightenment_debugging changed with summary [] by Raster --- pages/debugging/enlightenment_debugging.txt | 100 ++-- 1 file changed, 35 insertions(+), 65 deletions(-) diff --git a/pages/debugging/enlightenment_debugging.txt b/pages/debugging/enlightenment_debugging.txt index 7f953f2..d0fe4e9 100644 --- a/pages/debugging/enlightenment_debugging.txt +++ b/pages/debugging/enlightenment_debugging.txt @@ -1,42 +1,36 @@ ~~Title: Enlightenment debugging~~ - Enlightenment Debugging === + Enlightenment Debugging -This tutorial aims at providing a comprehensive and reproducible documentation -to debug Enlightenment. It is divided in two sections: -* [[enlightenment_debugging#Debugging_Enlightenment_using_Gdb|Gdb]] -* [[enlightenment_debugging#Valgrind|Valgrind]] +This tutorial aims at providing a comprehensive and reproducible documentation to debug Enlightenment. It is divided in two sections: -Before debugging make sure your debug symbols are enabled, if not, go to the -[[/docs-efl-start#Enable_debug_symbols_Optional|Enable debug symbols]] -section. +* [[#Debugging_Enlightenment_using_GDB|GDB]] +* [[#Valgrind|Valgrind]] +Before debugging make sure your debug symbols are enabled, if not, go to the [[/docs-efl-start#Enable_debug_symbols_Optional|Enable debug symbols]] section. -=== Debugging Enlightenment using Gdb === +=== Debugging Enlightenment using GDB === -In order to use gdb, we will simulate a crash in Enlightenment. +In order to use GDB, we will simulate a crash in Enlightenment. -Start by running Enlightenment on a machine. Then switch to another tty -(CTRL+ALT+F1 for tty1). +Start by running Enlightenment on a machine. Then switch to another tty (CTRL+ALT+F1 for tty1). -At that point, 2 processes are interesting, enlightenment and -enlightenment_start. Indeed, enlightenment is traced by enlightenment_start. +At that point, 2 processes are interesting, ''enlightenment'' and ''enlightenment_start''. Indeed, ''enlightenment'' is traced by ''enlightenment_start''. Then setup SEGV to segfault enlightenment. + kill -SIGSEGV $(pidof enlightenment) -enlightenment_start will open a pop-up named Enlightenment Error. -This pop-up indicates that Enlightenment segfaulted and allows to recover or -log out but also detaches from the child process (enlightenment) and let -advanced users use gdb to debug it. +''enlightenment_start will'' open a pop-up named Enlightenment Error. This pop-up indicates that Enlightenment segfaulted and allows to recover or log out but also detaches from the child process (Enlightenment) and let advanced users use GDB to debug it. + #gdb on the running enlightenment process gdb enlightenment $(pidof enlightenment) -After a bit a prompt is available, if you want, you can save the -traces in a log: +After a bit a prompt is available, if you want, you can save the traces in a log: + #save the traces in log.txt set logging file log.txt @@ -45,8 +39,7 @@ set logging on == Backtrace == -Use the backtrace command to get information about frames to -know where the segfault is coming from. +Use the backtrace command to get information about frames to know where the segfault is coming from. (gdb) bt @@ -74,21 +67,13 @@ know where the segfault is coming from. #12 0x08059bb3 in main (argc=1, argv=0xb144) at e_main.c:551 -As you can see in the stack trace, gdb finds the segfault in libc and pops to the -main function in e_main. But it doesn't seem credible to have a bug in libc or -x, the important thing is Enlightenment has its own segfault handler which is -very explicit on frame 5. +As you can see in the stack trace, GDB finds the segfault in libc and pops to the main function in e_main. But it doesn't seem credible to have a bug in libc or x, the important thing is Enlightenment has its own segfault handler which is very explicit on frame 5. -The e_sigseg_act() function at frame 6 is called directly from the kernel when -the program segfaults, meaning enlightenment causes the -segfault. So, the -segfault comes from the select function (a libc function) at frame 8 called in -_e_core_main_select_function at frame 9. +The e_sigseg_act() function at frame 6 is called directly from the kernel when the program segfaults, meaning enlightenment causes the segfault. So, the segfault comes from the select function (a libc function) at frame 8 called in _e_core_main_select_function at frame 9. == Go in a frame == -So, the reason of segfault seems to be at frame 9, when //select// function is -called. Let's go to frame 9: +So, the reason of segfault seems to be at frame 9, when ''select'' function i
[EGIT] [website/www-content] master 01/01: Wiki page report_bugs changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=1ba2b95efe3e5e31c87ef2eb4e9fef7da34dc022 commit 1ba2b95efe3e5e31c87ef2eb4e9fef7da34dc022 Author: Raster Date: Mon Jun 22 20:02:28 2015 -0700 Wiki page report_bugs changed with summary [] by Raster --- pages/debugging/report_bugs.txt | 26 +- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/pages/debugging/report_bugs.txt b/pages/debugging/report_bugs.txt index c84f900..f320ea0 100644 --- a/pages/debugging/report_bugs.txt +++ b/pages/debugging/report_bugs.txt @@ -4,7 +4,7 @@ * Be precise * Be clear * Only one bug a report -* Only report a bug in https://phab.enlightenment.org/maniphest/task/create/ +* Only report a bug [[https://phab.enlightenment.org/maniphest/task/create|here]] * Read what you wrote === Before reporting === @@ -17,12 +17,12 @@ make sure you have not changed a setting somewhere and know the way to get it. //**__Has someone else already reported the issue?__**// -Check on https://phab.enlightenment.org/maniphest/query/all/ if your bug has +Check [[https://phab.enlightenment.org/maniphest/query/all|here]] if your bug has already been reported, if not you can report it. //**__Where to report the bug?__**// -Only report a bug in https://phab.enlightenment.org/maniphest/task/create/.\\ +Only report bugs [[https://phab.enlightenment.org/maniphest/task/create|here]]. Don't send bug reports and patches to the Enlightenment mailing list, bugs will be lost. If there is more discussion needed add a bug report before or after the discussion on the mailing list. @@ -33,7 +33,7 @@ If reporting a visual bug, make absolutely sure you test with the default theme. EFL developers do not support other themes, and bug related to other themes must be sent directly to the theme's author. -//**__Are there a lot of traces of valgrind,gdb,etc for your bug?__**// +//**__Are there a lot of traces of Valgrind, GDB, etc. for your bug?__**// If there is a ton of output traces, please attach them as file uploads. And go check in [[/debugging/apps_efl_debugging|Application EFL Debugging]] and @@ -42,17 +42,17 @@ information. === Reporting bugs === -- Go to https://phab.enlightenment.org/maniphest/task/create/ +- Go [[https://phab.enlightenment.org/maniphest/task/create|here]] - Fill out at least the following fields: -* Title: A short one-sentence summary that explains the problem clearly and precisely. -* Assigned to: Ignore it, developers will set an assignee. -* CC: Ignore it or if you know interested users you can add them. -* Priority: Ignore it, set by developers. -* Select the project(s) in which you find the bug. +* Title: A short one-sentence summary that explains the problem clearly and precisely +* Assigned to: Ignore it, developers will set an assignee +* CC: Ignore it or if you know interested users you can add them +* Priority: Ignore it, set by developers +* Select the project(s) in which you find the bug * Description : -- The way for reproducing the bug step by step: Minimized, easy-to-follow steps that will trigger the described problem. +- The way for reproducing the bug step by step: Minimized, easy-to-follow steps that will trigger the described problem - Actual results: What the program errors are, the log traces (if it is not too long) -- Expected results: what the program should have done if there was no bug. +- Expected results: what the program should have done if there was no bug - Additional information - To attach a log or screenshot, etc, click on the Upload File button in the tool bar of description field. -- Read again what you wrote and create task. +- Read again what you wrote and create task --
[EGIT] [website/www-content] master 01/01: Wiki page docs changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=e21e8c3ca8e0d8f2d9729db0cabef83f1f9be2c6 commit e21e8c3ca8e0d8f2d9729db0cabef83f1f9be2c6 Author: Raster Date: Mon Jun 22 19:58:18 2015 -0700 Wiki page docs changed with summary [] by Raster --- pages/docs.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/docs.txt b/pages/docs.txt index 3fc2469..6e46e65 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -12,7 +12,7 @@ course you can use stable packages for your distribution as well. * [[docs-efl-start|Get EFL installed from source]] * [[distros/ubuntu-start|EFL on Ubuntu (packages and source)]] - * [[distros/archlinux-start|EFL on archlinux]] + * [[distros/archlinux-start|EFL on Arch Linux]] * [[distros/debian-start|EFL on Debian]] * [[distros/fedora-start|EFL on Fedora]] * [[distros/opensuse-start|EFL on openSUSE]] --
[EGIT] [website/www-content] master 01/01: Wiki page docs changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=713c43385952d00509d9e676be7d237ab96c4ff9 commit 713c43385952d00509d9e676be7d237ab96c4ff9 Author: Raster Date: Mon Jun 22 19:55:48 2015 -0700 Wiki page docs changed with summary [] by Raster --- pages/docs.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/docs.txt b/pages/docs.txt index ef35268..3fc2469 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -33,7 +33,7 @@ Go check the current available version of EFL on each distro/platform: * [[debugging/enlightenment_debugging|Enlightenment debugging]] * [[debugging/apps_efl_debugging|EFL application debugging]] * [[debugging/report_bugs|Report bugs on Phabricator]] - * [[contact/arcanist.txt|Submit patch on Phabricator]] + * [[contact/arcanist|Submit patch on Phabricator]] === Tutorials === --
[EGIT] [tools/enventor] master 01/01: live_edit: use ELM_SCALE_SIZE() for scalability.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=61d7acca060ce713a10191b14405ec1b5ca77456 commit 61d7acca060ce713a10191b14405ec1b5ca77456 Author: ChunEon Park Date: Tue Jun 23 11:19:48 2015 +0900 live_edit: use ELM_SCALE_SIZE() for scalability. --- src/bin/live_edit.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c index 67cf19a..f25a3e6 100644 --- a/src/bin/live_edit.c +++ b/src/bin/live_edit.c @@ -308,26 +308,26 @@ align_line_update(live_data *ld) y = round(((double) y) + ld->half_ctrl_size); evas_object_move(ld->align_line[Align_Line_Top], (lx + 1), y); evas_object_resize(ld->align_line[Align_Line_Top], (lw - 2), - (1 * elm_config_scale_get())); + (ELM_SCALE_SIZE(1))); //Bottom evas_object_geometry_get(ld->ctrl_pt[Ctrl_Pt_Bottom], NULL, &y, NULL, NULL); y = round(((double) y) + ld->half_ctrl_size); evas_object_move(ld->align_line[Align_Line_Bottom], (lx + 1), (y - 1)); evas_object_resize(ld->align_line[Align_Line_Bottom], (lw - 2), - (1 * elm_config_scale_get())); + ELM_SCALE_SIZE(1)); //Left evas_object_geometry_get(ld->ctrl_pt[Ctrl_Pt_Left], &x, NULL, NULL, NULL); x = round(((double) x) + ld->half_ctrl_size); evas_object_move(ld->align_line[Align_Line_Left], x, (ly + 1)); evas_object_resize(ld->align_line[Align_Line_Left], - (1 * elm_config_scale_get()), (lh - 2)); + ELM_SCALE_SIZE(1), (lh - 2)); //Right evas_object_geometry_get(ld->ctrl_pt[Ctrl_Pt_Right], &x, NULL, NULL, NULL); x = round(((double) x) + ld->half_ctrl_size); evas_object_move(ld->align_line[Align_Line_Right], (x - 1), (ly + 1)); evas_object_resize(ld->align_line[Align_Line_Right], - (1 * elm_config_scale_get()), (lh - 2)); + ELM_SCALE_SIZE(1), (lh - 2)); } static void @@ -608,7 +608,7 @@ ctrl_pt_init(live_data *ld) //Ctrl Point Size Evas_Object *edje = elm_layout_edje_get(ld->layout); double ctrl_size = atof(edje_object_data_get(edje, "ctrl_size")); - ctrl_size *= elm_config_scale_get(); + ctrl_size = ELM_SCALE_SIZE(ctrl_size); ld->half_ctrl_size = ctrl_size * 0.5; //Create Control Points --
[EGIT] [tools/enventor] master 01/01: tools: update line number icon image.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=00ce4ff714ef47050bbada341af261d3b544993e commit 00ce4ff714ef47050bbada341af261d3b544993e Author: ChunEon Park Date: Tue Jun 23 11:05:33 2015 +0900 tools: update line number icon image. --- data/themes/default/images/lines.png | Bin 3396 -> 3363 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data/themes/default/images/lines.png b/data/themes/default/images/lines.png index 856b113..2680b1c 100644 Binary files a/data/themes/default/images/lines.png and b/data/themes/default/images/lines.png differ --
[EGIT] [tools/enventor] master 01/01: live_view: fix incorrect zoom scale.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=24ad783b25840481abf60acf033af939222a9a55 commit 24ad783b25840481abf60acf033af939222a9a55 Author: ChunEon Park Date: Tue Jun 23 10:55:35 2015 +0900 live_view: fix incorrect zoom scale. Previously, the live view maximum size was not updated properly even if the zoom scale value had been changed. @fix --- src/lib/edj_viewer.c | 25 +++-- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c index b7b739e..dcd2aa8 100644 --- a/src/lib/edj_viewer.c +++ b/src/lib/edj_viewer.c @@ -44,18 +44,13 @@ struct viewer_s static void view_obj_min_update(view_data *vd) { - Evas_Coord w, h; double scale = edj_mgr_view_scale_get(); - - edje_object_size_min_calc(vd->layout, &w, &h); - - if (vd->view_config_size.w > 0) - w = vd->view_config_size.w; - - if (vd->view_config_size.h > 0) - h = vd->view_config_size.h; - - evas_object_size_hint_min_set(vd->layout, ((double)w * scale), ((double)h * scale)); + evas_object_size_hint_min_set(vd->layout, + ((double)vd->view_config_size.w * scale), + ((double)vd->view_config_size.h * scale)); + evas_object_size_hint_max_set(vd->layout, + ((double)vd->view_config_size.w * scale), + ((double)vd->view_config_size.h * scale)); } static Eina_Bool @@ -556,15 +551,9 @@ view_size_set(view_data *vd, Evas_Coord w, Evas_Coord h) { if (!vd) return; - double scale = edj_mgr_view_scale_get(); - vd->view_config_size.w = w; vd->view_config_size.h = h; - - evas_object_size_hint_min_set(vd->layout, ((double)w * scale), - ((double)h * scale)); - evas_object_size_hint_max_set(vd->layout, ((double)w * scale), - ((double)h * scale)); + view_obj_min_update(vd); } void --
[EGIT] [tools/enventor] master 01/01: live_edit: fix focus highlight floating issue.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=f7bb26e9b17d4ce3e255474c19919d063e09de27 commit f7bb26e9b17d4ce3e255474c19919d063e09de27 Author: ChunEon Park Date: Tue Jun 23 10:28:25 2015 +0900 live_edit: fix focus highlight floating issue. After selecting a live view edit item, the item focus highlighting is remained there. Now it's fixed by moving the focus to live view. --- src/bin/live_edit.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c index 08246ba..67cf19a 100644 --- a/src/bin/live_edit.c +++ b/src/bin/live_edit.c @@ -874,6 +874,7 @@ ctxpopup_dismissed_cb(void *data, Evas_Object *obj, { live_data *ld = data; if (!ld->layout) live_edit_cancel(); + evas_object_focus_set(ld->live_view, EINA_TRUE); evas_object_del(obj); ld->ctxpopup = NULL; } --
[EGIT] [tools/enventor] master 01/01: auto_comp: close popup if the line is deleted.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=6e7e18b12bf3599c8ea31458064c6e38b62885c3 commit 6e7e18b12bf3599c8ea31458064c6e38b62885c3 Author: ChunEon Park Date: Tue Jun 23 10:21:22 2015 +0900 auto_comp: close popup if the line is deleted. @fix. --- src/lib/auto_comp.c| 8 src/lib/enventor_private.h | 1 + src/lib/enventor_smart.c | 2 ++ 3 files changed, 11 insertions(+) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 769e9fa..9bb1471 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -695,6 +695,14 @@ autocomp_list_show(void) } void +autocomp_reset(void) +{ + autocomp_data *ad = g_ad; + if (!ad) return; + queue_reset(ad); +} + +void autocomp_target_set(edit_data *ed) { autocomp_data *ad = g_ad; diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index cede4fc..7ae7a97 100644 --- a/src/lib/enventor_private.h +++ b/src/lib/enventor_private.h @@ -82,6 +82,7 @@ void autocomp_enabled_set(Eina_Bool enabled); Eina_Bool autocomp_enabled_get(void); Eina_Bool autocomp_event_dispatch(const char *key); void autocomp_list_show(void); +void autocomp_reset(void); /* syntax color */ diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index 99e83e7..6a08915 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -589,6 +589,8 @@ EOLIAN static void _enventor_object_line_delete(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd) { edit_line_delete(pd->ed); + //Close auto-completion popup if it's shown. + autocomp_reset(); } EOLIAN static Eo * --
[EGIT] [tools/enventor] master 01/01: auto_comp: optimize code.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=c301fab3cd9973847e19f093268341191ec90f6d commit c301fab3cd9973847e19f093268341191ec90f6d Author: ChunEon Park Date: Tue Jun 23 10:11:03 2015 +0900 auto_comp: optimize code. use callback data rather than global variable. --- src/lib/auto_comp.c | 53 + 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 2cfcdbd..769e9fa 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -363,11 +363,11 @@ entry_anchor_off(autocomp_data *ad) } static void -anchor_unfocused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, +anchor_unfocused_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - autocomp_data *ad = g_ad; - if (!g_ad) return; + autocomp_data *ad = data; + if (!ad) return; entry_anchor_off(ad); } @@ -581,11 +581,11 @@ candidate_list_show(autocomp_data *ad) } static void -entry_changed_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, +entry_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) { - autocomp_data *ad = g_ad; - if ((!g_ad) || (!ad->enabled)) return; + autocomp_data *ad = data; + if ((!ad) || (!ad->enabled)) return; Elm_Entry_Change_Info *info = event_info; @@ -620,21 +620,21 @@ entry_changed_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, } static void -entry_cursor_changed_manual_cb(void *data EINA_UNUSED, +entry_cursor_changed_manual_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - autocomp_data *ad = g_ad; - if (!g_ad) return; + autocomp_data *ad = data; + if (!ad) return; if (ad->anchor_visible) entry_anchor_off(ad); } static void -entry_cursor_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, +entry_cursor_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { - autocomp_data *ad = g_ad; - if (!g_ad) return; + autocomp_data *ad = data; + if (!ad) return; //Update anchor position Evas_Coord x, y, cx, cy, cw, ch; @@ -646,20 +646,20 @@ entry_cursor_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, } static void -entry_press_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, +entry_press_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - autocomp_data *ad = g_ad; - if (!g_ad) return; + autocomp_data *ad = data; + if (!ad) return; if (ad->anchor_visible) entry_anchor_off(ad); } static void -entry_move_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, +entry_move_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - autocomp_data *ad = g_ad; - if (!g_ad) return; + autocomp_data *ad = data; + if (!ad) return; if (ad->anchor_visible) entry_anchor_off(ad); } @@ -676,7 +676,7 @@ list_item_move(autocomp_data *ad, Eina_Bool up) if (it) elm_list_item_selected_set(it, EINA_TRUE); evas_object_smart_callback_add(entry, "unfocused", anchor_unfocused_cb, - NULL); + ad); } /*/ @@ -723,17 +723,14 @@ autocomp_target_set(edit_data *ed) if (!ed) return; entry = edit_entry_get(ed); - evas_object_smart_callback_add(entry, "changed,user", entry_changed_cb, - NULL); + evas_object_smart_callback_add(entry, "changed,user", entry_changed_cb, ad); evas_object_smart_callback_add(entry, "cursor,changed,manual", - entry_cursor_changed_manual_cb, NULL); + entry_cursor_changed_manual_cb, ad); evas_object_smart_callback_add(entry, "cursor,changed", - entry_cursor_changed_cb, NULL); - evas_object_smart_callback_add(entry, "unfocused", anchor_unfocused_cb, - NULL); - evas_object_smart_callback_add(entry, "press", entry_press_cb, NULL); - evas_object_event_callback_add(entry, EVAS_CALLBACK_MOVE, - entry_move_cb, NULL); + entry_cursor_changed_cb, ad); + evas_object_smart_callback_add(entry, "unfocused", anchor_unfocused_cb, ad); + evas_object_smart_callback_add(entry, "press", entry_press_cb, ad); + evas_object_event_callback_add(entry, EVAS_CALLBACK_MOVE, entry_move_cb, ad); ad->anchor = elm_button_add(edit_obj_get(ed)); ad->ed = ed; --
[EGIT] [tools/enventor] master 01/01: fix the candidate list size.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=e86b8256b614c784fb3576479170896a41ee8f89 commit e86b8256b614c784fb3576479170896a41ee8f89 Author: ChunEon Park Date: Tue Jun 23 09:57:08 2015 +0900 fix the candidate list size. don't oversized candidate popup than edit area. Instead, enable the scroll of the list in order thatuser can choose one item. @fix --- src/lib/auto_comp.c | 29 - 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index b098173..2cfcdbd 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -374,7 +374,7 @@ anchor_unfocused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, static void queue_reset(autocomp_data *ad) { - if (ad->queue_pos == -1) return; + if ((ad->queue_pos == 0) && (!ad->anchor_visible)) return; ad->queue_pos = 0; memset(ad->queue, 0x0, sizeof(ad->queue)); entry_anchor_off(ad); @@ -473,6 +473,18 @@ entry_tooltip_content_cb(void *data, Evas_Object *obj EINA_UNUSED, elm_object_focus_allow_set(ad->list, EINA_FALSE); elm_list_mode_set(ad->list, ELM_LIST_EXPAND); + //compute list size to prevent over-sizing than enventor window. + Evas_Coord y, y2, h; + evas_object_geometry_get(edit_obj_get(ad->ed), NULL, &y, NULL, &h); + evas_object_geometry_get(ad->anchor, NULL, &y2, NULL, NULL); + Elm_Tooltip_Orient tooltip_orient = + elm_object_tooltip_orient_get(ad->anchor); + Evas_Coord mh; + if (tooltip_orient == ELM_TOOLTIP_ORIENT_BOTTOM) mh = (h - y2); + else mh = (y2 - y); + evas_object_size_hint_max_set(ad->list, 99, mh); + + //add keywords Eina_List *l; lexem *lexem_data; EINA_LIST_FOREACH(ad->lexem_ptr->nodes, l, lexem_data) @@ -489,8 +501,6 @@ entry_tooltip_content_cb(void *data, Evas_Object *obj EINA_UNUSED, Elm_Object_Item *it = elm_list_first_item_get(ad->list); if (it) elm_list_item_selected_set(it, EINA_TRUE); - evas_object_smart_callback_add(ad->list, "unfocused", anchor_unfocused_cb, - ad); evas_object_event_callback_add(ad->list, EVAS_CALLBACK_DEL, list_del_cb, ad); if (!found) { @@ -616,7 +626,7 @@ entry_cursor_changed_manual_cb(void *data EINA_UNUSED, { autocomp_data *ad = g_ad; if (!g_ad) return; - entry_anchor_off(ad); + if (ad->anchor_visible) entry_anchor_off(ad); } static void @@ -641,7 +651,7 @@ entry_press_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, { autocomp_data *ad = g_ad; if (!g_ad) return; - entry_anchor_off(ad); + if (ad->anchor_visible) entry_anchor_off(ad); } static void @@ -650,7 +660,7 @@ entry_move_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, { autocomp_data *ad = g_ad; if (!g_ad) return; - entry_anchor_off(ad); + if (ad->anchor_visible) entry_anchor_off(ad); } static void @@ -658,6 +668,7 @@ list_item_move(autocomp_data *ad, Eina_Bool up) { Evas_Object *entry = edit_entry_get(ad->ed); evas_object_smart_callback_del(entry, "unfocused", anchor_unfocused_cb); + elm_object_focus_allow_set(ad->list, EINA_TRUE); Elm_Object_Item *it = elm_list_selected_item_get(ad->list); if (up) it = elm_list_item_prev(it); @@ -737,14 +748,14 @@ autocomp_event_dispatch(const char *key) //Reset queue. if (!ad->anchor_visible) { -if (!strcmp(key, "Up") || !strcmp(key, "Down") || !strcmp(key, "Left") || -!strcmp(key, "Right")) +if (!strcmp(key, "Up") || !strcmp(key, "Down") || +!strcmp(key, "Left") || !strcmp(key, "Right")) queue_reset(ad); return EINA_FALSE; } //Cancel the auto complete. - if (!strcmp(key, "BackSpace")) + if (!strcmp(key, "BackSpace") || !strcmp(key, "Escape")) { queue_reset(ad); return EINA_TRUE; --
[EGIT] [tools/enventor] master 01/01: updated README/ABOUT
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=149faa3f35afe913285de9aec4829b966542784d commit 149faa3f35afe913285de9aec4829b966542784d Author: ChunEon Park Date: Tue Jun 23 08:40:39 2015 +0900 updated README/ABOUT --- README | 93 data/about/ABOUT | 93 2 files changed, 94 insertions(+), 92 deletions(-) diff --git a/README b/README index ccef5fc..35853f1 100644 --- a/README +++ b/README @@ -28,63 +28,64 @@ Once you have met requirements, compiling and installing is simple: [Short Cut Keys] -Esc = Open/Close Menu -F1 = About -F2 = New -F3 = Save -F4 = Load -F5 = Show/Hide Line Number -F9 = Show/Hide Tools -F10 = Show/Hide Console -F11 = Show/Hide Status -F12 = Setting - -Ctrl+S = Quick Save + Update Live View -Ctrl+I = On/Off Auto Indentation -Ctrl+O = On/Off Auto Completion -Ctrl+W = Show/Hide Dummy Swallow -Ctrl+H = On/Off Part Highlighting -Ctrl+T = Insert Defaut Template Code -Ctrl+Mouse Wheel Up = View Scale Up / Font Size Up -Ctrl+Mouse Wheel Down = View Scale Down / Font Size Down +Esc - Open/Close Menu +F1 - About +F2 - New +F3 - Save +F4 - Load +F5 - Show/Hide Line Number +F9 - Show/Hide Tools +F10 - Show/Hide Console +F11 - Show/Hide Status +F12 - Setting + +Ctrl+S - Quick Save + Update Live View +Ctrl+I - On/Off Auto Indentation +Ctrl+O - On/Off Auto Completion +Ctrl+W - Show/Hide Dummy Swallow +Ctrl+H - On/Off Part Highlighting +Ctrl+T - Insert Defaut Template Code +Ctrl+Mouse Wheel Up - View Scale Up / Font Size Up +Ctrl+Mouse Wheel Down - View Scale Down / Font Size Down -Alt+Left = On/Off Full Edit View -Alt+Right = On/Off Full Live View -Alt+Up = On/Off Full Console View -Alt+Down = On/Off Full Editors View +Alt+Left - On/Off Full Edit View +Alt+Right - On/Off Full Live View +Alt+Up - On/Off Full Console View +Alt+Down - On/Off Full Editors View -Ctrl+A = Select Text All -Ctrl+Double Click = Select a word -Ctrl+Z = Undo Text -Ctrl+R = Redo Text -Ctrl+C = Copy Selected Text -Ctrl+V = Paste Copied Text -Ctrl+X = Cut Selected Text -Ctrl+D = Delete a Current line -Ctrl+F = Find/Replace -Ctrl+L = Go to line -Ctrl+Home = Go to the Top line -Ctrl+End = Go to the Bottom line +Ctrl+A - Select Text All +Ctrl+Double Click - Select a word +Ctrl+Z - Undo Text +Ctrl+R - Redo Text +Ctrl+C - Copy Selected Text +Ctrl+V - Paste Copied Text +Ctrl+X - Cut Selected Text +Ctrl+D - Delete a Current line +Ctrl+F - Find/Replace +Ctrl+L - Go to line +Ctrl+Home - Go to the Top line +Ctrl+End - Go to the Bottom line +Ctrl+Space - Search candidate keywords in the context [Command Line Usage] enventor --help -enventor [input file] [output file] [--to] [--id image path] [--sd sound path] [--fd font path] [--dd data path] +enventor [input file] [output file] [-t] [-i image path] [-s sound path] [-f font path] [-d data path] --input file = EDC file to open. If input file is skipped, Enventor will open a default template code with a temporary file. --output file = EDJ file to store compiled file. If output file is skipped, Enventor will store binary file to the temporary directory. ---to = Open template menu when you launch Enventor ---id = image resources, that edc includes, path ---sd = sound resources, that edc includes, path ---fd = font resources, that edc includes, path ---dd = data resources, that edc includes, path +input file = EDC file to open. If input file is skipped, Enventor will open a default template code with a temporary file. +output file = EDJ file to store compiled file. If output file is skipped, Enventor will store binary file to the temporary directory. +-t = Open template menu when you launch Enventor +-i = image resources, that edc includes, path +-s = sound resources, that edc includes, path +-f = font resources, that edc includes, path +-d = data resources, that edc includes, path Examples of Enventor command line usage: $ enventor -$ enventor --to -$ enventor newfile.edc --to -$ enventor sample.edc output.edj --id ./images --sd ./sounds +$ enventor -t +$ enventor newfile.edc -t +$ enventor sample.edc output.edj -i ./images -s ./sounds [Developers] diff --git a/data/about/ABOUT b/data/about/ABOUT index 97e6d7a..f78550f 100644 --- a/data/about/ABOUT +++ b/data/about/ABOUT @@ -10,63 +10,64 @@ http://www.openhub.net/p/enventor [Short Cut Keys] -Esc = Open/Close Menu -F1 = About -F2 = New -F3 = Save -F4 = Load -F5 = Show/Hide Line Number -F9 = Show/Hide Tools -F10 = Show/Hide Console -F11 = Show/Hide Status -F12 = Setting +Esc - Open/Close Menu +F1 - About +F2 - New +F3 - Save +F4 - Load +F5 - Show/Hide Line Number +F9 - Show/Hide Tools +F10 - Show/Hide Console +F11 - Show/Hide Status +F12 - Setting -Ctrl+S = Quick Save + Update Live View -Ctrl+I = On/Off Auto Indentation -Ctrl+O = On/Off Auto Completion -Ctrl+W = Show/Hide Dummy Swallow -Ctrl+H = On/Off Part
[EGIT] [core/elementary] master 01/01: widget: Add a case that elm_layout is an item view object.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=a0001e5a66f1711b30d891321006ad6f4a3eaf6f commit a0001e5a66f1711b30d891321006ad6f4a3eaf6f Author: woochan lee Date: Tue Jun 23 08:30:21 2015 +0900 widget: Add a case that elm_layout is an item view object. Summary: The internal API "_elm_widget_item_highlight_in_theme()" look like for list item highlight. but it can use in another widget which has item view as elm_layout. In that case, ERR log will be printed. Reviewers: singh.amitesh, Hermet, woohyun Differential Revision: https://phab.enlightenment.org/D2736 --- src/lib/elm_widget.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index 09cd815..6df8fde 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -150,7 +150,11 @@ _elm_widget_item_highlight_in_theme(Evas_Object *obj, Elm_Object_Item *eo_it) if (eo_isa(eo_it, ELM_WIDGET_ITEM_CLASS)) { Elm_Widget_Item_Data *it = eo_data_scope_get(eo_it, ELM_WIDGET_ITEM_CLASS); -str = edje_object_data_get(it->view, "focus_highlight"); + +if (eo_isa(it->view, ELM_LAYOUT_CLASS)) + str = edje_object_data_get(elm_layout_edje_get(it->view), "focus_highlight"); +else + str = edje_object_data_get(it->view, "focus_highlight"); } else str = edje_object_data_get(((Elm_Widget_Item_Data *)eo_it)->view, "focus_highlight"); --
[EGIT] [tools/enventor] master 01/01: --compiler warning.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=55b3a1c4b1a8d9b5adccaeefc63bdd0360c6fc4d commit 55b3a1c4b1a8d9b5adccaeefc63bdd0360c6fc4d Author: ChunEon Park Date: Tue Jun 23 08:25:29 2015 +0900 --compiler warning. shit, avoid unused compiler warning by trick. --- src/lib/edc_parser.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index cb583e9..ff9139f 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -1152,7 +1152,9 @@ is_numberic(const char *str) if (!str || (*str == '\0') || isspace(*str)) return EINA_FALSE; - strtod(str, &p); + double v = strtod(str, &p); + (v); //trick for avoding unused compiler warning. + if (*p == '\0') ret = EINA_TRUE; return ret; --
[EGIT] [tools/enventor] master 01/01: Autocomplete: add attribute "dot" for lexems.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=dc85cafc7d119056c123b5428508980a2d58ffdd commit dc85cafc7d119056c123b5428508980a2d58ffdd Author: Mykyta Biliavskyi Date: Tue Jun 23 08:16:01 2015 +0900 Autocomplete: add attribute "dot" for lexems. Summary: Attribute "dot" make possible to mark lexems, that can use the '.' symbol. Like image.normal: "bla"; This commit fix issue, when pressing '.' after any keyword was shown candidate list. Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D2709 --- data/autocomp/autocomp.src | 6 ++ src/lib/auto_comp.c| 12 +--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src index 18ce6f4..d757a30 100644 --- a/data/autocomp/autocomp.src +++ b/data/autocomp/autocomp.src @@ -154,6 +154,7 @@ group "lexem" struct { value "cursor_offset" int: 2; value "line_back" int: 1; value "name" string: "images"; + value "dot" int: 1; } group "lexem" struct { group "nodes" list { @@ -925,6 +926,7 @@ group "lexem" struct { value "cursor_offset" int: 2; value "line_back" int: 1; value "name" string: "image"; + value "dot" int: 1; } group "lexem" struct { group "nodes" list { @@ -1219,6 +1221,7 @@ group "lexem" struct { value "cursor_offset" int: 2; value "line_back" int: 1; value "name" string: "rel1"; + value "dot" int: 1; } group "lexem" struct { group "nodes" list { @@ -1287,6 +1290,7 @@ group "lexem" struct { value "cursor_offset" int: 2; value "line_back" int: 1; value "name" string: "rel2"; + value "dot" int: 1; } group "lexem" struct { group "nodes" list { @@ -1533,6 +1537,7 @@ group "lexem" struct { value "cursor_offset" int: 2; value "line_back" int: 1; value "name" string: "text"; + value "dot" int: 1; } group "lexem" struct { group "nodes" list { @@ -2364,6 +2369,7 @@ group "lexem" struct { value "cursor_offset" int: 2; value "line_back" int: 1; value "name" string: "images"; + value "dot" int: 1; } group "lexem" struct { group "nodes" list { diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index ca2b3e2..b098173 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -18,6 +18,7 @@ typedef struct lexem_s int cursor_offset; int line_back; char *name; + int dot; } lexem; typedef struct autocomp_s @@ -35,6 +36,7 @@ typedef struct autocomp_s Eina_Bool initialized : 1; Eina_Bool enabled : 1; Ecore_Thread *cntx_lexem_thread; + Eina_Bool dot_candidate : 1; } autocomp_data; typedef struct ctx_lexem_thread_data_s @@ -70,6 +72,7 @@ eddc_init(void) EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, "cursor_offset", cursor_offset, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, "line_back", line_back, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, "name", name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, "dot", dot, EET_T_INT); } static void @@ -267,8 +270,9 @@ context_lexem_thread_end_cb(void *data, Ecore_Thread *thread EINA_UNUSED) if (td->ad->cntx_lexem_thread == thread) td->ad->cntx_lexem_thread = NULL; - if (td->list_show && td->result) + if (td->list_show || (td->result && td->result->dot && td->ad->dot_candidate)) candidate_list_show(td->ad); + td->ad->dot_candidate = EINA_FALSE; free(td->utf8); free(td); } @@ -279,10 +283,11 @@ context_lexem_thread_cancel_cb(void *data, Ecore_Thread *thread EINA_UNUSED) ctx_lexem_td *td = (ctx_lexem_td *)data; td->ad->lexem_ptr = td->result ? td->result : (lexem *)td->ad->lexem_root; - if (td->list_show && td->result) + if (td->list_show || (td->result
[EGIT] [core/efl] efl-1.14 01/01: fb engine : Add NULL type handling in output free.
hermet pushed a commit to branch efl-1.14. http://git.enlightenment.org/core/efl.git/commit/?id=1774c94f252b588af47a798b9a53136fc15d7b39 commit 1774c94f252b588af47a798b9a53136fc15d7b39 Author: SangHyeon Lee Date: Tue Jun 23 08:11:39 2015 +0900 fb engine : Add NULL type handling in output free. Summary: Add NULL type check in output_free of evas fb engine. If engine setup is failed, Render_Engine wil be NULL so output_free also need to handling NULL check. Test Plan: It needs specific condition to reproduce, engine of ecore_evas is set to fb, and setup is failed, then Render_Engine is NULL, but ecore_evas_free will call output_free in fb engine's evas_engine.c Reviewers: raster, cedric, Hermet Reviewed By: Hermet Subscribers: cedric, seoz, eagleeye, singh.amitesh Differential Revision: https://phab.enlightenment.org/D2743 --- src/modules/evas/engines/fb/evas_engine.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/modules/evas/engines/fb/evas_engine.c b/src/modules/evas/engines/fb/evas_engine.c index 21e124b..875cba4 100644 --- a/src/modules/evas/engines/fb/evas_engine.c +++ b/src/modules/evas/engines/fb/evas_engine.c @@ -114,10 +114,11 @@ eng_output_free(void *data) { Render_Engine *re; - re = (Render_Engine *)data; - - evas_render_engine_software_generic_clean(&re->generic); - free(re); + if (re = (Render_Engine *)data) + { +evas_render_engine_software_generic_clean(&re->generic); +free(re); + } evas_common_shutdown(); } --
[EGIT] [core/efl] master 01/01: fb engine : Add NULL type handling in output free.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9e57d348935c7c417e96b6af122e0990f21169a3 commit 9e57d348935c7c417e96b6af122e0990f21169a3 Author: SangHyeon Lee Date: Tue Jun 23 08:11:39 2015 +0900 fb engine : Add NULL type handling in output free. Summary: Add NULL type check in output_free of evas fb engine. If engine setup is failed, Render_Engine wil be NULL so output_free also need to handling NULL check. Test Plan: It needs specific condition to reproduce, engine of ecore_evas is set to fb, and setup is failed, then Render_Engine is NULL, but ecore_evas_free will call output_free in fb engine's evas_engine.c Reviewers: raster, cedric, Hermet Reviewed By: Hermet Subscribers: cedric, seoz, eagleeye, singh.amitesh Differential Revision: https://phab.enlightenment.org/D2743 --- src/modules/evas/engines/fb/evas_engine.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/modules/evas/engines/fb/evas_engine.c b/src/modules/evas/engines/fb/evas_engine.c index 21e124b..875cba4 100644 --- a/src/modules/evas/engines/fb/evas_engine.c +++ b/src/modules/evas/engines/fb/evas_engine.c @@ -114,10 +114,11 @@ eng_output_free(void *data) { Render_Engine *re; - re = (Render_Engine *)data; - - evas_render_engine_software_generic_clean(&re->generic); - free(re); + if (re = (Render_Engine *)data) + { +evas_render_engine_software_generic_clean(&re->generic); +free(re); + } evas_common_shutdown(); } --
[EGIT] [core/efl] master 01/01: edje: unset efreet cache update flag to prevent dbus connections
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1edb35fff3fe54ac7eea1ba2c26e509284b4e470 commit 1edb35fff3fe54ac7eea1ba2c26e509284b4e470 Author: Mike Blumenkrantz Date: Mon Jun 22 14:53:13 2015 -0400 edje: unset efreet cache update flag to prevent dbus connections efreet_init began to be called with the addition of translatable strings, but allowing dbus connections in edje (and thus edje-derived tools) will result in errors when edje_init is called without a dbus connection available --- src/lib/edje/edje_main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/edje/edje_main.c b/src/lib/edje/edje_main.c index 03c46ea..a891ec5 100644 --- a/src/lib/edje/edje_main.c +++ b/src/lib/edje/edje_main.c @@ -1,5 +1,6 @@ #include "edje_private.h" +extern int efreet_cache_update; static Edje_Version _version = { VMAJ, VMIN, VMIC, VREV }; EAPI Edje_Version * edje_version = &_version; @@ -69,6 +70,7 @@ edje_init(void) goto shutdown_eet; } + efreet_cache_update = 0; if (!efreet_init()) { ERR("Efreet init failed"); --
[EGIT] [e16/e16] master 01/02: Update po.
kwo pushed a commit to branch master. http://git.enlightenment.org/e16/e16.git/commit/?id=f0d6964caee82191923655b8c155c07b23c8f279 commit f0d6964caee82191923655b8c155c07b23c8f279 Author: Kim Woelders Date: Mon Jun 22 18:32:47 2015 +0200 Update po. --- po/ar.po| 2 +- po/bg.po| 2 +- po/bs.po| 2 +- po/ca.po| 597 ++-- po/cs.po| 2 +- po/csb.po | 2 +- po/da.po| 2 +- po/de.po| 2 +- po/en_US.po | 2 +- po/eo.po| 2 +- po/es.po| 2 +- po/fo.po| 2 +- po/fr.po| 2 +- po/gl.po| 2 +- po/hr.po| 2 +- po/hu.po| 2 +- po/it.po| 2 +- po/ja.po| 2 +- po/ko.po| 2 +- po/nb.po| 2 +- po/nl.po| 2 +- po/pl.po| 2 +- po/pt.po| 2 +- po/pt_BR.po | 2 +- po/ru.po| 2 +- po/sk.po| 2 +- po/sr.po| 2 +- po/sv.po| 2 +- po/tr.po| 2 +- po/uk.po| 2 +- po/zh_CN.po | 2 +- 31 files changed, 326 insertions(+), 331 deletions(-) diff --git a/po/ar.po b/po/ar.po index 2970728..a7d2d02 100644 --- a/po/ar.po +++ b/po/ar.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: e16\n" "Report-Msgid-Bugs-To: enlightenment-i...@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-02-21 14:54+0100\n" +"POT-Creation-Date: 2015-06-22 20:25+0200\n" "PO-Revision-Date: 2009-09-28 17:09+\n" "Last-Translator: Aron Xu \n" "Language-Team: Arabic \n" diff --git a/po/bg.po b/po/bg.po index c1e3834..00295f3 100644 --- a/po/bg.po +++ b/po/bg.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: e16\n" "Report-Msgid-Bugs-To: enlightenment-i...@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-02-21 14:54+0100\n" +"POT-Creation-Date: 2015-06-22 20:25+0200\n" "PO-Revision-Date: 2010-05-09 01:24+\n" "Last-Translator: Aron Xu \n" "Language-Team: Bulgarian\n" diff --git a/po/bs.po b/po/bs.po index 5a81ed4..d33ec42 100644 --- a/po/bs.po +++ b/po/bs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: e16\n" "Report-Msgid-Bugs-To: enlightenment-i...@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-02-21 14:54+0100\n" +"POT-Creation-Date: 2015-06-22 20:25+0200\n" "PO-Revision-Date: 2010-05-09 01:27+\n" "Last-Translator: Kemal Sanjta \n" "Language-Team: Bosnian \n" diff --git a/po/ca.po b/po/ca.po index 8e82ac9..f4416ae 100644 --- a/po/ca.po +++ b/po/ca.po @@ -6,17 +6,17 @@ msgid "" msgstr "" "Project-Id-Version: enlightenment\n" -"Report-Msgid-Bugs-To: $MSGID_BUGS_ADDRESS\n" -"POT-Creation-Date: 2014-05-24 09:16+0200\n" +"Report-Msgid-Bugs-To: enlightenment-i...@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-06-22 20:25+0200\n" "PO-Revision-Date: 2015-03-29 14:25+\n" "Last-Translator: JoanColl \n" "Language-Team: Catalan \n" +"Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2015-03-30 05:18+\n" "X-Generator: Launchpad (build 17413)\n" -"Language: ca\n" #: src/about.c:35 #, c-format @@ -46,8 +46,8 @@ msgstr "" "Mandrake - mandr...@mandrake.net\n" "Kim Woelders - k...@woelders.dk\n" -#: src/aclass.c:218 src/backgrounds.c:256 src/borders.c:695 src/buttons.c:186 -#: src/cursors.c:141 src/iclass.c:356 src/tclass.c:119 src/tooltips.c:132 +#: src/aclass.c:222 src/backgrounds.c:260 src/borders.c:698 src/buttons.c:190 +#: src/cursors.c:139 src/iclass.c:360 src/tclass.c:119 src/tooltips.c:136 #, c-format msgid "%u references remain" msgstr "Resten %u referències" @@ -150,36 +150,36 @@ msgstr "" "Hi ha hagut un error executant el programa:\n" "%s" -#: src/alert.c:216 +#: src/alert.c:218 msgid "Enlightenment Error" msgstr "Error d'Enlightenment" -#: src/alert.c:569 +#: src/alert.c:571 msgid "Enlightenment Message Dialog" msgstr "Diàleg de missatges Enlightenment" -#: src/alert.c:569 +#: src/alert.c:571 msgid "Ignore this" msgstr "Ignora-ho" -#: src/alert.c:570 +#: src/alert.c:572 msgid "Restart Enlightenment" msgstr "Reinicia Enlightenment" -#: src/alert.c:570 src/setup.c:182 +#: src/alert.c:572 src/setup.c:184 msgid "Quit Enlightenment" msgstr "Surt d'Enlightenment" -#: src/alert.c:580 +#: src/alert.c:582 msgid "Attention !!!" msgstr "Atenció !!!" -#: src/alert.c:580 src/dialog.c:683 src/dialog.c:1822 src/events.c:95 -#: src/setup.c:161 src/setup.c:174 src/sound.c:309 +#: src/alert.c:582 src/dialog.c:684 src/dialog.c:1823 src/events.c:102 +#: src/setup.c:163 src/setup.c:176 src/sound.c:309 msgid "OK" msgstr "Accepta" -#: src/backgrounds.c:1496 +#: src/backgrounds.c:1500 #, c-format msgid "" "Background definition information:\n" @@ -190,11 +190,11 @@ msgstr "" "Nom: %s\n" "Arxiu: %s" -#: src/backgrounds.c:1497 +#: src/backgrounds.c:1501 msgid "-NONE-" msgstr "-CAP-" -#: src/backgrounds.c:1672 src/backgrounds.c:1674 +#: src/backgrounds.c:1676 src/backgrounds.c:1678 msgid "" "No\n" "Background" @@ -202,40 +202,40 @@ msg
[EGIT] [e16/e16] master 02/02: 1.0.16.002.
kwo pushed a commit to branch master. http://git.enlightenment.org/e16/e16.git/commit/?id=cf7d68ec4f5119d00a37eac7718da5f6cac7107d commit cf7d68ec4f5119d00a37eac7718da5f6cac7107d Author: Kim Woelders Date: Mon Jun 22 20:23:04 2015 +0200 1.0.16.002. --- ChangeLog| 13 + configure.ac | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 064e472..dcbeef6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5908,3 +5908,16 @@ Tue Mar 24 19:05:34 CET 2015 Fix focus issues with pager zoom windows on desks other than first (T2197). Slightly different fix to pager zoom/focus issue. Fix crash when using mouse wheel in background selector (T). + +--- + +Mon Jun 22 20:21:33 CEST 2015 + +--- 1.0.16.002 --- +Use gettext 0.18. +Eliminate deprecated usleep(). +Fixes for various build corner cases. +Fix stacking when there is only one window. +Require render version 0.11 before using XRenderCreateSolidFill(). +Fix ignoring ConfigureRequest from application. +Set NorthWestGravity when applying snapshot location. diff --git a/configure.ac b/configure.ac index 7f0f63a..27568c7 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ m4_define([pkg_version], [1.0.16]) -m4_define([pkg_revision], [001]) +m4_define([pkg_revision], [002]) m4_define([pkg_version], m4_ifdef([pkg_revision], [pkg_version.pkg_revision], [pkg_version])) m4_define([rpm_revision], m4_ifdef([pkg_revision], ["0.%(date '+%y%m%d')"], [1])) --
[EGIT] [e16/e16] master 02/02: Set NorthWestGravity when applying snapshot location.
kwo pushed a commit to branch master. http://git.enlightenment.org/e16/e16.git/commit/?id=02e023bb331ca6a43350e2a2e1f2274fecb296f9 commit 02e023bb331ca6a43350e2a2e1f2274fecb296f9 Author: Kim Woelders Date: Mon Jun 22 16:58:11 2015 +0200 Set NorthWestGravity when applying snapshot location. Otherwise clients with other than NorthWestGravity will not be placed correctly. --- src/snaps.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/snaps.c b/src/snaps.c index 002761b..48fe9e8 100644 --- a/src/snaps.c +++ b/src/snaps.c @@ -1,6 +1,6 @@ /* * Copyright (C) 2000-2007 Carsten Haitzler, Geoff Harrison and various contributors - * Copyright (C) 2004-2014 Kim Woelders + * Copyright (C) 2004-2015 Kim Woelders * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -1444,6 +1444,7 @@ SnapshotEwinApply(EWin * ewin) ewin->state.placed = 1; ewin->client.x = sn->x; ewin->client.y = sn->y; + ewin->icccm.grav = NorthWestGravity; #if 0 /* No, do later in EwinDetermineArea() */ ewin->area_x = sn->area_x; ewin->area_y = sn->area_y; --
[EGIT] [e16/e16] master 01/02: Fix ignoring ConfigureRequest from application.
kwo pushed a commit to branch master. http://git.enlightenment.org/e16/e16.git/commit/?id=08ad426b8b81ded49f5966ab9e81f20ecf14ac9c commit 08ad426b8b81ded49f5966ab9e81f20ecf14ac9c Author: Kim Woelders Date: Sun Jun 21 10:58:30 2015 +0200 Fix ignoring ConfigureRequest from application. We would "correct" position/size even though we should ignore the operation. --- src/ewins.c | 24 +++- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/ewins.c b/src/ewins.c index 5531c0d..caf8966 100644 --- a/src/ewins.c +++ b/src/ewins.c @@ -1326,7 +1326,8 @@ EwinEventConfigureRequest(EWin * ewin, XEvent * ev) winrel = 0; /* This is shady - some clients send root coords, some use the * ICCCM ones sent by us */ - if (!EwinInhGetApp(ewin, move)) + if ((ev->xconfigurerequest.value_mask & (CWX | CWY)) && + !EwinInhGetApp(ewin, move)) { #if 0 /* FIXME - ??? */ if (ev->xconfigurerequest.value_mask & CWX) @@ -1341,13 +1342,21 @@ EwinEventConfigureRequest(EWin * ewin, XEvent * ev) y = ev->xconfigurerequest.y - (Mode.wm.win_y + EoGetY(EoGetDesk(ewin))); #endif +/* Correct position taking gravity into account */ +EwinGetPosition(ewin, x, y, 0, &x, &y); } - if (!EwinInhGetApp(ewin, size)) + if ((ev->xconfigurerequest.value_mask & (CWWidth | CWHeight)) && + !EwinInhGetApp(ewin, size)) { if (ev->xconfigurerequest.value_mask & CWWidth) w = ev->xconfigurerequest.width; if (ev->xconfigurerequest.value_mask & CWHeight) h = ev->xconfigurerequest.height; +if ((ev->xconfigurerequest.value_mask & (CWX | CWY)) == 0) + { + /* Resizing only */ + EwinKeepOnScreen(ewin, w, h, &x, &y); + } } if (ev->xconfigurerequest.value_mask & CWSibling) winrel = ev->xconfigurerequest.above; @@ -1367,17 +1376,6 @@ EwinEventConfigureRequest(EWin * ewin, XEvent * ev) } } - if (ev->xconfigurerequest.value_mask & (CWX | CWY)) - { -/* Correct position taking gravity into account */ -EwinGetPosition(ewin, x, y, 0, &x, &y); - } - else if (ev->xconfigurerequest.value_mask & (CWWidth | CWHeight)) - { -/* Resizing only */ -EwinKeepOnScreen(ewin, w, h, &x, &y); - } - EwinMoveResize(ewin, x, y, w, h, MRF_NOCHECK_ONSCREEN); ReZoom(ewin); } --
[EGIT] [core/efl] master 02/03: edje: add possibility to speed up animation per object.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a3c7a831960e679d36b6c1fa443fc9642c243914 commit a3c7a831960e679d36b6c1fa443fc9642c243914 Author: Cedric BAIL Date: Mon Jun 22 18:46:12 2015 +0200 edje: add possibility to speed up animation per object. This could come handy for previewing the effect of accelerating animation. @feature --- src/lib/edje/Edje_Common.h | 4 ++-- src/lib/edje/edje_object.eo | 23 +++ src/lib/edje/edje_private.h | 2 ++ src/lib/edje/edje_program.c | 15 ++- src/lib/edje/edje_smart.c | 1 + 5 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/lib/edje/Edje_Common.h b/src/lib/edje/Edje_Common.h index 7e33765..7daec09 100644 --- a/src/lib/edje/Edje_Common.h +++ b/src/lib/edje/Edje_Common.h @@ -1834,7 +1834,7 @@ EAPI void edje_thaw (void); EAPI void edje_language_set (const char *locale); /** - * @brief Set edje trasition's duration factor. + * @brief Set edje transition duration factor. * * @param scale The edje trasition's duration factor (the default value is @c 1.0) * @@ -1857,7 +1857,7 @@ EAPI void edje_language_set (const char *locale); EAPI void edje_transition_duration_factor_set(double scale); /** - * @brief Retrieve trasitions'duration factor. + * @brief Retrieve transitions duration factor. * * @return The edje transition duration factor * diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index c1e18cd..9cd3e81 100755 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -2384,6 +2384,29 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @in obj_swallow: Evas.Object *; /*@ The object to occupy that part */ } } + @property transition_duration_factor { + set { +/*@ + @brief Set transition duration factor. + + This define the transition duration factor on this + specific object. By default all animation are run at a speed + factor of 1.0. + */ + } + get { +/*@ + @brief Get transition duration factor. + + This define the transition duration factor on this + specific object. By default all animation are run at a speed + factor of 1.0. + */ + } + values { +scale: double; /*@ The transition duration factor */ + } + } } implements { Eo.Base.constructor; diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index d69a783..44c8be7 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -1573,6 +1573,8 @@ struct _Edje EPhysics_World *world; #endif + doubleduration_scale; + Eina_List*user_defined; lua_State*L; diff --git a/src/lib/edje/edje_program.c b/src/lib/edje/edje_program.c index 9947f44..bf719a0 100644 --- a/src/lib/edje/edje_program.c +++ b/src/lib/edje/edje_program.c @@ -195,6 +195,19 @@ edje_transition_duration_factor_set(double scale) _edje_transition_duration_scale = FROM_DOUBLE(scale); } +EOLIAN void +_edje_object_transition_duration_factor_set(Eo *obj EINA_UNUSED, +Edje *pd, double scale) +{ + pd->duration_scale = scale; +} + +EOLIAN double +_edje_object_transition_duration_factor_get(Eo *obj EINA_UNUSED, Edje *pd) +{ + return pd->duration_scale; +} + void edje_object_propagate_callback_add(Evas_Object *obj, void (*func)(void *data, Evas_Object *o, const char *emission, const char *source), void *data) { @@ -412,7 +425,7 @@ _edje_object_animation_get(Eo *obj EINA_UNUSED, Edje *ed) Eina_Bool _edje_program_run_iterate(Edje_Running_Program *runp, double tim) { - FLOAT_T t, total, t_scale = 1.0; + FLOAT_T t, total, t_scale = runp->edje->duration_scale; Eina_List *l; Edje *ed; Edje_Program_Target *pt; diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index 225db1a..5bd5ce2 100644 --- a/src/lib/edje/edje_smart.c +++ b/src/lib/edje/edje_smart.c @@ -28,6 +28,7 @@ EOLIAN static Eo * _edje_object_eo_base_constructor(Eo *obj, Edje *ed) { ed->base = eo_data_ref(obj, EVAS_SMART_CLIPPED_CLASS); + ed->duration_scale = 1.0; obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor()); eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY)); --
[EGIT] [core/efl] master 03/03: ecore_con: eoifying ecore_con_eet.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=12257053a0f428b88df913ac3a00fdaa5b366ed2 commit 12257053a0f428b88df913ac3a00fdaa5b366ed2 Author: Srivardhan Hebbar Date: Mon Jun 22 18:55:54 2015 +0200 ecore_con: eoifying ecore_con_eet. Summary: This is still work in progress. I've added new file for temporary purpose. Idea is to first eoify everything then change its namespace properly. Signed-off-by: Srivardhan Hebbar Reviewers: cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2602 Signed-off-by: Cedric BAIL --- src/Makefile_Ecore_Con.am | 3 + src/lib/ecore_con/Ecore_Con_Eet.h | 9 +- src/lib/ecore_con/Ecore_Con_Eet_Eo.h | 3 + src/lib/ecore_con/Ecore_Con_Eet_Legacy.h | 3 + src/lib/ecore_con/ecore_con_eet.c | 487 -- src/lib/ecore_con/ecore_con_eet_base.eo | 23 ++ src/lib/ecore_con/ecore_con_eet_client_obj.eo | 9 + src/lib/ecore_con/ecore_con_eet_server_obj.eo | 9 + 8 files changed, 358 insertions(+), 188 deletions(-) diff --git a/src/Makefile_Ecore_Con.am b/src/Makefile_Ecore_Con.am index caafdfa..d185cf8 100644 --- a/src/Makefile_Ecore_Con.am +++ b/src/Makefile_Ecore_Con.am @@ -6,6 +6,9 @@ ecore_con_eolian_files = \ lib/ecore_con/ecore_con_client.eo \ lib/ecore_con/ecore_con_server.eo \ lib/ecore_con/ecore_con_connector.eo \ + lib/ecore_con/ecore_con_eet_base.eo \ + lib/ecore_con/ecore_con_eet_server_obj.eo \ + lib/ecore_con/ecore_con_eet_client_obj.eo \ lib/ecore_con/efl_network_url.eo ecore_con_eolian_c = $(ecore_con_eolian_files:%.eo=%.eo.c) diff --git a/src/lib/ecore_con/Ecore_Con_Eet.h b/src/lib/ecore_con/Ecore_Con_Eet.h index a6c52bd..a85948c 100644 --- a/src/lib/ecore_con/Ecore_Con_Eet.h +++ b/src/lib/ecore_con/Ecore_Con_Eet.h @@ -43,7 +43,7 @@ * @{ */ -typedef struct _Ecore_Con_Eet Ecore_Con_Eet; +typedef Eo Ecore_Con_Eet; typedef struct _Ecore_Con_Reply Ecore_Con_Reply; /** @@ -70,6 +70,13 @@ typedef Eina_Bool (*Ecore_Con_Eet_Client_Cb)(void *data, Ecore_Con_Reply *reply, */ typedef Eina_Bool (*Ecore_Con_Eet_Server_Cb)(void *data, Ecore_Con_Reply *reply, Ecore_Con_Server *conn); +#ifndef EFL_NOLEGACY_API_SUPPORT +#include "Ecore_Con_Eet_Legacy.h" +#endif +#ifdef EFL_EO_API_SUPPORT +#include "Ecore_Con_Eet_Eo.h" +#endif + /** * Create a Ecore_Con_Eet server. * diff --git a/src/lib/ecore_con/Ecore_Con_Eet_Eo.h b/src/lib/ecore_con/Ecore_Con_Eet_Eo.h new file mode 100644 index 000..52b1a4b --- /dev/null +++ b/src/lib/ecore_con/Ecore_Con_Eet_Eo.h @@ -0,0 +1,3 @@ +#include "ecore_con_eet_base.eo.h" +#include "ecore_con_eet_server_obj.eo.h" +#include "ecore_con_eet_client_obj.eo.h" diff --git a/src/lib/ecore_con/Ecore_Con_Eet_Legacy.h b/src/lib/ecore_con/Ecore_Con_Eet_Legacy.h new file mode 100644 index 000..3404728 --- /dev/null +++ b/src/lib/ecore_con/Ecore_Con_Eet_Legacy.h @@ -0,0 +1,3 @@ +#include "ecore_con_eet_base.eo.legacy.h" +#include "ecore_con_eet_client_obj.eo.legacy.h" +#include "ecore_con_eet_server_obj.eo.legacy.h" diff --git a/src/lib/ecore_con/ecore_con_eet.c b/src/lib/ecore_con/ecore_con_eet.c index eb335ce..d2bbd28 100644 --- a/src/lib/ecore_con/ecore_con_eet.c +++ b/src/lib/ecore_con/ecore_con_eet.c @@ -21,11 +21,36 @@ #define ECORE_CON_EET_RAW_MAGIC 0xDEAD007 +typedef struct _Ecore_Con_Eet_Base_Data Ecore_Con_Eet_Base_Data; +typedef struct _Ecore_Con_Eet_Server_Obj_Data Ecore_Con_Eet_Server_Obj_Data; +typedef struct _Ecore_Con_Eet_Client_Obj_Data Ecore_Con_Eet_Client_Obj_Data; typedef struct _Ecore_Con_Eet_Data Ecore_Con_Eet_Data; typedef struct _Ecore_Con_Eet_Raw_Data Ecore_Con_Eet_Raw_Data; typedef struct _Ecore_Con_Eet_Client Ecore_Con_Eet_Client; typedef struct _Ecore_Con_Eet_Server Ecore_Con_Eet_Server; +struct _Ecore_Con_Eet_Server_Obj_Data +{ + Eina_List *connections; + Eina_List *client_connect_callbacks; + Eina_List *client_disconnect_callbacks; + + Ecore_Event_Handler *handler_add; + Ecore_Event_Handler *handler_del; + Ecore_Event_Handler *handler_data; +}; + +struct _Ecore_Con_Eet_Client_Obj_Data +{ + Ecore_Con_Reply *r; + Eina_List *server_connect_callbacks; + Eina_List *server_disconnect_callbacks; + + Ecore_Event_Handler *handler_add; + Ecore_Event_Handler *handler_del; + Ecore_Event_Handler *handler_data; +}; + struct _Ecore_Con_Reply { Ecore_Con_Eet *ece; @@ -66,39 +91,17 @@ struct _Ecore_Con_Eet_Server const void *data; }; -struct _Ecore_Con_Eet +struct _Ecore_Con_Eet_Base_Data { Ecore_Con_Server*server; - Ecore_Event_Handler *handler_add; - Ecore_Event_Handler *handler_del; - Ecore_Event_Handler *handler_data; - Eet_Data_Descriptor *edd; Eet_Data_Descriptor *matching; Eina_Hash *data_callbacks;
[EGIT] [core/efl] master 01/03: edje: add support to control the transition time of edje animation globally.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6487a26354f0e11a9c7dd74d2923e7d2466dcc34 commit 6487a26354f0e11a9c7dd74d2923e7d2466dcc34 Author: jiin.moon Date: Mon Jun 22 17:56:08 2015 +0200 edje: add support to control the transition time of edje animation globally. Summary: Add the transition scale flag and the transtion scale value. This flag can be change using "transition_scale_enable" in edje program. If flag is true, the transition scale value affect the transition speed of edje The transition scale value can be change by elm_config. @feature Test Plan: elementary_config Reviewers: Hermet, cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2287 Signed-off-by: Cedric BAIL --- src/bin/edje/edje_cc.h | 1 + src/bin/edje/edje_cc_handlers.c | 174 src/bin/edje/edje_cc_parse.c| 12 +++ src/lib/edje/Edje_Common.h | 37 + src/lib/edje/edje_data.c| 1 + src/lib/edje/edje_private.h | 1 + src/lib/edje/edje_program.c | 20 - 7 files changed, 156 insertions(+), 90 deletions(-) diff --git a/src/bin/edje/edje_cc.h b/src/bin/edje/edje_cc.h index 6b1e16c..3e25e69 100644 --- a/src/bin/edje/edje_cc.h +++ b/src/bin/edje/edje_cc.h @@ -247,6 +247,7 @@ Eina_Bool edje_cc_handlers_wildcard(void); void edje_cc_handlers_hierarchy_alloc(void); void edje_cc_handlers_hierarchy_free(void); void edje_cc_handlers_pop_notify(const char *token); +int get_param_index(char *str); /* global vars */ extern Eina_List *ext_dirs; diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 7b3efd4..6a294cb 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -1570,6 +1570,7 @@ _edje_program_copy(Edje_Program *ep, Edje_Program *ep2) ep->tween.v2 = ep2->tween.v2; ep->tween.v3 = ep2->tween.v3; ep->tween.v4 = ep2->tween.v4; + ep->tween.use_duration_factor = ep2->tween.use_duration_factor; ep->sample_name = STRDUP(ep2->sample_name); ep->tone_name = STRDUP(ep2->tone_name); ep->duration = ep2->duration; @@ -12002,6 +12003,7 @@ ob_collections_group_programs_program(void) ep = mem_alloc(SZ(Edje_Program_Parser)); ep->id = -1; ep->tween.mode = EDJE_TWEEN_MODE_LINEAR; + ep->tween.use_duration_factor = EINA_FALSE; ep->after = NULL; epp = (Edje_Program_Parser *)ep; epp->can_override = EINA_FALSE; @@ -12486,7 +12488,8 @@ st_collections_group_programs_program_action(void) static void st_collections_group_programs_program_transition(void) { - char *tmp = NULL; + int current = -1, index = -1; + unsigned int required_args = 0; check_min_arg_count(2); @@ -12522,106 +12525,101 @@ st_collections_group_programs_program_transition(void) "SPRING", EDJE_TWEEN_MODE_SPRING, NULL); current_program->tween.time = FROM_DOUBLE(parse_float_range(1, 0.0, 9.0)); - if ((current_program->tween.mode >= EDJE_TWEEN_MODE_LINEAR) && - (current_program->tween.mode <= EDJE_TWEEN_MODE_DECELERATE)) + + //Check the index of params not related to tweenmode's param + //This index use for count of the tweenmode's param + if ((index = get_param_index("USE_DURATION_FACTOR")) != -1) { -tmp = NULL; -if ((get_arg_count() == 3) && (!strcmp((tmp = parse_str(2)), "CURRENT"))) - { - free(tmp); - current_program->tween.mode |= EDJE_TWEEN_MODE_OPT_FROM_CURRENT; - } -else if (get_arg_count() != 2) - { - free(tmp); - ERR("parse error %s:%i. Need 2rd parameter to set time", - file_in, line - 1); - exit(-1); - } +current_program->tween.use_duration_factor = parse_bool(index + 1); +required_args += 2; } - // the following need v1 - // EDJE_TWEEN_MODE_ACCELERATE_FACTOR - // EDJE_TWEEN_MODE_DECELERATE_FACTOR - // EDJE_TWEEN_MODE_SINUSOIDAL_FACTOR - // current_program->tween.v1 - else if ((current_program->tween.mode >= EDJE_TWEEN_MODE_ACCELERATE_FACTOR) && - (current_program->tween.mode <= EDJE_TWEEN_MODE_SINUSOIDAL_FACTOR)) + if ((current = get_param_index("CURRENT")) != -1) { -tmp = NULL; -if ((get_arg_count() == 4) && (!strcmp((tmp = parse_str(3)), "CURRENT"))) - { - free(tmp); - current_program->tween.mode |= EDJE_TWEEN_MODE_OPT_FROM_CURRENT; - } -else if (get_arg_count() != 3) - { - free(tmp); -ERR("parse error %s:%i. Need 3rd parameter to set factor", -file_in, line - 1); -exit(-1); - } -current_program->tween.v1 = FROM_DOUBLE(parse_float_range(2, 0.0, 9
[EGIT] [core/enlightenment] master 01/01: Logging: Fix broken logging macros.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ba82d226929434eef20908a0a4bde5e5a2ba140f commit ba82d226929434eef20908a0a4bde5e5a2ba140f Author: Tom Hacohen Date: Mon Jun 22 15:37:13 2015 +0100 Logging: Fix broken logging macros. This is macro 101, you don't EVER put multiple statements in a macro like that. See Chris's commits, these broken macros already introduced (subtle) bugs. Always surround macros in "do {} while()" unless you absolutely can't (like when you declare a new variable to be used in the scope). Why is it even there? I think we can safely assume eina log is available for usage in E... @fix --- src/bin/e_log.h | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/bin/e_log.h b/src/bin/e_log.h index 4100780..325539f 100644 --- a/src/bin/e_log.h +++ b/src/bin/e_log.h @@ -27,11 +27,11 @@ EINTERN int e_log_shutdown(void); #undef WRN #undef ERR #undef CRI -#define DBG(...)printf(__VA_ARGS__); putc('\n', stdout) -#define INF(...)printf(__VA_ARGS__); putc('\n', stdout) -#define WRN(...)printf(__VA_ARGS__); putc('\n', stdout) -#define ERR(...)printf(__VA_ARGS__); putc('\n', stdout) -#define CRI(...)printf(__VA_ARGS__); putc('\n', stdout) +#define DBG(...)do { printf(__VA_ARGS__); putc('\n', stdout); } while(0) +#define INF(...)do { printf(__VA_ARGS__); putc('\n', stdout); } while(0) +#define WRN(...)do { printf(__VA_ARGS__); putc('\n', stdout); } while(0) +#define ERR(...)do { printf(__VA_ARGS__); putc('\n', stdout); } while(0) +#define CRI(...)do { printf(__VA_ARGS__); putc('\n', stdout); } while(0) #endif #endif --
[EGIT] [core/enlightenment] master 01/02: Fix Coverity CID1298052
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3e23c54b8adb80ceb732d48de79b9f8cfb7a2be2 commit 3e23c54b8adb80ceb732d48de79b9f8cfb7a2be2 Author: Chris Michael Date: Mon Jun 22 10:19:13 2015 -0400 Fix Coverity CID1298052 Signed-off-by: Chris Michael --- src/bin/e_fm/e_fm_main_udisks2.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bin/e_fm/e_fm_main_udisks2.c b/src/bin/e_fm/e_fm_main_udisks2.c index 5441fe9..7078d0f 100644 --- a/src/bin/e_fm/e_fm_main_udisks2.c +++ b/src/bin/e_fm/e_fm_main_udisks2.c @@ -588,8 +588,11 @@ _e_fm_main_udisks2_cb_storage_prop_modified(void *data, const Eldbus_Message *ms if (type[0] == 's') { char *txt; + if (eldbus_message_arguments_get(msg, type, &txt)) -ERR("%s", txt); +{ + ERR("%s", txt); +} } } if (!eldbus_message_arguments_get(msg, "a{sv}", &arr)) --
[EGIT] [core/enlightenment] master 02/02: Fix Coverity CID1298053
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b1b407ef220331f58bb367d36a5046f6d82033fd commit b1b407ef220331f58bb367d36a5046f6d82033fd Author: Chris Michael Date: Mon Jun 22 10:20:30 2015 -0400 Fix Coverity CID1298053 Signed-off-by: Chris Michael --- src/bin/e_fm/e_fm_main_udisks2.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/bin/e_fm/e_fm_main_udisks2.c b/src/bin/e_fm/e_fm_main_udisks2.c index 7078d0f..993241c 100644 --- a/src/bin/e_fm/e_fm_main_udisks2.c +++ b/src/bin/e_fm/e_fm_main_udisks2.c @@ -962,7 +962,9 @@ _volume_mount(Eldbus_Proxy *proxy, const char *fstype, const char *buf) if (fstype) { if (!eldbus_message_iter_arguments_append(array, "{sv}", &dict)) - ERR("E"); + { + ERR("E"); + } eldbus_message_iter_basic_append(dict, 's', fs_txt); var = eldbus_message_iter_container_new(dict, 'v', "s"); @@ -974,7 +976,9 @@ _volume_mount(Eldbus_Proxy *proxy, const char *fstype, const char *buf) if (buf[0]) { if (!eldbus_message_iter_arguments_append(array, "{sv}", &dict)) - ERR("E"); + { + ERR("E"); + } eldbus_message_iter_basic_append(dict, 's', opt_txt); var = eldbus_message_iter_container_new(dict, 'v', "s"); --
[EGIT] [tools/enventor] master 01/01: live_edit: fix regression bug that introduced in 14a0e2cfd2f41dad50e823c9f309e088d662ceac
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=772ffe222914f043f5a1a8ff9c183bc43d3f5b38 commit 772ffe222914f043f5a1a8ff9c183bc43d3f5b38 Author: ChunEon Park Date: Mon Jun 22 22:50:22 2015 +0900 live_edit: fix regression bug that introduced in 14a0e2cfd2f41dad50e823c9f309e088d662ceac toggling context is corrupted but recovered again. --- src/bin/live_edit.c | 7 --- src/bin/tools.c | 5 ++--- src/include/tools.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c index 60aa284..08246ba 100644 --- a/src/bin/live_edit.c +++ b/src/bin/live_edit.c @@ -912,7 +912,6 @@ live_edit_toggle(void) { live_data *ld = g_ld; Eina_Bool on = !ld->on; - ld->on = on; if (on) { @@ -920,10 +919,12 @@ live_edit_toggle(void) ld->live_view = enventor_object_live_view_get(ld->enventor); ld->ctxpopup = ctxpopup_create(ld); stats_info_msg_update("Select a part to add in Live View."); -tools_live_update(ld->enventor, EINA_FALSE); +tools_live_update(EINA_TRUE); } else live_edit_cancel(); + + ld->on = on; } Eina_Bool @@ -979,7 +980,7 @@ live_edit_cancel(void) ld->on = EINA_FALSE; - tools_live_update(ld->enventor, EINA_FALSE); + tools_live_update(EINA_FALSE); } void diff --git a/src/bin/tools.c b/src/bin/tools.c index dc6856f..56d7729 100644 --- a/src/bin/tools.c +++ b/src/bin/tools.c @@ -399,13 +399,12 @@ tools_search_update(Evas_Object *enventor EINA_UNUSED, } void -tools_live_update(Evas_Object *enventor EINA_UNUSED, - Eina_Bool toggle EINA_UNUSED) +tools_live_update(Eina_Bool on) { tools_data *td = g_td; if (!td) return; - if (live_edit_get()) + if (on) elm_object_signal_emit(td->live_btn, "icon,highlight,enabled", ""); else elm_object_signal_emit(td->live_btn, "icon,highlight,disabled", ""); diff --git a/src/include/tools.h b/src/include/tools.h index 0b4e4f6..b1be3f9 100644 --- a/src/include/tools.h +++ b/src/include/tools.h @@ -7,6 +7,6 @@ void tools_swallow_update(Evas_Object *enventor, Eina_Bool toggle); void tools_status_update(Evas_Object *enventor, Eina_Bool toggle); void tools_goto_update(Evas_Object *enventor, Eina_Bool toggle); void tools_search_update(Evas_Object *enventor, Eina_Bool toggle); -void tools_live_update(Evas_Object *enventor, Eina_Bool toggle); +void tools_live_update(Eina_Bool on); void tools_console_update(Eina_Bool on); void tools_menu_update(Eina_Bool on); --
[EGIT] [tools/enventor] master 01/01: tools: improved ui.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=14a0e2cfd2f41dad50e823c9f309e088d662ceac commit 14a0e2cfd2f41dad50e823c9f309e088d662ceac Author: ChunEon Park Date: Mon Jun 22 22:45:40 2015 +0900 tools: improved ui. add click / toggle on/off effect. --- data/themes/default/theme_ext.edc | 25 ++ src/bin/base_gui.c| 12 ++- src/bin/goto.c| 8 +- src/bin/live_edit.c | 6 +- src/bin/main.c| 20 +++-- src/bin/menu.c| 4 + src/bin/panes.c | 12 ++- src/bin/search.c | 6 ++ src/bin/tools.c | 176 -- src/include/tools.h | 8 +- 10 files changed, 254 insertions(+), 23 deletions(-) diff --git a/data/themes/default/theme_ext.edc b/data/themes/default/theme_ext.edc index fb8807f..9aae13c 100644 --- a/data/themes/default/theme_ext.edc +++ b/data/themes/default/theme_ext.edc @@ -1253,7 +1253,20 @@ group { name: "elm/button/base/enventor"; desc { "default"; } } + rect { "icon_highlight"; + desc { "default"; + } + //This status is for tools selected effect + desc { "selected"; +inherit: "default" 0.0; +color: 51 153 255 255; + } + desc { "clicked"; +inherit: "selected" 0.0; + } + } rect { "icon_clip"; + clip_to: "icon_highlight"; desc { "default"; } desc { "disabled"; @@ -1397,6 +1410,16 @@ group { name: "elm/button/base/enventor"; } programs { program { + signal: "icon,highlight,enabled"; source: ""; + action: STATE_SET "selected" "0.0"; + target: "icon_highlight"; + } + program { + signal: "icon,highlight,disabled"; source: ""; + action: STATE_SET "default" "0.0"; + target: "icon_highlight"; + } + program { signal: "mouse,down,1"; source: "event"; action: SIGNAL_EMIT "elm,action,press" "elm"; after: "button_click_anim"; @@ -1405,6 +1428,7 @@ group { name: "elm/button/base/enventor"; action: STATE_SET "clicked" 0.0; target: "base"; target: "text2"; + target: "icon_highlight"; } program { signal: "mouse,up,1"; source: "event"; @@ -1415,6 +1439,7 @@ group { name: "elm/button/base/enventor"; action: STATE_SET "default" 0.0; target: "base"; target: "text2"; + target: "icon_highlight"; } program { signal: "elm,anim,activate"; source: "elm"; diff --git a/src/bin/base_gui.c b/src/bin/base_gui.c index 1484e71..4d1806e 100644 --- a/src/bin/base_gui.c +++ b/src/bin/base_gui.c @@ -148,6 +148,7 @@ void base_console_full_view(void) { panes_console_full_view(); + tools_console_update(EINA_TRUE); } void @@ -165,15 +166,22 @@ base_console_auto_hide(void) if (!config_console_get()) return; if (bd->console_msg) return; panes_editors_full_view(EINA_TRUE); + tools_console_update(EINA_FALSE); } void base_console_toggle(void) { if (panes_editors_full_view_get()) - panes_editors_full_view(EINA_FALSE); + { +tools_console_update(EINA_TRUE); +panes_editors_full_view(EINA_FALSE); + } else - panes_editors_full_view(EINA_TRUE); + { +tools_console_update(EINA_FALSE); +panes_editors_full_view(EINA_TRUE); + } } void diff --git a/src/bin/goto.c b/src/bin/goto.c index e5e6d69..1c624e7 100644 --- a/src/bin/goto.c +++ b/src/bin/goto.c @@ -162,6 +162,8 @@ goto_open(Evas_Object *enventor) btn); evas_object_show(win); + tools_goto_update(enventor, EINA_FALSE); + gd->win = win; gd->layout = layout; gd->entry = entry; @@ -180,12 +182,16 @@ void goto_close(void) { goto_data *gd = g_gd; - if (!gd) return; + + Evas_Object *enventor = gd->enventor; + //Save last state evas_object_geometry_get(gd->win, NULL, NULL, &win_w, &win_h); elm_win_screen_position_get(gd->win, &win_x, &win_y); evas_object_del(gd->win); free(gd); g_gd = NULL; + + tools_goto_update(enventor, EINA_FALSE); } diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c index 3c6df67..60aa284 100644 --- a/src/bin/live_edit.c +++ b/src/bin/live_edit.c @@ -912,6 +912,7 @@ live_edit_toggle(void) { live_data *ld = g_ld; Eina_Bool on = !ld->on; + ld->on = on; if (on) { @@ -919,11 +920,10 @@ live_edit_toggle(void) ld->live_view = enventor_object_live_view_get(ld->enventor); ld->ctxpopup = ctxpopup_create(ld); stats_info_msg_update("Select a part to add in Live View."); +tools_live_update(ld->enventor, EINA_FALSE); } else live_edit_cancel(); - - ld->on = on; } Ei
[EGIT] [website/www-content] master 01/11: Wiki page archlinux-start created
cedric pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=6143f156a97d23f552fc1f598c164526c9ee0c4a commit 6143f156a97d23f552fc1f598c164526c9ee0c4a Author: Clément Bénier Date: Wed Jun 10 10:50:46 2015 +0200 Wiki page archlinux-start created Signed-off-by: Clément Bénier Signed-off-by: Pierre Le Magourou Signed-off-by: Cedric BAIL --- pages/distros/archlinux-start.txt | 66 +++ pages/docs.txt| 3 +- 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/pages/distros/archlinux-start.txt b/pages/distros/archlinux-start.txt new file mode 100644 index 000..4364427 --- /dev/null +++ b/pages/distros/archlinux-start.txt @@ -0,0 +1,66 @@ +~~Title: Archlinux~~ + Archlinux + +The way to install Enlightenment on Archlinux is quite easy, use the official +repo : + + +#depends on elementary +pacman -S enlightenment +#EFL-based terminal emulator +pacman -S terminology #optionnal + + +Many apps or efl tools are available in AUR packages, for example with yaourt: + +yaourt -S clousseau-git + + +If you only want elementary with efl : + + +#depends on efl +pacman -S elementary + + +If you want to install enlightenment from sources, make sure you get all the +dependencies: + + +#dependencies for enlightenment +bluez-libs +ttf-font +udisks2 +hicolor-icon-theme +pixman +mesa +desktop-file-utils +xcb-util-keysyms +bullet +libjpeg-turbo +gst-plugins-base +luajit +curl +fribidi +libpulse +libxcomposite +libxinerama +libxrandr +libxss +libxcursor +libxp +libwebp +shared-mime-info +libxkbcommon +wayland +lz4 +openjpeg +avahi +librsvg +poppler +libraw +libspectre + + +Then go to [[/docs-efl-start|Get EFL installed]] tutorial, to install +Enlightenment from sources. diff --git a/pages/docs.txt b/pages/docs.txt index f13f70a..de6220a 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -12,6 +12,7 @@ course you can use stable packages for your distribution as well. * [[docs-efl-start|Get EFL installed from source]] * [[distros/ubuntu-start|EFL on Ubuntu (packages and source)]] + * [[distros/archlinux-start|EFL on archlinux]] === Working with EFL and code === @@ -37,4 +38,4 @@ improving our API references a lot. * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/index.html|EFL]] * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/index.html|Elementary]] - * [[https://build.enlightenment.org/job/base_pyefl_build/lastSuccessfulBuild/artifact/build/sphinx/html/index.html|Python Bindings]] \ No newline at end of file + * [[https://build.enlightenment.org/job/base_pyefl_build/lastSuccessfulBuild/artifact/build/sphinx/html/index.html|Python Bindings]] --
[EGIT] [website/www-content] master 07/11: Wiki page apps-efl-debugging created
cedric pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=37f77dca4c6fde93bb3cb8aa131e8b7d5b912c35 commit 37f77dca4c6fde93bb3cb8aa131e8b7d5b912c35 Author: Clément Bénier Date: Thu Jun 11 14:22:32 2015 +0200 Wiki page apps-efl-debugging created Signed-off-by: Clément Bénier Signed-off-by: Pierre Le Magourou Signed-off-by: Cedric BAIL --- media/clouseau.png | Bin 0 -> 71405 bytes media/clouseau_object.png | Bin 0 -> 120066 bytes media/settings_clouseau.png| Bin 0 -> 25360 bytes pages/debugging/apps_efl_debugging.txt | 550 + pages/docs.txt | 1 + 5 files changed, 551 insertions(+) diff --git a/media/clouseau.png b/media/clouseau.png new file mode 100644 index 000..9205e32 Binary files /dev/null and b/media/clouseau.png differ diff --git a/media/clouseau_object.png b/media/clouseau_object.png new file mode 100644 index 000..bec3198 Binary files /dev/null and b/media/clouseau_object.png differ diff --git a/media/settings_clouseau.png b/media/settings_clouseau.png new file mode 100644 index 000..a38b78b Binary files /dev/null and b/media/settings_clouseau.png differ diff --git a/pages/debugging/apps_efl_debugging.txt b/pages/debugging/apps_efl_debugging.txt new file mode 100644 index 000..c7adf87 --- /dev/null +++ b/pages/debugging/apps_efl_debugging.txt @@ -0,0 +1,550 @@ +~~Title: Apps debugging~~ + EFL application debugging + +This tutorial goal is to help you debug your EFL applications with several +use cases that you can reproduce. +It gives you approaches to know if the bug comes from your application or +from EFL libraries. + + +In this tutorial, log level and 4 use cases will be studied: + - [[apps_efl_debugging#Log level]] + - [[apps_efl_debugging#Wrong function on an object]] + - [[apps_efl_debugging#Segfault in callback function]] + - [[apps_efl_debugging#Memory leak]] + - [[apps_efl_debugging#Clouseau]] + +Before debugging, make sure your debug symbols are enabled. If not, go to the +[[/docs-efl-start#Enable_debug_symbols_Optional|Enable debug symbols]] +section. + +You can also have a look at the +[[https://phab.enlightenment.org/w/coding_convention/|EFL coding convention]]. + +=== Log level === + +The Eina log module provides log level traces, there are 5 debugging levels +with their respective macros: + +- Critical log level: EINA_LOG_LEVEL_CRITICAL() +- Error log level: EINA_LOG_ERR() +- Warning log level:EINA_LOG_WARN() +- Info log level: EINA_LOG_INFO() +- Debug log level: EINA_LOG_DBG() + +Global log level can be set with the EINA_LOG_LEVEL environment variable. + + +#debug log level +EINA_LOG_LEVEL=5 ./my_test_efl + + +The EINA_LOG_LEVELS variable provide a way to activate logs only for specific +modules. + + +#it will set respectively module1 and module2 level to 5 and to 2 +EINA_LOG_LEVELS=module1:5,module2:2 ./my_test_efl + + + + +=== Wrong function on an object === + +The code below creates 3 Elementary objects: win, box and btn. It displays a +window with an //OK// button that closes the window when it is clicked. +Here, the //elm_box_pack_end()// function is called on a wrong object (win) +which generates an error: + + +//hello.c +#include +static void +on_done(void *data, Evas_Object *obj, void *event_info) +{ +// quit the mainloop (elm_run function will return) +elm_exit(); +} + +EAPI_MAIN int +elm_main(int argc, char **argv) +{ +Evas_Object *win, *box, *btn; + +// new window +win = elm_win_util_standard_add("hello", "Hello"); + +// add a box object +box = elm_box_add(win); + +// add object as a resize object for the window (controls window minimum +// size as well as gets resized if window is resized) +elm_win_resize_object_add(win, box); +evas_object_show(box); + +// add a button +btn = elm_button_add(win); + +// set default text of button to "OK" +elm_object_text_set(btn, "OK"); + +// pack the button at the end of the box +/ERROR/ +elm_box_pack_end(win, btn); //win instead of box +evas_object_show(btn); + +// call on_done when button is clicked +evas_object_smart_callback_add(win, "clicked", on_done, NULL); + +//show the window +evas_object_show(win); + +// run the mainloop and process events and callbacks +elm_run(); +return 0; +} +ELM_MAIN() + + +Compile with -g flag to have debugging symbols and execute it: + + +gcc -Wall -O1 -march=native -g -ggdb3 -o hello hello.c `pkg-config --cflags --libs elementary` +./hello +ERR<13670>:eo lib/eo/eo.c:780 _eo_api_op_id_get() in elm_box.eo.c:48: unable to resolve regular api func 'elm_obj_box_pack_end' 0x7f1128f50faf in class 'Elm_Win'. + + +Here, the error log says that the //elm_obj_box_pack_end// +is not in the api of
[EGIT] [website/www-content] master 02/11: Wiki page debian-start created
cedric pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=ff02ab73267f83d1b55e39b9aa25ef12ac67ae8e commit ff02ab73267f83d1b55e39b9aa25ef12ac67ae8e Author: Clément Bénier Date: Wed Jun 10 10:52:04 2015 +0200 Wiki page debian-start created Signed-off-by: Clément Bénier Signed-off-by: Pierre Le Magourou Signed-off-by: Cedric BAIL --- pages/distros/debian-start.txt | 115 + pages/docs.txt | 1 + 2 files changed, 116 insertions(+) diff --git a/pages/distros/debian-start.txt b/pages/distros/debian-start.txt new file mode 100644 index 000..7ed45af --- /dev/null +++ b/pages/distros/debian-start.txt @@ -0,0 +1,115 @@ +~~Title: Debian~~ + Debian + +Enlightenment and EFL Debian official packages are outdated. In this part, +the installation for Debian is done from sources like in the +[[/docs-efl-start|Get EFL installed]] tutorial. + +The following part provides a script and shows how to install +Enlightenment and Terminology with their dependencies on Debian. The script +below can be easily adapted for Elementary. + +Start by creating a new directory to work in: + + +#create a directory +mkdir enlight +cd enlight + + +== Dependencies == + +Make sure all the dependencies are installed : + + +sudo aptitude install \ +make gcc bison flex gawk subversion automake autoconf doxygen\ +check autotools-dev autoconf-archive autopoint libtool gettext \ +libpam0g-dev libfreetype6-dev libpng12-dev zlib1g-dev libjpeg-dev\ +libdbus-1-dev luajit libluajit-5.1-dev libx11-dev libxcursor-dev\ +libxrender-dev libxrandr-dev libxfixes-dev libxdamage-dev\ +libxcomposite-dev libxss-dev libxp-dev libxext-dev libxinerama-dev +sudo aptitude install \ +libxkbfile-dev libxtst-dev libxcb1-dev libxcb-shape0-dev\ +libxcb-keysyms1-dev libpulse-dev libsndfile1-dev libudev-dev\ +libblkid-dev libmount-dev libgstreamer1.0-dev libtiff5-dev libgif-dev\ +curl libssl-dev libspectre-dev libpoppler-dev librsvg2-dev\ +libraw-dev libxinerama-dev git libfribidi-dev libcogl-gles2-dev\ +libbullet-dev libgstreamer-plugins-base1.0-dev libvlc-dev + + + +== Enlightenment and EFL build script == + +Copy the source code of the shell script below in a file called +"build_enlight.sh". + + +#!/bin/bash + +set -e +# Target directory +PREFIX="/usr/local" + +# List of the needed packages +# To adapt to your needs +PROJECTS="efl emotion_generic_players evas_generic_loaders elementary \ +elementary enlightenment" + +# Download url +SITE=" http://git.enlightenment.org/core/"; +OPT="--prefix=$PREFIX" + +PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH" +PATH="$PREFIX/bin:$PATH" +LD_LIBRARY_PATH="$PREFIX/lib:$LD_LIBRARY_PATH" +LOG="installe.log" +rm -f $LOG # Delete precedent log file +touch $LOG # Create a log file +date >> $LOG# Add current date + +# Download and compile each module +for PROJ in $PROJECTS; do +# Cloning +if [ ! -d $PROJ ]; then +git clone $SITE$PROJ.git $PROJ +fi +# Go building and installing +cd $PROJ* +make clean distclean || true +./autogen.sh $OPT +make +sudo make install +cd .. +sudo ldconfig +echo $PROJ" is installed" >> $LOG +done + +#Optionnal Terminology +git clone http://git.enlightenment.org/apps/terminology.git +cd terminology +./autogen.sh $OPT +make +sudo make all install +cd .. +sudo ldconfig + +# Delete all downloaded files and compile traces +rm -rf e* + +# Create the menu entry of Enlightenment for gdm, kdm or liqhtdm +sudo cp /usr/local/share/xsessions/enlightenment.desktop /usr/share/xsessions/ + + +This script clones the repositories, builds and installs the EFL libraries, +then builds and installs Terminology. +Finally, it creates the link to launch enlightenment in the display manager. + +Set the script executable: + + +chmod ug+x build_enlight.sh + + +Then, execute the script. Once done, you can reboot and choose enlightenment as +a window manager. diff --git a/pages/docs.txt b/pages/docs.txt index de6220a..b88ff38 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -13,6 +13,7 @@ course you can use stable packages for your distribution as well. * [[docs-efl-start|Get EFL installed from source]] * [[distros/ubuntu-start|EFL on Ubuntu (packages and source)]] * [[distros/archlinux-start|EFL on archlinux]] + * [[distros/debian-start|EFL on Debian]] === Working with EFL and code === --
[EGIT] [website/www-content] master 10/11: wiki pages point to arcanist from the debugging docs.
cedric pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=5451bbee895f6d2f922b2ae062ff09ae3ef1730c commit 5451bbee895f6d2f922b2ae062ff09ae3ef1730c Author: Clément Bénier Date: Mon Jun 22 15:17:36 2015 +0200 wiki pages point to arcanist from the debugging docs. Signed-off-by: Cedric BAIL --- pages/docs.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/docs.txt b/pages/docs.txt index cb632bb..ef35268 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -33,6 +33,7 @@ Go check the current available version of EFL on each distro/platform: * [[debugging/enlightenment_debugging|Enlightenment debugging]] * [[debugging/apps_efl_debugging|EFL application debugging]] * [[debugging/report_bugs|Report bugs on Phabricator]] + * [[contact/arcanist.txt|Submit patch on Phabricator]] === Tutorials === --
[EGIT] [website/www-content] master 03/11: Wiki page fedora-start created
cedric pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=1b71ceac6943947da486ff5cbe180e581f763a6d commit 1b71ceac6943947da486ff5cbe180e581f763a6d Author: Clément Bénier Date: Wed Jun 10 10:54:14 2015 +0200 Wiki page fedora-start created Signed-off-by: Clément Bénier Signed-off-by: Pierre Le Magourou Signed-off-by: Cedric BAIL --- pages/distros/fedora-start.txt | 32 pages/docs.txt | 1 + 2 files changed, 33 insertions(+) diff --git a/pages/distros/fedora-start.txt b/pages/distros/fedora-start.txt new file mode 100644 index 000..848596f --- /dev/null +++ b/pages/distros/fedora-start.txt @@ -0,0 +1,32 @@ +~~Title: Fedora~~ + Fedora + +The installation procedure is very similar to openSUSE, the repository contains +Enlightenment, EFL, Terminology, ... + +For Fedora 21 run the following command as root: + + +cd /etc/yum.repos.d/ +wget http://download.opensuse.org/repositories/X11:Enlightenment:Factory/Fedora_21/X11:Enlightenment:Factory.repo + + +For Fedora 20 run the following command as root: + + +cd /etc/yum.repos.d/ +wget http://download.opensuse.org/repositories/X11:Enlightenment:Factory/Fedora_20/X11:Enlightenment:Factory.repo + + +To install enlightenment 0.17 and terminology: + + +yum install e17 +yum install terminology + + +If you only want to install EFL: + + +yum install efl + diff --git a/pages/docs.txt b/pages/docs.txt index b88ff38..a75ee29 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -14,6 +14,7 @@ course you can use stable packages for your distribution as well. * [[distros/ubuntu-start|EFL on Ubuntu (packages and source)]] * [[distros/archlinux-start|EFL on archlinux]] * [[distros/debian-start|EFL on Debian]] + * [[distros/fedora-start|EFL on Fedora]] === Working with EFL and code === --
[EGIT] [website/www-content] master 08/11: Wiki page report-bugs created
cedric pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=a76e0c907cac80ec852547f0a38a02ecab71ef21 commit a76e0c907cac80ec852547f0a38a02ecab71ef21 Author: Clément Bénier Date: Thu Jun 11 09:44:40 2015 +0200 Wiki page report-bugs created Signed-off-by: Clément Bénier Signed-off-by: Pierre Le Magourou Signed-off-by: Cedric BAIL --- pages/debugging/apps_efl_debugging.txt | 2 ++ pages/debugging/report_bugs.txt| 58 ++ pages/docs.txt | 5 +-- 3 files changed, 63 insertions(+), 2 deletions(-) diff --git a/pages/debugging/apps_efl_debugging.txt b/pages/debugging/apps_efl_debugging.txt index c7adf87..413b031 100644 --- a/pages/debugging/apps_efl_debugging.txt +++ b/pages/debugging/apps_efl_debugging.txt @@ -6,6 +6,8 @@ use cases that you can reproduce. It gives you approaches to know if the bug comes from your application or from EFL libraries. +Then, if you are sure the bug does not come from your +application, you can [[/debugging/report_bugs|report a bug]]. In this tutorial, log level and 4 use cases will be studied: - [[apps_efl_debugging#Log level]] diff --git a/pages/debugging/report_bugs.txt b/pages/debugging/report_bugs.txt new file mode 100644 index 000..c84f900 --- /dev/null +++ b/pages/debugging/report_bugs.txt @@ -0,0 +1,58 @@ +~~Title: Report bugs~~ + Report Bugs on Phabricator + +* Be precise +* Be clear +* Only one bug a report +* Only report a bug in https://phab.enlightenment.org/maniphest/task/create/ +* Read what you wrote + +=== Before reporting === + +//**__Can you reproduce the bug?__**// + +Try to reproduce the bug with the latest version of the software, it could +already be fixed. If it is not the case, make sure the bug is reproducible, +make sure you have not changed a setting somewhere and know the way to get it. + +//**__Has someone else already reported the issue?__**// + +Check on https://phab.enlightenment.org/maniphest/query/all/ if your bug has +already been reported, if not you can report it. + +//**__Where to report the bug?__**// + +Only report a bug in https://phab.enlightenment.org/maniphest/task/create/.\\ +Don't send bug reports and patches to the Enlightenment mailing list, bugs +will be lost. If there is more discussion needed add a bug report before or +after the discussion on the mailing list. + +//**__Is it a visual bug?__**// + +If reporting a visual bug, make absolutely sure you test with the default +theme. EFL developers do not support other themes, and bug related to other +themes must be sent directly to the theme's author. + +//**__Are there a lot of traces of valgrind,gdb,etc for your bug?__**// + +If there is a ton of output traces, please attach them as file uploads. And go +check in [[/debugging/apps_efl_debugging|Application EFL Debugging]] and +[[/debugging/enlightenment_debugging|Enlightenment Debugging]] sections to get +information. + +=== Reporting bugs === + +- Go to https://phab.enlightenment.org/maniphest/task/create/ +- Fill out at least the following fields: +* Title: A short one-sentence summary that explains the problem clearly and precisely. +* Assigned to: Ignore it, developers will set an assignee. +* CC: Ignore it or if you know interested users you can add them. +* Priority: Ignore it, set by developers. +* Select the project(s) in which you find the bug. +* Description : +- The way for reproducing the bug step by step: Minimized, easy-to-follow steps that will trigger the described problem. +- Actual results: What the program errors are, the log traces (if it is not too long) +- Expected results: what the program should have done if there was no bug. +- Additional information +- To attach a log or screenshot, etc, click on the Upload File button in the tool bar of description field. +- Read again what you wrote and create task. diff --git a/pages/docs.txt b/pages/docs.txt index bceee91..30e7fa3 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -30,8 +30,9 @@ Go check the current available version of EFL on each distro/platform: === Debugging === -* [[debugging/enlightenment_debugging|Enlightenment debugging]] -* [[debugging/apps_efl_debugging|EFL application debugging]] + * [[debugging/enlightenment_debugging|Enlightenment debugging]] + * [[debugging/apps_efl_debugging|EFL application debugging]] + * [[debugging/report_bugs|Report bugs on Phabricator]] --
[EGIT] [website/www-content] master 11/11: Wiki page add -ggdb3 for more precise debugging information.
cedric pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=8ebb2dcffc5d2e499ff93038d45d821b5add7479 commit 8ebb2dcffc5d2e499ff93038d45d821b5add7479 Author: Clément Bénier Date: Mon Jun 22 15:26:12 2015 +0200 Wiki page add -ggdb3 for more precise debugging information. Signed-off-by: Cedric BAIL --- pages/docs-efl-buildenv.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/docs-efl-buildenv.txt b/pages/docs-efl-buildenv.txt index d5a9156..d932806 100644 --- a/pages/docs-efl-buildenv.txt +++ b/pages/docs-efl-buildenv.txt @@ -17,13 +17,13 @@ Note that if you wish to compile for older architectures than your current syste If you wish decently optimized code that is still debuggable (but that optimizations may still make a little hard to debug) you can do: -export CFLAGS="-O2 -ffast-math -march=native -g" +export CFLAGS="-O2 -ffast-math -march=native -g -ggdb3" If you want a really debuggable piece of code where optimizations mess with little to nothing at all use: -export CFLAGS="-O -g -ffast-math -march=native" +export CFLAGS="-O -g -ffast-math -march=native -ggdb3" Runtime Library Linking --
[EGIT] [website/www-content] master 06/11: Wiki page enlightenment-debugging created
cedric pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=14666b3336d583e0d2ee1e4a73348fcb29841304 commit 14666b3336d583e0d2ee1e4a73348fcb29841304 Author: Clément Bénier Date: Thu Jun 11 09:28:29 2015 +0200 Wiki page enlightenment-debugging created Signed-off-by: Clément Bénier Signed-off-by: Pierre Le Magourou Signed-off-by: Cedric BAIL --- pages/debugging/enlightenment_debugging.txt | 264 pages/docs.txt | 7 + 2 files changed, 271 insertions(+) diff --git a/pages/debugging/enlightenment_debugging.txt b/pages/debugging/enlightenment_debugging.txt new file mode 100644 index 000..7f953f2 --- /dev/null +++ b/pages/debugging/enlightenment_debugging.txt @@ -0,0 +1,264 @@ +~~Title: Enlightenment debugging~~ + Enlightenment Debugging === + +This tutorial aims at providing a comprehensive and reproducible documentation +to debug Enlightenment. It is divided in two sections: +* [[enlightenment_debugging#Debugging_Enlightenment_using_Gdb|Gdb]] +* [[enlightenment_debugging#Valgrind|Valgrind]] + +Before debugging make sure your debug symbols are enabled, if not, go to the +[[/docs-efl-start#Enable_debug_symbols_Optional|Enable debug symbols]] +section. + + +=== Debugging Enlightenment using Gdb === + +In order to use gdb, we will simulate a crash in Enlightenment. + +Start by running Enlightenment on a machine. Then switch to another tty +(CTRL+ALT+F1 for tty1). + +At that point, 2 processes are interesting, enlightenment and +enlightenment_start. Indeed, enlightenment is traced by enlightenment_start. + +Then setup SEGV to segfault enlightenment. + +kill -SIGSEGV $(pidof enlightenment) + + +enlightenment_start will open a pop-up named Enlightenment Error. +This pop-up indicates that Enlightenment segfaulted and allows to recover or +log out but also detaches from the child process (enlightenment) and let +advanced users use gdb to debug it. + +#gdb on the running enlightenment process +gdb enlightenment $(pidof enlightenment) + + +After a bit a prompt is available, if you want, you can save the +traces in a log: + +#save the traces in log.txt +set logging file log.txt +set logging on + + +== Backtrace == + +Use the backtrace command to get information about frames to +know where the segfault is coming from. + + +(gdb) bt +#0 0xb7d539f8 in select () from /lib/tls/libc.so.6 +#1 0xb7dff66a in _XEnq () from /usr/X11R6/lib/libX11.so.6 +#2 0xb7dffa7e in _XRead () from /usr/X11R6/lib/libX11.so.6 +#3 0xb7e01795 in _XReadEvents () from /usr/X11R6/lib/libX11.so.6 +#4 0xb7defa88 in XNextEvent () from /usr/X11R6/lib/libX11.so.6 +#5 0x0809b698 in e_alert_show ( +text=0x80a34f0 "This is very bad. Enlightenment has segfaulted.\nThis +is not meant to happen and is likely a +sign of a\nbug in Enlightenment +or the libraries it relies on.\n\nYou can gdb attach to this process +now to try"...) +at e_alert.c:136 +#6 0x0808f706 in e_sigseg_act (x=11, info=0x80a9fb0, data=0x80aa030) +at e_signals.c:54 +#7 +#8 0xb7d539f8 in select () from /lib/tls/libc.so.6 +#9 0xb7f814ee in _ecore_main_select (timeout=0) +at ecore_main.c:338 +#10 0xb7f819ba in _ecore_main_loop_iterate_internal (once_only=0) +at ecore_main.c:575 +#11 xb7f81a2b in ecore_main_loop_begin () at ecore_main.c:79 +#12 0x08059bb3 in main (argc=1, argv=0xb144) at e_main.c:551 + + +As you can see in the stack trace, gdb finds the segfault in libc and pops to the +main function in e_main. But it doesn't seem credible to have a bug in libc or +x, the important thing is Enlightenment has its own segfault handler which is +very explicit on frame 5. + +The e_sigseg_act() function at frame 6 is called directly from the kernel when +the program segfaults, meaning enlightenment causes the +segfault. So, the +segfault comes from the select function (a libc function) at frame 8 called in +_e_core_main_select_function at frame 9. + +== Go in a frame == + +So, the reason of segfault seems to be at frame 9, when //select// function is +called. Let's go to frame 9: + + +fr 9 +#9 0xb7f814ee in _ecore_main_select (timeout=0) at ecore_main.c:338 +338ret = select(max_fd + 1, &rfds, &wfds, &exfds, t); +(gdb) l +333 } +334 } +335 #ifndef WIN32 +336if (_ecore_signal_count_get()) return -1; +337 #endif +338ret = select(max_fd + 1, &rfds, &wfds, &exfds, t); +339if (ret < 0) +340 { +341 if (errno == EINTR) return -1; +342 } + + +The first command **//fr 9//** gives useful information: name of the file, +number of the line, the function called, ... +The second command **//l//** lists the code around the called function. +Another useful command allows to print the variables, the parameters, helping +you to find out the problem, a wrong parameter, a null pointer,... + + +(gdb) p ret +$1 = -4 +(gdb) p rfds +$2 =
[EGIT] [website/www-content] master 05/11: Wiki page yocto-start created
cedric pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=d342f75a86a55908e49b118509702366b9caf7e6 commit d342f75a86a55908e49b118509702366b9caf7e6 Author: Clément Bénier Date: Wed Jun 10 10:57:50 2015 +0200 Wiki page yocto-start created Signed-off-by: Clément Bénier Signed-off-by: Pierre Le Magourou Signed-off-by: Cedric BAIL --- pages/distros/yocto-start.txt | 32 pages/docs.txt| 1 + 2 files changed, 33 insertions(+) diff --git a/pages/distros/yocto-start.txt b/pages/distros/yocto-start.txt new file mode 100644 index 000..90a789a --- /dev/null +++ b/pages/distros/yocto-start.txt @@ -0,0 +1,32 @@ +~~Title: Yocto~~ + Yocto + +In Yocto, a meta-efl layer is provided by the meta-openembedded layer. It +contains efl, elementary, enlightenment, terminology and other recipes. + +So, the first step is to add this layer in conf/bblayer.conf: + + +BBLAYERS ?= \ + ${TOPDIR}/src/... + ... + ${TOPDIR}/src/meta-openembedded/meta-efl \ + ... +" + + +Next, to install Enlightenment and Terminology, add the following lines to your +recipe: + + +#add enlightenment window manager +IMAGE_INSTALL += "e-wm" +IMAGE_INSTALL += "terminology" + + +If you just want Elementary and EFL, just add the lines below or something +that depends on EFL or Elementary: + + +IMAGE_INSTALL += "elementary-tests" + diff --git a/pages/docs.txt b/pages/docs.txt index f083632..813ebe0 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -16,6 +16,7 @@ course you can use stable packages for your distribution as well. * [[distros/debian-start|EFL on Debian]] * [[distros/fedora-start|EFL on Fedora]] * [[distros/opensuse-start|EFL on openSUSE]] + * [[distros/yocto-start|EFL on Yocto]] === Working with EFL and code === --
[EGIT] [website/www-content] master 04/11: Wiki page openSUSE created
cedric pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=797271a61140d9aec56e2b780e9f8efbdef9678b commit 797271a61140d9aec56e2b780e9f8efbdef9678b Author: Clément Bénier Date: Wed Jun 10 10:57:08 2015 +0200 Wiki page openSUSE created Signed-off-by: Clément Bénier Signed-off-by: Pierre Le Magourou Signed-off-by: Cedric BAIL --- pages/distros/opensuse-start.txt | 42 pages/docs.txt | 1 + 2 files changed, 43 insertions(+) diff --git a/pages/distros/opensuse-start.txt b/pages/distros/opensuse-start.txt new file mode 100644 index 000..2377052 --- /dev/null +++ b/pages/distros/opensuse-start.txt @@ -0,0 +1,42 @@ +~~Title: OpenSUSE~~ + OpenSUSE + +Enlightenment and EFL are available for multiple versions of OpenSUSE: + +* openSUSE_Tumbleweed +* openSUSE_Factory_ARM +* openSUSE_Factory +* openSUSE_13.2 +* openSUSE_13.1 +* openSUSE_12.3_ports +* openSUSE_12.3 +* openSUSE_12.2_ARM + +The way to install Enlightenment is similar between those distributions, +here is an example with Tumbleweel: + + +#as root +export DISTRO_NAME="openSUSE_Tumbleweed" +zypper addrepo http://download.opensuse.org/repositories/X11:Enlightenment:Factory/${DISTRO_NAME}/X11:Enlightenment:Factory.repo +zypper refresh + + +Install Enlightenment 0.17 and Terminology: + +zypper install e17 +zypper install terminology + + +Install EFL only: + + +zypper install efl + + +You can also use the one click installer: + + +export DISTRO_NAME="openSUSE_Tumbleweed" +wget http://software.opensuse.org/ymp/X11:Enlightenment:Factory/${DISTRO_NAME}/efl.ymp + diff --git a/pages/docs.txt b/pages/docs.txt index a75ee29..f083632 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -15,6 +15,7 @@ course you can use stable packages for your distribution as well. * [[distros/archlinux-start|EFL on archlinux]] * [[distros/debian-start|EFL on Debian]] * [[distros/fedora-start|EFL on Fedora]] + * [[distros/opensuse-start|EFL on openSUSE]] === Working with EFL and code === --
[EGIT] [website/www-content] master 09/11: Wiki pages basic_tutorial created : button, label, list + images + code c
cedric pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=960d5fe3fff964682cb2dc984beb5561bd901751 commit 960d5fe3fff964682cb2dc984beb5561bd901751 Author: Clément Bénier Date: Fri Jun 12 10:18:18 2015 +0200 Wiki pages basic_tutorial created : button, label, list + images + code c Signed-off-by: Clément Bénier Signed-off-by: Pierre Le Magourou Signed-off-by: Cedric BAIL --- media/basic_button.png | Bin 0 -> 14421 bytes media/basic_label.png| Bin 0 -> 4276 bytes media/basic_list.png | Bin 0 -> 13474 bytes media/code_c/tutorial/basic/button.c | 142 + media/code_c/tutorial/basic/label.c | 47 + media/code_c/tutorial/basic/list.c | 66 pages/docs.txt | 4 + pages/tutorial/basic/button.txt | 194 +++ pages/tutorial/basic/label.txt | 75 ++ pages/tutorial/basic/list.txt| 124 ++ pages/tutorial/basic_tutorial.txt| 71 + 11 files changed, 723 insertions(+) diff --git a/media/basic_button.png b/media/basic_button.png new file mode 100644 index 000..8a543f7 Binary files /dev/null and b/media/basic_button.png differ diff --git a/media/basic_label.png b/media/basic_label.png new file mode 100644 index 000..5f81fa0 Binary files /dev/null and b/media/basic_label.png differ diff --git a/media/basic_list.png b/media/basic_list.png new file mode 100644 index 000..e745de2 Binary files /dev/null and b/media/basic_list.png differ diff --git a/media/code_c/tutorial/basic/button.c b/media/code_c/tutorial/basic/button.c new file mode 100644 index 000..6a40bcf --- /dev/null +++ b/media/code_c/tutorial/basic/button.c @@ -0,0 +1,142 @@ +#include +//Click Callback: print Clicked +static void +_button_click_cb(void *data, Evas_Object *button, void *event_info) +{ +elm_object_text_set(button, "Clicked!"); +} + +//Press callback: print Pressed +static void +_button_press_cb(void * data, Evas_Object *button, void *event_info) +{ +elm_object_text_set(button, "Pressed!"); +} + +//Unpress callback: print Unpressed +static void +_button_unpress_cb(void *data, Evas_Object *button, void *event_info) +{ +elm_object_text_set(button, "Unpressed!"); +} + +//Repeat callback: print number of times callback is called +static void +_button_repeat_cb(void *data, Evas_Object *button, void *event_info) +{ +static int count = 0; +char buffer[16]; + +snprintf(buffer, sizeof(buffer), "Repeat %d", count++); + +//print the number of time callback was called +elm_object_text_set(button, buffer); +} + +//Unpress callback: print Focused +static void +_button_focused_cb(void * data, Evas_Object *button, void *event_info) +{ +elm_object_text_set(button, "Focused"); +} + +//Unpress callback: print Unfocused +static void +_button_unfocused_cb(void * data, Evas_Object *button, void *event_info) +{ +elm_object_text_set(button, "Unfocused"); +} + +EAPI_MAIN int +elm_main(int argc, char **argv) +{ +Evas_Object *win; + +elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); + +win = elm_win_util_standard_add("Main", "Hello, World!"); +elm_win_autodel_set(win, EINA_TRUE); +//win 400x400 +evas_object_resize(win, 400, 400); + +/*basic tutorial code*/ +//basic text button +Evas_Object *button_text; +button_text = elm_button_add(win); + +elm_object_text_set(button_text,"Clik me"); + +//how a container object should resize a given child within its area +evas_object_size_hint_weight_set(button_text, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +//how to align an object +evas_object_size_hint_align_set(button_text, EVAS_HINT_FILL, 0.5); + +evas_object_resize(button_text, 100, 30); +evas_object_show(button_text); + +//Basic icon button +Evas_Object *button_icon, *icon; +button_icon = elm_button_add(win); +icon = elm_icon_add(win); + +//set the image file and the button as an icon +elm_image_file_set(icon, "icon.png", NULL); +elm_object_part_content_set(button_icon, "icon", icon); + +evas_object_size_hint_weight_set(button_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +evas_object_size_hint_align_set(button_icon, EVAS_HINT_FILL, 0.5); + +evas_object_resize(button_icon, 100, 30); +evas_object_move(button_icon, 110, 0); +evas_object_show(button_icon); + +//Icon and text button +Evas_Object *button_icon_text, *icon2; +button_icon_text = elm_button_add(win); +icon2 = elm_icon_add(win); + +elm_image_file_set(icon2, "icon.png", NULL); +elm_object_part_content_set(button_icon_text, "icon", icon2); +elm_object_text_set(button_icon_text, "Press me"); +evas_object_size_hint_weight_set(button_icon_text, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +evas_object_size_hint_align_set(butto
[EGIT] [core/elementary] master 01/01: list: --printf
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=07701a04c2ee9edf50f5484201867d90486888b3 commit 07701a04c2ee9edf50f5484201867d90486888b3 Author: ChunEon Park Date: Mon Jun 22 21:41:14 2015 +0900 list: --printf --- src/lib/elm_list.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c index 1ee5915..d6a96b1 100644 --- a/src/lib/elm_list.c +++ b/src/lib/elm_list.c @@ -883,7 +883,6 @@ _items_fix(Evas_Object *obj) "vertical" : "horizontal", style); else if (sd->mode == ELM_LIST_COMPRESS) { - printf("fix item to %s\n", it_compress); if (it->even) elm_widget_theme_object_set (obj, VIEW(it), "list", it_compress, style); --
[EGIT] [core/elementary] master 08/08: examples: fix changes in Evas.Canvas3D namespace.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=fb7408a30df15729789807dcb143324be393fae7 commit fb7408a30df15729789807dcb143324be393fae7 Author: Cedric BAIL Date: Mon Jun 22 12:30:11 2015 +0200 examples: fix changes in Evas.Canvas3D namespace. --- src/examples/evas3d_map_example.c | 296 ++--- src/examples/evas3d_object_on_button_example.c | 120 - src/examples/evas3d_scene_on_button_example.c | 110 src/examples/performance/camera_light.c| 18 +- src/examples/performance/graphical.c | 250 - src/examples/performance/performance.c | 46 ++-- src/examples/sphere_hunter/evas_3d_sphere_hunter.c | 222 7 files changed, 531 insertions(+), 531 deletions(-) diff --git a/src/examples/evas3d_map_example.c b/src/examples/evas3d_map_example.c index b1cc247..d59d82a 100644 --- a/src/examples/evas3d_map_example.c +++ b/src/examples/evas3d_map_example.c @@ -74,17 +74,17 @@ static Evas_Object *menu= NULL; static Elm_Object_Item *menu_it = NULL; static Ecore_Animator *animator= NULL; -static Evas_3D_Scene*scene = NULL; -static Evas_3D_Node *root_node = NULL; -static Evas_3D_Node *camera_node = NULL; -static Evas_3D_Camera *camera = NULL; -static Evas_3D_Node *light_node = NULL; -static Evas_3D_Light*light = NULL; -static Evas_3D_Node *mesh_node = NULL; -static Evas_3D_Mesh *mesh= NULL; -static Evas_3D_Material *material= NULL; -static Evas_3D_Texture *texture_diffuse = NULL; -static Evas_3D_Texture *texture_normal = NULL; +static Evas_Canvas3D_Scene*scene = NULL; +static Evas_Canvas3D_Node *root_node = NULL; +static Evas_Canvas3D_Node *camera_node = NULL; +static Evas_Canvas3D_Camera *camera = NULL; +static Evas_Canvas3D_Node *light_node = NULL; +static Evas_Canvas3D_Light*light = NULL; +static Evas_Canvas3D_Node *mesh_node = NULL; +static Evas_Canvas3D_Mesh *mesh= NULL; +static Evas_Canvas3D_Material *material= NULL; +static Evas_Canvas3D_Texture *texture_diffuse = NULL; +static Evas_Canvas3D_Texture *texture_normal = NULL; static int vertex_count = 0; static int index_count = 0; @@ -225,8 +225,8 @@ animate_scene(void *data) angle += 0.05; - eo_do((Evas_3D_Node *)data, - evas_3d_node_orientation_angle_axis_set(angle, 0.0, 1.0, 0.0)); + eo_do((Evas_Canvas3D_Node *)data, + evas_canvas3d_node_orientation_angle_axis_set(angle, 0.0, 1.0, 0.0)); /* Rotate */ if (angle > 360.0) @@ -382,7 +382,7 @@ change_to_2d_map(void) elm_map_zoom_mode_set(map, ELM_MAP_ZOOM_MODE_MANUAL); elm_map_paused_set(map, EINA_TRUE); - eo_do(texture_diffuse, evas_3d_texture_source_visible_set(EINA_TRUE)); + eo_do(texture_diffuse, evas_canvas3d_texture_source_visible_set(EINA_TRUE)); evas_object_hide(image); @@ -416,8 +416,8 @@ zoom_factor_set(double new_zoom_factor) doubles, t; doublelon, lat; vec3 camera_pos_unit_vec; - Evas_3D_Node *n; - Evas_3D_Mesh *m; + Evas_Canvas3D_Node *n; + Evas_Canvas3D_Mesh *m; Evas_Coordsrc_x, src_y; Evas_Coordsrc_size; @@ -433,7 +433,7 @@ zoom_factor_set(double new_zoom_factor) if (cur_zoom_factor < MIN_2D_ZOOM_FACTOR) { zoom_factor = MIN_2D_ZOOM_FACTOR; - eo_do(scene, evas_3d_scene_pick(IMG_SIZE / 2, IMG_SIZE / 2, + eo_do(scene, evas_canvas3d_scene_pick(IMG_SIZE / 2, IMG_SIZE / 2, &n, &m, &s, &t)); src_size = IMG_SIZE * cur_zoom_factor; src_x = (Evas_Coord)(src_size * s); @@ -465,13 +465,13 @@ zoom_factor_set(double new_zoom_factor) evas_object_resize(map, src_size, src_size); /* Apply updated texture source. */ -texture_diffuse = eo_add(EVAS_3D_TEXTURE_CLASS, evas); +texture_diffuse = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, evas); eo_do(texture_diffuse, - evas_3d_texture_source_set(map), - evas_3d_texture_source_visible_set(EINA_FALSE)); + evas_canvas3d_texture_source_set(map), + evas_canvas3d_texture_source_visible_set(EINA_FALSE)); eo_do(material, - evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, texture_diffuse)); + evas_canvas3d_material_texture_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, texture_diffuse)); /* Update camera position. */ vec3_normalize(&camera_pos_unit_vec, &camera_pos); @@ -480,7 +480,7 @@ zoom_factor_set(double new_zoom_factor) camera_pos.z = (camera_pos_unit_vec.z * MAX_CAMERA_DISTANCE) / zoom_factor; eo_do(camera_node
[EGIT] [core/elementary] master 02/08: genlist: fix Issue "In Tree effect feature, items floates when number of item crosses item block size".
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=0ad226a6c4a9ebccdbd861d47b713163379b3d87 commit 0ad226a6c4a9ebccdbd861d47b713163379b3d87 Author: Prince Kr Dubey Date: Mon Jun 22 11:51:20 2015 +0200 genlist: fix Issue "In Tree effect feature, items floates when number of item crosses item block size". Summary: "In Tree effect feature, during expansion of tree, when total number of items crosses block count, items start floating". Test Plan: Run elementary_test, open Genlist Tree, keep expanding items untill it crosses number of count 32 (Block count). Resize the window, floting items can be seen. Reviewers: raster, cedric Subscribers: shilpasingh, poornima.srinivasan, govi, rajeshps Differential Revision: https://phab.enlightenment.org/D2627 Signed-off-by: Cedric BAIL --- src/lib/elm_genlist.c | 19 +++ 1 file changed, 19 insertions(+) diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index a4936b0..dbd7c3d 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -1067,6 +1067,9 @@ _item_tree_effect_finish(Elm_Genlist_Data *sd) { Elm_Object_Item *eo_it = NULL; const Eina_List *l; + Item_Block *itb; + Elm_Gen_Item *it1; + Evas_Coord y = 0; if (sd->tree_effect_animator) { @@ -1086,6 +1089,22 @@ _item_tree_effect_finish(Elm_Genlist_Data *sd) edje_object_signal_emit(VIEW(it), SIGNAL_SHOW, "elm"); } } +if (sd->move_effect_mode == +ELM_GENLIST_TREE_EFFECT_EXPAND) + { + EINA_INLIST_FOREACH(sd->blocks, itb) + { + EINA_LIST_FOREACH(itb->items, l, it1) + { + if (it1->item->scrl_y <= y) + { +it1->item->scrl_y = y + it1->item->h; +_elm_genlist_item_unrealize(it1, EINA_FALSE); + } + y = it1->item->scrl_y; + } + } + } } _item_auto_scroll(sd); --
[EGIT] [core/elementary] master 06/08: elm_genlist: reset timer to NULL on cancel only.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=6a4d59fed00955a7037dfe7d0f19ee3767e9017b commit 6a4d59fed00955a7037dfe7d0f19ee3767e9017b Author: Amitesh Singh Date: Mon Jun 22 11:59:21 2015 +0200 elm_genlist: reset timer to NULL on cancel only. Summary: @fix Reviewers: raster, seoz, SanghyeonLee Subscribers: sachin.dev, seoz Differential Revision: https://phab.enlightenment.org/D2730 Signed-off-by: Cedric BAIL --- src/lib/elm_genlist.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index 17bebca..225d095 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -3859,10 +3859,9 @@ _long_press_cb(void *data) Eina_List *list; ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd); - it->long_timer = NULL; if (_is_no_select(it) || eo_do_ret(EO_OBJ(it), tmp, elm_wdg_item_disabled_get()) || (it->dragging)) - return ECORE_CALLBACK_CANCEL; + goto end; sd->longpressed = EINA_TRUE; evas_object_smart_callback_call(WIDGET(it), SIG_LONGPRESSED, EO_OBJ(it)); @@ -3897,6 +3896,8 @@ _long_press_cb(void *data) edje_object_signal_emit(VIEW(it), SIGNAL_REORDER_ENABLED, "elm"); } +end: + it->long_timer = NULL; return ECORE_CALLBACK_CANCEL; } --
[EGIT] [core/elementary] master 03/08: elm_genlist: fix highlighted items overlap with group item during scrolling and focus when intersect.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=e5bbfc208c4ef4037ccd2fc5919fca0f851cc704 commit e5bbfc208c4ef4037ccd2fc5919fca0f851cc704 Author: Prince Kr Dubey Date: Mon Jun 22 11:54:53 2015 +0200 elm_genlist: fix highlighted items overlap with group item during scrolling and focus when intersect. Summary: Highlighted genlist item overlap with group item during scrolling and focus when itersect. Test Plan: Run elementary_test. open Genlist Group. select one item and try to cross the group item via scrolling. Highlighted item comes over group item. Reviewers: Hermet, raster, cedric Reviewed By: cedric Subscribers: rajeshps, govi, poornima.srinivasan, shilpasingh Differential Revision: https://phab.enlightenment.org/D2640 Signed-off-by: Cedric BAIL --- src/lib/elm_genlist.c | 30 -- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index dbd7c3d..17bebca 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -1772,7 +1772,15 @@ _item_realize(Elm_Gen_Item *it, focus_raise = edje_object_data_get(VIEW(it), "focusraise"); if ((focus_raise) && (!strcmp(focus_raise, "on"))) - evas_object_raise(VIEW(it)); + { + Elm_Gen_Item *git; + Eina_List *l; + evas_object_raise(VIEW(it)); + EINA_LIST_FOREACH(sd->group_items, l, git) +{ + if (git->realized) evas_object_raise(VIEW(git)); +} + } _elm_widget_item_highlight_in_theme(WIDGET(it), EO_OBJ(it)); _elm_widget_highlight_in_theme_update(WIDGET(it)); @@ -2359,10 +2367,6 @@ _elm_genlist_pan_evas_object_smart_calculate(Eo *obj, Elm_Genlist_Pan_Data *psd) evas_object_geometry_get(obj, &ox, &oy, &ow, &oh); evas_output_viewport_get(evas_object_evas_get(obj), &cvx, &cvy, &cvw, &cvh); - EINA_LIST_FOREACH(sd->group_items, l, git) - { -git->item->want_realize = EINA_FALSE; - } if (sd->tree_effect_enabled && (sd->move_effect_mode != ELM_GENLIST_TREE_EFFECT_NONE)) @@ -2428,6 +2432,12 @@ _elm_genlist_pan_evas_object_smart_calculate(Eo *obj, Elm_Genlist_Pan_Data *psd) if (sd->focused_item && !sd->item_loop_enable) _elm_widget_focus_highlight_start(psd->wobj); + EINA_LIST_FOREACH(sd->group_items, l, git) + { +git->item->want_realize = EINA_FALSE; +if (git->realized) evas_object_raise(VIEW(git)); + } + evas_event_thaw(evas_object_evas_get(obj)); evas_event_thaw_eval(evas_object_evas_get(obj)); } @@ -2623,7 +2633,15 @@ _elm_genlist_item_focused(Elm_Object_Item *eo_it) focus_raise = edje_object_data_get(VIEW(it), "focusraise"); if ((focus_raise) && (!strcmp(focus_raise, "on"))) - evas_object_raise(VIEW(it)); + { + Elm_Gen_Item *git; + Eina_List *l; + evas_object_raise(VIEW(it)); + EINA_LIST_FOREACH(sd->group_items, l, git) + { + if (git->realized) evas_object_raise(VIEW(git)); + } + } } evas_object_smart_callback_call(obj, SIG_ITEM_FOCUSED, eo_it); if (_elm_config->atspi_mode) --
[EGIT] [core/elementary] master 04/08: elm_colorselector: fix horiz/vertical padding to be affected by base_scale in edc
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=55766647c69d3dc2c38b50ec0cbcfd7d3c0086c7 commit 55766647c69d3dc2c38b50ec0cbcfd7d3c0086c7 Author: Sung-Taek Hong Date: Mon Jun 22 11:55:52 2015 +0200 elm_colorselector: fix horiz/vertical padding to be affected by base_scale in edc Summary: elm_colorselector get its padding size from data in edc. However, when calculating the padding size, it does not consider base_scale of the style from where it gets padding size. In this commit, the padding size from edc is divided by its base_scale so that desirable size can be calculated. @fix Reviewers: Hermet, woohyun Subscribers: woohyun, Hermet Differential Revision: https://phab.enlightenment.org/D2721 Signed-off-by: Cedric BAIL --- src/lib/elm_colorselector.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index 78bcb93..20915f0 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -1114,8 +1114,8 @@ _elm_colorselector_elm_widget_theme_apply(Eo *obj, Elm_Colorselector_Data *sd) elm_box_padding_set (sd->palette_box, - (h_pad * elm_widget_scale_get(obj) * elm_config_scale_get()), - (v_pad * elm_widget_scale_get(obj) * elm_config_scale_get())); + (h_pad / edje_object_base_scale_get(wd->resize_obj) * elm_widget_scale_get(obj) * elm_config_scale_get()), + (v_pad / edje_object_base_scale_get(wd->resize_obj) * elm_widget_scale_get(obj) * elm_config_scale_get())); EINA_LIST_FOREACH(sd->items, elist, eo_item) { @@ -1605,8 +1605,8 @@ _create_colorpalette(Evas_Object *obj) elm_box_padding_set (sd->palette_box, - (h_pad * elm_widget_scale_get(obj) * elm_config_scale_get()), - (v_pad * elm_widget_scale_get(obj) * elm_config_scale_get())); + (h_pad / edje_object_base_scale_get(wd->resize_obj) * elm_widget_scale_get(obj) * elm_config_scale_get()), + (v_pad / edje_object_base_scale_get(wd->resize_obj) * elm_widget_scale_get(obj) * elm_config_scale_get())); elm_box_align_set(sd->palette_box, 0.0, 0.0); if (!elm_layout_content_set(obj, "elm.palette", sd->palette_box)) --
[EGIT] [core/elementary] master 05/08: elm_scroller: add wheel_disable_set API
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=f69cb53594f969b2a7d07bfe24f2d8eb43d44faa commit f69cb53594f969b2a7d07bfe24f2d8eb43d44faa Author: Umesh Tanwar Date: Mon Jun 22 11:57:51 2015 +0200 elm_scroller: add wheel_disable_set API Summary: This API can be used by widgets like Genlist/Gengrid, which implements Elm_Interface_Scrollable interface.Mouse wheel is used to scroll up and down on widget. @feature Test Plan: elementary_test -> Scroller -> Wheel Disable Reviewers: raster, Hermet, cedric, SanghyeonLee, singh.amitesh Subscribers: JackDanielZ, herdsman, cedric, sachin.dev Differential Revision: https://phab.enlightenment.org/D2715 Signed-off-by: Cedric BAIL --- src/bin/test_scroller.c | 17 - src/lib/elm_scroller.c| 18 ++ src/lib/elm_scroller_legacy.h | 33 + 3 files changed, 67 insertions(+), 1 deletion(-) diff --git a/src/bin/test_scroller.c b/src/bin/test_scroller.c index 23b2e32..4c01508 100644 --- a/src/bin/test_scroller.c +++ b/src/bin/test_scroller.c @@ -135,6 +135,15 @@ _my_bt_loop_y_axis(void *data, Evas_Object *obj EINA_UNUSED, } static void +_my_bt_wheel_disable_cb(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Evas_Object *scroller = (Evas_Object *)data; + + elm_scroller_wheel_disabled_set(scroller, elm_check_state_get(obj)); +} + +static void _page_change_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) @@ -174,7 +183,7 @@ void test_scroller(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bg2, *tb, *tb2, *sc, *bt, *ck1, *ck2, *bx, *bx2, *fr, - *ck3, *ck4, *ck5, *ck6, *ck7; + *ck3, *ck4, *ck5, *ck6, *ck7, *ck8; int i, j, n; char buf[PATH_MAX]; Evas_Coord x = 0, y = 0, w = 0, h = 0; @@ -246,6 +255,11 @@ test_scroller(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_ elm_box_pack_end(bx2, ck7); evas_object_show(ck7); + ck8 = elm_check_add(win); + elm_object_text_set(ck8, "Wheel Disable"); + elm_box_pack_end(bx2, ck8); + evas_object_show(ck8); + sc = elm_scroller_add(win); evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL); @@ -290,6 +304,7 @@ test_scroller(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_ evas_object_smart_callback_add(ck5, "changed", _my_bt_snap_to_pages, sc); evas_object_smart_callback_add(ck6, "changed", _my_bt_loop_x_axis, sc); evas_object_smart_callback_add(ck7, "changed", _my_bt_loop_y_axis, sc); + evas_object_smart_callback_add(ck8, "changed", _my_bt_wheel_disable_cb, sc); bt = elm_spinner_add(win); elm_spinner_min_max_set(bt, 0, 500); diff --git a/src/lib/elm_scroller.c b/src/lib/elm_scroller.c index 2e174c9..00f18b8 100644 --- a/src/lib/elm_scroller.c +++ b/src/lib/elm_scroller.c @@ -1284,6 +1284,24 @@ elm_scroller_loop_get(const Evas_Object *obj, eo_do(obj, elm_interface_scrollable_loop_get(loop_h, loop_v)); } +EAPI void +elm_scroller_wheel_disabled_set(Evas_Object *obj, Eina_Bool disabled) +{ + ELM_SCROLLABLE_CHECK(obj); + + eo_do((Eo *)obj, elm_interface_scrollable_wheel_disabled_set(disabled)); +} + +EAPI Eina_Bool +elm_scroller_wheel_disabled_get(const Evas_Object *obj) +{ + ELM_SCROLLABLE_CHECK(obj, EINA_FALSE); + + Eina_Bool ret; + + return eo_do_ret((Eo *) obj, ret, elm_interface_scrollable_wheel_disabled_get()); +} + EOLIAN static void _elm_scroller_propagate_events_set(Eo *obj, Elm_Scroller_Data *_pd EINA_UNUSED, Eina_Bool propagation) { diff --git a/src/lib/elm_scroller_legacy.h b/src/lib/elm_scroller_legacy.h index bf4d361..576ea6c 100644 --- a/src/lib/elm_scroller_legacy.h +++ b/src/lib/elm_scroller_legacy.h @@ -525,3 +525,36 @@ EAPI void elm_scroller_loop_set(Evas_Object *obj, Eina_ * @ingroup Scroller */ EAPI void elm_scroller_loop_get(const Evas_Object *obj, Eina_Bool *loop_h, Eina_Bool *loop_v); + +/** + * @brief Enable or disable mouse wheel to be used to scroll the scroller. + * + * @param obj The scroller object + * @param disabled The mouse wheel disabled over the scroller. + * + * Mouse wheel can be used to scroll up and down the scroller. + * Wheel is enabled by default. + * + * @since 1.15 + * + * @see elm_scroller_wheel_disabled_get() + * + * @ingroup Scroller + */ + EAPI void elm_scroller_wheel_disabled_set(Evas_Object *obj, Eina_Bool disabled); + + /** + * @brief Get a value whether mouse wheel is enabled or not over the scroller. + * + * @param obj The scroller object + * @return @c EINA_TRUE means scroller wheel is disabled. @c EINA_FAL
[EGIT] [core/elementary] master 07/08: elm_genlist: code refractoring of _item_process
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=4099b491614278313344123a61fd0e5be7809b70 commit 4099b491614278313344123a61fd0e5be7809b70 Author: Amitesh Singh Date: Mon Jun 22 12:02:55 2015 +0200 elm_genlist: code refractoring of _item_process Summary: When item_process is success, then we want to call _item_process_post. Old code was confusing before. Reviewers: raster, Hermet, SanghyeonLee Subscribers: seoz, sachin.dev Differential Revision: https://phab.enlightenment.org/D2739 Signed-off-by: Cedric BAIL --- src/lib/elm_genlist.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index 225d095..78104db 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -4442,11 +4442,11 @@ static Eina_Bool _item_process(Elm_Genlist_Data *sd, Elm_Gen_Item *it) { - if (!_item_block_add(sd, it)) return EINA_TRUE; + if (!_item_block_add(sd, it)) return EINA_FALSE; if (!sd->blocks) _item_block_realize(it->item->block); - return EINA_FALSE; + return EINA_TRUE; } static void @@ -4511,7 +4511,7 @@ _queue_process(Elm_Genlist_Data *sd) it = eina_list_data_get(sd->queue); sd->queue = eina_list_remove_list(sd->queue, sd->queue); it->item->queued = EINA_FALSE; -if (_item_process(sd, it)) continue; +if (!_item_process(sd, it)) continue; t = ecore_time_get(); _item_process_post(sd, it, EINA_TRUE); /* same as eina_inlist_count > 1 */ --
[EGIT] [core/elementary] master 01/01: genlist: fix resize of items when added after elm_genlist_clear().
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3b51ab1f1a7ebc7b8dcb4461fef8648515bb9829 commit 3b51ab1f1a7ebc7b8dcb4461fef8648515bb9829 Author: Amitesh Singh Date: Mon Jun 22 19:06:21 2015 +0900 genlist: fix resize of items when added after elm_genlist_clear(). Summary: This fixes following issue. 1. Add genlist items 2. Clear genlist by elm_genlist_clear() 3. Append items. Genlist items are shrinked. This patch fixes that issue. @fix Partially resolves: T2367 Reviewers: Hermet, raster, cedric, raoulh, SanghyeonLee Subscribers: sachin.dev, seoz Differential Revision: https://phab.enlightenment.org/D2733 --- src/lib/elm_genlist.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index 50a3ffc..a4936b0 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -4425,9 +4425,8 @@ _item_process_post(Elm_Genlist_Data *sd, it->item->block->changed = 0; if (sd->pan_changed) { + evas_object_smart_changed(sd->pan_obj); ELM_SAFE_FREE(sd->calc_job, ecore_job_del); - _calc_job(sd->obj); - sd->pan_changed = EINA_FALSE; } } if (show_me) it->item->block->show_me = EINA_TRUE; --
[EGIT] [core/efl] master 01/02: evas: fix Evas.Canvas3D color pick
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ac4b6422f44519400c0ff8b8bf5039c7e78c6c3e commit ac4b6422f44519400c0ff8b8bf5039c7e78c6c3e Author: Oleksandr Shcherbina Date: Mon Jun 22 11:11:29 2015 +0200 evas: fix Evas.Canvas3D color pick Summary: After this commit 684c51360f1591de4b8aee1f52d4edf8e8353822 it didn't work Miss bind color pick texture to drawable data @fix Reviewers: Hermet, cedric Reviewed By: cedric Subscribers: cedric, Ievgen, se.osadchy Differential Revision: https://phab.enlightenment.org/D2724 Signed-off-by: Cedric BAIL --- src/modules/evas/engines/gl_common/evas_gl_3d.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d.c b/src/modules/evas/engines/gl_common/evas_gl_3d.c index da83853..1c305a1 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_3d.c +++ b/src/modules/evas/engines/gl_common/evas_gl_3d.c @@ -395,6 +395,8 @@ e3d_drawable_new(int w, int h, int alpha, GLenum depth_format, GLenum stencil_fo drawable->stencil_format = stencil_format; drawable->tex = tex; drawable->fbo = fbo; + drawable->texcolorpick = texcolorpick; + drawable->color_pick_fb_id = color_pick_fb_id; drawable->depth_stencil_buf = depth_stencil_buf; drawable->depth_buf = depth_buf; drawable->stencil_buf = stencil_buf; --
[EGIT] [core/efl] master 02/02: edje: add of edje-3d to edje_calc.c
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3671506ad39d2a956e388e151bd20f1b9ffd62a5 commit 3671506ad39d2a956e388e151bd20f1b9ffd62a5 Author: perepelits.m Date: Mon Jun 22 11:17:26 2015 +0200 edje: add of edje-3d to edje_calc.c Summary: Adding of Mesh_Node, Light and Camera to _edje_part_recalc. Reviewers: raster, Hermet, cedric Reviewed By: cedric Subscribers: cedric, artem.popov Differential Revision: https://phab.enlightenment.org/D2639 Signed-off-by: Cedric BAIL --- src/lib/edje/edje_calc.c| 275 src/lib/edje/edje_private.h | 1 + 2 files changed, 276 insertions(+) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index f213d85..898e0da 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -26,6 +26,71 @@ static void _edje_part_recalc_single(Edje *ed, Edje_Rea #define EINA_COW_CALC_MAP_END(Calc, Write) \ EINA_COW_WRITE_END(_edje_calc_params_map_cow, Calc->map, Write); +#ifdef BUILD_EDJE_FP + +#define TYPE_EPSILON FLT_EPSILON + +#else + +#define TYPE_EPSILON DBL_EPSILON + +#endif + + +#define SET_QUATERNION(type) \ + double norm; \ + Eina_Quaternion quaternion; \ + \ + eina_quaternion_set(&quaternion, pd_##type->type.orientation.data[0], \ +pd_##type->type.orientation.data[1], \ +pd_##type->type.orientation.data[2], \ +pd_##type->type.orientation.data[3]);\ + \ + norm = eina_quaternion_norm(&quaternion); \ + \ + if ((norm - 0.0) <= TYPE_EPSILON) \ + ERR("%s %s",\ + "{0, 0, 0, 0} quaternion gives rotation on non-zero angle", \ + "around axis without orientation"); \ + \ + eina_quaternion_scale(&quaternion, &quaternion, 1/norm); \ + \ + eo_do(ep->node, \ + evas_canvas3d_node_orientation_set(quaternion.x, quaternion.y, \ + quaternion.z, quaternion.w)); + +#define SET_LOOK_AT(type) \ + eo_do(ep->node,\ + evas_canvas3d_node_look_at_set(pd_##type->type.position.space, \ + pd_##type->type.orientation.data[0],\ + pd_##type->type.orientation.data[1],\ + pd_##type->type.orientation.data[2],\ + pd_##type->type.position.space, \ + pd_##type->type.orientation.data[3],\ + pd_##type->type.orientation.data[4],\ + pd_##type->type.orientation.data[5])); + +#define SET_LOOK_TO(type) \ + Edje_Real_Part *look_to; \ + Evas_Real x, y ,z; \ + look_to = ed->table_parts[pd_##type->type.orientation.look_to % ed->table_parts_size];\ + eo_do(look_to->node, \ + evas_canvas3d_node_position_get(pd_##type->type.position.space, &x, &y, &z)); \ + eo_do(ep->node, \ + evas_canvas3d_node_look_at_set(pd_##type->type.position.space, x, y, z, \ + pd_##type->type.position.space, \ + pd_##type->type.orientation.data[3], \ + pd_##type->type.orientation.data[4], \ + pd_##type->type.orientation.data[5])); + +#define SET_ANGLE_AXIS(type) \ + eo_do(ep->node,
[EGIT] [tools/enventor] master 01/01: code refactoring.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=11e5dba04538d789b19df7f0a285a1061c6a3a12 commit 11e5dba04538d789b19df7f0a285a1061c6a3a12 Author: ChunEon Park Date: Mon Jun 22 18:25:48 2015 +0900 code refactoring. remove duplicated logics wrt function toggles. this is the precede work for improving tools gui. --- src/bin/base_gui.c | 4 ++-- src/bin/main.c | 41 +- src/bin/tools.c | 57 ++--- src/include/tools.h | 4 4 files changed, 56 insertions(+), 50 deletions(-) diff --git a/src/bin/base_gui.c b/src/bin/base_gui.c index ab91d03..1484e71 100644 --- a/src/bin/base_gui.c +++ b/src/bin/base_gui.c @@ -63,12 +63,12 @@ base_title_set(const char *path) } void -base_statusbar_toggle(Eina_Bool config) +base_statusbar_toggle(Eina_Bool toggle) { base_data *bd = g_bd; assert(bd); - if (config) config_stats_bar_set(!config_stats_bar_get()); + if (toggle) config_stats_bar_set(!config_stats_bar_get()); if (config_stats_bar_get()) elm_object_signal_emit(bd->layout, "elm,state,statusbar,show", ""); diff --git a/src/bin/main.c b/src/bin/main.c index a6a1ab2..9539fe4 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -43,11 +43,13 @@ enventor_common_setup(Evas_Object *enventor) enventor_object_font_set(enventor, font_name, font_style); enventor_object_font_scale_set(enventor, config_font_scale_get()); enventor_object_live_view_scale_set(enventor, config_view_scale_get()); - enventor_object_linenumber_set(enventor, config_linenumber_get()); + tools_lines_update(enventor, EINA_FALSE); enventor_object_part_highlight_set(enventor, config_part_highlight_get()); + tools_highlight_update(enventor, EINA_FALSE); enventor_object_auto_indent_set(enventor, config_auto_indent_get()); enventor_object_auto_complete_set(enventor, config_auto_complete_get()); - enventor_object_dummy_swallow_set(enventor, config_dummy_swallow_get()); + tools_swallow_update(enventor, EINA_FALSE); + tools_status_update(NULL, EINA_FALSE); Eina_List *list = eina_list_append(NULL, config_edj_path_get()); enventor_object_path_set(enventor, ENVENTOR_OUT_EDJ, list); @@ -134,7 +136,6 @@ config_update_cb(void *data) enventor_object_live_view_size_set(enventor, w, h); base_tools_toggle(EINA_FALSE); - base_statusbar_toggle(EINA_FALSE); base_console_auto_hide(); } @@ -516,29 +517,6 @@ enventor_setup(app_data *ad) } static void -part_highlight_toggle(app_data *ad) -{ - config_part_highlight_set(!config_part_highlight_get()); - enventor_object_part_highlight_set(ad->enventor, - config_part_highlight_get()); - if (config_part_highlight_get()) - stats_info_msg_update("Part Highlighting Enabled."); - else - stats_info_msg_update("Part Highlighting Disabled."); -} - -static void -dummy_swallow_toggle(app_data *ad) -{ - config_dummy_swallow_set(!config_dummy_swallow_get()); - enventor_object_dummy_swallow_set(ad->enventor, config_dummy_swallow_get()); - if (config_dummy_swallow_get()) - stats_info_msg_update("Dummy Swallow Enabled."); - else - stats_info_msg_update("Dummy Swallow Disabled."); -} - -static void default_template_insert(app_data *ad) { if (live_edit_get()) @@ -633,13 +611,13 @@ ctrl_func(app_data *ad, Ecore_Event_Key *event) //Part Highlight if (!strcmp(event->key, "h") || !strcmp(event->key, "H")) { -part_highlight_toggle(ad); +tools_highlight_update(ad->enventor, EINA_TRUE); return EINA_TRUE; } //Swallow Dummy Object if (!strcmp(event->key, "w") || !strcmp(event->key, "W")) { -dummy_swallow_toggle(ad); +tools_swallow_update(ad->enventor, EINA_TRUE); return EINA_TRUE; } //Template Code @@ -773,8 +751,7 @@ main_key_down_cb(void *data, int type EINA_UNUSED, void *ev) if (!strcmp(event->key, "F5")) { enventor_object_ctxpopup_dismiss(ad->enventor); -config_linenumber_set(!config_linenumber_get()); -enventor_object_linenumber_set(ad->enventor, config_linenumber_get()); +tools_lines_update(ad->enventor, EINA_TRUE); return ECORE_CALLBACK_DONE; } //Tools @@ -795,7 +772,7 @@ main_key_down_cb(void *data, int type EINA_UNUSED, void *ev) if (!strcmp(event->key, "F11")) { enventor_object_ctxpopup_dismiss(ad->enventor); -base_statusbar_toggle(EINA_TRUE); +tools_status_update(NULL, EINA_TRUE); return ECORE_CALLBACK_DONE; } //Setting @@ -815,7 +792,7 @@ statusbar_set() { Evas_Object *obj = stats_init(base_layout_get()); elm_object_part_content_set(base_layout_get(), "elm.swallow.statusbar", obj); - base_statusbar_toggle(EINA_FALSE); + tools_status_update(NULL, EINA_FALSE); } static void diff --git a/s
[EGIT] [website/www-content] master 01/01: Wiki page start changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=19dfe20ec8b715187a6ec4ed0f27bd258fd69ee0 commit 19dfe20ec8b715187a6ec4ed0f27bd258fd69ee0 Author: Raster Date: Mon Jun 22 01:50:04 2015 -0700 Wiki page start changed with summary [] by Raster --- pages/docs/c/start.txt | 236 +++-- 1 file changed, 170 insertions(+), 66 deletions(-) diff --git a/pages/docs/c/start.txt b/pages/docs/c/start.txt index 2b572ac..1d2b38e 100644 --- a/pages/docs/c/start.txt +++ b/pages/docs/c/start.txt @@ -3,7 +3,7 @@ Preface -//This is not a theoretical C language specifications document. It is a practical primer for the vast majority of real life cases of C usage that are relevant to EFL on todays common architectures. It covers application executables and shared library concepts and is written from a Linux/UNIX perspective where you would have your code running with an OS doing memory mappings and probably protection for you. It really is fundamentally not much different on Android, iOS, OSX or even Windows.// +//This is not a theoretical C language specifications document. It is a practical primer for the vast majority of real life cases of C usage that are relevant to EFL on today's common architectures. It covers application executables and shared library concepts and is written from a Linux/UNIX perspective where you would have your code running with an OS doing memory mappings and probably protection for you. It really is fundamentally not much different on Android, iOS, OSX or even Windows.// //It won't cover esoteric details of "strange architectures". It pretty much covers C as a high level assembly language that is portable across a range of modern architectures.// @@ -159,10 +159,10 @@ double things[200]; struct mydata - { - int count; - double items[100]; - }; +{ + int count; + double items[100]; +}; struct mydata bob; @@ -175,41 +175,41 @@ A function is a basic unit of execution. Conceptually a function hides an implem struct sandwich - { -struct bread_slice top; -struct bread_slice bottom; -enum filling *fillings; -int num_fillings; - }; +{ + struct bread_slice top; + struct bread_slice bottom; + enum filling *fillings; + int num_fillings; +}; enum filling - { -FILLING_HAM, -FILLING_CHEESE, -FILLING_BUTTER - }; +{ + FILLING_HAM, + FILLING_CHEESE, + FILLING_BUTTER +}; struct sandwich * make_sandwich(enum filling *fillings, int num_fillings) - { -struct sandwich *sandwich; -int i; +{ + struct sandwich *sandwich; + int i; -sandwich = malloc(sizeof(struct sandwich)); -if (!sandwich) return NULL; -get_bread_top(&(sandwich->top)); -get_bread_bottom(&(sandwich->bottom)); -sandwich->fillings = malloc(sizeof(enum filling) * num_fillings); -if (!sandwich->fillings) - { -free(sandwich); -return NULL; - } -for (i = 0; i < num_fillings; i++) - sandwich->fillings[i] = fillings[i]; -sandwich->num_fillings = num_fillings; -return sandwich; - } + sandwich = malloc(sizeof(struct sandwich)); + if (!sandwich) return NULL; + get_bread_top(&(sandwich->top)); + get_bread_bottom(&(sandwich->bottom)); + sandwich->fillings = malloc(sizeof(enum filling) * num_fillings); + if (!sandwich->fillings) +{ + free(sandwich); + return NULL; +} + for (i = 0; i < num_fillings; i++) +sandwich->fillings[i] = fillings[i]; + sandwich->num_fillings = num_fillings; + return sandwich; +} I may call the function as follows: @@ -268,19 +268,19 @@ You can use this with structs and enums as well to make new types that represen struct sandwich - { -struct bread_slice top; -struct bread_slice bottom; -enum filling *fillings; -int num_fillings; - }; +{ + struct bread_slice top; + struct bread_slice bottom; + enum filling *fillings; + int num_fillings; +}; enum filling - { -FILLING_HAM, -FILLING_CHEESE, -FILLING_BUTTER - }; +{ + FILLING_HAM, + FILLING_CHEESE, + FILLING_BUTTER +}; typedef struct sandwich Sandwich; typedef enum filling Filling; @@ -399,13 +399,13 @@ You can define macros that take parameters. They will produce the code that you int myfunc(void) - { +{ #ifdef _WIN32 -// windows specific code here + // windows specific code here #else -// generic code here + // generic code here #endif - } +} Another very common use of the pre-processor is to compile only some pieces of code in specific circumstances. A common use-case is for portability (but you can also use this along with #includes, macros etc. to use the pre-processor as a code-generation tool to save a lot of re-typing of almost the same bits of code). On one platform you may have to have some pieces of code work in a specific way that differs from other platforms.
[EGIT] [website/www] master 01/01: c formatting coloring for www - make blue and dimmer
raster pushed a commit to branch master. http://git.enlightenment.org/website/www.git/commit/?id=318a09d71727db8a5ee98c517af5458c3ea712db commit 318a09d71727db8a5ee98c517af5458c3ea712db Author: Carsten Haitzler (Rasterman) Date: Mon Jun 22 16:59:28 2015 +0900 c formatting coloring for www - make blue and dimmer --- public_html/lib/tpl/e/css/modifications.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public_html/lib/tpl/e/css/modifications.css b/public_html/lib/tpl/e/css/modifications.css index ae0fcba..f7f9c6f 100644 --- a/public_html/lib/tpl/e/css/modifications.css +++ b/public_html/lib/tpl/e/css/modifications.css @@ -345,7 +345,7 @@ code { .code .co1, .code .coMULTI, .code .sc-1 { - color: #bb; + color: #3355bb; } .code .sy3 { --
[EGIT] [core/elementary] master 01/01: update po's
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=af0069db52b97f65804cf75fbed4b1c9ad7c3156 commit af0069db52b97f65804cf75fbed4b1c9ad7c3156 Author: Carsten Haitzler (Rasterman) Date: Mon Jun 22 16:49:13 2015 +0900 update po's --- po/ar.po| 54 +++--- po/az_IR.po | 54 +++--- po/ca.po| 54 +++--- po/cs.po| 54 +++--- po/de.po| 54 +++--- po/el.po| 54 +++--- po/eo.po| 54 +++--- po/es.po| 54 +++--- po/fa.po| 54 +++--- po/fi.po| 54 +++--- po/fr.po| 54 +++--- po/gl.po| 54 +++--- po/he.po| 54 +++--- po/hu.po| 54 +++--- po/it.po| 36 ++-- po/ko_KR.po | 54 +++--- po/lt.po| 54 +++--- po/nl.po| 54 +++--- po/pl.po| 54 +++--- po/ps.po| 54 +++--- po/pt.po| 54 +++--- po/ru.po| 54 +++--- po/sr.po| 54 +++--- po/tr.po| 54 +++--- po/ur.po| 54 +++--- po/yi.po| 54 +++--- po/zh_CN.po | 54 +++--- 27 files changed, 720 insertions(+), 720 deletions(-) diff --git a/po/ar.po b/po/ar.po index ebfc886..e381bd4 100644 --- a/po/ar.po +++ b/po/ar.po @@ -2,12 +2,12 @@ # This file is distributed under the same license as the Elementary package. # FIRST AUTHOR , 2010. # -#: src/lib/elm_config.c:3213 +#: src/lib/elm_config.c:3083 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-05-25 11:47+0900\n" +"POT-Creation-Date: 2015-06-22 11:28+0900\n" "PO-Revision-Date: 2010-12-26 10:05+0200\n" "Last-Translator: Tom Hacohen \n" "Language-Team: General\n" @@ -30,8 +30,8 @@ msgstr "" msgid "Search" msgstr "" -#: src/lib/elc_fileselector.c:1707 src/lib/elm_entry.c:1512 -#: src/lib/elm_entry.c:1537 +#: src/lib/elc_fileselector.c:1707 src/lib/elm_entry.c:1568 +#: src/lib/elm_entry.c:1593 msgid "Cancel" msgstr "" @@ -79,10 +79,10 @@ msgstr "" msgid "Clicked" msgstr "" -#: src/lib/elm_button.c:270 src/lib/elm_check.c:234 src/lib/elm_gengrid.c:816 -#: src/lib/elm_genlist.c:1621 src/lib/elm_list.c:2221 src/lib/elm_radio.c:264 +#: src/lib/elm_button.c:270 src/lib/elm_check.c:234 src/lib/elm_gengrid.c:817 +#: src/lib/elm_genlist.c:1622 src/lib/elm_list.c:2227 src/lib/elm_radio.c:264 #: src/lib/elm_segment_control.c:524 src/lib/elm_spinner.c:785 -#: src/lib/elm_toolbar.c:2226 +#: src/lib/elm_toolbar.c:2227 msgid "State: Disabled" msgstr "" @@ -163,35 +163,35 @@ msgstr "" msgid "Clock" msgstr "" -#: src/lib/elm_colorselector.c:718 +#: src/lib/elm_colorselector.c:725 msgid "Pick a color" msgstr "" -#: src/lib/elm_colorselector.c:754 +#: src/lib/elm_colorselector.c:761 msgid "R:" msgstr "" -#: src/lib/elm_colorselector.c:756 +#: src/lib/elm_colorselector.c:763 msgid "G:" msgstr "" -#: src/lib/elm_colorselector.c:758 +#: src/lib/elm_colorselector.c:765 msgid "B:" msgstr "" -#: src/lib/elm_colorselector.c:760 +#: src/lib/elm_colorselector.c:767 msgid "A:" msgstr "" -#: src/lib/elm_colorselector.c:1433 +#: src/lib/elm_colorselector.c:1440 msgid "color selector palette item" msgstr "" -#: src/lib/elm_config.c:3229 +#: src/lib/elm_config.c:3099 msgid "default:LTR" msgstr "default:RTL" -#: src/lib/elm_dayselector.c:405 +#: src/lib/elm_dayselector.c:406 msgid "day selector item" msgstr "" @@ -199,27 +199,27 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elm_entry.c:1499 +#: src/lib/elm_entry.c:1555 msgid "Copy" msgstr "" -#: src/lib/elm_entry.c:1504 +#: src/lib/elm_entry.c:1560 msgid "Cut" msgstr "" -#: src/lib/elm_entry.c:1508 src/lib/elm_entry.c:1531 +#: src/lib/elm_entry.c:1564 src/lib/elm_entry.c:1587 msgid "Paste" msgstr "" -#: src/lib/elm_entry.c
[EGIT] [website/www-content] master 01/01: Wiki page start changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=4a8d08028e14399fe2d91cf8e6594ed166975ca8 commit 4a8d08028e14399fe2d91cf8e6594ed166975ca8 Author: Raster Date: Mon Jun 22 00:27:16 2015 -0700 Wiki page start changed with summary [] by Raster --- pages/docs/c/start.txt | 64 +- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/pages/docs/c/start.txt b/pages/docs/c/start.txt index 1e1e80f..2b572ac 100644 --- a/pages/docs/c/start.txt +++ b/pages/docs/c/start.txt @@ -600,7 +600,7 @@ A good [[http://man7.org/linux/man-pages/man2/syscalls.2.html|list of system cal Memory is really a sequence of bytes from the view of a CPU, but when you access data types like ''short''s or ''int''s etc. that consume multiple bytes, the order that they are read from in memory and assigned to slots from the LSB (Least Significant Byte) to the MSB (Most Significant byte). There are 2 commonly referred to ways of accessing these bytes in multi-byte types, called **Big Endian** and **Little Endian**. [[http://en.wikipedia.org/wiki/Endianness|Endianess]] these days is m [...] ^Architecture ^Endianess ^ -^x86 |Little| +|x86 |Little| |x86_64 |Little| |ARM |Little| |PowerPC |Big | @@ -616,6 +616,68 @@ In memory, in order from lowest memory address to highest, endianess looks as fo |1393589900 |''53107e8c'' |''53107e8c'' |''8c7e1053'' | Function pointers + +Pointers are the stuff of life when it comes to C and machines. They tell you where everything lives. Where your data is and where the next bit of data after this one is and so on. Following this setup, functions also live somewhere in memory. They actually have pointers. These are function pointers. This is an amazingly powerful feature of C that most don't being to discover until much later. It allows you to do things like say "When this operation has finished, call //THIS// function h [...] + +The downside of function pointers is the added mental load to handle the indirection, as well as the horrible syntax. So for a function with a prototype of: + + +int *myfunc (struct t *tim, int num, char *str); + + +You would declare the function pointer as: + + +int *(*myfunc) (struct t *tim, int num, char *str) + + +So you pass this function pointer in as parameter ''funcptr'' in the following function: + + +void dothis(int num, int *(*funcptr) (struct t *tim, int num, char *str)); + + +Or in a structure: + + +struct t + { +int num; +int *(*funcptr) (struct t *tim, int num, char *str); + }; + + +You may find it easier to typedef these function pointer types so they are simpler to write later such as: + + +typedef int *(*MyCallbacktype) (struct t *tim, int num, char *str); + +void dothis(int num, MyCallbacktype funcptr); + + +You can use any compatible (returns the same types and accepts the same parameters) function names as actual function pointers such as: + + +typedef int *(*MyCallbacktype) (struct t *tim, int num, char *str); + +void dothis(int num, MyCallbacktype funcptr); + +int *task_a(struct t *tim, int num, char *str) + { +// ... content task a here + } + +int *task_b(struct t *tim, int num, char *str) + { +// ... content of task b here + } + +if (rand() < 100) dothis(99, task_b); +else dothis(100, task_a); + + +Function pointers are extremely important and useful and form the backbone of EFL in the form of the following Callbacks. + Callbacks Threads --