Commit Graph

19128 Commits

Author SHA1 Message Date
Subodh Kumar 2854702f8e edje: Add support for map zoom to use other part center.
Summary:
Current:
In edc, zoom is supposed to happen from object center, there is no way to
change the center of the zoom.

Changes:
Adding support to change the center of zooming just like map rotation by using
other part's center.

@feature

Reviewers: cedric, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9115
2019-07-12 12:04:06 -04:00
Vitor Sousa b1e44484a5 cxx: remove compilation warnings in C++ code, from both gcc and clang
Summary:
Remove almost all the compilation warnings from C++ code. Only explicit
warnings using the `#warning` preprocessor directive remain.

Some warnings had to be suppressed with `#pragma` directives because the
behavior they were warning about is intended in some specific places.
Code comments were added in such situations.

Added a generator that creates `#pragma` directives in order to suppress
warnings in all generated C++ headers.
Currently `-Wignored-qualifiers` is the only warning category being suppressed.
The innocuous const qualifiers that it points are inoffensive and have
no effect in compilation at all.
They are also hard to track in generation since they can emerge from different
types in many places.

To ease the generation of the warning suppressors an utility constructor was
added to `efl::eolian::grammar::attributes::unused_type`.

Add constructors to `eolian_mono::class_context` to default initialize its
internal string and avoid field initialization warnings.

Test Plan: `meson test`

Reviewers: lauromoura, felipealmeida, zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl_language_bindings

Differential Revision: https://phab.enlightenment.org/D9275
2019-07-12 09:07:27 -04:00
Godly T.Alias c001a8146b Evas Events: Decrement grab count on freeze state
Summary:
Decrement grab count of mouse event when mouse up happen during a freeze state.
Currently as grab count is not reduced in this scenario, further touches gets ignored.

Signed-off-by: Godly T.Alias <godlytalias@yahoo.co.in>

Test Plan: (on scenario where proxy exists) mouse down -> freeze events -> mouse up -> unfreeze events

Reviewers: cedric, raster, zmike, Hermet

Reviewed By: zmike

Subscribers: zmike, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9214
2019-07-12 08:45:18 -04:00
Hosang Kim 7d33cf977f Rename orientation -> image_orientation.
Summary:
Efl.Gfx.Image_Orientable and Efl.Ui.Layout_Orientable have same property name.
So when class extends both interfaces, it makes conflict.

Relates to T7924

Reviewers: woohyun, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9299
2019-07-12 10:32:20 +02:00
Mike Blumenkrantz b6ebcc35fc evas/render: clear smart render cache when re-adding smart parent in post-render
given the following scenario:
* object is added to smartobj
* smartobj is otherwise unchanged
* render occurs
object will never render due to smartobj's render cache not including object

by clearing this cache when reinserting smartobj into the render tree for a
followup render, the object chain will be correctly processed on the next pass

fix T7990

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9287
2019-07-11 16:51:35 -07:00
Marcel Hollerbach 1c8f6132af declare a few classes stable
this is the first wave of stablization declarations

fixes T7562
fixes T7846
fixes T7848
fixes T7859
fixes T7860
fixes T7861
fixes T7863
fixes T7878
fixes T7899
fixes T7918
fixes T7919
fixes T7963
fixes T7964
fixes T7965
fixes T7967
fixes T7969
fixes T7970

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9264
2019-07-11 17:15:43 +02:00
Marcel Hollerbach dc2dba6c88 efl_ui_list: fix warnings
Summary: nothing to see here, move on!

Reviewers: zmike, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9283
2019-07-11 16:11:04 +02:00
WooHyun Jung 3798356819 efl_ui_text: avoid infinite loop when long pressing
Long pressing on efl_ui_text gave inifinte loop. So, I removed
event_call in the event callback function.
I think long press functionality is almost broken after applying
clickable_util. There is no way to remove long press timer based
on the action on efl_ui_text.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9274
2019-07-11 13:40:24 +02:00
Marcel Hollerbach d512ff68ae efl_ui_item: remove internal pointer to select_mode
there was this internal pointer to select_mode for getting the selection
mode of the container. However, we now have API for checking this, so
there is exactly 0 reason for doing this like this. Additionally, with
the old way of doing, bildings like C# or lua are just lost, they cannot
use this class at all in there implementations, as they cannot access
the privat data.

ref T905

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9263
2019-07-11 13:30:27 +02:00
Marcel Hollerbach d30fc5f5d3 efl_ui_item: rework parent relation
this commit ensures that there is a public way of setting the container
to a item. This was also like this before, just with the difference that
it was set and unset in all privacy, however, we want to have this class
also ready for bindings, so we should stop making things privat like
this.

Note: the removed fields from grid and list have not been used.

ref T7905

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9262
2019-07-11 13:30:26 +02:00
Alastair Poole 5a698b6a3d ELM_CODE: Fix for theming of widget.
Change inhertitence for object so we can use
themes with elm_code.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9279
2019-07-11 13:19:55 +02:00
Shinwoo Kim a3a07f6e83 Efl.Ui.Format: fix regressions
(1) Following commit did not care of efl_ui_format_string_get(set) of
elm_slider_part_indicator_eo.c

   e776f5f Efl.Ui.Format revamp

Even though you call elm_slider_indicator_format_set with "%1.0f",
elm_slider_indicator_format_get returns NULL.

(2) The commit does not initialize format variables
   - elm_slider_indicator_format_get
   - elm_slider_unit_format_get
   - elm_progressbar_unit_format_get

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9276
2019-07-11 13:19:54 +02:00
Shinwoo Kim d8fcd8d300 efl_ui_*: fix regressions on legacy side
elm_progressbar_value_set with value bigger than max (or less than min) set to
max value instead of the bigger value. Following commit broke this behavior.

   5efb4b3 efl_ui_*: get range users onto the same semantics

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9277
2019-07-11 07:30:53 +02:00
Cedric BAIL fcaec534a3 ecore: phab didn't get this bit from D8570. 2019-07-10 14:09:15 -07:00
Mike Blumenkrantz 9c07cd1b1a edje: check for user_defined hash existence before removing members
Differential Revision: https://phab.enlightenment.org/D9267
2019-07-10 21:19:07 +02:00
Cedric BAIL fce5645d80 efl: use eina_streq for all property operation in model to avoid crash on NULL property name.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9266
2019-07-10 21:10:23 +02:00
Cedric BAIL 4e4210b0f3 ecore: improve usability of Efl.Select_Model to provide helpers in manipulating selection information.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8570
2019-07-10 20:55:02 +02:00
Mike Blumenkrantz be37c47fff edje: fix some small leaks when failing to reapply user-defined data
Summary:
this only occurs when the same text parts don't exist in the new layout,
which is an extremely unlikely scenario

Depends on D9210

Reviewers: cedric, bu5hm4n

Reviewed By: cedric, bu5hm4n

Subscribers: bu5hm4n, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9211
2019-07-10 14:40:42 -04:00
Mike Blumenkrantz f5d3f575c6 edje: improve user-defined data caching to handle data before file is set
Summary:
this adds explicit handling for things like:

efl_add(SOMECLASS, parent,
  efl_text_set(efl_added, "my text")
);

on edje-inheriting objects.

note that it's still impossible to do something like
efl_add(SOMECLASS, parent,
  efl_text_set(efl_part(efl_added, "somepart"), "my text")
);

also add a unit test to verify common behaviors

@feature

Depends on D9209

Reviewers: cedric

Reviewed By: cedric

Subscribers: bu5hm4n, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9210
2019-07-10 14:40:42 -04:00
Mike Blumenkrantz 66213df2f5 edje: fix reapplying markup text on file/group change
Summary:
this was being stored as regular text when it was actually markup

@fix

Depends on D9208

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9209
2019-07-10 14:40:42 -04:00
Mike Blumenkrantz aa921c553b edje: change 'user_defined' member of Edje struct to be a hash
Summary:
this is where all user-added data (e.g., swallowed objects, table/box packs,
text strings) are stored. with this patch, it is now a hash by part name,
storing a list of user-defined data for that part

this simplifies a bit of code by deconstructing some list walks, and
should end up being slightly faster for large edje objects with lots of
user-defined data

ideally no functional changes

Depends on D9206

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9208
2019-07-10 14:40:42 -04:00
Mike Blumenkrantz 662572ecfe eina/hash: add direct variants of list append/prepend functions
Summary:
this simplifies the process of manipulating lists inside hashes with a
non-copied key

@feature

Depends on D9205

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9206
2019-07-10 14:40:42 -04:00
Mike Blumenkrantz d82a14c3b0 edje: remove _edje_user_definition_fetch()
Summary: this is an internal function which is never used

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9205
2019-07-10 14:40:42 -04:00
Mike Blumenkrantz 6c82037ac0 efl/selection_manager: remove correct conditional
ref ac26c0a69d

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9265
2019-07-10 20:17:02 +02:00
Mike Blumenkrantz 65c47edc3d ecore: also error when trying to add an event handler for a type 0 event
Summary:
this is not a valid event type to add a handler for, it indicates an
uninitialized event which means the component is not active and everything
will break

@fix
Depends on D9255

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9256
2019-07-10 13:57:38 -04:00
Mike Blumenkrantz 1feff299ff ecore: throw an error when trying to register a handler for a nonexistent event type
Summary:
this should not be a silent return since event handlers are depended upon
so heavily
Depends on D9254

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9255
2019-07-10 13:57:36 -04:00
Mike Blumenkrantz 2138010127 events: don't check for zeroed event types before registering them
Summary:
this handles the case of reinitializing a component, but it's totally
broken in the case of doing a full ecore restart
Depends on D9253

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9254
2019-07-10 13:57:35 -04:00
Mike Blumenkrantz ac26c0a69d efl/selection_manager: only create wl event handlers if using wl connection
Summary:
this codepath is broken if the wl server connection does not exist

Depends on D9252

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9253
2019-07-10 13:57:33 -04:00
Mike Blumenkrantz 962472da65 elm/player: remove slider range setting from constructor
Summary:
this was setting an invalid 0<->0 range, which is a misuse of api
Depends on D9251

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9252
2019-07-10 13:57:30 -04:00
Hermet Park c8fe282190 canvas event: remove unnecessary condition check.
This condition is duplicated in the function,
it's unnecessary.
2019-07-10 20:38:54 +09:00
Jihoon Kim daa35a1893 ecore_imf: deprecate ambigous or unused APIs
ecore_imf_context_show
ecore_imf_context_hide
ecore_imf_context_control_panel_show
ecore_imf_context_control_panel_hide
ecore_imf_context_preedit_start_event_add
ecore_imf_context_preedit_end_event_add
ecore_imf_context_preedit_changed_event_add
ecore_imf_context_commit_event_add
ecore_imf_context_delete_surrounding_event_add

Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
2019-07-10 20:03:14 +09:00
Hermet Park 4fe9edaa26 efl_ui_textpath: adjust angle only for circle text. 2019-07-10 14:33:29 +09:00
Hermet Park 52a7ae56cd efl_ui_textpath: code refactoring.
less symbol calls, no logic changes.
2019-07-10 12:40:53 +09:00
Hermet Park 6f8d883991 efl_ui_textpath: remove unnecessary set.
Textpath positioning is completed manually,
this is duplicated request, remove it.
2019-07-10 12:34:04 +09:00
Ali Alzyod 7ad0dda73d evas_object_textblock: update documentation, setting color part
Summary: Now Textblock has the ability to parse color names same as hex value strings.

Reviewers: segfaultxavi, woohyun, bowonryu

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9250
2019-07-09 19:35:54 +02:00
Xavi Artigas 56970daac4 docs: Update Efl.Ui.Box documentation
It has had a big uppercase FIXME text for 2 years.
2019-07-09 19:22:10 +02:00
Marcel Hollerbach fa60393b4f efl_ui_pan: emit the viewport change when the position changes
otherwise the viewport changes are not propagated correctly. This is
needed in order to have the new item_container bug free.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9249
2019-07-09 18:39:15 +02:00
Carsten Haitzler f850cf6a00 edje - double make sure edje messages are zero'd due to a segv i saw
i saw a segv on freeing em->msg as it was a junk ptr... i dont know
for sure it msg was properly initted but as em is recycled from trash
be sure and zero it when digging out of trash because em->msg was not
a valid ptr (and i wasnt using valgrind at the time to know for sure
and cant find this with valgrind now).

@fix
2019-07-09 16:04:22 +01:00
Marcel Hollerbach d76d5db5cb Introduce efl_ui_scroll_util files.
Summary:
this brings API that connects the theme to the object. This reduces the
amount of code that you need to write in order to develop a widget that
can be scrollable.

For now efl_ui_grid and efl_ui_scroller are replaced with it.
efl_ui_list / efl_ui_list_view are not handeled with this, as they will
be replaced with newer widgets.

Right now this is only avaiable in the C API. However, wrapping this
into a mixin should be easy.

Reviewers: zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9245
2019-07-09 08:49:12 -04:00
Carsten Haitzler 70a3b71aba elm - cursor - clear cursor job late to avoid crash
during cursor free a move cb seems to add another job again after it
wss already deleted during the free process, so just clear the job
really late instead. valgrind found this one

@fix
2019-07-09 13:03:31 +01:00
Jaehyun Cho b7801edbe4 efl_ui_clickable: fix not to be clicked if pointer is processed
If pointer is processed by a container in its POINTER_MOVE event
callback, then clickable calls efl_ui_clickable_button_state_reset not
to be clicked by efl_ui_clickable_unpress.

e.g. Efl.Ui.Active_View.View_Manager_Scroll sets pointer processed in
POINTER_MOVE event callback not to click button during scrolling.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9204
2019-07-09 10:34:39 +02:00
Hermet Park d01a121aa9 efl_canvas_vg: prevent dangling pointers. 2019-07-09 15:50:26 +09:00
junsu choi be419d64d2 Ector.Renderer: Prevent too many unref.
Summary:
pd-> surface will try efl_xref whenever surface_set is called.
desturctor is called from a subclass, ref and unref do not match.
So, Add this condition temporarily.

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9235
2019-07-09 15:46:41 +09:00
junsu choi 228b91e36f efl_gfx_shape: Stroke color use a premultiplied color.
Summary: R, G, and B must not be higher than alpha.

Test Plan:
//test code
Ecore_Evas *ee = ecore_evas_new(NULL, 0, 0, 600, 600, NULL);
ecore_evas_show(ee);

Evas *evas = ecore_evas_get(ee);
Evas_Object *vg,*bg;

bg = evas_object_rectangle_add(evas);
evas_object_color_set(bg, 0, 0, 255, 255);
evas_object_focus_set(bg, 1);
evas_object_show(bg);
int w, h;
ecore_evas_geometry_get(ee, NULL, NULL, &w, &h);
evas_object_resize(bg, w, h);

vg = evas_object_vg_add(evas);
evas_object_focus_set(vg, 1);
evas_object_show(vg);
evas_object_resize(vg, w, h);

Efl_VG *shape, *container;
container = evas_vg_container_add(vg);
shape = evas_vg_shape_add(container);

evas_vg_shape_append_rect(shape, 0, 0, 200 , 200, 10, 10);
evas_vg_shape_stroke_color_set(shape, 255, 255, 255, 10);
evas_vg_shape_stroke_width_set(shape, 20);
evas_vg_node_origin_set(shape, 200, 200);

evas_object_vg_root_node_set(vg, container);
ecore_main_loop_begin();
ecore_evas_shutdown();

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9217
2019-07-09 14:21:20 +09:00
Shinwoo Kim c8827c0dcc evas_render: add restacked mapped obj to redraws rect
Summary:
We are adding A object area to the redraws rect when object stack is changed
from (1) to (2) if A object is not mapped.

(1)
 ┌────────┐
 │Object A│┐
 └────────┘│
  └────────┘

(2)
 ┌────────┐
 │┌────────┐
 └│Object B│
  └────────┘

But if A object is mapped, then we are adding only part of A object area.

(part of A)
 ┌───────┐
 │┌──────┘
 └┘

So the result of stack change is (1) not (2).
This patch set is adding restacked mapped object to the restack_objects array,
after changing the stack of mapped object to add correct redraws rect.

Test Plan:
{F3727281}

{F3727280}

{F3727279}

(1) Build and Run attached example on software_x11 engine
(2) Mouse down on upper image - the image starts to use map.
(3) Then mouse up - upper image should go under the below image.
But, the changed result is NOT rendered.

Reviewers: Hermet, jsuya, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9183
2019-07-09 12:05:36 +09:00
Marcel Hollerbach 52adb65aea efl_ui_spin_button: add test suite
this adds a testsuite to emulate and check the usage of buttons in the
spin button widget. This also verifies that the correct events are
emitted. (For now, the testcases from spin are also copied over, since
they inherit from each other)

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9232
2019-07-08 19:56:42 +02:00
Marcel Hollerbach d5df7e459d efl_ui_spin_button: fix event calling in spin_button
before the spin event for changing the value was called twice if you
changed the value by the entry. Additionally, the changed,delay event is
not emitted when the value was changed via the arrow buttons.
This corrects this, additionally, this enables the delay timer when
focus is gone, this is expected and should be supported by the API.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9231
2019-07-08 19:56:41 +02:00
Marcel Hollerbach d8f32042c4 efl_ui_spin_button: make theme consistent
this reduces the amount of code needed in the widget itself,
additionally, the theme now follows a scheme.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9230
2019-07-08 19:56:40 +02:00
Marcel Hollerbach 7ddd286f7b efl_ui_spin_button: cleanup internal data
there is no reason to store those two times in the internal data, as
they do not change at all. Additionally, saving the direction in the
internal data has also no reason, since it is *always* used in the call
after the setting, so this makes this a parameter.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9229
2019-07-08 19:56:39 +02:00
Marcel Hollerbach 1414b8a921 efl_ui_spin_button: this can also be done with the focus callback
this makes the code more readable, and reduces the amount of events we
are subscribing to.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9227
2019-07-08 19:56:38 +02:00