Commit Graph

5327 Commits

Author SHA1 Message Date
Ali Alzyod ff3d3b1944 efl_access_text: remove ptr usage in eo files
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11907
2020-06-02 08:07:48 +02:00
Woochanlee 5ca1a8c8a7 elm_gesture_layer: Arrange the logic for delete the target object in gesture cb.
When the user receives the callback of gesture callback, erases the target object, the gesture layer is deleted.

The memory is may broken and performing unnecessary operations during the logic.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11838
2020-06-02 08:07:45 +02:00
junsu choi 214e5d2cf8 elm_hoversel: Add missing resize_job's free
Summary:
resize_job can be called after obj is deleted.
So add free to destructor.

Test Plan: N/A

Reviewers: Hermet, herb, kimcinoo, zmike

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11911
2020-06-02 12:26:51 +09:00
Subhransu Mohanty 025e7238e7 elementary: Fix memory leak in elm_list
Reviewers: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11909
2020-06-01 18:57:24 +09:00
Marcel Hollerbach 0123c8b6fc elm_gen****: free item_content map
Summary:
this should be freeed. Both can be freed in group_del after the items
are deleted.

fix T8732

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8732

Differential Revision: https://phab.enlightenment.org/D11882
2020-06-01 10:47:48 +09:00
Ali Alzyod f88494aa2c efl_ui_textpath: reduce unneeded matrix calculations
Reviewers: woohyun, Hermet, bu5hm4n, zmike

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11904
2020-05-29 11:38:26 +09:00
Yeongjong Lee 92455d42a0 efl_ui_bg: disable preloading of the internal image
Summary:
preloading is elm_image feature. it is better to disable preloading for elm_bg
becuase there is no way to disable preloading of internal image in elm_bg.
If API user want to use preloaded image, elm_image is recommended instead of
elm_bg.

Test Plan: elm_bg_file_set with big image.

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11898
2020-05-28 16:17:59 +09:00
Marcel Hollerbach f5d3a2bf28 build: stop buildsystem from beeing a public dependency
this is wrong, each library should declare it on its own

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11883
2020-05-27 11:06:51 +02:00
Marcel Hollerbach 8e3606698e refactor build
libraries are split into deps, external deps, and pub deps.
Evas engines are refactored to use the predefined engine deps.

this is preparation work for efl-one.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11806
2020-05-27 11:06:46 +02:00
Marcel Hollerbach 3ec1101652 Merge efreet_mime efreet_trash into efreet
efreet_mime and efreet_trash are now included in libefreet.so. There are
compatible libs for libefreet_mime.so libefreet_trash.so, which simple
drag in libefreet.so. .pc files also are in place for compatibility.

efreet_init & shutdown now initializes and shutdowns trash and mime.
The old init functions now simply call efreet_init, efreet_init will
then init the trash or mime libs.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11807
2020-05-26 10:15:30 +02:00
Stefan Schmidt 3ca9d72825 build: lib: harmonize the use of package_c_args in all libs
Add it to subprojects which are not using it and remove and old
ELEMENTARY_BUILD define we no longer use. This allows us to have a
central place in the main meson.build file to set this variable.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11854
2020-05-26 10:15:21 +02:00
Stefan Schmidt c0c5bc71c5 libs: headers: ensure we include headers in the correct order for EAPI
We need to ensure this order to make sure EAPI is working correctly on
windows.

Original patch by Vincent Torri.

Differential Revision: https://phab.enlightenment.org/D11856

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
2020-05-25 16:03:31 +02:00
Stefan Schmidt d767097005 build: set DLL_EXPORT when on a windows system
No need to have this elementary specific, we can do this globally.

Original patch by Vincent Torri.

Differential Revision: https://phab.enlightenment.org/D11850

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
2020-05-25 15:58:29 +02:00
Marcel Hollerbach 9f7c518a20 elm_dnd: do not register widgets twice
we have to support none widgets, but we should not register widgets
twice because of that.

Differential Revision: https://phab.enlightenment.org/D11877
2020-05-25 11:16:38 +02:00
Hosang Kim c493e80c21 elm_genlist/elm_gengrid: fix memory leak caused by efl_wref_del.
Summary:
efl_wref_del makes pointer to NULL.
So we should copy pointer before efl_wref_del is called.

Reviewers: SanghyeonLee, cedric

Reviewed By: SanghyeonLee

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11866
2020-05-21 18:37:27 +09:00
Yeongjong Lee a227b83f41 efl_ui_layout: remove group_calcualte to respect legacy min size
Summary:
For legacy elm_layout, the size should be calculated based on
`hint_size_combined_min` instead of `hint_size_min` in the group_calculate.

Also, `_efl_ui_layout_efl_canvas_group_group_calculate` is unnecessary because
it is added to allow finger size policy differentiation between inherited layout
and layout object (see also, 46cf288d32), however,
it can be set by `finger_size_multiplier` proeprty in constructor.

Test Plan:
Check `evas_object_size_hint_min_set` is respected.

layout_example.c
```
//Compile with:
//edje_cc layout_example.edc &&  gcc -g layout_example.c -o layout_example `pkg-config --cflags --libs elementary`
#include <Elementary.h>

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

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

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

   box = elm_box_add(win);
   evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
   evas_object_show(box);
   elm_win_resize_object_add(win, box);

   layout = elm_layout_add(box);
   evas_object_size_hint_min_set(layout, 300, 200);
   elm_layout_file_set(layout, "./layout_example.edj", "mylayout");
   evas_object_show(layout);
   elm_box_pack_end(box, layout);

   evas_object_resize(win, 300, 300);
   evas_object_show(win);

   elm_run();

   return 0;
}
ELM_MAIN()
```

layout_example.edc
```
collections {
   group {
      name: "mylayout";
      parts {
         part {
            name: "bg";
            type: RECT;
            description {
               state: "default" 0.0;
               color: 100 190 100 255;
            }
         }
         part {
            name: "mytext1";
            type: TEXT;
            description {
               state: "default" 0.0;
               text {
                  size: 30;
                  text: "my text1";
                  min: 1 0;
               }
               color: 0 255 0 255;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 0.3;
            }
         }
      }
      parts {
         part {
            name: "mytext2";
            type: TEXT;
            description {
               state: "default" 0.0;
               text {
                  size: 30;
                  text: "my text2";
                  min: 1 0;
               }
               color: 0 255 255 255;
               rel1.relative: 0.0 0.3;
               rel2.relative: 1.0 0.6;
            }
         }
      }
   }
}
```

Reviewers: zmike, Jaehyun_Cho, woohyun

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11858
2020-05-20 16:36:15 +09:00
Carsten Haitzler 63b5d81983 Revert "Fix EAPI definition by defining EFL_BUILD for each built DLL"
This reverts commit 3ade45cbc8.
2020-05-18 11:13:59 +01:00
Vincent Torri 3ade45cbc8 Fix EAPI definition by defining EFL_BUILD for each built DLL
Summary: EAPI must be defined to dllexport when building DLL, and to dllimport when using these DLL. To achieve this, define EFL_BUILD for each library and module, and set DLL_EXPORT unconditionally. Static library are and will be not supported

Test Plan: compilation

Reviewers: zmike, raster, jptiz

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11834
2020-05-18 09:51:48 +01:00
WooHyun Jung f026000c1e efl_ui_image: fix to call "clicked" smart callback when there is no img
Summary:
Some applications have used "clicked" smart callback from elm_image which
does not have an image in it.
To keep backward compatibility, hit_rect needs to be resized properly to
call smart callback function.

@fix

Reviewers: Hermet, jsuya, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11840
2020-05-18 12:39:59 +09:00
Mike Blumenkrantz cf94110b04 elm: refactor legacy _icon_signal_emit
Summary:
this was duplicated for a number of widgets in slightly different ways,
so it can be unified as a private layout function to reduce maintenance
costs

Reviewers: Hermet, YOhoho, Jaehyun_Cho, jsuya

Reviewed By: jsuya

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11818
2020-05-13 10:02:36 -04:00
junsu choi feccff1ca7 Efl.Ui.Radio_Legacy: Prevent unnecessary signal emit for contents
Summary:
When call elm_radio_add, theme_apply of layout is called and
_efl_ui_radio_legacy_efl_ui_widget_theme_apply is called.
Then it calls the signal emit for the icon.
this call is unnecessary.

Test Plan:
Evas_Object *bt;
clock_t start, finish;
double sum= 0 ;
double avg = 0;
double cnt = 1000;

for(int i =0 ; i<(int)cnt; i++)
  {
     start = clock();
     bt = elm_radio_add(win);
     finish = clock();
     sum += (double)(finish-start)/CLOCKS_PER_SEC;
  }
avg = sum / cnt ;
printf("radio avg : %f\n",avg);

[before]
radio avg : 0.000232

[after]
radio avg : 0.000197

Reviewers: akanad, Jaehyun_Cho, Hermet, YOhoho, zmike

Reviewed By: zmike

Subscribers: bu5hm4n, zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11813
2020-05-12 11:21:01 -04:00
junsu choi 183fa33fd0 Efl.Ui.Check_Legacy: Prevent unnecessary signal emit for contents
Summary:
When call elm_check_add, theme_apply of layout is called and
_efl_ui_check_legacy_efl_ui_widget_theme_apply is called.
Then it calls the signal emit for the icon.
this call is unnecessary.

Test Plan: N/A

Reviewers: akanad, Jaehyun_Cho, Hermet, YOhoho, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11812
2020-05-12 11:21:01 -04:00
junsu choi 789b363983 Efl.Ui.Progressbar_Legacy: Prevent unnecessary signal emit for contents
Summary:
When call elm_progressbar_add, theme_apply of layout is called and
_efl_ui_progressbar_legacy_efl_ui_widget_theme_apply is called.
Then it calls the signal emit for the icon.
this call is unnecessary.

Test Plan: N/A

Reviewers: Hermet, bowonryu, Jaehyun_Cho, YOhoho, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11811
2020-05-12 11:21:01 -04:00
junsu choi 67bf9eae6c Efl.Ui.Button_Legacy: Prevent duplicate signal emit of contents
Summary:
When call elm_button_add, theme_apply of layout is called and
_efl_ui_button_legacy_efl_ui_widget_theme_apply is called.
Then it calls the signal emit for the icon.
In the button theme, the default of the icon is hidden,
so this call is unnecessary.

Test Plan:
Evas_Object *bt;
clock_t start, finish;
start = clock();
bt = elm_button_add(win);
finish = clock();
printf("duration : %f\n", (double)(finish-start)/CLOCKS_PER_SEC);

Evas_Object *bt;
clock_t start, finish;
double sum= 0 ;
double avg = 0;
double cnt = 1000;

for(int i =0 ; i<(int)cnt; i++)
  {
     start = clock();
     bt = elm_button_add(win);
     finish = clock();
     sum += (double)(finish-start)/CLOCKS_PER_SEC;
  }
avg = sum / cnt ;
printf("button avg : %f %f\n",avg, sum);

[before]
button avg : 0.000215

[after]
button avg : 0.000138

Reviewers: Hermet, YOhoho, Jaehyun_Cho, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11810
2020-05-12 11:21:01 -04:00
Mike Blumenkrantz 823b7b05cd elm: resolve float comparison warnings
Summary: Depends on D11790

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11791
2020-05-09 09:25:21 +01:00
Vincent Torri d135957ffa Use __func__ C99 identifier instead of __FUNCTION__ compiler extension
Summary: see http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1124.pdf section 6.4.2.2 page 52

Test Plan: compilation

Reviewers: raster, devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11785
2020-05-07 09:27:07 -04:00
Marcel Hollerbach f21df93595 elm_fileselector: support expandable items
Summary:
the fileselector can store exactly 1 model and monitor that for changes,
which works normally just well. However, when we expand a items, another
model comes into play, which is not monitored, and no additional
reference is taken. Which means, _process_last will simply delete it,
and elements that did not come into play at the _populate call are never
displayed.

With this commit, we check that we do not have a parent item, and
explictly wait for the model to publish all its items, before we call
_process_last.

Additionally, that showed that the tracking of the list/grid item is
ultimatly buggy, as there is no assertion that the parent model is
really the parent directoy. Hence we need to hand pass the parent item
here, as a fallback option to set the correct parent item.

fixes T8689

Reviewers: zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8689

Differential Revision: https://phab.enlightenment.org/D11765
2020-04-29 11:47:05 -04:00
Mike Blumenkrantz 02ad4d18ba elm/list: avoid erroring on non-elm item contents
putting raw evas and edje objects in here has historically been done,
so handle it without errors

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11747
2020-04-28 13:29:32 +02:00
Marcel Hollerbach 3614c4190d efl_fileselector_entry: do not crash on a invalid model
something is happening during shutdown, when a fileselector was created
before. This is ending up in a strcmp to a NULL ptr, which crashes, with
the now, we ensure that we are not crashing anymore, when that is
happning.

TO solve this properly we should really fix the cause of a invalid model
beeing returned, however, i do not feel compftable doing that so short
before a release.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11762
2020-04-28 11:46:44 +02:00
Marcel Hollerbach 1aed1cef59 efl_ui_focus_manager_calc: correctly flag elements used
when setting the relation from two widgets a<->b a is used as well as b.
This now correctly sets these flags.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11730
2020-04-28 11:00:49 +02:00
Mike Blumenkrantz 0de64f2d91 elm/cnp: remove const from static function return
this makes no sense

../src/lib/elementary/elm_cnp.c:54:15: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
   54 | static inline const Elm_Sel_Format

Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11759
2020-04-27 12:03:57 -04:00
Xavi Artigas bbba18d406 doxygen docs: Fix invalid refs to Layout
All widgets copy&pasted the same description, including an invalid reference
to "Layout", which should be "Elm_Layout".
SOME of them had been fixed over the years but this commit fixes all of them.
This significantly reduces the number of Doxygen warnings and adds meaningful
links to the docs.
2020-04-27 15:15:12 +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
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
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 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 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
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 7791d9fac6 remove unused imports in eo/eot files 2020-04-19 01:44:50 +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
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 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
Carsten Haitzler 6a0c8e9d26 elm menu - fix segv on deletion/shutdown where parent was not done ok
@fix
2020-04-15 13:15:21 +01:00
Xavi Artigas cb92494f6d doxygen docs: Define a couple missing ELM_WIN types 2020-04-14 18:48:30 +02:00
Xavi Artigas e594bbc33a doxygen docs: Fix Elm_Toolbar groups 2020-04-14 18:48:30 +02:00
Xavi Artigas 0da8051ee3 doxygen docs: Fix several invalid refs in Elm 2020-04-14 18:48:30 +02:00
Marcel Hollerbach f092d3f5ab efl_ui_focus_manager: correct check
Summary:
this check was checking for focus_manager to be window_root. This is not
correct, it should check for the root element.

ref D11667
Depends on D11705

Reviewers: zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11706
2020-04-14 12:29:57 -04:00
Marcel Hollerbach 24219081c6 elm_dnd: complete the list of text types
the text types added here were present as "TEXT" in selection manager,
so add them here again.

Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11684
2020-04-14 11:59:41 -04:00