so if an img obj had some update regions and was opaque, it didnt del
an update region first before adding the updates, thus possibly
letting update regions pass through the opaque image area
@fix
This seems the only way to disable subtitles embedded in the video file.
WIthout this patch calling em_spu_mute_set/get do not work, thus I consider this a @fix
using map_bo/unmap_bo instead of gem_map_bo_gtt/gem_unmap_bo_gtt
results in a cacheable mapping and a large performance boost.
(dmabuf will still remain turned off by default for the release)
This commit introduces a new state per input, this state is just for the
keymap and no modifieres, the state is used to get the keysym from a
keycode. This is done to stay compatible with x since keyname in efl is
the characters which are describing the key which is pressed, without
the transformation of shift etc.
This also escapes keycodes from beeing a utf8 character, and passes out
a keyname instead of the utf8 symbol.
fix T3976
fix T4184
Summary: We use int from 0 to 255 for color, not float
Reviewers: raster, Hermet, cedric
Reviewed By: cedric
Subscribers: jpeg, artem.popov
Differential Revision: https://phab.enlightenment.org/D4182
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
In all code paths leading to this goto statement being called,
'iter_array' variable will already be NULL, so checking it's validity
is just logically dead code.
Fixes Coverity CID1357392
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that eina_safepointer_get returns a NULL promise here
(checked 20 out of 21 times). As eina_safepointer_get can return NULL,
we should check the validity of 'promise' here before trying to
derefernce it later.
Fixes Coverity CID1356625
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that this is logically dead code. As we check the
validity of 'model' above this function, then testing 'model' for
validity again in this expression is just logically dead.
Fixes Coverity CID1356617
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that this is logically dead code. As eo_item has been
dereferenced on all paths leading here, and it is also set above, then
it cannot be NULL at this point, thus this check is logically dead.
Fixes Covierty CID1355585
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that we do not check the return value of
_eldbus_model_proxy_load here. We likely should be checking that in
case the model proxy fails to load so we can return proper values here.
Fixes Coverity CID1355233
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that we call _circular_dependency_find here without
checking the return value
Fixes Coverity CID1349867
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that we are missing breaks in the switch blocks here,
so add missing breaks.
Fixes Coverity CID1347413 and CID1347414
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
this fixes over-rendering (where we render the whole image) if it has
a border set. do proper region updates if the image has a border but
is not scaled and the fill is at 0 0 and sams size as the object etc.
etc. so this is simple and doable.
this fixes T4123
this just makes it more obvious where its handling the opaque middle
fill case. see T4123 - i was just reding the code and this seemingly
does the right thing.
Summary: change specular color to ambient int the function of ambient color
Reviewers: cedric, raster, Hermet
Subscribers: jpeg, artem.popov
Differential Revision: https://phab.enlightenment.org/D4169
Parts can use enother groups as source, for example textblock. If source
groups does not exist - group is not valid. This patch extend the group
copy process and copy dependend group too.
@fix
This reverts commit fb24955782.
While this patch did fix the issue of toggling window Borderless state
in EFl-Wl client applications, it is "Enlightenment's" stance that it
will not change to match this fix, so this has to be reverted else
internal E dialogs show up with no border (due to them using SSD).
This is going to re-open T4092 sadly :( and now leave that bug with no
possible fix.
ref T4092
Fixes T4126
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This is a (minor) API & ABI break in Eo.h!
I say minor as eo_override shouldn't be used yet (EO is unstable
and this patch includes all the use cases in EFL).
I'm not very happy about the new form of the macro, but it avoids
two things:
- passing in a struct (valid in C, but never used in EFL)
- using a GCC construct to create structs on the fly
It was inspired by the event array define, but I don't think
we need the runtime memcpy here.
See also:
https://gcc.gnu.org/onlinedocs/gcc/Compound-Literals.html
This fixes the following ERR message:
ERR<30400>:eo /home/jpeg/e/core/efl/src/lib/eo/eo.c:462 _eo_call_resolve()
in ../src/lib/evas/canvas/efl_event_input.eo.c:3: func 'efl_event_flags_get'
(1483) could not be resolved for class 'Efl_Event_Hold'.
This is an EO-API only fix.
This fixes the following ERR:
ERR<23969>:eo /home/jpeg/e/core/efl/src/lib/eo/eo.c:462
_eo_call_resolve() in ../src/lib/efl/interfaces/efl_event.eo.c:5:
func 'efl_event_instance_get' (1479) could not be resolved for class 'Efl_Event_Hold'.
i don't know for sure if this fixes T4103 but in theory i think it
might given a reading of the backtrace and a guess at what might
happen, so try this fix. it doesn't hurt and can only help.
@fix
there was a leak of elements on the itrator stack when the stack was
flushed still having some items on it, thus losing their pointers and
never freeing them.
@fix
This is to show that proxies can proxy more than just other
images, and also this was done to test D4159 (alternatively
changed into the previous commit).
We now use eo_do() and EFL_CANVAS_SCENE3D_CLASS macro to create viewport
Reviewers: raster, Hermet, cedric
Subscribers: jpeg, artem.popov
Differential Revision: https://phab.enlightenment.org/D4163
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
eo_override would leak the vtable if called multiple times, this
fixes that. Also, it is now possible to revert back to the original
class' vtable by passing in { NULL, 0 }
I believe it is thus possible to incrementally override more
functions on an object. Absolutely not recommended, but should work.
But it is not possible to selectively revert back to the original
class implementation on a single method. Use eo_super for that,
or revert back the entire object overrides.
PS: Is it normal that we pass in a struct? We never do that in EFL...
This removes the need for khronos_[u]int64_t as well as the special
typdef EvasGL[u]int64.
Hopefully this should work on all platforms (note: [u]int64_t is
used in Eina APIs, so it is already required for EFL apps).
Fixes T3200
This should fix T3309
Snapshot objects are image objects, so the function is_opaque
exists. No need to bypass it. Also, alpha rectangles are not
opaque. Assume that anything with a filter is not opaque.
All of this fixes T3309 but the main point was on snapshot
objects (probably because the only point of a snapshot is
to apply a filter on it).
This commit partially fixes a phab ticket where toggling window border
state (elm_test -to "Window States") would cause the frame to be
destroyed thus making the window contents appear to jump around
ref T4092
NB: I call this a 'partial' fix because while it does fix the issue of
efl client apps, there is still some breakage in Enlightenment that
needs investigating.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Previously a drm event could create a new output or disconnect an output,
but could not re-enable an existing output.
This results in failure to properly wake from screen blanker.
Summary:
When using EDC written by another person, developer usually
does not need to know all specified parts in EDC but editable
like swallow, text or textblock parts.
The required flag tells whether the part is intended to be used outside EDC.
Reviewers: jpeg, cedric, raster, Hermet
Reviewed By: jpeg, raster
Subscribers: raster, NikaWhite, kimcinoo, jpeg
Differential Revision: https://phab.enlightenment.org/D3579
We're currently doing screenshots in E under wayland by copying data
out of the framebuffer, mmaping gbm buffers makes screenshots work
again when rendering with GL.
When using a mix of vblank and pageflip events like we're stuck with now
a failed flip is going to happen sooner or later. We fix this by triple
buffering. We shouldn't turn off the custom ticker.
This is essentially a cleaner redo of ef817f15f0.
Logic should be exactly the same as there, the different is that this
one shares the code between OT and non OT.
Please refer to that commit for more information.
This was not done correctly. This split the code, which is essentially
the same for both OT and non OT. It's the same logic with some minor
additions for OT, so most of the code should be together.
This reverts commit ef817f15f0.
Fixes T4068.
Simply querying the last glyph to determine the width of the glyph sequence
won't always work, as OT can have negative offsets (adjusts the placement of a
specific glyph better).
The solution is to calculate the "max width" of some sequence that will
guarantee us proper width results. The worst solution would be to iterate on all
the glyphs and sum up the max width. This is a bit impractical. Instead, we will
inspect just the "cluster" of the last glyph, if one exists.
This should have no performance impact on trivial cases, and very little impact
on the others.
@fix
Summary:
- Previously, mode change, color change updated
sd->selected, but did not send signals to edje of the item.
- Also, mode change in colorselector set sd->selected to
the first item even when palette is visible in previous mode.
- Now, when mode is changed, sd->selected is set NULL and send
unselected signal if palette is invisible, and keep sd->selected
if palette is visible.
- sd->selected is set NULL when color is changed in picker and
color bars because previous selected item is not current color of
colorselector
Test Plan:
1.
1) launch elementary_test colorselector.
2)Select any item and check the item is selected when palette is visible.
3) Change mode to Palette, Both, All, and check selected item is not changed.
(Previously, selected item is changed to the first item of the palette, but previous item was seen as selected.)
2.
1) launch elementary_test colorselector.
2) Select any item and check the item is selected when palette is visible.
3) Change mode to Components, Picker.
4) Change mode to Palette, and check none of items is selected.
(Previously, selected item is changed to the first item of the palette, but previous item was seen as selected.)
3.
1) launch elementary_test colorselector.
2) Select any item and check the item is selected when palette is visible.
3) Change mode to All.
4) Click arrows in Picker and color bars.
5) Observe selected item is not unselected when color is not changed, and selected item is unselected when color is changed.
4.
1) launch elementary_test colorselector.
2) Select any item and check the item is selected when palette is visible.
3) Press direction key and check selected item is changed.
(Previously, selected item's edje is not updated.)
Reviewers: woohyun, Hermet, jpeg, cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4156
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This commit just readds the layer setting code which made the frame
border be above content. This does make sense in some contexts
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
We need to be creating buffers with ARGB by default so that things
like Alpha/Transparency work when toggled. If we always create with
XRGB then toggling Alpha/Transparency state fails.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
When we make calls to get an Input device's output name, if the device
does not have an output name it's not actually an error so just return
NULL with less noise
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This patch fixes an issue where if you tried to resize a window to
it's minimum size, the contents of the window would draw outside the
window frame. Basically, when we are setting min/max size hints to the
window object we need to account for framespace.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Sometimes, In ipc_server_data, extn->ipc.server's data is different with e->server's data.
The case is as follows.
Process'A' has a server.
Process'B' has 'A's client(ee address : 0xB0).
Process'B's client die, and 'B's server created. and server's ee address is same with destroyed client's ee(0xB0).
At the same time, 'A's server send the message to 'B's client.
but 'B's client is died! so _ipc_server_data would manipulate 'B's server data.
Test Plan: Tizen Mobile Text.
Reviewers: raster, spacegrapher, jpeg, wonsik, dkdk
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D4158
I guess the overflow was badly handled. Fixing it by using
explicit int intermediate value.
Fixes CID 1356616 and 1356619:
Operands don't affect result
Logically dead code
realloc() can return NULL if size is 0. It's like free().
So, the usage here is correct, and there are probably no
points to interpolate between anyway. I wonder if there
can be commands without points, though.
Fixes CID 1293004
CID 1355234 Logically dead code
The indicated dead code may have performed some action;
that action will never occur.
In eet_data_descriptor_element_add: Code can never be
reached because of a logical contradiction (CWE-561)
Solution: use explicit range within valid values with <= and >=
rather than excluded values with > and <
Check the return value of fwrite. There is nothing
sensible to do as the receiver needs to handle the error
gracefully.
CID 1356613, 1356614, 1356615, 1356200
The module was not able to load any PDF with a single page (since
the index starts from 0, not 1 as it was assumed).
Also, fix a CID where Coverity was very very right.
Fixes CID 1356608:
The operaton may have an undefined behavior or yield to an
unexpected result.
In poppler_load_image(int, int): A bit shift operation has
a shift amount which is too large or has a negative value.
CID 1039677 1039678 1039679
The expression's value does not depend on the operands; often,
this represents an inadvertent logic error.
In doarg: An operation with non-constant operands that
computes a result with constant value (CWE-569)
cell is defined as an int, not a long, so it can't be > INT_MAX.
CID 1261439
An assigned value that is never used may represent unnecessary computation,
an incorrect algorithm, or possibly the need for cleanup or refactoring.
In source_fetch_file: A value assigned to a variable is never used. (CWE-563)
Tested compilation of a few EDC files with no breakage.
This patch fixes an issue where wayland windows would not swallow
clients properly. Basically, we should be swallowing the elm window
layout directly rather than use a rectangle (as was previous). This
commit also waits until the internal elm theme has been applied to the
sd->edje object before adding the wayland window frame.
This commit has the added benefit of being able to remove an additional
Evas_Object from the internal data structure.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
When using eo_add_ref, it was increasing the refcount before the user
context in the addition has fully ended. This means the object had its
reference increased while still not finalized, which means it was
sometimes passed with an increased refcount to unsuspecting class code.
The correct behaviour is to increase the reference count just before
returning the object to the user at the end of eo_add so the reference
count is only increased for whoever asked for it.
Breaks ABI!
@fix
This commit changes the way refcount is dealt with internally. Before
this commit, there was one refcount shared between Eo internals and
users. Now there is a refcount for eo operations (like for example,
function calls) and one for user refcount (eo_ref).
An example bug that this protects against (which is seemingly rather
common) is:
some_eo_func(obj);
// Inside the implementation of that func:
pd->a = 1; // The object's private data
eo_unref(obj); // To delete the object
eo_unref(obj); // A big one extra unref
pd->a = 2; // Segfault, this data has already been freed
This is a feature, but really just a fix for a class of bugs.
@feature
this fixes T4053
this was due to everal widgets haveing changed their class names and
are using the new names for mapping to keybinding config that used
legacy names to match binding to widget.
The cursor position was not set correctly to the respective fnode, causing
annotation to not be applied correctly with text that has more than one
paragraph.
Summary:
Do not update anchors outside viewport.
Problem is that when entry contains large number of anchors,
scrolling and launch performance is degraded due to lots of objects
being created and maintained, so to enhance the performance of
entry with anchors, anchors is not updated outside the viewport.
Test Plan:
1. Should have large number of anchors in entry
2. Observe the launch and scrolling performance.
Reviewers: tasn, raster, herdsman
Subscribers: thiepha, raster, cedric, jpeg
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D3543
Summary:
Now, if image is native, do not recreate texture when image size is changed.
Recreate next native surface set time. So during the time between image_size_set and native_surface_set, native image is fragile. Fix it.
Test Plan: Local Test
Reviewers: spacegrapher, jpeg, wonsik, dkdk, raster
Reviewed By: raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D4153
Summary: Need discussion about the repeat_events property
Test Plan: Swallow an object which has EINA_TRUE repeat_events to a swallow part which has EINA_FALSE repeat_events
Reviewers: Hermet, cedric, raster, jpeg
Reviewed By: raster, jpeg
Subscribers: jaehwan, seoz, woohyun
Differential Revision: https://phab.enlightenment.org/D3580
Summary:
To keep consistency with Evas Textblock part in edje,
text.min has to work logically even if ellipsis is enabled.
If a Text part has minimum width, maximum width and "text.min: 1 X;",
Text part should be expanded until its width reaches to the maximum width.
Then, ellipsis will work. Singleline Textblock is also working like this.
@fix
Reviewers: cedric, herdsman, raster, tasn
Subscribers: Blackmole, z-wony, jpeg
Differential Revision: https://phab.enlightenment.org/D3587
Gcc reports that this 'if' statement is misleading due to indentation.
We should only be sending the 'finish' call if the dnd version
supports it, however we should always be sending 'destroy'
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that 'text' here is a null pointer dereference so
check for valid 'text' variable before trying to use it.
Fixes Coverity CID1267490
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
The trivial case of [pos,pos] (i.e. range of length 0) didn't work if there is a
format item in 'pos'.
The condition was fixed to not include such items. The reason it was not
apparent for text items is that these have further handling in the rest of the
code and would've been disposed of.
@fix
Summary: During mobile product testing, we got a crash with callstack which suggest server is getting deleted prior to client. On valgrind analysis we found invalid write operation with same callstack. callstack is pasted in comment section.
Test Plan: create a situation where server got deleted prior to client.
Reviewers: raster, cedric
Subscribers: govi, rajeshps, jpeg
Differential Revision: https://phab.enlightenment.org/D4152