Commit Graph

21229 Commits

Author SHA1 Message Date
Xavi Artigas 0e1d931be9 doxygen docs: Match doc with correct enum for Render_Op
Docs did not match the intended enum value due to incorrect usage of the
doxygen tags.
Also, Evas_Render_Op was the only member of the top-level Evas group, so
I moved it inside one subgroup, where methods using it reside.
2020-04-27 13:42:55 +02:00
Xavi Artigas 4d24b29b9d doxygen docs: Put APIs in correct group
"Evas_Object" does not exist as a group, so the docs for these 29 methods
did not show in the output.
2020-04-27 13:42:55 +02:00
junsu choi 0b28f9df54 efl_ui_image: Fix unnecessary unload of memfile_set.
Summary:
In D11392, fixed to call file_unload when doing memfile_set.
Therefore, "load,error" callback was called while unloading object
that was not loaded when first load with memfile_set.
So fix it to avoid unnecessary unloading.

Test Plan:
{F3871804}
cp ./test_imge.c ./efl/
cd efl
gcc -o test_image test_image.c -g `pkg-config --cflags --libs elementary`

./test_image
Loading image...
Async file load failed.
Image is ready to show.

Reviewers: Hermet, kimcinoo, herb

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11758
2020-04-27 19:29:47 +09:00
Xavi Artigas 4cf59afcc9 doxygen docs: Document compositor sync API as deprecated
This is currently a NOP and we should remove this API later on.
Meanwhile, turn the note about this API being experimental into
a deprecation warning.
2020-04-27 10:01:09 +02:00
Carsten Haitzler cd7b594466 elm - combobox - pretty borken but make it a little less
add some tests so i can see smaller comboboxes with padding and fix
the scaling which was broken.
2020-04-26 13:16:11 +01:00
Daniel Kolesa d261dca06c eolian: require opaque structs to be used by ref always
For now only in stable API.
2020-04-26 02:29:35 +02:00
Carsten Haitzler 680dee1daf efreet - work around conconforming apps putting startupwmclass in quotes
riot does

StartupWMClass="Riot"

https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html

does not allow for quoting here. you can quote fields in an exec line
- for shell and replacement purposes, but not other fields like this
above. this is a workaround a broken app so matching window to desktop
file works.

@fix
2020-04-25 14:44:23 +01:00
Hermet Park ed9ab21fdf canvas layer: +prevent null layer objects. 2020-04-24 21:11:27 +09:00
Hermet Park 052f562c42 canvas layer: find the top item for only valids.
In some case, top layer doesn't have valid objects,
That case, we must find and return top object in the next layer.
2020-04-24 21:03:48 +09:00
Carsten Haitzler 1c971fbe40 Revert "meson: do not install .eo files of not installed header files"
This reverts commit d4946a0d07.

install these - e builds against efl will fail if they try use
efl-canvas-wl without headers... :)
2020-04-23 11:38:20 +01:00
Ali Alzyod f619a2fbad EFl_Canvas_Text: add typedef for backward compatibility in legacy headers
Reviewed-by: Carsten Haitzler (Rasterman) <raster@rasterman.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11744
2020-04-22 14:02:59 +02:00
Carsten Haitzler 56e2e21ae7 ecore_file - address issue about false positive of finding a file in ./
it may report an exe is installed if it happens to be in cwd but cwd
isnt in path. the "full/relative" path handling case mishandled this.
fixes T8678

@fix
2020-04-22 12:51:50 +01:00
Alastair Poole 53044bf107 ecore_wl2: EFL Wayland Build on FreeBSD
This enables a user to build EFL with wayland support enabled
on FreeBSD. It is NOT functioning, but everything starts at
some point.

This requires also linking against -lepoll-shim.
Meson arguments:
-Deeze=false -Dv4l2=false -Dfb=false -Ddrm=false -Dwl=true \
-Dsystemd=false

@fix T8659
2020-04-21 18:19:36 +01:00
Daniel Kolesa 5115f824e9 eolian: clarify @move tag usage in documentation 2020-04-21 17:46:17 +02:00
Marcel Hollerbach 906c60f0c0 elementary: fix string definition
eolian is note made to have ptr(char) be the same as string.

Differential Revision: https://phab.enlightenment.org/D11740
2020-04-21 16:19:36 +02:00
Marcel Hollerbach 639b6d6ae3 eina: add new definitions to a old enum
this is sadly needed due to the fact that we have a .eo defnition in the
.eot file which contains the flags keyword.

Differential Revision: https://phab.enlightenment.org/D11739
2020-04-21 16:19:36 +02:00
Marcel Hollerbach 152130d23f elementary: these definitions are in real header files
there is no reason to have them in the .eot files. They are also not
namespaced in the way we want to have types.

Differential Revision: https://phab.enlightenment.org/D11738
2020-04-21 16:19:36 +02:00
Marcel Hollerbach 73682e9c6b evas: remove dead struct definition
this is not used anywhere

Differential Revision: https://phab.enlightenment.org/D11737
2020-04-21 16:19:36 +02:00
Marcel Hollerbach c0bc4fd5a4 eo: install eot files correctly
eina_types.eot is needed in order to fetch all needed informations.

Differential Revision: https://phab.enlightenment.org/D11736
2020-04-21 16:19:36 +02:00
Marcel Hollerbach 66d11fed00 elementary: do not install legacy .eo files
they do not have any purpose to be installed on the filesystem.

Differential Revision: https://phab.enlightenment.org/D11735
2020-04-21 16:19:35 +02:00
Marcel Hollerbach d4946a0d07 meson: do not install .eo files of not installed header files
Differential Revision: https://phab.enlightenment.org/D11733
2020-04-21 16:19:35 +02:00
WooHyun Jung b33d4ff197 evas_object_textblock: add null check for return of eina_inlist_remove 2020-04-21 14:37:23 +09:00
Christopher Michael 92faf6a0e1 ecore-drm2: Change ERR to WRN
No real need for these to be ERR because we are not going to crash if
these happen anyway.
2020-04-20 19:31:44 -04:00
Daniel Kolesa bbc006a3e7 eolian: fix C type serialization of error() 2020-04-20 14:36:14 +02:00
Daniel Kolesa e565e989ee eolian: only warn instead of erroring on unused imports 2020-04-20 14:19:26 +02:00
Xavi Artigas e7f4bc4c2a doxygen docs: Fix all invalid @param names
There were quite a few of these...
2020-04-20 12:24:41 +02:00
Daniel Kolesa 1afb264288 eolian: globally enable eolian_state_check, except for beta classes
Beta classes won't have their namespaces validated at this point.
It is possible to set EOLIAN_CHECK_NAMESPACES_BETA=1 to enable
checking those as well, if you want to fix them all.
2020-04-19 01:53:50 +02:00
Daniel Kolesa 7791d9fac6 remove unused imports in eo/eot files 2020-04-19 01:44:50 +02:00
Daniel Kolesa cdf48fcf70 eolian: add composites into hard deps when checking
This prevents composites from being considered unused imports.
2020-04-19 01:43:33 +02:00
Carsten Haitzler 3283a11a88 evas_textblock/evas_text/evas_textgrid: pick textrun fonts
Summary:
Picking font on textrun, will now give priority into font picked by the user, regardless of script type.
picking font due script can cause many inconvenient results

Example of wrong results:  (User font is **NotoColorEmoji**)
{F3847118} -> add 'a' at the end (notice how text render is wrong) {F3847119} -> add tab before 'a' (text rendering now is right) {F3847120}

After Change results: (User font is **NotoColorEmoji**)
{F3847118}  -> add 'a' at the end -> {F3847122}-> add tab before 'a' -> {F3847123}

Also now the following lines will be shown exactly the same, regardless of characters order
```
"가123A321"
"A321가123"
"123가A321"
"A가123321"
```

Test Plan:
```
#include <Elementary.h>
/*
gcc -o example test.c `pkg-config --cflags --libs elementary`
*/

EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
   Evas_Object *win, *en;

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   win = elm_win_util_standard_add("", "");
   elm_win_autodel_set(win, EINA_TRUE);

   en = elm_entry_add(win);
   elm_entry_scrollable_set(en, EINA_TRUE);
   evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);

   elm_entry_text_style_user_push(en,"DEFAULT='font=NotoColorEmoji font_size=30 color=red'");
   elm_object_text_set(en, "&#x262a;123456a");

   evas_object_show(en);

   elm_object_content_set(win, en);
   evas_object_resize(win, 400, 200);
   evas_object_show(win);

   elm_run();

   return 0;
}
ELM_MAIN()
```

Reviewers: woohyun, bowonryu, tasn, raster, cedric

Reviewed By: tasn

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8556

Differential Revision: https://phab.enlightenment.org/D11302
2020-04-18 17:36:25 +01:00
Ali Alzyod c58f8db132 evas_textgrid: update text props to use current script font
Summary:
This update make the textgrid same as evas_text and evas_textblock to use current picked font for text_props instead of script_font

This patch will fix terminology emoji rendering when used applying D11302.

Reviewers: raster, woohyun

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11729
2020-04-18 17:36:11 +01:00
Carsten Haitzler b41aac6caa evas render - flush, dont clear unref/clean arrays on render done
we build these arrays to hold tjhings to clean up when done ... but if
one frame happens ot have a lot - the allocation stays huge as we only
clean not flush, so flush to keep memory down.

@optimize
2020-04-18 17:35:43 +01:00
Carsten Haitzler d9b9647a15 Revert "evas_textblock: pick textrun fonts"
This reverts commit 9b987c67e1.

this breaks color emoji in terminology (evas textgrid).
2020-04-17 19:20:26 +01:00
Carsten Haitzler 5f93f16b61 ecore - proc env - fix values return NULL case - coverity
this fixes CID 1419857
2020-04-17 12:14:19 +01:00
Carsten Haitzler 699fadd514 evas cache - up padding just in case i was off by one
coverity was complaining but it's a false positive - it seems to not
realze the loadopts_append does nul terminate at the end.
2020-04-17 11:06:32 +01:00
Bowon Ryu 62b4e2a2da edje: fix cursor scrolling
If there is a string larger than the size of entry
and when the entry is auto scrolling, cursor is not visible.
Using _edje_entry_cursor_geometry_get guarantees the minimum size of the cursor,
and guarantee the size from edje. (min_restricted_calc)

Reviewed-by: Ali Alzyod <ali198724@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11649
2020-04-17 11:53:50 +02:00
Ali Alzyod 7ac765c71b evas_textblock: prevent segfault if there are no style
```
#include <Elementary.h>

EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
   Evas_Object *win, *textblock;

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   win = elm_win_util_standard_add("", "");
   elm_win_autodel_set(win, EINA_TRUE);

   textblock = evas_object_textblock_add(win);
   evas_object_resize(textblock, 360, 360);
   evas_object_show(textblock);
   evas_object_textblock_text_markup_set(textblock, "<b>b</b>");
   evas_object_resize(win, 360, 360);
   evas_object_show(win);
   elm_run();

   return 0;
}
ELM_MAIN()
```

this application will crash.

Any font format specified in text, if there are now style will cause the crash.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11686
2020-04-17 11:14:57 +02:00
Mike Blumenkrantz bc52776fd6 eina/value: use correct time types when comparing time types
these functions all expect struct timeval, as the name implies

../src/lib/eina/eina_value.c: In function ‘_eina_value_type_tm_compare’:
../src/lib/eina/eina_value.c:3358:19: warning: array subscript 1 is outside array bounds of ‘time_t[1]’ {aka ‘long int[1]’} [-Warray-bounds]
 3358 |    struct timeval ret = *input;
      |                   ^~~
../src/lib/eina/eina_value.c:3569:11: note: while referencing ‘ta’
 3569 |    time_t ta, tb;
      |           ^~
../src/lib/eina/eina_value.c:3358:19: warning: array subscript 1 is outside array bounds of ‘time_t[1]’ {aka ‘long int[1]’} [-Warray-bounds]
 3358 |    struct timeval ret = *input;
      |                   ^~~
../src/lib/eina/eina_value.c:3569:15: note: while referencing ‘tb’
 3569 |    time_t ta, tb;

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11715
2020-04-17 11:14:54 +02:00
Mike Blumenkrantz 9edce20081 elm/win: declare prototype for ecore_evas_dnd_mark_motion_used
../src/lib/elementary/efl_ui_win.c: In function ‘_motion_cb’:
../src/lib/elementary/efl_ui_win.c:9271:14: warning: implicit declaration of function ‘ecore_evas_dnd_mark_motion_used’ [-Wimplicit-function-declaration]
 9271 |              ecore_evas_dnd_mark_motion_used(ee, seat);
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Differential Revision: https://phab.enlightenment.org/D11717
2020-04-17 10:53:15 +02:00
Ali Alzyod bab13de794 evas_textblock: remove special treat for variation sequence text run
Summary:
Now there are no need for special care for variation sequence text run break.
General method will care about all types of characters\

this is also related to D11096

Reviewers: woohyun, bowonryu

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11602
2020-04-17 14:26:14 +09:00
Ali Alzyod 9b987c67e1 evas_textblock: pick textrun fonts
Summary:
Picking font on textrun, will now give priority into font picked by the user, regardless of script type.
picking font due script can cause many inconvenient results

Example of wrong results:  (User font is **NotoColorEmoji**)
{F3847118} -> add 'a' at the end (notice how text render is wrong) {F3847119} -> add tab before 'a' (text rendering now is right) {F3847120}

After Change results: (User font is **NotoColorEmoji**)
{F3847118}  -> add 'a' at the end -> {F3847122}-> add tab before 'a' -> {F3847123}

Also now the following lines will be shown exactly the same, regardless of characters order
```
"가123A321"
"A321가123"
"123가A321"
"A가123321"
```

Test Plan:
```
#include <Elementary.h>
/*
gcc -o example test.c `pkg-config --cflags --libs elementary`
*/

EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
   Evas_Object *win, *en;

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   win = elm_win_util_standard_add("", "");
   elm_win_autodel_set(win, EINA_TRUE);

   en = elm_entry_add(win);
   elm_entry_scrollable_set(en, EINA_TRUE);
   evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);

   elm_entry_text_style_user_push(en,"DEFAULT='font=NotoColorEmoji font_size=30 color=red'");
   elm_object_text_set(en, "&#x262a;123456a");

   evas_object_show(en);

   elm_object_content_set(win, en);
   evas_object_resize(win, 400, 200);
   evas_object_show(win);

   elm_run();

   return 0;
}
ELM_MAIN()
```

Reviewers: woohyun, bowonryu, tasn, raster, cedric

Reviewed By: tasn

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8556

Differential Revision: https://phab.enlightenment.org/D11302
2020-04-17 12:28:42 +09:00
Marcel Hollerbach 7cc2b11f19 ecore_evas: fix fallback code
this was using a stringshare reference that was deleted. While that is
true, the stringshare reference will always be alive, because 2 people
took a reference. Anyways, this code is now searching the other way
arround, which makes the code also easier.

fixes: CID1420331

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11712
2020-04-16 14:53:33 +02:00
Mike Blumenkrantz 27f5510533 elm/hoversel: force calc on internal hover object during activate
hoversel can't accurately determine its location until the hover object
has been calculated, so this needs to always happen before the hoversel
is made visible in order to correctly position the hover

fix T8642

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11646
2020-04-16 14:34:07 +02:00
Mike Blumenkrantz 272c3d9a66 elm/hoversel: remove unnecessary internal callback deletion
this already happens automatically on every item destruction and passes
the item data through there to ensure the correct callback is removed

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11643
2020-04-16 14:34:07 +02:00
Mike Blumenkrantz df0a201021 elm/hoversel: use a wref to accurately track internal hover object
this pointer is never unset, which can cause errors when attempting to
access it after the hoversel has been deactivated

Differential Revision: https://phab.enlightenment.org/D11642
2020-04-16 14:34:07 +02:00
Carsten Haitzler 2ebc97aa96 efreet - also look in lib in /usr/local/share/pixmaps too 2020-04-16 13:19:36 +01:00
Ali Alzyod da36015148 evas_textblock : fix text insertion & selection with ps in single line
Summary:
when we have text that contains <ps> (example "p1<ps>p2") in a single line mode
and the cursor position is after the ps tag
then we try to insert any character using the keyboard it will show segmentation fault.
also with the same text if we try to select the text we will notice that it is corrupted.

this should resolve https://phab.enlightenment.org/T8594

Test Plan:
  #define EFL_EO_API_SUPPORT 1
  #define EFL_BETA_API_SUPPORT 1

  #include <Eina.h>
  #include <Elementary.h>
  #include <Efl_Ui.h>

  static void
  _gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
  {
     efl_exit(0);
  }

  static void
  _gui_setup()
  {
     Eo *win, *box;

     win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
                   efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
                   efl_text_set(efl_added, "Hello World"),
                   efl_ui_win_autodel_set(efl_added, EINA_TRUE));

     // when the user clicks "close" on a window there is a request to delete
     efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _gui_quit_cb, NULL);

     box = efl_add(EFL_UI_BOX_CLASS, win,
                  efl_content_set(win, efl_added),
                  efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(360, 240)));

     Eo *text = efl_add(EFL_UI_TEXTBOX_CLASS, box,
             efl_gfx_hint_weight_set(efl_added, 1.0, 1.0),
             efl_gfx_hint_align_set(efl_added, 1.0, 1.0),
             efl_pack(box, efl_added));

             efl_text_interactive_selection_allowed_set(text, EINA_TRUE);
             efl_text_multiline_set(text,EINA_FALSE);

             efl_text_markup_set(text, "p1<ps>p2");
  }

  EAPI_MAIN void
  efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
  {
     _gui_setup();
  }
  EFL_MAIN()

Reviewers: ali.alzyod, woohyun, zmike, bu5hm4n, segfaultxavi, stefan_schmidt

Reviewed By: ali.alzyod, woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11621
2020-04-16 20:03:31 +09:00
Carsten Haitzler d62d380690 toolbar - dont create icon objects then del if icon is null
if icon is null just never create an icon obj.. but if it's not null
it's intended so even if blank, don't delete it - so things line up.
2020-04-16 10:22:16 +01:00
Stefan Schmidt 189bb381d6 Revert "evas: text_cursor: check return value and print error"
This reverts commit c6df676a70.

Thsi is failing the evas testsuite. My bad in not checking this locally
before commiting.
2020-04-16 11:12:50 +02:00
Ali Alzyod 4ea455b1e5 evas_common_font: prevent leaking RGBA_Font
prevent leaking RGBA_Font in the for loop,

CID: 1382852

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11709
2020-04-16 10:38:22 +02:00