Commit Graph

20155 Commits

Author SHA1 Message Date
Carsten Haitzler ad912c8051 ecore-x - fix fallbacks to use capital X in lib name
thanks peter. fixes T8543
@fix
2019-12-24 00:24:00 +00:00
Daniel Kolesa 266f0a5716 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:08:10 +01:00
Daniel Kolesa 387947f6b1 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 16:08:02 +01:00
Carsten Haitzler c6465dae30 fix jpeg loading which freed the wrong ptr
fixes T8497
@fix
2019-12-02 19:55:03 +00:00
SangHyeon Jade Lee 2ceaf9b657 Revert "elm/genlist: remove calc jobs"
Summary: This reverts commit 712266fb9a.

Test Plan:
run elementary_test -> genlist2

add more items by + and before/after button.

if you delete selected items by click - button,
issue cases, you can see item area become empty and not filled.

if you click U button, so update items,
issue cases, all item disappeared.

the issue is caused by removing calc_job,
so there is no job to performed,
and loof is idled states.

in Tizen,
to solving this problem,
we add dummy job in recalc cases.

Need to see how to solve the issue more simply,
but firstly raise the ticket to notify severe issue.

Reviewers: zmike, cedric, bu5hm4n

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10663
2019-11-27 09:42:53 -05:00
Lauro Moura 3d3fe1ebcf eolian-cxx: Make events inherit beta info from klass.
To mimic function behavior

Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D10381
2019-11-27 09:42:53 -05:00
Xavi Artigas 838352b163 Efl.Ui.Scroll_Manager: Fix indentation 2019-11-27 09:42:53 -05:00
Cedric BAIL 0c3013d4ab 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-27 09:42:53 -05:00
Cedric BAIL 1b68867ef1 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-27 09:42:53 -05:00
Cedric BAIL d0422d22b2 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-27 09:42:53 -05:00
Wonki Kim 95f5c0b38f 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-27 09:42:53 -05:00
Woochanlee 7b315e857c 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-27 09:42:53 -05:00
Cedric BAIL 0687542b21 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-27 09:42:53 -05:00
Wonki Kim a0dc31c733 check: reset flags that used for legacy 'changed' cb
Summary:
in case of setting a state of check by calling a API,
the flags that used for changed cb aren't changed.
which causes that the callback not invoked when it should be.

this patch resets the flags to make it work properly.

Reviewers: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10591
2019-11-27 09:42:53 -05:00
Xavi Artigas 80c8ba2d6a docs: Efl.Gfx.View 2019-11-27 09:42:53 -05:00
Carsten Haitzler 98997fc679 Revert "elm/genlist: don't process entire item queue on each item add"
First - the big problem. This breaks enlightenment's bluez5 popup. it
does a sortyed inert using the item data and the item data for one of
the itmes to compare in _cb_insert_cmp() in e_mod_popup.c when it
calls elm_object_item_data_get(0 returns a junk ptr for the item data
after this patch. i haven't managed to figure out exactly why in my
last 30 mins of looking.

But a closer look... this disables immediate processing of:

1. the first block of items (32items) which was intended so for
short/small lists you have some content by the time you go to the
first frame, and at least the first block of itso you seem to have
visual contnt and not a blank list until idlers can process further
content. so the patch being reverted would have gotten rid of this
logic that gets you content as opposed to blank:

  while ((sd->queue) && ((!sd->blocks) || (!sd->blocks->next)))

2. if it's a homogenous list, all items have the same size so we do
have to realize the first item of each class type but ONLY that one.
further items should not need realizing as we can ASSUME the height to
be the same as the first item... that's the point of homogenous +
compress lists - all items of the same class have the same height and
width thus shortcutting further need to calculate nd realize. if we
are reizing everything in a homogenous list then the issue lies with
something going wrong with this above logic. we shokuld be able to
handle such lists super fastif this logic was working.
that's the 2nd while:

   while ((sd->queue) && (sd->blocks) &&
             (sd->homogeneous) && (sd->mode == ELM_LIST_COMPRESS))

so overall, this should not have been realizing every item. either
just the first block of 32, OR just the first item of any class and
thus assume all further items are the same size without realizing
being needed. if these broke then the solution is not commenting this
out but finding out why this logic is breaking :)

and not to mention... this commenting out also caused segfaults in
existing applications which are doing the right thing. perhaps the
sorting logic also needed updating as well if this above is commented out...
but i didn't have time to chase it more than this.

---

This reverts commit 0777b74f07.
2019-11-26 11:44:55 -05:00
Cedric Bail 5716de7ec3 eina: only the type need to be NULL to assume EINA_VALUE_EMPTY.
This avoid comparison with potentially uninitialized byte.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10479
2019-11-26 11:42:44 -05:00
Cedric Bail ca02993b76 ecore: remove unecessary field in data structure.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10476
2019-11-26 11:42:33 -05:00
Cedric Bail 8d9c967275 elementary: handle case when XFIXES is not available.
Summary:
ECORE_X_EVENT_FIXES_SELECTION_NOTIFY is only initialized when XFIXES
is available. If ecore_event_handler_add is called with type == 0, it
will trigger an abort and elementary would not initialize properly.

Depends on D10491

Reviewers: zmike, raster, bu5hm4n, Hermet

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8321

Differential Revision: https://phab.enlightenment.org/D10492
2019-11-26 11:42:17 -05:00
Lauro Moura 36c14a2a05 eolian-cxx: Rename fields to standard naming
Summary: bool fields were missing the `is_` prefix.

Reviewers: felipealmeida, brunobelo, segfaultxavi, woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10380
2019-10-31 12:00:44 -03:00
Cedric Bail 783e566b69 edje: improve callback count on Evas canvas.
Summary:
This reduce by 3 the amount of callback registered on the canvas. Another
potential improvement would be to only register those callback if someone
is listening for a 'seat,*' event or if the edje file define seat filters.

Depends on D10484

Reviewers: zmike, raster, bu5hm4n, Hermet

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8321

Differential Revision: https://phab.enlightenment.org/D10486
2019-10-31 10:00:02 -04:00
Mike Blumenkrantz b1fe7f99b5 ecore/timer: correctly handle recursive deletion of legacy timers
if a legacy timer callback returns false, the timer is deleted. in the
case where the legacy timer is deleted inside the callback while the same
timer is ticking recursively, however, the deletion must be deferred until
the outer-most frame of the timer's callstack has returned from the callback
in order to avoid improperly handling the timer

@fix

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10545
2019-10-31 09:58:46 -04:00
Mike Blumenkrantz 45edca0f6d evas/font: simplify handling strings when constructing font names
no need to strcpy here when we can just pass the length to stringshare directly

CID 1382854

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10441
2019-10-31 09:58:43 -04:00
Mike Blumenkrantz 5048ccf97e efl_ui: mark Efl.Ui.Focus.Autoscroll_Mode beta
this cannot currently be used for anything and was not explicitly stabilized

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10540
2019-10-31 09:58:40 -04:00
Mike Blumenkrantz 0d099d5368 efl_ui: remove Efl.Ui.Slider_Indicator_Visible_Mode
this cannot be used for anything and serves no purpose

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10539
2019-10-31 09:58:36 -04:00
Mike Blumenkrantz d1e603f688 elm/widget: error on null params for tree_unfocusable functions
Summary: these should error so the user can detect that they screwed up

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10563
2019-10-31 09:58:18 -04:00
Woochanlee c61f953513 edje_calc: Remove unused flag.
Summary: This has marked remove me.

Reviewers: raster, Hermet, zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10561
2019-10-31 09:58:14 -04:00
Mike Blumenkrantz ccea02a69d elm/genlist: fix item focus unregister on item move
if the block is realized, its items have been registered into the focus
manager and must be unregistered to avoid double-registering

@fix

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10544
2019-10-31 09:56:48 -04:00
Mike Blumenkrantz 8704a7ded1 elm/genlist: hide cached item contents and mark content unfocusable during calc
cached item contents should already be hidden by the edje clipper, so this simply
changes their visible state to break them out of the focus calcs

contents must also be explicitly marked as unfocusable during calc-only realize
operations in order to avoid triggering a full focus recalc which will error due
to missing focus adapter in the item block

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10543
2019-10-31 09:56:47 -04:00
Mike Blumenkrantz f119c727a7 elm/genlist: set pan need recalc during item move on item position change
item move operations require pan recalc in order to process the item block
positioning updates

@fix

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10533
2019-10-31 09:56:45 -04:00
Mike Blumenkrantz 0780e7f15b elm/genlist: fix "drag" smart callback
this is only a smart callback and not an eo callback

@fix

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10527
2019-10-31 09:56:42 -04:00
Mike Blumenkrantz a84ff9def0 elm/genlist: trigger filter,done callback immediately if no filter queue exists
the documentation says this should trigger when filtering is done, and if
no filtering is pending then it is done

@fix

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10526
2019-10-31 09:56:41 -04:00
Mike Blumenkrantz b882209f8c elm/genlist: slightly simplify use of _item_filtered_get()
passing the smart data here (which we always have) makes the function
a little clearer to read. similarly, we can check whether the filter_data
pointer is set inside the function to avoid having to check it everywhere else

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10525
2019-10-31 09:56:39 -04:00
Mike Blumenkrantz 78e567e205 elm/genlist: defer recalc when applying a name filter
this may be called successively during the same mainloop iteration,
so it's important to defer this as much as possible

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10524
2019-10-31 09:56:38 -04:00
Mike Blumenkrantz 9400254088 elm/genlist: remove calc jobs
now that we have a sane and consistent sizing calc mechanism, we no longer
need to be randomly creating jobs to do additional side calcs in addition
to our other multiple bespoke calculation methods

instead, we can now call the calc function directly during the group calc
to perform all the calcs at once and avoid the overhead of constantly triggering
calc jobs

a possible future improvement here could be to remove the _calc_job() call in
the internal pan object's group_calculate, as this is likely a duplicated op
but it will require additional testing to verify

unit test performance (e.g., tree) increases roughly 50-80% after this patch

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10523
2019-10-31 09:56:36 -04:00
Mike Blumenkrantz 0fce67796b elm/genlist: don't process entire item queue on each item add
this is a colossal waste of time. it ends up realizing every single item
immediately even if it won't be visible, which defeats the purpose of all
the batching and viewport calculations that genlist explicitly does to
avoid exactly this type of behavior

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10522
2019-10-31 09:56:28 -04:00
Mike Blumenkrantz 64b24ad3b4 elm/genlist: freeze/thaw canvas when processing item queue
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10521
2019-10-31 09:56:27 -04:00
Mike Blumenkrantz b89551410e elm/genlist: only add calc job on theme apply if already finalized
not a required operation otherwise

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10519
2019-10-31 09:56:25 -04:00
Mike Blumenkrantz cf1920bce5 elm/genlist: remove misleading "changed" signal
this was never implemented or documented anywhere and serves only to be
misleading for anyone reading the code

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10518
2019-10-31 09:56:24 -04:00
Mike Blumenkrantz d088dcbe69 elm/genlist: fix item highlight/unhighlight eventing on clicks
* highlight should only be triggered on mouse down, as that is the point of
  interaction with an item which indicates it is "in use"; a mouse-up event
  cannot occur on an item which has not previously received a mouse-down event,
  so toggling this on mouse-up will be wrong/duplicated 100% of the time
* unhighlight should only be triggered during mouse-up events if the list is
  in no-select mode, as it will otherwise be implicitly during selection if
  necessary

this should ensure that these events are emitted exactly one time and correctly
for each click event

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10517
2019-10-31 09:56:23 -04:00
Mike Blumenkrantz fb439ea2ec efl/timer: correctly handle recursion for timer processing
if the currently-processed timer is recursively deleted (efl_del) while
it is inside the timer tick event callback, we must correctly handle this
case:

* in the place where a timer's inlist is de-linked, we must check to see
  if the timer is the current timer and then update that pointer with the next
  timer in the list
* in the post-tick part of timer processing, we must NOT update the current timer
  pointer if we detect that it has been updated recursively

this fixes processing of timers in the mainloop to trigger more than one legacy timer
per mainloop iteration and likely has some (positive) impact on mainloop throughput

@fix

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10515
2019-10-31 09:51:51 -04:00
Mike Blumenkrantz 15b61bde13 efl/timer: don't attempt instantiating timers until they're finalized
this will fail anyway so don't bother

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10514
2019-10-31 09:51:48 -04:00
Woochanlee 26d6b90ccb efl_ui_win: Delete useless geometry set for legacy.edje
Summary:
It will be resized on window_resize_job. when the window got specific size.
I don't think this is needed here. It cause doing a calc in vain.

Test Plan: Launching Test applications.

Reviewers: raster, Hermet, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10550
2019-10-31 09:51:06 -04:00
Woochanlee 5470e16886 edje_calc: Delete duplicated conditional statement.
Summary: this is identical to the conditional above and can be merged
to improve code clarity

Reviewers: raster, Hermet, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10549
2019-10-31 09:51:04 -04:00
Xavi Artigas 12b0d6e433 Replace tabs with spaces
As our coding conventions mandate.
2019-10-31 09:51:00 -04:00
Xavi Artigas 8d8e7be388 docs: Polished docs for Efl.Ui.Scrollable 2019-10-31 09:49:44 -04:00
Xavi Artigas 3df51efbea docs: Formatting and polishing Efl.Ui.Factory docs 2019-10-31 09:49:42 -04:00
Marcel Hollerbach d2ef9fe7bb efl_ui_spotlight_manager: apply vis changes to subobj
Summary:
when the sportlight is hidden, the state should be applied to the
backclip and foreclip, in order to hide the subobjects correctly.

This fixes dangling showing widgets.

Reviewers: Jaehyun_Cho, zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10468
2019-10-31 09:49:26 -04:00
Xavi Artigas 79e32fc67a docs: Improve documentation on cache-related classes
Also, code comments and typos.
2019-10-31 09:49:22 -04:00
thierry1970 5c0d2f61b8 efreet : Check that the file has a protocol in efreet_desktop_command_file_process()
if a path has a '/' character in it before the ':' character then it
should be treated as a local file which contains a ':' character in
its name

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10409
2019-10-31 09:48:50 -04:00