Commit Graph

20688 Commits

Author SHA1 Message Date
Xavi Artigas ec3f67992a Remove @beta from Efl.Canvas.Animation classes
Ref T8436

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10894
2019-12-19 16:45:14 -08:00
Xavi Artigas 142cdd6ece Remove @beta from Efl.Interpolator classes
All of them, except the divisor interpolator, because I still don't
know what it does.
Ref T8445

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10893
2019-12-19 16:45:13 -08:00
Woochanlee a2084ba22e eina_hash: Move hash_free_cb to avoid memory leak.
Call hash_free_cb after finish deletion.

ref T8530

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10918
2019-12-19 15:48:17 -08:00
Marcel Hollerbach d1480d7762 efl_ui_scroller: remove from the sub_object list on unset
this should fix lifetime issues with Efl.Ui.Scroller

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10920
2019-12-19 11:46:24 -08:00
Marcel Hollerbach 3e7424c86d efl_ui_panel: fix Efl.Content implementation
It appears that content has been deleted, even if it has been unset
before. This also fixes event emission on content_unset.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10919
2019-12-19 11:46:23 -08:00
Cedric BAIL 0a399b3ca3 elementary: make sure Efl.Ui.Multi_Selectable_Index_Range use unsigned int for index too.
T8469

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10910
2019-12-19 09:57:12 -08:00
Ali Alzyod 46fef6901d efl.text.cursor: clean eo files from comments
Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8454

Differential Revision: https://phab.enlightenment.org/D10926
2019-12-19 16:09:12 +01:00
Hermet Park 11a1fc9f2b ector software: catch up losing tasks among the threads.
This is a subsequent change after 8465904c19.

The major change is almost same but just for gradient stuff.
2019-12-19 20:30:31 +09:00
Carsten Haitzler e2887ec2aa evas textblock - use snprintf to limit buffer and have buffer big enough
the buffer wasn't big enough for all possible content anyway and it
didn't use snprintf, so large values of i could overflow... pointed to
by warning. fix that warning.
2019-12-19 10:33:37 +00:00
Hosang Kim ed7fb7ae27 scroller: add missing efl_content_unset
When efl_content_unset(scroller) is called, efl_content_unset for Efl.Ui.Pan class should be called also.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10906
2019-12-19 10:24:21 +01:00
Yeongjong Lee 1d49102bbe efl: add @since tags for stabilized classes
Summary: Add missing @since tags.

Test Plan: meson build

Reviewers: bu5hm4n, cedric, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: q66, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10917
2019-12-19 09:46:07 +01:00
Hermet Park 8465904c19 ector software: catch up losing tasks among the threads.
Summary:
ector sw uses thread pool internally to process rle job parallel.

First of all, we lost task handles which allocated to each threads,
we must free the task data after thread done.

Secondly, tasks can be managed by one shape instance,
the instance can't catch upon multiple instances alive.
only last task can be attached to the shape instance.

Thus, obvisouly the instance doesn't expect to handle multiple tasks
at the same time, one instance only take care of one task on threading pool.

Reviewers: jsuya, cedric, smohanty, kimcinoo

Reviewed By: jsuya

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10916
2019-12-19 17:01:25 +09:00
Marcel Hollerbach 837528201f efl_ui_format: make this usable with the standard behaviour of accessors
a accessor is never delivering a value, only the pointer to a value.
This makes format working with accessors for list array carray.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10909
2019-12-18 21:45:45 +01:00
Marcel Hollerbach 9ccc66b900 eina_accessor: make carray accessor work properly
a accessor is not really helpfull if it operates like the carray
accessor before this commit. What it was doing is to fill the content of
the "current line" into the data pointer. In a carray the
"current line" is the content of its carray-member.

However, accessors like for inarray array list or inlist do work
completly differently. They are returning the pointer to the "current
line" not the value of the current line.

The only case where this worked is efl_ui_format.c which was only tested
with this accessor, and this accessor also only worked with this
accessor.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10908
2019-12-18 21:45:42 +01:00
Cedric BAIL 52aa2f629f efl: make sure all index for Efl_Model are unsigned int.
T8469

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10869
2019-12-18 10:33:09 -08:00
Xavi Artigas d1ffc7924e docs: Formatting issues in Efl.Text.Attribute.Factory 2019-12-18 16:10:17 +01:00
Xavi Artigas 21bb974024 docs: Fix typos and whitespace in Efl.Text_Cursor 2019-12-18 16:06:15 +01:00
Xavi Artigas 8e622e72df docs: Polish Efl.Text_Interactive docs
Ref T8521
Ref D10711
2019-12-18 15:17:28 +01:00
Lauro Moura 81b94b3e35 csharp: Fix passing acessor with ownership
Summary:
When passing an owned acessor from a converted collection we need a way
to unpin the passed data when the accessor is freed.

This commits adds a thin wrapper around the CArray accessor that unpins
the data when freed.

Depends on D10900

Reviewers: YOhoho, felipealmeida

Reviewed By: YOhoho

Subscribers: cedric, #reviewers, #committers, jptiz, brunobelo

Tags: #efl

Maniphest Tasks: T8486

Differential Revision: https://phab.enlightenment.org/D10901
2019-12-18 10:40:53 -03:00
Hermet Park 518d9b2649 evas vg: fix memory leak. 2019-12-18 21:52:42 +09:00
Ali Alzyod 365159c5ea efl.text.format: rename methods and properties
Summary:
efl.text.format: rename methods and properties

this change will avoid conflict in the future with other interfaces or class methods.

T8533

Reviewers: woohyun, segfaultxavi, zmike, bu5hm4n

Reviewed By: segfaultxavi

Subscribers: cedric, #committers, #reviewers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10895
2019-12-17 15:57:58 +01:00
Xavi Artigas 0265f4fd55 docs: Add detailed text styling information
Summary:
More detailed descriptions for each attribute.
Relationship between attributes.
Default values.
Links to direct API methods for the corresponding property.
General text overhaul and formatting.

Test Plan: Builds and passes tests. Generate docgen or DocFX documentation and enjoy your new Text styling descriptions!

Reviewers: ali.alzyod

Reviewed By: ali.alzyod

Subscribers: AbdullehGhujeh, cedric, #reviewers, #committers, woohyun, bu5hm4n

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10873
2019-12-17 14:20:12 +01:00
Xavi Artigas 3bfc73a95a docs: Add missing docs for Efl.Canvas.Object_Animation 2019-12-17 14:07:20 +01:00
Hermet Park be8d1afd1e evas mapping: fix memory leak.
These two dynamically allocated properties were not freed.
free them when cow data is reset.
2019-12-17 17:19:21 +09:00
Ali Alzyod 68e9bf9c14 efl_canvas_textblock: allow style_apply with wrap=none
Summary:
1- passing style_apply("wrap=none") had no effect previously, and now disable wraping
2- style_all_get() by default return "wrap=word", but now return  "wrap=none"

refer to T8523

Reviewers: segfaultxavi, woohyun, cedric

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10888
2019-12-16 19:11:33 +01:00
WooHyun Jung dfc9a3eef3 elm_slider: remove unused file
Summary:
Just removed elm_slider_eo.legacy.h which did not
have any dependency with other files

Test Plan:
1. sudo ninja install
2. elementary_test
3. Slider

Reviewers: segfaultxavi, bu5hm4n, zmike

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10876
2019-12-16 10:36:11 +01:00
Hermet Park de06ddb3ed ui position_manager: fix doc typo. 2019-12-16 17:24:17 +09:00
SangHyeon Jade Lee 0887b48f9f efl_ui : stablized factory classes.
Summary:
for mvvm publizing,
caching factory and layout factory need to be out of beta.

Reviewers: cedric, bu5hm4n, segfaultxavi

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10855
2019-12-16 16:58:50 +09:00
Ali Alzyod c3dbcb2447 edje_entry: real part protection check
Fix T8524

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10875
2019-12-13 16:35:32 -08:00
Marcel Hollerbach 5892292ac8 efl_ui: docuement code
there was the request that this needs to be documented, here we are.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10874
2019-12-13 09:33:07 -08:00
Marcel Hollerbach 7d1463124a efl_ui_widget: do not execute up handler when on destruction
otherwise we would cause an error.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10846
2019-12-13 09:33:05 -08:00
Marcel Hollerbach 4982da6327 evas_focus: protect against faulty focus object
the problem is that we only remove ourselfs from the focused list in the
invalidator. However, we allowed invalidated objects to be part of this
hash, which made everything go boom.

With this commit you at least only get one error and you should fix up
this case.

This fixes random errors in enlightenment (That are appearing theire
since seats have been introduced to evas, the problem before invalidate
was that the object was already destructor called, but not fully
destructed yet).

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10845
2019-12-13 09:33:04 -08:00
Marcel Hollerbach 349df85679 efl_ui_spotlight_manager_*: do not keep ptr of dead pointer
when content is deleted, we should not keep a dangling pointer of it.
Setting it to NULL here is enough, as later on a swtich_to reuest will
be sent.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10844
2019-12-13 09:33:03 -08:00
Marcel Hollerbach 431800a529 efl_datetime_manager: how did that ever work?
seriously, it sometimes might be worth at least *reading* what code
does, this was initializating a private data struct on one single global
boolean flag. How was that ever intended to work ? How could that ever
slip through review ?

This is not the only madness in these widget arround time and date, you
cannot even select hours in 24h mode, you also cannot cannot select the
0 hour, which is kind of normal for the one or another region? the
datetimemanager (which is IMO a complete misconcept) is full of FIXMEs
and API calls that are defined and never called at all. Again what is
this ? And how did that ever get into the codebase ?!

With this commit the widget *finally* can be created more than once
without exploding and erroring one.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10843
2019-12-13 09:33:01 -08:00
Marcel Hollerbach eaf2a8d7ec efl_ui_collection: do not leak
this fixes leaking of membership to a pan object, additionally this also
fixes the leaking of the pan object. This code was written with the
thought that edje deletes its children, long story short: no it does
not. While fixing the leak of the pan object, the error was found that
the membership of the item to the pan object was leaked, which ended up
in the item beeing deleted, even if its not part of the object anymore.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10841
2019-12-13 09:32:58 -08:00
Marcel Hollerbach e81dc6a02b efl_ui_scroller: free pan object correctly
we need to free the object in the invalidate, not in the destructor.
Otherwise we might leak objects in bindings.

Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10840
2019-12-13 09:32:57 -08:00
Marcel Hollerbach 3a712e2497 collection_view: free pan object correctly
edje will not take over this part, edje will just reparent it to the ML
and go on.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10839
2019-12-13 09:32:54 -08:00
Marcel Hollerbach 7a72796920 efl_ui_pan: stop leaking content
pans implementation of Efl.Content is different to each other
implementation, setting the content to NULL is not really deleting the
obejct, since this is done at those widgets that are actaully using the
pan. This is weird and fine in the same way, as the pan is only
internal. However, when we are shutting down, we must free the content
here.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10838
2019-12-13 09:32:53 -08:00
Ali Alzyod abc1cb0043 efl_canvas_textblock: multiline enabled by default
Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, tasn, bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10859
2019-12-13 16:35:07 +01:00
Hermet Park 4f99f9f2bf evas vg: revise buffer caching method.
for better precise buffer cache key,
We make a unique key name combining root node + size + frame index.

Now, we can reuse the root node for animation and caching buffers.
2019-12-13 17:25:26 +09:00
Ali Alzyod 3372a701d3 efl_canvas_text: event emitting
Summary:
1- Emitting changed event when adding text using cursors.
2- remove attribute,changed event since it is not used now
3- Emitting layout,finished event when finish layouting

Reviewers: woohyun, cedric, bu5hm4n

Reviewed By: cedric

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10834
2019-12-13 15:10:32 +09:00
Hermet Park 181ec112f6 evas vg: fix memory corruption for user entry.
Container must have a set parent after construction.
efl_add_ref() with a parent won't work this case
because container needs some jobs in overriding parent_set() after proper intialization.
2019-12-13 11:55:32 +09:00
WooHyun Jung 4efaebfc70 efl_ui_internal_text_interactive: prevent from freed memory accessing
If node_format_remove_pair frees node, then next for loop can lead
invalid memory accessing. This patch prevents from that case by keeping
the next node before freeing.
2019-12-13 10:33:00 +09:00
Xavi Artigas bd0231e98b eolian_mono: proper parsing of doc notes and paragraphs
Summary:
The documentation tokenizer relies on proper separation of paragraphs,
and we were not doing that. This fixes detection of Note:, Warning:,
Remark: and TODO: tags.
Additionally, we were removing the blank line between the summary and
the description, artificially joining them.

Test Plan: Everything builds and passes tests, and docs with `Note:` tags are correctly rendered (like `Efl.Loop_Consumer.new_promise`, for example)

Reviewers: lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10868
2019-12-12 19:07:59 -03:00
Yeongjong Lee 4c77ee6843 efl_ui: cleanup elm headers
since e2980cd981, `efl.ui.text` doesn't need
`elm_general.h`.

This partially reverts commit 96be3cd83d.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10849
2019-12-12 10:20:31 -08:00
João Paulo Taylor Ienczak Zanette e617ff441a csharp: Add implicit conversion from tuples to structs.
Summary:
Also generates implicit conversion for 1-field structs.
Usage examples:

```
// With tuples
Point2D p = (1, 2);
obj.SetPoint((1, 2));

// With 1-field structs
StringWrapper sw = "Must be handled by wrapper.";
```

Due to limitations of MSC compiler, implicit conversions are generated
only if struct has 4 fields or less.

Ref T8489.

Reviewers: brunobelo, cedric, lauromoura, segfaultxavi

Reviewed By: lauromoura

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8489

Differential Revision: https://phab.enlightenment.org/D10801
2019-12-12 13:16:22 -03:00
Ali Alzyod 2d76224918 evas_object_textblock: add support for variation sequences
Summary: update font processing to handle variation sequences unicodes to select proper glypg in respect to variation seqences

Test Plan:
```
#define EFL_EO_API_SUPPORT 1
#define EFL_BETA_API_SUPPORT 1
#include <Eina.h>
#include <Efl.h>
#include <Elementary.h>

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

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   win = elm_win_util_standard_add("Main", "");
   elm_win_autodel_set(win, EINA_TRUE);
   textblock = evas_object_textblock_add(win);
   efl_canvas_text_style_set(textblock,NULL,"DEFAULT='font=DejaVuSans font_fallbacks=SamsungColorEmoji color=#000 font_size=20'");
   evas_object_textblock_text_markup_set(textblock, "8&#xfe0f;&#x20E3;&#x262a;&#xfe0f;AAA&#x262a;&#xfe0E;1234567&#xfe0f;&#x20E3;");

   evas_object_size_hint_weight_set(textblock, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(textblock, EVAS_HINT_FILL, EVAS_HINT_FILL);
   evas_object_show(textblock);
   evas_object_move(textblock, 0, 0);
   evas_object_resize(textblock, 320, 320);
   evas_object_resize(win, 320, 320);
   evas_object_show(win);
   elm_run();
   return 0;

}

ELM_MAIN()

```

Reviewers: woohyun, bowonryu, segfaultxavi, cedric, bu5hm4n

Reviewed By: woohyun, cedric

Subscribers: raster, bu5hm4n, subodh6129, herdsman, segfaultxavi, zmike, cedric, #committers, #reviewers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9053
2019-12-12 16:22:12 +09:00
Ali Alzyod 8f87a2411a evas_textblock: content fit feature
Summary:
**Content Fit Feature for Evas_Object_Textblock**

This Feature is available at **Evas **object level.  And **Edje **level (where it is internally use evas functionality)
This feature will allow text block to fit its content font size to proper size to fit its area.

**Main Properties:**
Fit Modes        :   None=Default, Width, Height, All [Width+Height]
Fit Size Range :   Contains maximum and minimum font size to be used (and in between).
Fit Step Size    :   Step(Jump) value when trying fonts sizes between Size_Range max and min.
Fit Size Array   :   Other way to resize font, where you explicitly select font sizes to be uses    (for example [20, 50, 100] it will try 3 sizes only)

Text Fit feature was available in Edje but:
1- It doesn't effected by ellipsis or warping in font style (or do not handle the in right way)
2- Accuracy is not good (specially if you have fix pixel size elements (spaces,tabs,items))
3- No (Step size, Size Array) available.

Test Plan:
To check the Feature
> elementary_test
> fit
> textbock fit
You can modify all the modes and properties

These are two examples, One using Evas other uses Edje

**Evas**

```
#include <Elementary.h>

enum BUTTON{
   BUTTON_MODE             = 0,
   BUTTON_MAX              = 1,
   BUTTON_MIN              = 2,
   BUTTON_STEP             = 3,
   BUTTON_ARRAY            = 4,
   BUTTON_CONTENT          = 5,
   BUTTON_STYLE            = 6,
   BUTTON_ALL              = BUTTON_STYLE+1,
};

char* BUTTON_STR[BUTTON_ALL] ={
   "MODE",
   "MAX",
   "MIN",
   "STEP",
   "ARRAY",
   "CONTENT",
   "STYLE",
};

char *contents[] = {
   "Hello World",
   "This is Line<br>THis is other Line",
   "This text contains <font_size=20 color=#F00>SPECIFIC SIZE</font_size> that does not effected by fit mode"
   };

char *styles[] = {
   "DEFAULT='font=sans font_size=30 color=#000 wrap=mixed ellipsis=1.0'",
   "DEFAULT='font=sans font_size=30 color=#000 wrap=mixed'",
   "DEFAULT='font=sans font_size=30 color=#000 ellipsis=1.0'",
   "DEFAULT='font=sans font_size=30 color=#000'",
   };

char *styles_names[] = {
   "wrap=<color=#F00>mixed</color> ellipsis=<color=#F00>1.0</color>",
   "wrap=<color=#F00>mixed</color> ellipsis=<color=#F00>NONE</color>",
   "wrap=<color=#F00>NONE</color> ellipsis=<color=#F00>1.0</color>",
   "wrap=<color=#F00>NONE</color> ellipsis=<color=#F00>NONE</color>",
   };

typedef struct _APP
{
   Evas_Object *win, *box, *txtblock,*bg, *boxHor, *boxHor2;
   Eo *btn[BUTTON_ALL];
   Eo *lbl_status;
   char * str;
   unsigned int i_contnet, i_style;
} APP;
APP *app;

char * get_fit_status(Eo * textblock);

static void _btn_clicked(void *data EINA_UNUSED, Eo *obj, void *eventInfo EINA_UNUSED){
   if (obj == app->btn[BUTTON_MODE])
     {
        unsigned int options;
        evas_textblock_fit_options_get(app->txtblock, &options);
        if (options == TEXTBLOCK_FIT_MODE_NONE)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_HEIGHT);
        else if (options == TEXTBLOCK_FIT_MODE_HEIGHT)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_WIDTH);
        else if (options == TEXTBLOCK_FIT_MODE_WIDTH)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_ALL);
        else if (options == TEXTBLOCK_FIT_MODE_ALL)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_NONE);
     }
   else if (obj == app->btn[BUTTON_MAX])
     {
        unsigned int min, max;
        evas_textblock_fit_size_range_get(app->txtblock, &min, &max);
        max -= 5;
        evas_textblock_fit_size_range_set(app->txtblock, min, max);
     }
   else if (obj == app->btn[BUTTON_MIN])
     {
        unsigned int min, max;
        evas_textblock_fit_size_range_get(app->txtblock, &min, &max);
        min += 5;
        evas_textblock_fit_size_range_set(app->txtblock, min, max);
     }
   else if (obj == app->btn[BUTTON_STEP])
     {
        unsigned int step;
        evas_textblock_fit_step_size_get(app->txtblock, &step);
        step++;
        evas_textblock_fit_step_size_set(app->txtblock, step);
     }
   else if (obj == app->btn[BUTTON_ARRAY])
     {
        unsigned int font_size[] = {10, 50, 100 ,150};
        evas_textblock_fit_size_array_set(app->txtblock,font_size,4);
     }
   else if (obj == app->btn[BUTTON_CONTENT])
     {
        app->i_contnet++;
        if(app->i_contnet>=sizeof(contents)/sizeof(char*))
           app->i_contnet=0;
        evas_object_textblock_text_markup_set(app->txtblock,contents[app->i_contnet]);
     }
   else if (obj == app->btn[BUTTON_STYLE])
     {
        app->i_style++;
        if(app->i_style>=sizeof(styles)/sizeof(char*))
           app->i_style=0;

        Evas_Textblock_Style *style = evas_object_textblock_style_get(app->txtblock);
        evas_textblock_style_set(style,styles[app->i_style]);
     }

   elm_object_text_set(app->lbl_status, get_fit_status(app->txtblock));
}

char * get_fit_status(Eo * textblock)
{
   static char status[0xFFF];
   unsigned int options,min,max,step,size_array[256];
   size_t size_array_len;
   evas_textblock_fit_options_get(textblock,&options);
   evas_textblock_fit_size_range_get(textblock,&min,&max);
   evas_textblock_fit_step_size_get(textblock,&step);
   evas_textblock_fit_size_array_get(textblock,NULL,&size_array_len,0);
   if (size_array_len>255)
      size_array_len = 255;
   evas_textblock_fit_size_array_get(textblock,size_array,NULL,size_array_len);

   strcpy(status,"Mode : ");
   if (options == TEXTBLOCK_FIT_MODE_NONE)
      strcat(status,"MODE_NONE");
   else if (options == TEXTBLOCK_FIT_MODE_HEIGHT)
      strcat(status,"MODE_HEIGHT");
   else if (options == TEXTBLOCK_FIT_MODE_WIDTH)
      strcat(status,"MODE_WIDTH");
   else if (options == TEXTBLOCK_FIT_MODE_ALL)
      strcat(status,"MODE_ALL");

   strcat(status,"<br>");
   sprintf(status + strlen(status),"Max   : %d<br>",max);
   sprintf(status + strlen(status),"Min   : %d<br>",min);
   sprintf(status + strlen(status),"Step  : %d<br>",step);
   sprintf(status + strlen(status),"Array  : [ ");
   for (size_t i = 0 ; i < 10 ; i++)
     {
        if(i<size_array_len)
           sprintf(status + strlen(status)," %d,",size_array[i]);
     }

   if(10<size_array_len)
      sprintf(status + strlen(status)," ... ");
   sprintf(status + strlen(status)," ]");

   sprintf(status + strlen(status),"<br>");
   sprintf(status + strlen(status),"%s",styles_names[app->i_style]);

   return status;
}

int elm_main(int argc, char **argv)
{
  app = calloc(sizeof(APP), 1);

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   app->win = elm_win_util_standard_add("Main", "App");
   elm_win_autodel_set(app->win, EINA_TRUE);

   app->box = elm_box_add(app->win);
   app->boxHor = elm_box_add(app->box);
   app->boxHor2 = elm_box_add(app->box);
   app->txtblock = evas_object_textblock_add(app->box);
   app->bg = elm_bg_add(app->box);
   elm_bg_color_set(app->bg,255,255,255);

   Evas_Textblock_Style *style = evas_textblock_style_new();
   evas_textblock_style_set(style,styles[0]);
   evas_object_textblock_style_set(app->txtblock,style);
   evas_object_textblock_text_markup_set(app->txtblock,contents[0]);

   elm_box_horizontal_set(app->boxHor, EINA_TRUE);
   elm_box_horizontal_set(app->boxHor2, EINA_TRUE);

   evas_object_size_hint_weight_set(app->box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->box, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_size_hint_weight_set(app->box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->box, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_show(app->txtblock);
   evas_object_show(app->bg);
   evas_object_show(app->box);
   evas_object_show(app->boxHor);
   evas_object_show(app->boxHor2);

   elm_box_pack_end(app->box, app->bg);
   elm_box_pack_end(app->box, app->boxHor);
   elm_box_pack_end(app->box, app->boxHor2);

   elm_object_content_set(app->bg,app->txtblock);

   elm_win_resize_object_add(app->win, app->box);
   evas_object_resize(app->win, 320, 480);

   for(int i = 0 ; i < BUTTON_ALL ; i++)
     {
        app->btn[i] = elm_button_add(app->boxHor);
        evas_object_smart_callback_add(app->btn[i], "clicked", _btn_clicked, NULL);
        elm_object_text_set(app->btn[i], BUTTON_STR[i]);
        elm_box_pack_end(app->boxHor, app->btn[i]);
        evas_object_show(app->btn[i]);
     }

   app->lbl_status = elm_label_add(app->boxHor2);
   elm_object_text_set(app->lbl_status, get_fit_status(app->txtblock));
   elm_box_pack_end(app->boxHor2, app->lbl_status);
   evas_object_show(app->lbl_status);

   evas_object_size_hint_weight_set(app->txtblock, EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->txtblock, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_size_hint_weight_set(app->bg, EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->bg, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_show(app->win);
   elm_run();
   return 0;
}

ELM_MAIN()
```

**Edje**

```
// compile: edje_cc source.edc
// run: edje_player source.edje
collections {
   styles
   {
      style
      {
         name: "text_style";
         base: "font=sans font_size=30 color=#FFF wrap=mixed ellipsis=1.0";
         tag: "br" "\n";
         tag: "ps" "ps";
         tag: "tab" "\t";
         tag: "b" "+ font_weight=Bold";
      }
   }
   group {
      name: "my_group"; // must be the same as in source.c
      parts {

         part
         {
            name: "background";
            type: RECT;
            scale: 1;
            description
            {
               color: 0 0 0 0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
            }
         }

         part
         {
            name: "text";
            type: TEXTBLOCK;
            scale: 1;
            entry_mode: NONE;
            effect: OUTLINE_SHADOW;
            description
            {
               state: "default" 0.0;
               rel1.to : "background";
               rel1.relative: 0.0 0.0;
               rel2.to : "background";
               rel2.relative: 1.0 1.0;
               text
               {
                  style: "text_style";
                  align: 0.0 0.0;
                  text: "Hello World This is Me";
                  fit: 1 1;
                  fit_step: 1;
                  size_range: 30 200;
                  //fit_size_array: 20 40 60 80 100 200;
               }
            }
         }
      }
   }
}
```

Found Task T5724 relative to this Feature

Reviewers: woohyun, bowonryu, cedric, raster

Reviewed By: woohyun

Subscribers: a.srour, #committers, #reviewers, cedric

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9280
2019-12-12 14:22:46 +09:00
Marcel Hollerbach 42f56d0a0a efl_ui_popup: do not leak the backwall part
freeing it in the destructor is not enough. This has to be done at the
invalidator stage, otherwise bindings might have a blocking element on
the screen for the time the object is not gargabe collected.

Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10837
2019-12-11 11:11:05 -08:00
Woochanlee 0902bb4e01 eina_rbtree: Clean array intead of flush.
It doesn't have to flush all of the time when it iterating.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10858
2019-12-11 09:59:59 -08:00
Carsten Haitzler cf9b1fda05 ecore exe - remove useless fd closing before _exit()
we call _exit() right after closing some fd's - don't bother. they
might already be closed anyway and they will all be closed at exit
either way...
2019-12-11 15:28:12 +00:00
Stefan Schmidt 5888c7ee00 eeze: remove tizen module support from eeze sensor
This has been disabled since the move to meson and unlikely to have
built before with autotools either. Tizen never adopted this so we can
ease our maintenance burden here.

The Eeze sensor API itself is EAPI sadly and can't be removed. We will
keep the udev backend (temperature only) and the fake backend for
testing for now.

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10805
2019-12-11 13:46:31 +01:00
Cedric BAIL 8331ea048c elementary: improve data layout for Efl.Ui.PositionManager*.
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10688
2019-12-11 11:12:06 +01:00
Cedric BAIL 2b324779c9 elementary: reduce events triggered by Efl.Ui.PositionManager.
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10687
2019-12-11 11:12:01 +01:00
Cedric BAIL d62e2585bb elementary: reduce event trigger during object creation stage in Efl.Ui.CollectionView.
Once the object are created, the CollectionView will do a few modifiction on them before
giving this object to the position manager to deal with. Reducing events should slightly
improve performance.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10686
2019-12-11 11:11:57 +01:00
Cedric BAIL b9e0d25a4c elementary: reduce event generation during object creation by Efl.Ui.WidgetFactory.
We can not freeze the canvas in all scenario as we are sometime building widget fully
asynchronously which prevent holding events on the canvas. Still it is better to do it
for the case we can.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10685
2019-12-11 11:11:52 +01:00
Cedric BAIL 330b72bc6a evas: do not call Eina_Cow GC during invalidate it is pointless.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10818
2019-12-11 10:36:17 +01:00
Cedric BAIL e4765e3806 eina: introduce an explicit eina_cow_done with no call to GC.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10817
2019-12-11 10:36:14 +01:00
Cedric BAIL 939b0f1a9c evas: avoid unecessary Eina_Cow GC during image destruction.
If the stretch zone are NULL to start with, there is no reason to modify
them and this should avoid us a trip to the GC.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10816
2019-12-11 10:36:11 +01:00
Cedric BAIL 119cb085fa evas: reduce useless allocation during destruction of image.
Evas image use a GC to reduce duplicated state accross multiple object.
Still during shutdown we do clean it up and free it. There is no point
to push that down the GC if we are to just free it after. Relying on
the fact that dynamic content will avoid triggering the GC altogether
as their content change to frequently and is expected to be uniq among
other objects, we can avoid unecessary allocation during the destruction
by just switching that early on during the destructor.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10815
2019-12-11 10:36:08 +01:00
Cedric BAIL 574d1192bb evas: efl_gfx_image_stretch_region_set need access to image state before it is freed.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10814
2019-12-11 10:36:05 +01:00
Cedric BAIL 115a9a22b1 eo: only forward event if someone is listening.
This limit long chain of useless event forwarding when nobody is listening
at the end of the pipe.

Differential Revision: https://phab.enlightenment.org/D10813
2019-12-11 10:36:02 +01:00
Woochanlee 6830414e95 edje_entry: Fix resource leak.
Reviewers: Jaehyun_Cho, Hermet, ali.alzyod

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10854
2019-12-11 15:49:44 +09:00
Ali Alzyod 3359e03500 efl.ui.text: rename to efl.ui.textbox
Summary:
This patch will rename efl.ui.text into efl.ui.textbox

Effected classes:
 - efl.ui.text_async   :  efl.ui.textbox_async
 - efl.ui.text_editable   :  efl.ui.textbox_editable **will be removed anyway**

Needs consider Classes:
- efl.ui.text_part
- efl.ui.text_factory.Emoticons
- efl.ui.text_factory.Fallback
- efl.ui.text_factory.Images

Reviewers: woohyun, segfaultxavi, bu5hm4n, zmike, YOhoho

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10835
2019-12-11 09:47:50 +09:00
junsu choi ab67611c65 eina_inline: Fixed a potential dangling pointer
Summary: fixed by null handling

Test Plan: N/A

Reviewers: Hermet, YOhoho, cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10850
2019-12-11 09:27:10 +09:00
Ali Alzyod 4318fe1254 ector: Fix build warning about unused variable
Reviewers: bu5hm4n, Hermet, devilhorns

Reviewed By: devilhorns

Subscribers: devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10851
2019-12-10 12:03:01 -05:00
Wonki Kim a8d7816782 docs: fix to make docs contain proper images
Summary:
links to images that this patch is modifying would be included in doxy docs
without pre or post process something in meson definition, if we applied this patch.

Reviewers: segfaultxavi, bu5hm4n

Reviewed By: segfaultxavi

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10821
2019-12-10 12:53:39 +01:00
Ali Alzyod 33af599128 efl_ui_text_editable: remove class
Summary:
This class is the same as efl_ui_text, efl_ui_text is editable by default.
This class should be removed

Reviewers: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10831
2019-12-10 19:00:34 +09:00
Ali Alzyod 621d2cdecf Efl.Canvas.Text rename into Efl.Canvas.Textblock
Summary:
Efl.Canvas.Text                renamed into **Efl.Canvas.Textblock**
Efl.Canvas.Text_Factory  renamed into **Efl.Canvas.Textblock_Factory**

Reviewers: woohyun, segfaultxavi, zmike, bu5hm4n, YOhoho

Reviewed By: segfaultxavi

Subscribers: cedric, #committers, #reviewers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10808
2019-12-10 17:39:59 +09:00
Stefan Schmidt 31f1a20d0c ecore_x: fix unused parameter warnings after xgesture removal
Summary:
I somehow missed these warnings when doing the removal patch. Should
have spotted them. :(

Reviewers: devilhorns, raster, bu5hm4n, segfaultxavi, vtorri

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10833
2019-12-09 10:05:38 -05:00
Stefan Schmidt 4ff8fb140c elocation: remove beta library
This has never been fully finished or really used. The GeoClue project
dbus API moved on to a newer version as well. We still have it marked as
beta so we should take the chance and get rid of it to cleanup our tree
a little bit.

Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10788
2019-12-09 15:31:00 +01:00
Xavi Artigas 39758346ef Efl.Ui.Internal_Text_Interactive: missed renames from previous commit 2019-12-09 11:04:56 +01:00
Ali Alzyod 9c67a71e00 efl_text_cursor: rename enums
Summary:
rename two movement enums

**paragraph_first**: to just **first**  this will move the cursor to the beginning of the text

**paragraph_last**: to just **last**  this will move the cursor to the end of the text

These two are not directly related to paragraph the will move the cursor depending on the whole content

or maybe **start** and **end**  what do you think ?

Reviewers: woohyun, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10810
2019-12-09 10:54:48 +01:00
Hermet Park f8d9dfd74b evas vg: ++documentation 2019-12-09 15:41:33 +09:00
Ali Alzyod c00db387c3 Efl.Ui.Text : all related interfaces
Summary:
Change summary:

Removed :
- efl_ui_text_selectable.eo and add it functionality into efl_text_interactive.eo
- efl_ui_text_editable.eo because it is same as efl_ui_text.eo (just set one property by default)

Modifications:
- Move all Text Input enums and functionality from efl_ui_text class into its own interface,  this interface will be implemented at efl_ui_internal_text_interactive class.

- Rename selection_allowed property to selectable (same as other "editable" property) in efl_text_interactive

- Add select_all function into efl_text_interactive interface

- Add have_selection property into efl_text_interactive interface

- Move user_change , selection_start/change/clear   and undo/redo events into efl_text_interactive interface.

- Move methods and events of copy/paste/cut into efl_ui_text

- Fix password-related functionality

- Remove context menu clear and add_item methods.  (these should be added later with better design)

- Remove Validation event from EFL_UI_TEXT.  (these should be added later with better design)

Reviewers: woohyun, tasn, segfaultxavi, zmike, bu5hm4n

Subscribers: stefan_schmidt, a.srour, q66, zmike, segfaultxavi, cedric

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10711
2019-12-09 10:58:39 +09:00
Ali Alzyod 25900bee0f evas_text: retain legacy behaviour
This will retain old legacy behaviour (No Eina Checks).

Warnings will be generated when using elementary test, unless we retain old behaviour
https://phab.enlightenment.org/D10716#203305

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10826
2019-12-06 15:26:40 -08:00
Stefan Schmidt fd6d03025a ecore_x: remove support XGesture extension
Summary:
This was a X11 extension mainly developed for Tizen. By now I can only
find it packaged by Gentoo as the only Linux distribution and Tizen is
now longer using it either. Bringing it up during EDD and on the mailing
list did not come up with any users.
I think we can go ahead and deprecate the API and remove the
functionality.

Reviewers: raster, cedric, devilhorns, zmike

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10823
2019-12-06 14:40:55 -05:00
Marcel Hollerbach c33aaf32a8 elm_code: set box align correctly
sometimes the resize size is not in line with the size of the outer
widget, in this case the box should align its children at the very top,
otherwise the cursor grid is falling out of sync with the text content.
2019-12-06 19:19:38 +01:00
Jaehyun Cho cb817caa80 efl_canvas_object_animation: support duration 0
The duration of animation means how long the animation is executed.
Therefore, if duration is 0, then the final state of animation should be
applied to the target object immediately.

In this case, if final_state_keep is true, then the final state of
animation is preserved. Otherwise, the final state of animation is not
preserved.

ref T8436, T8513

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10812
2019-12-06 18:04:07 +01:00
Lauro Moura 4398ec7b3b elementary: Fix declaration of CV managers getters
This should convey better their intention of the setting taking
ownership of the passed value and the getter returning just a view to
them.

Fixes T8514

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10824
2019-12-06 16:55:09 +01:00
Yeongjong Lee 519430e204 efl: stabilize Efl.Gfx.Arrangement
ref T7864

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10642
2019-12-06 15:51:03 +01:00
Wonki Kim 2c515628d3 focus: modify a formula to calculate focus region to show
if there was a spacer around elm.swallow.content of scroller,
position of pan object would be different with position of the scroller obj.

this patch modifies a fomular that calculates some points relative to scroller
to a fomular that calculates the points relative to pan obj.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10745
2019-12-06 15:35:50 +01:00
Wonki Kim 1aa5b0c2e8 collection_view: fix a potentional error
assign signed int value on bigger unsigned variable
can make information of the varaible lost.
this patch fix the problem.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10723
2019-12-06 15:35:46 +01:00
Hermet Park 830bd4e26d evas vector: add one comment todo. 2019-12-06 18:59:38 +09:00
Taehyub Kim 6358d5e927 efl_ui_alert_popup: remove beta for efl_ui_alert_popup_title
Summary: remove the title part beta tag for the efl ui alert popup

Reviewers: Jaehyun_Cho, zmike, bu5hm4n, segfaultxavi

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10820
2019-12-06 17:49:52 +09:00
Hermet Park 885967523b evas vg: --remove log 2019-12-06 15:31:35 +09:00
Hermet Park 19ef155526 vg ector: Call a pair of ector begin/end for ector buffer drawing.
While we render vector drawing on ector,it uses ector buffers for subsequent compositions.
In this sequence, it switches ector buffer with a composition target,
while resuing the global ector context.

Previously, it trickly switched ector buffer, it broke the ector begin/end pair.
Now, it needs to recover global ector buffer once the composition finished.
Thus ector buffer need to return the current pixels information for this.
2019-12-06 15:31:30 +09:00
junsu choi 562ae738cc ector_software_rasterizer: use dynamic array by span size.
Summary:
When use with intersect mask, if span_count over span array size, composition is to be wrong.
So, In this case, we use dynamic array by span_count.

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: vtorri, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10748
2019-12-06 10:37:31 +09:00
junsu choi c86f77ff6e elm_label: Emit click signal on acivate action on label
Summary: In accessibility enabled case click signal of legacy label is not triggered.

Test Plan: N/A

Reviewers: Hermet, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10803
2019-12-06 10:30:34 +09:00
Hosang Kim 6e49a94c0e evas_events: fix wrong condition of proxy event behavior.
Summary:
If source_events is false, Evas object doesn't repeat events to source.
But events is always repeated to source in multi touch case.

Reviewers: Hermet, raster, cedric

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10807
2019-12-06 10:21:35 +09:00
junsu choi c1f3ad86df Ector: Prevent access to NULL
Summary: ector thread can called *data(task) after deleting task object.

Test Plan: N/A

Reviewers: Hermet, kimcinoo, smohanty

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10804
2019-12-05 20:25:26 +09:00
Ali Alzyod a5837cb4ed efl_text_attribute_factory: update documention
Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10806
2019-12-05 10:41:11 +01:00
Mike Blumenkrantz d8fb0b049a elm/genlist: trigger pan recalcs in update_job and item del functions
in cases where the pan may change as a result of item size recalcs,
it's necessary to ensure that the pan object is recalculated

ref D10663

Differential Revision: https://phab.enlightenment.org/D10752
2019-12-04 12:21:28 -08:00
Stefan Schmidt d0f69cf2e2 exotic: remove left-overs from Exotic support
This seems to have been gone a long time ago and only references left
that have not been disturbing the build. Time to clean up!

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10793
2019-12-04 12:21:28 -08:00
Subodh Kumar f86dbae7e3 edje: Add text change signal
There is no way to know about text changes in edc.
This signal will help developer to know about text changes
and do some operation based on that.

@feature

Co-authored-by: Cedric BAIL <cedric.bail@free.fr>

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10780
2019-12-04 12:21:26 -08:00
Stefan Schmidt b8dc80c144 emotion & evas: remove gstreamer 0.10 support
We have Gstreamer 1.x support for a long time already. We used to keep
this around as fallback. By now Linux distributions start to actually no
longer ship the Gstreamer 0.10.x packages and upstream has not seen a
release in in 5 years. Time to remove it on our side as well.

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10779
2019-12-04 12:21:25 -08:00
Stefan Schmidt f3d9b8ee70 esacpe: remove library from tree
This has not been used for a while and is not even buildable after our
switch to meson. It was a niche to start with given that it needed the
PS3 OS to run on. I asked for any remaining users at EDD and on the list
but heard nothing. Time to remove.

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10778
2019-12-04 12:21:24 -08:00
Xavi Artigas b04a7ed4f4 code comments: annoying typos 2019-12-04 18:22:25 +01:00
Xavi Artigas b179e397d6 Efl.Canvas.Animation: Rename repeat_count to play_count
Summary:
play_count is a tad simpler to understand, since it means the TOTAL number of
times the animation will play.
The default value is now 1, and 0 means INFINITE (instead of -1). This allows
removing yet another constant from header files.

Depends on D10799

Test Plan: Everything builds and passes tests. Elm_test Animation.Repeat has been adjusted accordingly.

Reviewers: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10800
2019-12-04 17:43:31 +01:00
Mike Blumenkrantz 22b005ea8a efl_ui/layout: unconditionally emit theme,changed event for legacy layouts
this will automatically be optimized by smart callback internals and fix
emission of this event

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10750
2019-12-04 16:48:01 +01:00
Mike Blumenkrantz 3f7a63149a efl_ui/layout: fix multiple emissions of theme,changed during construction
in the case where a layout object was created and had a theme manually set
with efl_ui_layout_theme_set() during construction, the layout would then
call theme_apply() a second time internally during finalize which, if the
theme has not changed (as can only be the case if this flag is unset),
results in a repeated theme_apply for the existing theme

@fix

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10738
2019-12-04 16:47:40 +01:00
Mike Blumenkrantz e9281cf124 efl_ui/layout: fix typo in theme,changed event checking and fix this event
this was a copy/paste error

ref 7ad8acc290

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10737
2019-12-04 16:47:37 +01:00
Marcel Hollerbach 20699d7f61 efl_ui_radio_box: declare stable
this was forgotten, the task for it (T8026) was even closed.

Differential Revision: https://phab.enlightenment.org/D10786
2019-12-04 16:47:33 +01:00
Marcel Hollerbach 655472d9c9 efl_ui_mutli_selectable: stabelize interfaces
these classes are after a long naming discussion stable.

fixes T7871
fixes T8265
fixes T7922

Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D10734
2019-12-04 16:47:32 +01:00
Marcel Hollerbach a6c102df1f efl_canvas_animation_group: remove implicit children behaviour
you could set the duration of the group to all children, however, the
default behaviour was to not do that. This is however a bit probeblatic,
and needs to be more expclicit. If this is needed again, then this can
be reintroduced, however, not in this form.

ref T8437
Depends on D10798

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10799
2019-12-04 16:30:50 +01:00
Marcel Hollerbach 752855825d remove unsued macros
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10798
2019-12-04 16:30:47 +01:00
Marcel Hollerbach fc7d398e07 efl_canvas_animation: use floating point infinite instead of macro
the floating point infinite builtin should also work cross languages (so
this is better for bindings).

ref T8437

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10797
2019-12-04 16:30:44 +01:00
Marcel Hollerbach a29be18b5f efl_canvas_animation: add a standard value for duration of animations
before this commit the standard time was 0, which results in no
animation played at all. Now its 0.2 and a app that does not like it can
adjust it.

ref T8436

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10796
2019-12-04 16:30:40 +01:00
Marcel Hollerbach 10b631e7cb efl_canvas_animation_group: use @property instead of method
this also refreshes the documentation of all this.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10795
2019-12-04 16:30:36 +01:00
Daniel Kolesa c601944a13 eolian: fix a parse bug where composites was treated as implements
In the specific case where you had "class A extends B composites C"
the correct composites branch was ignored and instead the implements
branch was used. This was entirely wrong/an oversight that did not
appear until now. Other combinations were handled correctly.
2019-12-04 16:07:09 +01:00
Xavi Artigas e242a05d73 docs: slight improvement for Efl.Decelerate_Interpolator 2019-12-04 15:58:04 +01:00
Daniel Kolesa c360f5edb6 eolian: account for entire inheritance trees when compositing
When a class composites an interface, we need to ignore all of
its extends (and extends of those) as well as the main interface
when doing API checks, as composites essentially provides a
guarantee that this *will* be implemented at runtime, which
further extends to the whole inheritance tree of that interface.

Fixes T8491.
2019-12-04 15:30:17 +01:00
Taehyub Kim 608c853b44 fix the wrong method signature for evas_textgrid
Summary:
fix the wrong method signature famliy font get and font size get for evas_textgrid
the method parameter should be changed to return type
@fix

Reviewers: Hermet, ali.alzyod, woohyun

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10794
2019-12-04 19:15:03 +09:00
Marcel Hollerbach 8daaab65fa efl_canvas_animation_group: move from list to iterator
we should not use lists directly, ownership issues etc. etc..
This moves it to iterators

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10787
2019-12-04 10:29:55 +01:00
Bowon Ryu 8cb0b193ea edje_entry: converting plain_text to '*' using unicode units.
Summary:
When converting plain_text to '*' in retrieve_surrounding_cb,
always convert it to '*' in 1 byte unit.

For example,
2 byte character is converted to "* *"
and 3 byte character is converted to "* * *"

However, this does not match the number of '*' printed in the entry.
Because, '*' in the entry is printed according to number of unicode characters.

This patch converts plain_text into unicode units
when converting plain_text to '*'

Test Plan: N/A

Reviewers: woohyun

Reviewed By: woohyun

Subscribers: cedric, #reviewers, jihoon, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10792
2019-12-04 17:09:33 +09:00
Xavi Artigas da0a72bb70 Efl.Canvas.Gesture_Zoom: typo in docs 2019-12-03 18:04:10 +01:00
Christopher Michael b3ba134036 ecore-wl2: Move ecore_wl2_window_buffer_transform_set to be internal
This function is unused outside of EFL internals, so there is no need
for it to be a public API.

ref T8013
2019-12-03 10:47:32 -05:00
Christopher Michael 40b4c54467 ecore-wl2: Move ecore_wl2_window_buffer_attach to be internal
As this function is not used outside of EFL itself, it can be moved to
be internal and not an exposed API function

ref T8013
2019-12-03 10:40:21 -05:00
Xavi Artigas 3b8648257b Efl.Ui.Spotlight_Container: update docs after push/pop changes
Differential Revision: https://phab.enlightenment.org/D10784
2019-12-03 14:38:29 +01:00
Marcel Hollerbach 290526da75 efl_ui_spotlight_manager_stack: fix positioning
we also need to reemit the position of current active element. Otherwise
the indicator will display a wrong value.

This is already done in any other spotlight manager.

fixes T8499

Differential Revision: https://phab.enlightenment.org/D10782
2019-12-03 14:38:28 +01:00
Marcel Hollerbach d973bcc087 efl_ui_spotlight_container: reverse push and pop semantics
before this commit, push would add before the current element, pop would
return to the next higher element.
after this commit, push would add after the current element, pop would
return to the previous element.

ref T7991

Differential Revision: https://phab.enlightenment.org/D10781
2019-12-03 14:38:28 +01:00
Carsten Haitzler 7787b16e20 eina - threadqueue - revert series of comments that moved to mempools
Revert "eina: remove no longer used function _eina_thread_queue_msg_block_real_free"
This reverts commit 695b44526c.

Revert "eina/threadqueue: use mempool_del for hash free function"
This reverts commit b0cb3b935a.

Revert "eina_thread_queue: use normal mempools for block allocation"
This reverts commit 14ae3e3dec.

Why? Threadqueue is a highly performance sensitive API.
_eina_thread_queue_msg_block_new() may be called quite often. Doing a
hash lookup to then find a mempool handle to then allocate from was
not the same as what was there and was going to be far more costly.
This would have actual performance impact as we have to compute a hash
and rummage through a hash, hunt for an environment var too. The
original code looked at a spare block pool where blocks *MAY* be of
different sizes (not always the same size so using a mempool is
actually wrong and will stop threadqueue from being able to send
larger messages at all). If you send large messages, larger blocks would
have been allocated and put in this pool. In almost all cases the first
item in the pool would be big enough so we don't hunt and the find pulls
out the first memory, resets the fields that are needed and returns that
block. If it needs a bigger one, it does hunt. This is going to be
rare that such big blocks are needed so I never tried to optimize this
(but it could be done with an array of sizes to make a walk to find
the right sized element cheap if the need arises).

Performance dropped quite a lot. On aarch64 The above mempool usage
dropped message rate from 1037251 msg/sec to 610316. On x86 it was even
worse. It dropped from 2815775 msg/sec to 378653.

So backing this out sees the message rate is 7.4 times faster and on
aarch64 it's 1.7 times faster.

So moving to a mempool was actually just wrong (size is not always the
same). Also this ended up with a mempool of 64k for thread queue blocks even
if we only sent messages sporadically, as opposed to a single 4kb
block. So backing this out saves memory by only having 1 or 2 4k blocks
around most of the time, not a 64k mempool.

So the above patch then follow-on patches were done without accounting
for the performance implications. There were good reasons to do what I
did - because this code was highly tuned even to the point where I
used atomics instead of locks specifically to cut down some contention
overhead. Beware when you change something that there may be steep
performance implications. 7.4 times faster to go back to what was
there is a great example.
2019-12-03 11:45:42 +00:00
Woochanlee fc456d2b77 gesture_manager: Changed function param to reduce internal function calls.
The filter_event function calling a lot of times when it runs.

This can help performance by reducing the number of calls to the efl_data_scope_get() function.

Reviewed-by: Hermet Park <hermetpark@gmail.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10437
2019-12-03 09:53:37 +01:00
Carsten Haitzler 6b04e5f215 fix jpeg loading which freed the wrong ptr
fixes T8497
@fix
2019-12-02 19:54:25 +00:00
Marcel Hollerbach 6d2a9ae1f8 introduce efl_ui_{pager/scroller}
They are just helpers, so a user does not need to handcreate spotlight
managers. This also leaves us the possibility of letting
spotlight_managers beeing @beta.

ref T7991

Differential Revision: https://phab.enlightenment.org/D10773
2019-12-02 18:30:26 +01:00
Marcel Hollerbach 842e6e9c67 efl_ui_spotlight_container: bring in min / max handling
the spotlight now is setting the overall correct min and max size on
itself. Additionally, the page size is now clamped to the size of the
container.

Correct min size of the container is defined to the MAX min size of all
the content.
The correct max size of the container is defined to the MIN max size of
all the content.

ref T7991

Differential Revision: https://phab.enlightenment.org/D10766
2019-12-02 18:30:23 +01:00
Marcel Hollerbach 7033816554 efl_ui_spotlight: do not inherit from layout anymore
before we inherited from layout, however the theme of the layout was
basically just the event part, and the holder part for the indicator.
The indicator part is going to be refactored into something else
anyways, since the indicator should be useable on other widgets as well.
Which means, only the event part is left, which is only used by the
scroller spotlight manager, (and now moved there).

With the move from this away we are saving round about 0.2KB of pure
edje accounting. Additionally, we are saving in perf 4% that is spend in
_efl_canvas_layout_efl_gfx_entity_size_set, which also makes this less
CPU intensive when resizing (Or even just starting is also enough).

ref T7991

Differential Revision: https://phab.enlightenment.org/D10765
2019-12-02 18:30:22 +01:00
Marcel Hollerbach acfd031e47 efl_ui_spotlight_indicator: make this undependend from the main widget
the main widget before presented a layout to hold the indicator,
however, for the causual case, this is not really needed. The indicator
itself is anyways going to be a more general prupose widget soon, where
the layout here can be taken as an starting point.

Additionally, this fixes general displaying of the indicator, before the
box padding refactor, a padding would have changed the minsize of the
mix, this is not the case anymore, which forces us to calculate the
minsize of the indicator theme.

Differential Revision: https://phab.enlightenment.org/D10764
2019-12-02 18:30:20 +01:00
Marcel Hollerbach d51bdf3c77 efl_ui_spotlight: move event rectangle
for now the eventrect was a swallow part, created by the container, set
to the edje layout. However, the only real user for this is the scroll
spotlight manager.
Which means, we have mostly unneeded element resized by edje, which is
quite an overhead. With this commit, this is moved to the scroll
manager, which makes the usage with stack and plain less memory heavy.

Differential Revision: https://phab.enlightenment.org/D10763
2019-12-02 18:30:19 +01:00
Marcel Hollerbach a66f1130af efl_ui_spotlight: ensure correct positioning
if something is just repositioned, but not resized, it would not have
been placed correctly. This fixes that.

Differential Revision: https://phab.enlightenment.org/D10762
2019-12-02 18:30:18 +01:00
Ali Alzyod 5978d79858 efl_canvas_text: documentation for style set
Summary:
Depends on D10607

Original Material: https://www.enlightenment.org/_legacy_embed/evas_textblock_style_page.html

Reviewers: woohyun, segfaultxavi, AbdullehGhujeh

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10729
2019-12-02 18:07:19 +01:00
Marcel Hollerbach 05f68d98fb efl_part: declare stable
Summary:
last release we declared efl_part.eo stable. But we accidently forgot
efl_part()...

Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10772
2019-12-02 16:41:51 +01:00
Woochanlee 6162914be5 ecore_wl2: Add APIs to get window properies.
Summary: Creates APIs to get property.

Reviewers: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10743
2019-12-02 08:50:24 -05:00
Hermet Park 1cb7d11ea8 Revert "Revert "evas map: diable high quality texture mapping feature.""
This reverts commit 94c193e40b.
2019-12-02 20:41:14 +09:00
Daniel Kolesa 9f50f08349 eolian: emit correct c_name for keyword builtins 2019-12-02 12:09:50 +01:00
Marcel Hollerbach 40571bf0ee eolian_aux: do not leak 2019-12-02 08:53:46 +01:00
Ali Alzyod 0806b03346 efl_canvas_text: correct password behaviour with efl_text_password_get/set
Summary:
In simple words:

when we create efl_canvas_text object,   efl_text_password_get will return TRUE.
which is wrong,
efl_text_password_get should  return FALSE, unless user change the password using   efl_text_password_set

Reviewers: woohyun, zmike, segfaultxavi, tasn

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10735
2019-12-02 10:56:13 +09:00
Carsten Haitzler adbf79a3a8 edje - min calc - ix more regressions due to optimizations
again 37b55172b0 broke min size calc.
this time it was for mouse cursors. the entry cursor was 0 sized after
commit 37b55172b0. this disables the
"don't cacle if its 0 sized) which isnt a valid thing to skip - you
caqn min size calc a 0x0 edje ... and it should then return a valid
min size given that design/layout.
2019-12-01 22:56:15 +00:00
Lauro Moura f203c164d8 eo files: Avoid container<ptr(value_type)> usage.
Summary:
Value types are already assumed to be stored by pointer (e.g.
`int val = *(node->data);`)

This commit just changes the current usage of the `ptr` modifier in the
ptr, not affecting the parser.

Reviewers: q66, segfaultxavi, bu5hm4n, felipealmeida

Reviewed By: q66

Subscribers: cedric, #reviewers, #committers, brunobelo

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10769
2019-11-29 17:22:07 -03:00
Yeongjong Lee 3ba366498c elementary: stabilize Efl.Ui.Relative_Container
Summary: ref T8380

Reviewers: segfaultxavi, woohyun, zmike, bu5hm4n, cedric

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8380

Differential Revision: https://phab.enlightenment.org/D10641
2019-11-29 10:43:43 +01:00
WooHyun Jung 62e470130c efl_ui_position_manager_grid: avoid zero division case
This fixes the issue of zero division when columns is zero.
Sometimes columns can be zero when "pd->viewport.w = 0".

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10768
2019-11-29 08:08:19 +01:00
Hermet Park d05c2169a8 vector cache: skip animation update as possible.
Since the vector file data is shareable among the multiple vg instances,
vfd could keep the requested frame data already by the other instance.

This case vector cache quickly return the vector data withouth any further progress.
2019-11-29 11:20:48 +09:00
Hermet Park 153b5cffd8 evas vector: operate cached vector file data per evas instances.
each vfd loaders construct vector tree data, these can be belongs to evas instance,
they are not likely shareable.

We should operate vfd separately.
2019-11-29 10:51:19 +09:00
Xavi Artigas 7c79ca674d docs: nitpicking
We should not refer to individual library names anymore. They are all
part of EFL now!
2019-11-28 18:13:51 +01:00
Vincent Torri 9acab812ee ecore_win32: fix compose event field
Summary:
compose event field was encoded in UTF-16 and not UTF-8. Also string
event field was not correctly defined and was generating eina error
messages

Test Plan: running a test

Reviewers: raster, cedric, zmike

Reviewed By: raster

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10753
2019-11-28 11:06:24 +00:00
Xavi Artigas 92d2cc7ae3 Efl.Canvas.Text: Further update docs 2019-11-28 11:08:11 +01:00
Xavi Artigas dfe0c7b110 Efl.Canvas.Text: Update docs 2019-11-28 11:04:09 +01:00
Ali Alzyod 7bdb63d045 Polish text interface methods
Summary:
This patch is set to rename some properties of `Efl.Text_Font` & `Efl.Text_Format` interfaces.

1- efl_text_font_set/get become (efl_text_font_family_set/get, efl_text_font_size_set/get)

2- efl_text_valign/halign   become efl_text_vertical/horizontal_align

3- efl_text_halign_auto_type  become  efl_text_horizontal_align_auto_type

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

Reviewed By: woohyun

Subscribers: zmike, #committers, #reviewers, cedric

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10716
2019-11-28 16:55:27 +09:00
abdulleh Ghujeh fa1aa10d79 Efl Canvas Text : Update style parsing code
Summary:
Based on comments in D10607

Update code responsible for parsing "style=" :

-Update string parsing code
-Make the old and new code more readable
-Add tests

Reviewers: segfaultxavi, bu5hm4n, woohyun, ali.alzyod

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10715
2019-11-28 16:46:30 +09:00
Hermet Park dc3e899b58 vector container: skip only for composition types. 2019-11-28 15:04:56 +09:00
Hermet Park 408bfb3e35 evas vector: make it stable caching logic.
We need a more precise caching mechanism to save memory.
Current root node(key) is limited for caching buffers,
when to share by the multiple animated instances.

This patch is a step for further optmization work,
at the moment we disable the caching buffers for the animated instances.
2019-11-28 14:20:08 +09:00
abdulleh Ghujeh f6caca1d70 Efl Canvas Text : Modify Style Property
Summary:
This patch defines the way style property will work at canvas_text object

1- Changing canvas_text style property using Font/Format/Style interfaces or with efl_canvas_text style property are the same.
     Example:

```
efl_text_font_set(tb, "Arial", 30);
//is same as
efl_canvas_text_style_set(tb, "font=Arial font_size=30");

//which means calling
char * font;
int size;
int font_size;
efl_text_font_get(tb, &font, &size);
// calling this after any of the top two functions will return same result
```

2- style_get_property
     Will return string that contains full details about all the current applied style at canvas_text  level.

3- style_set_property
     Will only override passed styles and leave everything else as it is

```
efl_canvas_text_style_set(tb, "font=Arial");  // overrider font name to Arial and leave everthing else
efl_canvas_text_style_set(tb, "font_size=30");  // overrider font size to 30 and leave everthing else (font name will stay arial)
```

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

Reviewed By: woohyun

Subscribers: zmike, bu5hm4n, segfaultxavi, a.srour, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10607
2019-11-28 13:14:15 +09:00
Carsten Haitzler 2ca6c301e4 edje - fix min size calc after being broken by previous commit
37b55172b0 breaks min size calc. elm
toolbar was being squashed. e toolbars also were becoming 0 sized.
Just because a swallow does not have content does not mean it does not
affect the minimum size. there still could be a min size set on it
anyway etc. ...
2019-11-28 00:06:15 +00:00
Carsten Haitzler 0ecbb416ad build - handle g-main-loop enabled when glib not as an error in meson
also enable glib now in ci
2019-11-27 17:51:54 +00:00
Carsten Haitzler 1127409564 eina - add portable close all fd's we don't need function
close all fd's starting at a given fd and then leving out an exception
list specially passed, if any. useful for fork+exec. this uses it in
efl's fork+exec paths.

@feat
2019-11-27 16:52:49 +00:00
Marcel Hollerbach dd941fe4f8 remove unused code file
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10707
2019-11-27 15:55:18 +01:00
Marcel Hollerbach ebf8d0cf30 theme: rename pager to spotlight
that mirrors the name of the widget.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10706
2019-11-27 15:55:15 +01:00
Marcel Hollerbach 3ad70802c6 efl_ui_spotlight_manager_*: remove size and position events
there is no need to listen to them, they are already listent to by the
container, and new sizes are told via the size property.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10704
2019-11-27 15:55:09 +01:00
Marcel Hollerbach 58a2fa931b efl_ui_spotlight_manager: remove the group object
i do not know why its there, it caused a bug in the past (in regards of
clippers and visibility). Now we can get rid of it completly, the state
of it is always compatible to the one of the widget itself, soooo ...

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10702
2019-11-27 15:55:03 +01:00
Marcel Hollerbach 5932520f03 efl_ui_spotligt: make it possible to freeze animations
this new API makes it possible to stop animations beeing executed in the
spotlight manager. (The logic in the spotlight managers itself are
already implemented).
The animation will also be frozen during construction time of the
spotlight.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10701
2019-11-27 15:55:00 +01:00
Marcel Hollerbach 3838112294 Revert "gesture_manager: Changed function param to reduce internal function calls."
This has still open review comments, lets solve them, and *then* land
it.

This reverts commit 2f41f867ae.
2019-11-27 15:54:57 +01:00
Hermet Park 643dceca3d vector container: skip copying compositions precisely.
+ added some comments for future tasks.
2019-11-27 21:06:42 +09:00
Woochanlee 2f41f867ae gesture_manager: Changed function param to reduce internal function calls.
Summary:
The filter_event function calling a lot of times when it runs.

This can help performance by reducing the number of calls to the efl_data_scope_get() function.

Reviewers: Hermet, smohanty, bu5hm4n

Reviewed By: Hermet

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

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10437
2019-11-27 14:28:48 +09:00
Ali Alzyod c7f37fe618 Efl.Text.Attribute_Factory
Summary:
Implementation of new Efl.Text.Attribute_Factory class which replace the annotation interface.

Currently, we have two public methods:

```
void efl_text_attribute_factory_attribute_insert(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end, const char *format)
unsigned int efl_text_attribute_factory_attribute_clear(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end);
```

Other methods will be internal methods, for the time being, we will redesign internal methods

Reviewers: woohyun, tasn, segfaultxavi, bu5hm4n, zmike

Subscribers: zmike, q66, cedric, segfaultxavi, bu5hm4n, a.srour, #committers, #reviewers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10646
2019-11-27 13:04:32 +09:00
Lauro Moura 11094aeaaf csharp: Add more since tags to members
Summary:
- Class constructors and other members
- Aliases fields

ref T8359

Reviewers: felipealmeida, segfaultxavi, brunobelo, woohyun

Reviewed By: felipealmeida

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8359

Differential Revision: https://phab.enlightenment.org/D10419
2019-11-26 12:40:32 -03:00
Hosang Kim 09fd7ca8d6 ecore_timer: add NULL checking for timer data.
When timer is not created, a crash occurs.
For example, when user create ecore timer in the pthread..
Of course this is not the correct usage, but printing ERR message is enough.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10714
2019-11-26 16:00:20 +01:00
Yeongjong Lee a21f615a19 eo: add missing move tag
`efl_access_action_actions_get`
the list is created by `eina_list_append`

`efl_ui_format_values_set`
the accessor is freed in that function.
`efl_ui_format_values_get`
The accessor is created by `eina_inarray_accessor_new`

`efl_core_command_line_command_access`
The accessor is created by `eina_array_accessor_new`

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10720
2019-11-26 15:51:08 +01:00
Yeongjong Lee fba098df38 eo: add move tag to iterator
It is impossible to reuse iterator after `EINA_ITERATOR_FOREACH`(`eina_iterator_next`).

E.g.
```
eina_init();

eina_file_dir_list("/home/", EINA_FALSE, _print_cb, NULL);

it = eina_file_ls("/home/");
EINA_ITERATOR_FOREACH(it, f_name)
  {
     printf("%s\n", f_name);
     eina_stringshare_del(f_name);
  }
EINA_ITERATOR_FOREACH(it, f_name)
  {
     printf("Again %s\n", f_name);
     eina_stringshare_del(f_name);
  }
eina_iterator_free(it);
```
`Agian ...` is never printed.

Therefore, iterator always need `@move` tag to avoid unexpected behavior without
any error message.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10719
2019-11-26 15:51:05 +01:00
Woochanlee 4ebbe0ad04 edje_calc: Creation macro that perform edje calc, regardless of the edje size.
Summary: edje_recalc_do() needs to be executed regardless of the size of edje in order to deliver edje properties for the API that the user calls.

Reviewers: cedric, Hermet, Jaehyun_Cho, smohanty

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10724
2019-11-26 13:57:16 +09:00
junsu choi f1275e86f4 Efl.Canvas.Image: Add skeleton code Efl.Gfx.Frame_Controller.sector
Summary:
Sector is a property with start, end frame and sector name information
that can be used when playing a specific section.
Sector play is not supported for Efl.Canvas.Image yet.
So we add skeleton code with comments.
This is also for full implements of the Efl.Gfx.Frame_Controller interface.

Test Plan: N/A

Reviewers: Hermet, bu5hm4n

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10718
2019-11-26 11:01:28 +09:00
Marcel Hollerbach f7868fd28c efl_ui_multi_selectable: clean this up
this commit merges common functions from efl_ui_multi_selectable and
efl_ui_multi_selectable_async. Additionally, the two different aspects
of accessing the elements in a multi_selectable widget (numerical or
object based) are now abstracted into interfaces called range_numeric and
range_object. numeric APIs are also prefixed with id's, so its possible
for one widget to implement both (if there will ever be the demand to do
that in future).

The main reason for this split is:
- there is no good common path between mvvm based multi_selectable and
object based multi_Selectable, so there is no way that both sides would
benefit, without the other one suffering.
- If we find later on the demand to implement both on one widget, we now
can fully do that
- Common API is available for both types, so its less API and less
confusion for the API user.

ref T7871
ref T8265

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10675
2019-11-25 13:31:24 +01:00
junsu choi b798f9146c Efl.Canvas.Vg.Container : Initialize mask buffer for SUB, INS composition.
Summary:
   If composite method is substract or intersect, buffer needs initialize.

Test Plan: N/A

Reviewers: Hermet, kimcinoo, smohanty

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10732
2019-11-25 19:04:30 +09:00
Hermet Park 58e09586bf evas vector: initialize data member properly.
user entry root should be initialized to null before accessing it.

in a certain scenario it could occur a crash with an invalid root data.

@fix
2019-11-25 13:28:38 +09:00
Ali Alzyod aeee3497af evas_textblock: cursor function null check at start
Reviewers: segfaultxavi, woohyun, lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10727
2019-11-22 15:34:27 -03:00
Lauro Moura 642b243df9 csharp: Fix helper function
Summary: Was failing if the suffix were equal to the source string

Reviewers: felipealmeida, segfaultxavi, YOhoho, brunobelo

Reviewed By: brunobelo

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10708
2019-11-22 12:01:59 -03:00
Lauro Moura b22594a10b text: Fix struct definition
Summary:
Efl_Text_Cursor_Handle was being declared twice, confusing the C#
generator. This commits updates it to be singly defined in the
text_types eot file.

Reviewers: segfaultxavi, ali.alzyod

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10726
2019-11-22 15:49:36 +01:00
WooHyun Jung d2ed28bd8a efl_ui_internal_text_interactive: fix undefined symbol issue
Summary: This fixes an issue from d7352f4db4.

Reviewers: segfaultxavi, bu5hm4n

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10725
2019-11-22 12:51:26 +01:00
Xavi Artigas 98ae0bb4cc Efl.Text.Cursor: Add missing documentation
This was breaking the C# bindings build.
2019-11-22 12:50:35 +01:00
Wonki Kim 8559b0472e efl_ui_table: modify comparing logic
Summary:
pad.h/v are integer varaibles, and also parameters h/v are too.
so that it is not needed to compare them like they are floating pointer.

Reviewers: bu5hm4n, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10722
2019-11-22 12:43:14 +01:00
Xavi Artigas 070c8f6ae9 docs: Remove repeated words
This had already been pointed out in the review.
2019-11-22 10:39:33 +01:00
Ali Alzyod d7352f4db4 Efl.Text.Cursor
Summary:
Implementation of new cursor text object.

This Patch Contains :
1- Remove Efl.Text.Cursor & Efl.Text_Markup_Interactive interfaces and replace them with one Class Efl.Text.Cursor
   => there are some modifications on cursor methods

2- Update all related classes to use Efl.Text.Cursor object instead of the old interfaces

3- If class uses Efl.Text_Cursor_Cursor (handle), mainly annotation it will stay as it is until we update other annotations into attribute_factory

4- Add main cursor property into efl.text.interactive

5- Add cursor_new method in efl.ui.text  (I think we may move it into efl.text.interactive interface)

There still some parts that need discussion: especially cursor movement functionality, I prefer to move function with Enum, instead of special function for each movement.

```
enum @beta Efl.Text.Cursor_Move_Type
{
   [[Text cursor movement types]]
   char_next,       [[Advances to the next character]]
   char_prev,       [[Advances to the previous character]]
   cluster_next,    [[Advances to the next grapheme cluster]]
   cluster_prev,    [[Advances to the previous grapheme cluster]]
   paragraph_start, [[Advances to the first character in this paragraph]]
   paragraph_end,   [[Advances to the last character in this paragraph]]
   word_start,      [[Advance to current word start]]
   word_end,        [[Advance to current word end]]
   line_start,      [[Advance to current line first character]]
   line_end,        [[Advance to current line last character]]
   paragraph_first, [[Advance to current paragraph first character]]
   paragraph_last,  [[Advance to current paragraph last character]]
   paragraph_next,  [[Advances to the start of the next text node]]
   paragraph_prev   [[Advances to the end of the previous text node]]
}
move {
         [[Move the cursor]]
         params {
            @in type: Efl.Text.Cursor_Move_Type; [[The type of movement]]
         }
         return: bool; [[True if actually moved]]
      }
```

or old way:
```
char_next {
         [[Advances to the next character]]
         // FIXME: Make the number of characters we moved by? Useful for all the other functions
         return: bool; [[True if actually moved]]
      }
      char_prev {
         [[Advances to the previous character]]
         return: bool; [[True if actually moved]]
      }

      char_delete {
         [[Deletes a single character from position pointed by given cursor.]]
      }

      cluster_next {
         [[Advances to the next grapheme cluster]]
         return: bool; [[True if actually moved]]
      }
      cluster_prev {
         [[Advances to the previous grapheme cluster]]
         return: bool; [[True if actually moved]]
      }

      // FIXME: paragraph_end is inconsistent with word_end. The one goes to the last character and the other after the last character.
      paragraph_start {
         [[Advances to the first character in this paragraph]]
         return: bool; [[True if actually moved]]
      }
      paragraph_end {
         [[Advances to the last character in this paragraph]]
         return: bool; [[True if actually moved]]
      }
      word_start {
         [[Advance to current word start]]
         return: bool; [[True if actually moved]]
      }
      word_end {
         [[Advance to current word end]]
         return: bool; [[True if actually moved]]
      }
      line_start {
         [[Advance to current line first character]]
         return: bool; [[True if actually moved]]
      }
      line_end {
          [[Advance to current line last character]]
         return: bool; [[True if actually moved]]
      }
      paragraph_first {
         [[Advance to current paragraph first character]]
         return: bool; [[True if actually moved]]
      }
      paragraph_last {
         [[Advance to current paragraph last character]]
         return: bool; [[True if actually moved]]
      }
      paragraph_next {
         [[Advances to the start of the next text node]]
         return: bool; [[True if actually moved]]
      }
      paragraph_prev {
         [[Advances to the end of the previous text node]]
         return: bool; [[True if actually moved]]
      }
```

Reviewers: woohyun, tasn, segfaultxavi

Reviewed By: woohyun

Subscribers: a.srour, bu5hm4n, segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10542
2019-11-22 17:35:54 +09:00
Marcel Hollerbach 17ba8515f1 efl_canvas_object_animation: fix possible invalid pointer
now if one of the event handlers calls animation_stop in a callback to
EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, then
pd->in will be freeed. Which means, in the next event handler the
address taken by &pd->in->progress might be invalid, leading to a crash.

With this commit this is a address on the stack, which should fix this.
2019-11-21 18:41:08 +01:00
Marcel Hollerbach eeff991076 efl_canvas_object_animation: make this all more safe
Summary:
when a callback is called, the in pointer might be free'ed, we should be
more carefull with that.

fix CID1407682

Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10713
2019-11-21 13:06:41 +01:00
junsu choi 044bc28e3a elm/hoversel: Recalculate items before box calculate.
Summary:
After the item is packed into the box,
the min of the item can be initialized with content_set working.
content_set calls parent_set and checks the theme when calling parent_set.
At that time, if theme is changed in the parent of layout using hoversel,
call theme_apply(efl_ui_layout) to make min value 0, 0.
This patch can avoid it.

Test Plan: N/A

Reviewers: YOhoho, Hermet, woohyun, zmike, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10712
2019-11-21 19:49:01 +09:00
Wonki Kim 4a4525cb4b eina_matrix: replace cosf by cos to gain more accuracy
Summary:
cos function is much much more accurate than cosf.
this patch replaces cosf by cos to gain more accuracy.

Reviewers: cedric, jsuya, vtorri

Subscribers: vtorri, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10695
2019-11-21 17:50:33 +09:00
Hermet Park cf79e1f7e6 Revert "evas animation: removed unnecessray checking."
This reverts commit 959c503a71.
2019-11-21 17:45:36 +09:00
Hermet Park 959c503a71 evas animation: removed unnecessray checking.
pd->in is already verified earlier.
2019-11-21 17:26:21 +09:00
Jaehyun Cho a46bddc490 efl_canvas_object_animation: check if animation stops during animation
It is checked if animation stopped in the animation_progress,updated
callback by user.
2019-11-21 15:30:21 +09:00
Stefan Schmidt ee05d0d1ff ecore_input_evas: fix ouble use of include guard define
We used the ecore_input define here in ecore_evas_input. Use a unique
name for this file.

Reported-By: https://lgtm.com/projects/g/Enlightenment/efl/
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10698
2019-11-20 10:30:17 +01:00
Marcel Hollerbach 14b6f23cb3 eo: there is no need to count callbacks here
we are going to add this description anyways, no need to count here
again. I think this is not really making anything really faster, its
more keeping things consistance.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10689
2019-11-20 10:15:21 +01:00
Marcel Hollerbach aef56b169e remove efl_canvas_animation_player
this now all migrated to Efl.Canvas.Object.Animation

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10667
2019-11-20 10:03:50 +01:00
Marcel Hollerbach d4c004ab5d efl_ui_spotlight_manager stack: move away from player object
with this commit we move from using the player object to using the mixin
that was introduced a few commits before. The new mixin is way easier to
use here, we safe a lot of code, we also only need 1 object instead of
4. (And overall, everything just gets sooooo much more easier).

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10637
2019-11-20 09:58:30 +01:00
Marcel Hollerbach fa93893548 introduce efl_canvas_object_animation
this brings the animation to the canvas object. All the controls of the
animation now do now require a player object anymore, you can just use
the API that is directly on the Efl.Canvas.Object object.

wip animation player replacement

Differential Revision: https://phab.enlightenment.org/D10615
2019-11-20 09:58:24 +01:00
Xavi Artigas 9bb2df9966 Unify "animated" flags
There exist several flags to indicate whether an object should be animated, with inconsistent names:
Efl.Canvas.Layout.animation: bool indicating if Edje animations should be played
Efl.Ui.Spotlight_Manager.animation_enabled: bool indicating if page transitions should be animated
Efl.Canvas.Animation_Player.animation: Efl.Canvas.Animation object

This commit unifies all of them: "animated" is now a flag, and "animation" is an object.

Note: Animation_Player is in the process of being replaced by an "animation" property in the
Efl.Canvas.Object, hence the need for non-clashing animation flags.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10645
2019-11-20 09:58:23 +01:00
Hermet Park db68e45fed vector container: don't copy composite target duplicatedly.
Container copied composite target in prior to duplicate children,

the composite target is one of the children, it should skip to handle it again.
2019-11-20 14:11:08 +09:00
Christopher Michael e36b1930bf ecore-wl2: Add API to find a window by given surface
This patch adds a convenience function to find a window by a given
wl_surface.

@feature
2019-11-19 09:44:45 -05:00
Christopher Michael 68ea9f1a71 ecore-wl2: Add API to return window type
Small patch whichs adds a new API to return the type of a given window

@feature
2019-11-19 09:44:45 -05:00
Christopher Michael ab51bbeeef ecore-wl2: Add API to return the compositor object from a given display
This patch adds a convenience function to get the wl_compositor object
from a given display

@feature
2019-11-19 09:44:45 -05:00
Christopher Michael 7fb23c2da1 ecore-wl2: Add API to find a connected display given a name
This patch adds a convenience function to find a connected display
given a name

@feature
2019-11-19 09:44:45 -05:00
Christopher Michael a10a9ceccb ecore-wl2: Add API to find a window by surface
This patch adds a convenience API that can be used to find a window
based on wl_surface.

@feature
2019-11-19 09:44:40 -05:00
Bowon Ryu eb13df21d0 slider: fix behavior of slider when mirrored
Summary:
The vertical slider(!horizontal) should not be inverted when mirrored.
This patch fixes and cleans up this.

Test Plan:
elementary_test -to slider
elementary_test -to efl.ui.slider

UI-Mirroring on/off and observe vertical slides.

Reviewers: woohyun, cedric, bu5hm4n

Reviewed By: woohyun

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10693
2019-11-19 14:04:05 +09:00
Hermet Park fd6e5081f9 evas vector: removed useless calls.
It turns out ector engine doesn't use any color mixing with gradients fill.
Removed unnecessarities unless we can find a way to use them in the future.
2019-11-19 13:26:50 +09:00
Bowon Ryu c30176e7ff slider: fix value error from step
Summary:
When the slider moves using step,
_drag_value_fetch(), _val_fetch() calculates a value from position of edje_part.
Then the calculated value is updated.
However, this causes a slight error.

This patch updates value ​​first when moving with steps.

* Test Example

```
Evas_Object *sl = elm_slider_add(bx);
elm_slider_min_max_set(sl, -5, 5);
elm_slider_value_set(sl, 0.0);
elm_slider_step_set(sl, 0.1);
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_smart_callback_add(sl, "changed", _change_cb, NULL);
```
```
void
_change_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
   double val = elm_slider_value_get(obj);

   if (val == -5.0) printf("val[%f] == -5.0 \n", val);
   if (val == -4.0) printf("val[%f] == -4.0 \n", val);
   if (val == -3.0) printf("val[%f] == -3.0 \n", val);
   if (val == -2.0) printf("val[%f] == -2.0 \n", val);
   if (val == -1.0) printf("val[%f] == -1.0 \n", val);
   if (val == 0.0) printf("val[%f] == 0.0 \n", val);
   if (val == 1.0) printf("val[%f] == 1.0 \n", val);
   if (val == 2.0) printf("val[%f] == 2.0 \n", val);
   if (val == 3.0) printf("val[%f] == 3.0 \n", val);
   if (val == 4.0) printf("val[%f] == 4.0 \n", val);
   if (val == 5.0) printf("val[%f] == 5.0 \n", val);
}
```

If you move the slider using step in this test,
You can see that some logs are not visible. (Some values ​​are incorrect)

Test Plan:
elementary_test -to slider
elementary_test -to efl.ui.slider

Reviewers: woohyun, cedric, bu5hm4n

Reviewed By: woohyun, bu5hm4n

Subscribers: bu5hm4n, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10662
2019-11-18 21:25:26 +09:00
Xavi Artigas 1c5849c5a8 doxygen: Prevent auto-linking of invalid links
Anything starting with http://, ftp:// or file:// is automatically
converted into a link by doxygen. However, we have a few instances
where we do not want this. Fortunately, doxygen allows using % to
forbid specific words from being linked.
2019-11-18 12:00:35 +01:00
Cedric BAIL 3f3b725945 eldbus: only free the data when the future is resolved or rejected.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D10684
2019-11-18 11:46:11 +01:00
Hermet Park 54217cda84 evas image cache: drop cache properly,
the default reference is 1,
thus we should drop it unless if it's more than 1,
2019-11-18 13:08:40 +09:00
Hermet Park 618bce8038 evas vg: improve caching methods for better precise behaviors.
Previously, json file data won't be shared between instances.
Now, objects can share the json data if they use the same file resource.
2019-11-18 13:08:29 +09:00
Cedric BAIL 75301b3a1a eo: do not over compute the hash when propagating events.
This should slightly improve speed in theory. In practice, I have not seen
a benchmark which would budge by 5%, so I am not sure it improve speed that
much.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10660
2019-11-17 12:12:28 +01:00
Cedric BAIL 6d20f32cef eo: no need to oversize type.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10659
2019-11-17 12:12:26 +01:00
Cedric BAIL c355616043 eo: refactor shortcut for EFL_EVENT_DESTRUCT event.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10658
2019-11-17 12:12:23 +01:00
Carsten Haitzler 9876a78fd3 edje - box - calc min size correctly at start ...
this fixes a logic hole where no chosen desc has been applied yet to a
box and thus it has no start layout thus no way to calc a min size.
this breaks min size calcs you do when setting up and object. this
fixes that by forcing the chosen desk on a min size calc so there is
one.

@fix
2019-11-16 14:22:48 +00:00
Carsten Haitzler 42e691d9b4 ecore-x - add some xi2 api's for fiddling with device properties
add some infra to be able to get and set device properties (as well
as know if devices changed to we can refersh a gui or re-apply saved
settings etc.). it doesn't do everything but... it adds enough to
build on in e.
2019-11-16 13:02:10 +00:00
Carsten Haitzler 7096634a39 efreet - consider ctime changes as changes too
some distros do odd things with source desktop files and set their
mtime timestamps to 0... thus we can't tell that there is a change.
thier ctimes do change, so consider the newer of either of these as
the modification time to not miss updates

@fix
2019-11-16 13:02:10 +00:00
Carsten Haitzler f8cf378868 strings - be cleaere we are initialising buffers not appending
also should silence possible code checkers.
2019-11-16 13:02:10 +00:00
junsu choi 3493a37db8 Eina_Matrix : Use math header for cosf and sinf of rotate function.
The local cos and sin functions differ from
the math header cos and sin functions by result values
The 4th decimal place is different.
Computing large numbers can cause errors.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10467
2019-11-15 11:52:01 -08:00
Daniel Kolesa a1cb493d4f eolian: fix memory leak when using error objects 2019-11-15 13:36:57 +01:00
Boris Faure b26085819e efreet: fix typo
Summary: efreet: fix typo

Test Plan: None

Reviewers: cedric, raster, lauromoura, devilhorns, marcelhollerbach, segfaultxavi, zmike, vtorri

Reviewed By: segfaultxavi, vtorri

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10676
2019-11-15 12:57:08 +01:00
abdulleh Ghujeh 2b71b63022 Edje : textblock_styles strncmp improvement
Summary: Improve string comparison

Reviewers: cedric, ali.alzyod, woohyun, bu5hm4n

Reviewed By: woohyun

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10635
2019-11-15 10:14:03 +09:00
Lauro Moura 4832d9bfb8 edje: Remove warnings
Missing declaration from another file and removing unused variable.

After D10605

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10674
2019-11-14 10:52:04 -08:00
Woochanlee 37b55172b0 edje_calc: Exception handling if no calculation is required.
If there is no object swllowed, do not run part_calc on it.
This swallow will be calculated if there is an associated part, otherwise it will not need to be calculated.

When the app is launched, a lot of edje calculation logic is executed.
Most of the edje size is missing, so the calculation result is meaningless.
Added code to prevent this.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10605
2019-11-14 10:08:56 -08:00
Chris Michael 2288c92bc5 ecore-drm2: Fix issue of shifting 1 by more than 32bits
Based on 9ca573f40f, this patch fixes
potential undefined behaviour on 64 bit systems.

@fix
2019-11-14 12:21:40 -05:00
Daniel Kolesa 9ca573f40f eo: fix UB in the eo event code (edje_cc hangs etc.)
Today I started experiencing mysterious hanging of edje_cc
during build. "The French are at it again" I thought, and
after spending a while bisecting, I found the culprit.
It's 7f53d91583.

So, what is happening in here?

The idea here was fundamentally sound; compute a special
hash value for event descriptors, taking range between 0
and 63 (on 64-bit systems) and 0 and 31 (on 32-bit systems),
then use a mask sized 32-bit or 64-bit (depending on your
system) and check early if to bail out from callback_call,
saving some resources. So far so good.

The problem is in the way the mask is handled. We're applying
the hash as the shift value like, `x |= (1 << hash)`. On 32-bit
systems this is okay, but on 64-bit systems, C's dumb silent
coercion rules kick in, since the left side of the expression
is 1, a literal with type signed int; that means our shifting
range is limited to 31 and what we get is... undefined behavior.

This is obviously not what we want, so take a 1ULL value as a
base. The previous thing seemingly worked on x86_64 (nobody
reported any issues) and interestingly it worked for me too
for a while (on ppc64le), but undefined behavior can be
unpredictable, so...

This shouldn't need a commit message as long as this, but I'm
making it proportional to the amount of time I wasted on this.
2019-11-14 04:18:46 +01:00
junsu choi 288218527d efl_canvas_vg_node: Prevent access to NULL object for remove warning
Summary:
For remove this warning
WRN<3378>:eo ../src/lib/eo/eo.c:644 _efl_object_call_resolve() NULL passed to function efl_invalidated_get().

Test Plan: elementary_test -> animation_view

Reviewers: Hermet, kimcinoo, smohanty

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10627
2019-11-14 11:25:53 +09:00
Cedric BAIL d505167d68 ecore: correctly apply the offset on the upper part of the boolean mask for Efl.BooleanModel.
The upper mask is the one that should actually move as the gap is between the lower and
the upper mask when removing an element from the array.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10632
2019-11-13 21:16:16 +01:00
Cedric BAIL 652533e27d ecore: remove the composited children from the source of an Efl.CompositeModel.
The composite model was erroneously giving the reference to a children composited model
instead of the origianl children which made it impossible for the composited model
to delete the right child.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10631
2019-11-13 21:16:14 +01:00
Cedric BAIL 6cec0df499 elementary: fix initialization order and memory leak when setting model on Efl.Ui.CollectionView.
This patch use volatile model to make sure that a model is properly cleaned once it is not
used anymore.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10625
2019-11-13 21:16:11 +01:00
Cedric BAIL f71a109e70 elementary: fix recursive case during model fetch in Efl.Ui.CollectionView.
Figuring out why model fetch was sometime not working recursively allow to
reduce the amount of request that need to be made. In this case, notifying
the position manager or lack of notification was triggering a case where the
item would not show up (Joice of nested asynchronous behavior).

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10624
2019-11-13 21:16:07 +01:00
Cedric BAIL 560db39577 ecore: properly handle children destruction in Efl.BooleanModel.
The children removal event is happening on the parent model, so access
values directly.

T8358

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10623
2019-11-13 21:16:04 +01:00
Yeongjong Lee 246485ca92 efl_ui_relative_container: rename relative_layout
Summary:
Also,
Rename parameter name `target` to `base`.
Rename parameter name `relative` to `relative_position`.

ref T8380

Depends On D10639

Test Plan: ninja test

Reviewers: woohyun, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8380

Differential Revision: https://phab.enlightenment.org/D10640
2019-11-12 14:33:13 +01:00
Xavi Artigas 3fc7102561 Efl.Ui.Scroll_Manager: Fix indentation 2019-11-12 13:00:23 +01:00
junsu choi 04e3d8cc3d evas_device: Fix typo in evas_device_pop
Summary: Fix wrong null check

Test Plan: N/A

Reviewers: cedric, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10648
2019-11-12 16:23:33 +09:00
junsu choi 7d97abc05b Efl.Ui.Animation_View: Implement sector playing feature
Summary:
play_sector method is API for playing section.
If the animation object has section information, user can play the section.
Get the start and end section name and get the frame of each section.
And set and play the min and max frames of the current animation object.

Depends on D10506

Test Plan:
For example. Animation objects have "first","second" and "third" sectors.
And sector "second" has duration information.

User can use it like this:
efl_ui_animation_view_play_sector(anim_view, "first", "second");
efl_ui_animation_view_play_sector(anim_view, "second", NULL);
efl_ui_animation_view_play_sector(anim_view, "first", NULL); // first sector ~ end frame of animation object.
efl_ui_animation_view_play_sector(anim_view, "second", "third");
efl_ui_animation_view_play_sector(anim_view, "second", "wrong name");

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10507
2019-11-12 14:30:25 +09:00
junsu choi bcfffc07cf Efl.Gfx.Frame_Controller: Add sector property
Summary:
These APIs to get and set frames for a specific section for playing section.

Depends on D10505

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10506
2019-11-12 14:30:10 +09:00
junsu choi 93551ca58e evas_cache_vg : Implements sector_get/set internal APIs
Summary:
These APIs to get and set frames for a specific section in vg animation.
get API looks for a sector by name in the markerlist of VG_File_Data.
Then return start and end frames.

Depends on D10504

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10505
2019-11-12 14:29:50 +09:00
junsu choi ddaa5d1e6e vg_loader: Get markers information form json data.
Summary: If json data has marker information, it is stored in vg file data.

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10504
2019-11-12 14:28:44 +09:00
Marcel Hollerbach 4c8a764b49 elm: apply the same fix we needed in entry to other scrollable widgets
this here is the same effect as in my previous commit:
When re retheme a object, we need to reset the signals, otherwise there
would be wrongly displayed scrollbars.

This fixes wrong scrollbars in enlightenment.

Differential Revision: https://phab.enlightenment.org/D10628
2019-11-11 13:44:57 +01:00
Marcel Hollerbach 6b1de6a4ac efl_canvas_animation: correctly handle double signness
Summary:
start_delay and duration both have to be > 0.0 otherwise there should be
an error. This also adds the neccessary checks, to ensure that.

For now this is only added to the normal evas test suite, maybe we eed
to refactor these efl_* API tests into theire own test suite. However,
not for now.

Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10617
2019-11-11 10:20:48 +01:00
Lauro Moura 77207f9b58 csharp: Fix running headless tests in dotnet
Summary:
CoreCLR, the runtime of dotnet, has some issues regarding storing
environment variables (see dotnet/coreclr issue #15812), keeping them in
a local cache instead of flushing to the native `setenv`.

This commit replaces the usage of
`System.Environment.SetEnvironmentVariable` with a `setenv` wrapper.

Test Plan: Run without DISPLAY set and with dotnet.

Reviewers: felipealmeida, brunobelo, segfaultxavi, YOhoho

Reviewed By: brunobelo

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10619
2019-11-07 22:46:15 -03:00
Marcel Hollerbach 01bf9a34d6 elm_entry: fix wrong displayed scrollbars
the scrolbars have been displayed wrongly before. Reason for this is
that the theme displays the bars per default, the code however works
with hidden by default. This was worked arround before with the fact
that we are explicitly hiding the vbar/hbar before.
The reason this previous code was not working proberly is that entry
decided to retheme a object that was already set to the interface
scrollable object. Which means, it was not detected by the code. With
the newly introduced reset function you can tell the interface, that you
have changed the group, signals will be emitted accordingly.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10622
2019-11-07 22:24:11 +01:00
Cedric BAIL 1f66d9ed9b elementary: watch event on the model Efl.Ui.CollectionView use directly.
Efl.Model can be nested and Efl.Ui.CollectionView use this ability. Listening
on the nested model instead of the nester model can lead to event being triggered
that shouldn't. Better listen on the top model.

Differential Revision: https://phab.enlightenment.org/D10621
2019-11-07 22:24:08 +01:00
Cedric BAIL 620dd43db2 eo: make sure to return the right value for efl_event_callback_call.
EINA_FALSE is to be returned only if one of the callback did call
efl_event_callback_stop not if their was no callback called.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10620
2019-11-07 22:24:07 +01:00
Cedric BAIL 65955b7a9f elementary: properly handle in flight request in Efl.Ui.CollectionView.
This fix adding item not always showing up in the CollectionView right away.
The main issue comes down to the fact we can not chain a new request when one
is already resolved partially. The code now make sure to properly do this.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10614
2019-11-07 22:24:03 +01:00
Cedric BAIL b77482e7d6 elementary: cleanup Eina_Future properly by relying on efl_future_then proper lifecycle.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10613
2019-11-07 22:24:00 +01:00
Carsten Haitzler 39240fa3e7 Revert "evas_textblock: content fit feature"
This reverts commit 2f676a6591.

This causes segv's in edje_cc - i suspect the eet changes (or in combo
to how they are used in edje):

AddressSanitizer:DEADLYSIGNAL
=================================================================
==8991==ERROR: AddressSanitizer: SEGV on unknown address 0x000001010000 (pc 0xffff9f002604 bp 0xfffffa747700 sp 0xfffffa747700 T0)
==8991==The signal is caused by a READ memory access.
    #0 0xffff9f002600 in _eet_hash_gen ../src/lib/eet/eet_utils.c:25
    #1 0xffff9efdd024 in eet_dictionary_string_add ../src/lib/eet/eet_dictionary.c:103
    #2 0xffff9efbe324 in eet_data_put_string ../src/lib/eet/eet_data.c:849
    #3 0xffff9efc1c4c in eet_data_put_type ../src/lib/eet/eet_data.c:1427
    #4 0xffff9efd9128 in eet_data_put_unknown ../src/lib/eet/eet_data.c:4730
    #5 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
    #6 0xffff9efd5958 in eet_data_put_variant ../src/lib/eet/eet_data.c:4309
    #7 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
    #8 0xffff9efd9270 in eet_data_put_unknown ../src/lib/eet/eet_data.c:4739
    #9 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
    #10 0xffff9efd8ca0 in eet_data_put_array ../src/lib/eet/eet_data.c:4692
    #11 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
    #12 0xffff9efc7768 in eet_data_write_cipher ../src/lib/eet/eet_data.c:2403
    #13 0xffff9efc78a4 in eet_data_write ../src/lib/eet/eet_data.c:2420
    #14 0xaaaabb151dcc in data_thread_group ../src/bin/edje/edje_cc_out.c:2045
    #15 0xaaaabb152130 in data_write_groups ../src/bin/edje/edje_cc_out.c:2086
    #16 0xaaaabb157734 in data_write ../src/bin/edje/edje_cc_out.c:2866
    #17 0xaaaabb14122c in main ../src/bin/edje/edje_cc.c:456
    #18 0xffff9dbd92a0 in __libc_start_main (/usr/lib/aarch64-linux-gnu/libc.so.6+0x242a0)
    #19 0xaaaabb13ea00  (/home/raster/C/git/efl/build/src/bin/edje/edje_cc+0x38a00)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ../src/lib/eet/eet_utils.c:25 in _eet_hash_gen
==8991==ABORTING
Aborted (core dumped)

When compiling breaks... it's certainly time to revert ASAP :(
2019-11-07 10:23:58 +00:00
Taehyub Kim e4e7ff3905 efl_ui_alert_popup: add title part in parts block
Summary: add title part in parts block

Reviewers: Jaehyun_Cho, woohyun, zmike, segfaultxavi

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10596
2019-11-07 13:38:47 +09:00
Lauro Moura cd467051af efl: Make stable single-valued getters consistent.
Summary:
Instead of a getter with an explicit return type, change it to be a
single-valued property.

The eolian C generator takes care of making this single value the actual
return value of the C function.

This also makes these properties able to be reflected on.

The stack properties returns just a pointer and not a new ref, so no
@move needed.

Beta properties will be handled in a future commit.

Depends on D10601

Reviewers: segfaultxavi, bu5hm4n, q66, cedric

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers, brunobelo, felipealmeida

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10602
2019-11-06 23:47:39 -03:00
Wonki Kim da5c0c63f2 elm_config: replace ecore_file_cp with ecore_file_mv
ecore_file_cp can cause config data(eet file) invalid,
once multiple processes are trying to call elm_config_save.

this patch replaces it with ecore_file_mv to prevent the problem.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10578
2019-11-06 03:01:57 -08:00
Woochanlee 249ffd6a50 edje_calc: UNLIKELY changed to LIKELY.
It should takes true almost all times when it checks.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10606
2019-11-06 03:01:56 -08:00
Cedric BAIL f7c6bec38f elementary: fix end of fast scroll not showing up during Efl.Ui.CollectionView scroll.
efl_ui_position_manager_entity_entities_ready is expecting the end offset and not the
length of how many items have been updated. Sending the correct number fixes the problem.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10590
2019-11-06 02:14:55 -08:00
Xavi Artigas 9ca84821fc Efl.Interpolator*: More sensible API names and docs
Summary:
OK, so, ALL interpolator parameters were called "factor" and the docs
literally said "First factor, Second factor, ..."
After diving into the actual implementation, proper names (and types) for the
parameters were found and proper docs written.

I am afraid I could not make any sense of the Divisor interpolator code. Those
docs still need writing.

Test Plan: Everything still builds and passes tests. No functional changes.

Reviewers: zmike, cedric, bu5hm4n, Jaehyun_Cho

Reviewed By: bu5hm4n

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10603
2019-11-06 15:50:11 +01:00