We had a hack in place to flush the display from an idle enterer instead
of after a surface commit. This led to a problem where the idle
enterer dispatch order was:
renderer for main canvas
wayland dispatch idle enterer
renderer for mouse cursor canvas
The surface commit for the mouse cursor was never dispatched, so the mouse
cursor animation would only update at the rate other events occurred.
By flushing at the appropriate times instead we ensure a proper update.
ref T5850
If wl_display_flush() returns a non negative number it was successful,
so we should disable the write handler then. We were theoretically always
doing an extra flush on an empty buffer.
This is mostly cosmetic as that's not a costly operation.
So because we include wayland-server.h we're told that wl_buffer is
deprecated - however clients are still expected to use it, it's only
deprecated for usage in a compositor.
Making these into void pointers shuts up the warning.
We need to include wayland-server.h since some of the code provided by
ecore_wl2 is for compositors, but some of it is also for clients...
Summary:
Assigning a result of integral division to a double type variable is
not useful for next division calculation. For more accurate calculation,
it needs to be casted to double before doing division.
It does not fix some bugs. It was reported by a code quality advisor.
Test Plan: N/A
Reviewers: raster, cedric, jpeg, herdsman, eunue
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D5069
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
If bytecode is requested and fails to load, load original file
instead. Force re-write of bytecode if that succeeds.
This is useful if there is bytecode newer than the source file that
the current Lua version can't load, for example when migrating from
LuaJIT 2.0 to 2.1, which changed bytecode format.
Fixes confusing cases such as in T2728.
This is a protected function. It doesn't need to return anything, as all
implementation just returned true, always. Also, the legacy API was just
a wrapper doing nothing special (except verify that we have a widget,
which the recursive code already does).
Tested with fr_FR :)
Ref T5363
It should be implemented as a efl_part() API.
For now I've only done a quick hack, as the only overrides were:
- notify: already a Part implementation. Also it turns out the default
theme does not even have any text part in the notify group.
- combobox: not a Part implementation, but also very badly defined wrt.
parts in general. efl_part() is handled by the parent class (button)
which makes it tricky to override just for one function.
With this patch I'm trying to keep the same behaviour as earlier (where
efl_part() is used for layouts and there is a special path for
combobox).
Ref T5363
I believe all of those APIs are in fact meant for widgets to use
themselves:
- on_focus
- on_show_region_hook
- focus_region
- focus_register
- focus_manager_factory
Ref T5363
I was told that the scrollable interface is being redesigned for EO.
This API definitely does not belong to the base Widget class, as it's
quite specific to item-based scrollable widgets, such as lists and
grids. Since Elm.Interface_Scrollable is itself being revamped, it is a
good place to move that EO API for now.
Ref T5363
1. Uniformize the API, which is now for internal use:
This uses the same enum as scroller "movement_block" instead
of 2 separate properties. Less APIs, more consistence.
2. Remove scroll_lock x/y from EO widget. I was told it is not going to
exist in the upcoming scrollable interface.
3. Remove scroll hold/freeze getters.
scroll hold/freeze push/pop are still there but it remains to be seen
how the EO scrollable interface will exploit them. Right now they are
full of bugs.
Ref T5363
This also includes the drag_child_lock APIs. This had nothing to do with
dragging beyond maybe the case where scrolling is done by thumbscroll
(ie. finger drag).
Note that the EAPI were called already scroll_lock, not drag_lock.
Ref T5363
I have to say I am buffled that this file made it into the tree. The
naming is very generic (similar to NEWS; README, etc) but it only
contains some random notes about evas_vg. It has not been updated since
its initial commit in 2015 either.
Cedric, if you want to have these notes somewhere put them into
src/lib/evas, or better make it a real doc and put it into the wiki.
restrict mapping /dev/zero to only eina files having a sigbus
reported. the mmap was before all our file access used eina_file i
think thus the raw mmap of it. now walk all eina files and find the
candidate and only then if it exists flag is as having a faulty i/o
backing and map the zerto pages then return, otherwise call abort.
more restricted mapping and perhaps a fix for not trapping non-efl
issues.
@fix
since we have a sigbusd handler that flags an eina file with io errors
it has to walk the file cache and every file... taking locks. if those
locks were taking already in the current thread the sighandler was
called in... we'd deadlock. since this basicallly never happens (when
do we see i/o errors really? not much)... we never saw this as it'd
also reauire this race condition to happen too. but it is a problem
waiting to happen. this fixes that by moving to recrusive locks.
@fix
Summary:
Do not harcode numbers that make no immediate sense.
Additionally: add some wont-hurt doc note and fix
two related typos.
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5145
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
This is a very informative document but is much longer than it needs to
be. Tighten it up by condensing redundant information and expressing
the ideas more efficiently. Focus more on Evas and what it is than what
it isn't. Avoid explaining general graphics concepts like immediate
vs. retained, replacing with synopses. Switch from 2nd person to 3rd
person (i.e. don't say You/Your) to be less awkward, since we don't
really know why the reader is reading it. Simplify the compilation
directions; these are pretty standard, and most people won't be manually
linking to Evas anyway.
While this shortens the document considerably, it retains the
important key points, and makes it far more readable.
Reviewers: cedric
Reviewed By: cedric
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D5130
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
evas_textgrid_cellrow_get() is supposed to return NULL if the row index
fed to the function is outside of the textgrid's range. It was instead
returning garbage pointer.
@fix
When running elementary_test with ELM_ENGINE='buffer', we got a crash.
The removal of PS3 backend patch didn't remove ELM_SOFTWARE_PSL1GHT and
didn't shift the _elm_engines indexes.
ELM_SOFTWARE_DDRAW stayed at the index 13 (value NULL) instead of moving
to index 12.
A strcmp with NULL occurred, leading to the crash.
@Cedric, I excuse you to not have run Exactness your code before pushing
:P
Text on path (textpath) allows application to make text follow a path.
The path can be a efl_gfx_path or a circle.
Thank hermet for initializing this work.
@feature
This function is meant to be used by the widgets themselves, or internal
features such as elm_access.
Also remove const tag: this function call is definitely modifying the
widget (panning around and all that).
Ref T5363