If we are using softcursor mode during intercept show, then we should
check that the pointer is actually in the canvas before showing it
else we end up with mouse pointers drawn on the canvas even when the
mouse itself is nowhere near a window.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
If we don't have the sd->pointer.obj here, then there is no need to
try and set the edje theme for it.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Left/Right(or Up/Down with vertical one) changed the value of
spinner previously. However, it gave uneasy because focus could not be
moved to another winset until the value met the min or max.
Now, inc/dec button can get focus, and enter input on them change
the value.
Additionally, central text button changes to the entry automatically
when it gets focus. i.e. toggle on the text button is removed.
@fix
This commit allows EFL wayland client applications to make use of EFL
mouse pointers instead of the wayland-cursor provided ones.
NB: There are still some minor hiccups with this (move pointer does
not change, mouse pointer getting clipped off when on the lower
border, etc) but those will get sorted out soon.
Feature request by the old man ;)
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Commit 86928a430c broke ability to use more than one theme file for
posix compatible systems. For case
ELM_THEME=/home/user/a.edj:/home/user/b.edj string was parsed
incorrectly. The result was a single string
"/home/user/a.edj:/home/user/b.edj", but expected two strings
"/home/user/a.edj" and "/home/user/b.edj"
This commit add additional check of the file paths like
<disk>:/filename.ext or <disk>:\filename.ext in Windows only.
This avoid wrong parse behaviour on Linux and macOS.
Summary: Added new flip mode called ELM_FLIP_CROSS_FADE, which causes one content to fade in while the other fades out. Updated test_flip.c program to include a button for testing the new flip mode.
Test Plan: Run the elementary_test program, and open the Flip test. There is a new button labelled "9" that will activate the new cross-fade flip mode.
Reviewers: Hermet, bu5hm4n, raster
Reviewed By: bu5hm4n
Subscribers: bu5hm4n, cedric, jpeg
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D4314
Windows os uses ':' as delimiter between disk name and file path.
<disk>:/<dir>/file.ext. In this commit added parse case for <disk_name>
symbol meets before ":/".
This removes EO APIs related to an unmaintained client/server
model for applications. The reasons for this removal are the
following:
- unused
- no support in E
- relies on dbus as the sole transport layer
- unmaintained since the original patches
- only EO API (iow: beta, never released API)
I've also never seen the test cases (in elementary_test) actually
work.
According to Gustavo (k-s), the original author of this feature
is not involved in EFL at the moment, and unlikely to be in the
near future.
Note that terminology has in the past used those APIs when it
was still using some beta EO APIs. This code is now long gone,
removed in terminology commit 3ffcbadd6f9881472db6 (2014/12/13,
for version 0.8.0)
If someone wants to step in and maintain the implementation,
protocol and (EO) API, then feel free to revert this patch
and revive the feature. But it will need to be more solid than
this implementation.
Summary:
Dimensions of gengrid items can be altered for
non homogenity.
Care must be taken however to set the homogenous
size for items using elm_gengrid_item_size_set().
In horizontal mode only the heights will change
and in vertical mode only the widths. Fixed dimension
will be as set with elm_gengrid_item_size_set().
This is forked by https://phab.enlightenment.org/D2422
Test Plan:
elementary_test -to "Gengrid Resized Items"
Current test program provides focus autoscroll
and item looping options.
Reviewers: raster
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4330
Summary:
_visible_data_changed_signal_send function checks for wrong object,
hence always returns with out actually sending signal.
The state is set to pd->object_broadcast_mask and not
pd->object_children_broadcast_mask in _set_broadcast_flag function.
Test Plan:
Send the visible data changed signal from any widget, but signal
is not sent.
Reviewers: cedric, lukasz.stanislawski, kimcinoo
Reviewed By: kimcinoo
Subscribers: rajeshps, govi, jpeg
Differential Revision: https://phab.enlightenment.org/D4352
Summary: In all other places "clicked" is defined as a local variable.
Reviewers: tasn, jpeg
Reviewed By: jpeg
Subscribers: cedric, minkyu
Differential Revision: https://phab.enlightenment.org/D4349
Coverity reports that Evas_Coord_Rectangles were being used here without being
initialized so declare those variables with some initial values
Fixes CID1362984
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Lacking a proper internal tag, I'm using both protected (it is
in fact a protected access function) and beta (to mark as unstable,
not real API).
New smart objects based on EO only should rely on constructor,
finalize and destructor exclusively. In theory, this should be fine.
Unfortunately it may be impossible to inherit from the Efl.Ui.Win
class as it uses a really bad hack and calls super.constructor
inside the finalize method.
This is an override of efl_gfx_size_set. Same as before, the
order of operations matter so it is possible that a corner
case will break. In particular, legacy code was:
- intercept
- smart resize (do stuff), super, super, super
- evas object resize
The new code is more like:
- intercept
- super, super, super, evas object resize
- do stuff
But unfortunately this broke elm_widget (read: all widgets) as
the internal resize was done before the object resize. So,
inside the resize event cb, the resize_obj size would not match
the smart object size. >_<
This is an override of efl_gfx_position_set.
As for the other patches, I hope I didn't break anything.
A problem likely to happen is that the super call was inserted
too early or too late in the call flow. For instance:
_myclass_position_set(obj, x, y) {
position_set(super(obj), x, y);
position_get(obj, &prevx, &prevy);
do_something_with_delta_xy();
}
The above code flow is obvisouly wrong, but may have crept in this
patch (such a bug sneaked in inside smart object, breaking
everything at first).
These should be just overrides of Efl.Gfx.visible.set. Many
widgets were handling smart show() and hide() manually, which
means this patch is quite large.
Hopefully this doesn't break anything, obviously. But here are
some widgets known to be problematic, as the old code flow was
really strange (sometimes not calling the efl_super function):
- window
- notify
Similarly to group_color_set, group_clip_[un]set should not
exist and should be a result of efl_super and inheritance.
This patch also removes clip_unset from the EO API and keeps
only clip_set(NULL). The reason is that it will avoid bad overrides
of clip_unset() vs. clip_unset(NULL). This also simplifies the code
a bit. Ideally we should be able to reintroduce clip_unset in EO
if we can have a "@final" tag (like java's final keyword), to
prevent overrides.
Widgets should simply override efl_gfx_color_set and call
super all the way up to evas object.
Legacy compatibility with call interceptors and early call
abortion (eg. delete_me or obj->layer == NULL) are implemented
with an internal call. See the previous commit introducing the
API.
Most of the smart functions "Efl.Canvas.Group.group_xxx" should
not exist and be overrides of the base object function instead.
Cleaning this up is necessary if we want an EO API for custom
smart objects. This patch is the first attempt at removing a
method (the simplest one).
As for no_render, I wonder if propagating to the children
really is necessary. evas_render should skip them already.
"item,activated" smart callback is added to notice when an item is
activated.
"item,activated" smart callback is called as follows.
1. Item push is finished and the new item is activated.
2. Item pop is finished and the previous item is activated.
void *event_info in smart callback is the activated item pointer.
The value stored by efl_future_all is an accessor, not an
iterator. This fixes the usage of promises internally to
the fileselector widget.
See 1a2014a122
Fixes T4686
"push,finished" and "pop,finished" smart callbacks are added to notice
when push and pop operation is finished.
New smart callback signals are added as follows.
"push,finished,item,activated" : Called when item push is finished and
void *event_info in smart callback is activated item (new item).
"push,finished,item,deactivated" : Called when item push is finished and
void *event_info in smart callback is deactivated item (current item).
"pop,finished,item,activated" : Called when item pop is finished and
void *event_info in smart callback is activated item (previous item).
"pop,finished,item,deactivated" : Called when item pop is finished and
void *event_info in smart callback is deactivated item (current item).
In order to avoid the following build warning:
lib/elementary/elm_atspi_bridge.c: In function
‘_children_changed_signal_send’:
lib/elementary/elm_atspi_bridge.c:3971:4: warning: ‘idx’ may
be used uninitialized in this function [-Wmaybe-uninitialized]
_bridge_signal_send(data, event->object, ATSPI_DBUS_INTERFACE_EVENT_OBJECT
A little refactoring was done to function _children_changed_signal_send.
Actually I wasn't able to see a codepath to use idx unintialized,
but this way is more clear and avoid compiler possible confusion.
Summary:
1. Fix wrong logic of ELM_PANEL_ORIENT_RIGHT case in _state_sync.
2. Move pre calc function in anim_cb to sizing_eval function.
This code have caused problem that scrollable panel is not animated during drawer open and close.
3. Maintain content size ratio when orient is changed.
4. Freeze scroller when orient is changed.
This code will need to change orientation when drawer opened.
Reviewers: cedric, eunue
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4320
Summary:
Active descendant changed signal send function checks for wrong object,
hence always returns with out actually sending signal.
The state is set to pd->object_broadcast_mask and not
pd->object_children_broadcast_mask in _set_broadcast_flag function.
Test Plan:
Send the active descandant changed signal from any widget, but signal
is not sent.
Reviewers: kimcinoo, lukasz.stanislawski, cedric
Reviewed By: cedric
Subscribers: jpeg, govi, rajeshps
Differential Revision: https://phab.enlightenment.org/D4318
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
If we fail to allocate memory for savedtypes.types here, then the
"known" array would end up leaking. Defer creation of 'known' array
until after savedtypes.types is allocated, this way we don't leak.
Fixes CID1363216
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
If entry edje should be changed according to scrollable mode,
the signal will be used. The following signals are added.
"elm,scroll,enable"
"elm,scroll,disable"
Test Plan: N/A
Reviewers: raster, tasn, herdsman, cedric
Subscribers: minkyu, jpeg, akanad, z-wony, Blackmole
Differential Revision: https://phab.enlightenment.org/D4254
Since _config_load() is called and _elm_config is not initialized, NULL
check for _elm_config is not necessary.
The unnecessary NULL check causes false alarm because _elm_config is not
checked in other cases.
the format can also be the result of mutliple or´ed values.
The new code now also uses the same mimetypes to format type relation
than the selection code.
This fixes dragging onto a container with multiple formats.
Spotted by ApBBB while dragging from ephoto to terminology.
This also fixes T3320
before the format was not passed correctly, now the format is passed
correctly to the callback.
Also if a dnd operation was started while a cnp receive call was
going on (this happend because weston-editor failed to close the fd, so
EOF was never sent), then elm_cnp would behave wrong, since the
requestwidget, action, format would be different.
This commits adds api to deal with wayland offers.
It also ports elm_cnp to use the new api.
The selection_get and dnd_drag_get calls are replaced by simply receive
data from the offer.
The Offer object is now also emitted in every Enter,Motion,Drop and
Leave event, so a potential user can prefetch data and display it.
To finish a dnd operation positiv, the user has to call the finish call
before the offer is destroyed
This adds a few callbacks to inform applications about
async open and preload:
- load,open
- load,ready
- load,error
- load,cancel
This patch adds a new EAPI as well: elm_image_async_open_set.
This is the only way to use async file open with the legacy APIs
and should be easily matched with whatever EO API we end up using
(be it based on promises or events).
Alter the test cases for make check as they were using the
unstable EO API which I just removed.
Thanks @arosis for the original patch. And sorry for the huge
delay in merging this.
See also: https://phab.enlightenment.org/D4215
@feature
In efl_ui_win, _evas_event_key_cb gives efl_event_callback_call,
though the focused object is not the window itself.
Becuase of this, _propagate_event was called twice for event single
key down.
So, now, _propagate_event returns itself whenever focused object is
not the win but it's called from efl_ui_win's event call.
The problem can be checked with following stpes.
1. elementary_test -> focus
2. Input any directions (ex: Down)
3. Focus movement happens twice for every single input.
Summary: ELM_POPUP_ACTION_BUTTON_MAX is already defined in the included header file, elm_widget_popup.h.
Reviewers: cedric, jpeg, minkyu, Hermet
Reviewed By: Hermet
Subscribers: seoz, jehun.lim
Differential Revision: https://phab.enlightenment.org/D4312
The events for (async) image download will be redefined by
@cedric later. So, remove them from eo now and only keep their
legacy implementation.
Also, improve elm_test example and add docs.
Summary:
- elm,state,units,visible signal is emitted only when
unit is set, but not when unit_format_func is set.
- Since default unit has been set, this signal is emitted
but signal will not be emitted after unit is set to NULL.
Test Plan:
1. Create a progressbar.
2. elm_progressbar_unit_format_set(obj, NULL);
3. set unit_format_func by elm_progressbar_unit_format_function_set()
and observe elm.text.status part visible.
Reviewers: Hermet, jpeg, cedric
Reviewed By: cedric
Subscribers: D-TAU, eunue, conr2d, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4210
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
This patch provides proper parent-child relationship for elm_list and elm_toolbar
while atsapi_mode is set for icon and end element.
This patch is moved from:
bf188e59431ad9c4ca877b2632884d3d430de6b1
Change-Id: Iae855aacf29bef3808a0b5ec159f46cbf0f4539d
Reviewers: stanluk, cedric
Reviewed By: cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4259
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
This patch changes the value of 1 to 1ULL in STATE_TYPE macros
to signal the compiler that the value must be considered
as a unsigned long long, it has to be done cause state_set variable
can be longer than 32 bits.
This patch is moved. Orginal commit hash:
a559e473c21c8da7c4e5a87b9c8583ce519cc35e
Change-Id: Ida89f3be185736f61543d37010d0f5cb8d80a751
Reviewers: cedric, stanluk
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4260
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Some legacy functions that works with string paths were not redirecting for
the correct code when called with Elm.Fileselector.Button or
Elm.Fileselector.Entry.
This commit fixes this problem.
@fix
Summary:
There is a bug. when calendar showing very first time.
the some of the headers(weekday name) is blank.
Because of elm_layout_text_set() called with NULL value.
Need to insert all of the weekday names before set text.
@fix
Test Plan:
Execute elementary_test
Open calendar sample.
See the all of the header names there.
Reviewers: cedric, jpeg, Hermet
Reviewed By: Hermet
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4290
This change lets us remove a field from the structure that leads to
around 20KiB more of saving in private dirty pages in elementary.
This also looks a bit better and feels a bit cleaner.
Breaks API and ABI.
Before this commit, function overrides were explicit. That is, you'd
have to explicitly state you were overriding a function instead of
creating a new one. This made the code a tad more complex, and was also
a bit more annoying to use. This commit removes this extra piece of
information.
This means we now store much less information per function, that will
let us further optimise out structures in the future.
fix the elm image threaded image preload to be far simpler and
actually threadsafe without blocking the mainloop at all even on
object deletion. this also ensures ar least the first 512M of any
async precached file are loaded in so the preload doesnt stall on
headers that are outside maybe the first 4k of the file. i saw this
happening all over the place in the test i created.
@optimize
Summary:
When developers customize theme for making different type of sliding label,
it would be better to send a duration based on whole text.
[The whole text width - label object's w] is only useful for short, bounce
type sliding.
Test Plan: N/A
Reviewers: raster, tasn, herdsman, cedric
Reviewed By: cedric
Subscribers: minkyu, akanad, z-wony, Blackmole, jpeg
Differential Revision: https://phab.enlightenment.org/D4255
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
There was no way to add marks on every day before event day.
The user may want to add mark something on every day before today.
(passed mark or disable etc...)
Test Plan:
Run elementary_test
Calling "elm_calendar_mark_add()" with ELM_CALENDAR_REVERSE_DAILY value.
Reviewers: cedric, Hermet
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4276
It has been discussed on the ML (thread: "[RFC] rename efl_self") and
IRC, and has been decided we should rename it to this in order to avoid
confusion with the already established meaning of self which is very
similar to what we were using it for, but didn't have complete overlap.
Kudos to Marcel Hollerbach for initiating the discussion and
fighting for it until he convinced a significant mass. :)
This commit breaks API, and depending on compiler potentially ABI.
@feature
This widget was lacking an edje_external param to notify the widget to start or
stop pulsing from edje.
@fix Now the edje_external progressbar test works as expected.
Summary:
Previously, focused item was always selected on first and last key action.
If item_select_on_focus_disable is true, item should not be selected.
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Signed-off-by: jinwoo.shin <jw0227.shin@samsung.com>
Test Plan: elementary_test -to genlist
Reviewers: cedric, SanghyeonLee, Hermet
Reviewed By: Hermet
Subscribers: sju27, seoz, jpeg
Differential Revision: https://phab.enlightenment.org/D4272
This combines evas canvas functions to list and query
touch points into a single iterator:
- evas_touch_point_list_count
- evas_touch_point_list_nth_xy_get
- evas_touch_point_list_nth_id_get
- evas_touch_point_list_nth_state_get
This also fixes a number of issues related to feeding fake
input events.
Note: I wanted to add delta x,y information as well but it's
in fact not really possible outside the event callback itself,
as the previous x,y position will not be updated unless there's
an event.
@feature
Those two properties aren't related to a "drawing" canvas
but to the current state of input.
Note: both Efl.Input.Pointer (pointer input event data) and
Efl.Input.Interface (common interface for input handling objects)
expose a pointer position API. Not sure what to do about that.
enventor exhibits this issue, where the focus target is
NULL in some cases. The ERR message was harmless, but it's
good to avoid it and be explicit that the object should be
non NULL when adding event callbacks.
Use the new behavior of Efl.Object.event_callback_call to correctly
update events to pass Efl.Model objects while still suppling path
strings for legacy smart callbacks.
Override Elm.Fileselector.event_callback_legacy_call in order to separate
the types of any incoming event call that uses Efl.Model.
Focus highlight can be on the air, when focused object in scroller is
moved by mouse down and move.
So, mouse up is not proper for executing focus_auto_hide.
@fix
The visible bug for this issue is that the Elm External Video example
is broken:
elementary_test -to "ExtVideo"
The root cause is that the "file,choose" event of the
FileselectorEntry is (wrongly) not listed by the function:
evas_object_smart_callbacks_descriptions_get()
This evas functions is used in elm_external to forward all the widget
events to edje, but it cannot forward the "file,chosen" event because
it's not listed.
Thus the video test is not working for the lacks of that event.
I think the fix should be somewhere in elc_fileselector_entry.c, there
are some hacks there for the incriminated signal, but I don't know how
to properly fix.
as pointed out by dave:
DaveMDS added a comment.Fri, Aug 26, 5:19 PM
I think the problem is in this function: (elc_fileselector_entry.c)
...
this fixes T4337
In a case where eina_promise_then is executed immediately (like with some
quick and light Efl.Model), the Listing_Request struct will be prematurely
freed in the first iteration of the child processing loop, because the
item_total counter had not accumulated the right number of items yet.
With this commit, we traverse the children accessor first, so we can know
the number of items.
Also, no longer use the Listing_Request pointer after the loop, once it
may have been deallocate already.
And put a note about this too.
This one is a bit tricky... When we create the aggregated
promise, if one of the properties of the model returns an
error, the eina_promise_then() will immediately call the
error callback. In this happened for the first item, the
total items in the listing request would be 1.
Before this commit, we tested for incremented the processed
counter and compared it to this total count. If it was
greater or equal, we would free the common listing request.
But in the case of successive failures, we would set the
total counter to 1, then the processed counter to 1 and
therefore free. Then increment the total counter to 2, then
then processed counter to 2, and free again... which would
cause an abort() from the libc or something else nasty.
Now we just decrease the total count of items. We avoid
the cases and double frees, without leaking.
The carray iterator will end iterating only when it finds a NULL
object. We must make sure the last element of the array is NULL
to avoid out of bounds access.
Efl.Object.event_callback_call no longer calls legacy smart callbacks;
calling only event callbacks registered with the given event description
pointer.
Create the method Efl.Object.event_callback_legacy_call to inherit the old
behavior from Efl.Object.event_callback_call, calling both Efl.Object events
and legacy smart callbacks.
Update all other files accordingly in order to still supply legacy
callbacks while they are necessary.
This simply avoids calling functions on NULL objects, since
the previous patch would ERR out rather than silently ignore
the problem.
I just add explicit NULL checks before calling the functions,
so it's clear the object could be NULL (in the widget).
This removes:
Efl.Event interface
And renames:
Efl.Event.Input -> Efl.Input.Event
Efl.Event -> Efl.Input.Event (merged)
Efl.Event.Pointer -> Efl.Input.Pointer
Efl.Event.Key -> Efl.Input.Key
Efl.Event.Hold -> Efl.Input.Hold
This also moves some interfaces from efl/ to evas/ where they
belong better.
This allows renaming Eo_Event to Efl_Event.
This event should not be exposed at all, it's not necessary
anymore, EFL_EVENT_DEL already exists and should be good enough.
This does move the callback call a little bit ealier in the del
process, but at first glance, this shouldn't have any impact.
This was never used and there is no plan to ever use it. I'm going to
soon add a different mechanism with which it will be possible to provide
them again to Eo if ever needed without breaking ABI. Though it's
unlikely it will ever be.
Summary:
Image files can have orientation information. Elm Entry have to
call evas_object_image_load_orientation_set() for showing image
with proper orientation.
Test Plan: N/A
Reviewers: herdsman, raster, jpeg
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D4244
I have no idea how photocam even worked before. @jiin.moon
exposed a major issue in photocam by fixing how the jpg loader
scale down + region load combination works.
@fix
The previous patch 1185c40e50 shows how having
two event types for the same thing (key or mouse input events)
was a bad idea. The only guaranteed order of callbacks is the
priority but even that was not enforced (since legacy or eo
style event had to come first).
Fixes T4310
This macro is behind a BETA ifdef. Shouldn't be used here,
unless we want to remove the beta flag and stabilize
efl_build_version_set() now.
Thanks Stefan for the report.
@fix
This places the following behind beta:
- efl_quicklaunch_fallback
- efl_build_version_set
I don't think EFL_MAIN would have worked without BETA API support,
so no need to expose those for now.
@fix
Summary:
When a theme is loaded, Elm.Layout updates strings with new theme.
This adjustment will be performed by Edje. (See D4219)
Reviewers: cedric, jpeg
Subscribers: taxi2se
Differential Revision: https://phab.enlightenment.org/D4220
Summary:
There are 2 ways to toogle the panel, by using elm_panel_toggle API and by interaction such as flick or click on panel.
This toggled event can help us to know the time when the panel toggled by all case.
Reviewers: woohyun, kimcinoo, Hermet, jypark
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4180
Summary:
Main trouble in handle click and double click event.
If user hold Esc and do double click on genlist item,
it still highlighted but not selected, because between
click and double click genlist process a key down event.
This patch add check the item state on mouse up, check
a item state - if item highlighted but not selected,
unhighlight it.
@fix
Fixes T3986
Test Plan:
1. run elementary_test Genlist
2. hold ESC
3. double-click on few genlist items
Reviewers: raster, cedric, NikaWhite
Subscribers: seoz, jpeg
Maniphest Tasks: T3986
Differential Revision: https://phab.enlightenment.org/D4222
EAPI elm_win_type_set
EAPI elm_win_name_set
Those two APIs should never have been part of the legacy API,
but they have been generated since at least 1.16. The commits
1aceb3bc19
and
41aa19447c
removed the legacy symbols generation. It seemed like a good
idea since the APIs shouldn't exist, but in fact this broke
ABI. I hate this. So sorry about it.
I'm adding them back in with no documentation and as
EINA_DEPRECATED.
This is an emergency commit before the 1.18.x release
announcement.
Fixes T4344
@fix
alpha
If we have a borderless alpha window, then make call to set opaque
region accordingly. This still avoids calling opaque_region_set twice,
yet maintains opaque region for the above mentioned case.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
combobox: add Multiple selection feature
This exposes problems with name clashes and behaviour change for the legacy API.
Revert for now and we can revisit for 1.19.
Git revert got to confused as this was committed before we merged elm in. I did
the revert manually.
When trying to create a window, the WL EGL engine creates
an ecore_evas and connects to the wayland display. But if
EGL is not supported (in weston with nvidia for instance),
the egl initialization fails and the window must be detroyed
in order to fallback to wayland_shm.
This led to a double disconnect from the wayland display
as both the ecore_evas del and the error handling code
were trying to disconnect.
Also, use ref == 0 in two places rather than ref <= 0, as
it can prevent double frees in bad situations (ref < 0).
And reset a global variable to NULL on shutdown.
We use disabled across our APIs so better fix this new one to unify it before
we release. This was introduced in commit 0116e07288
Many thanks to DaveMDS for reporting this!
this addresses a path that could be too small (unlikely due to max
path generally being 4k), for a stack buffer. this should make
coverity happy. fix CID 1356634
as accoding to coverity CID 1353593 chekc returns of the above
function and return/continue as apporpriate if these fail (which
generallly they shouldnt unless some end of the dbus client is broken).
fix CID 1360466
we don't actually chekc if efreet inits right with elm_need_efreet()
as we just assume it inits (And there pretty much is no case where it
will not), but make coverity happy and check.
@fix
Summary:
When map source is set by elm_map_source_set(),
it foreaches enlisted sources, and should return
when the source cannot be found.
@fix
Test Plan:
Call elm_map_source_set(map, [any type], [Wrong source name]);
Observe ERR("source name (%s) is not found", source_name) message.
Reviewers: Hermet, cedric, jpeg
Reviewed By: jpeg
Subscribers: conr2d
Differential Revision: https://phab.enlightenment.org/D4212
This reverts commit 8a988717e1.
It seems we can't actually inherit from class more than once and neither eo
nor eolian will complain about it. You will just get random weird behavior.
This patch should come back once we have made an interface of edje.
There is a line to check select_mode in _item_select function.
The item selected(clicked) callback is called when the select_mode is ELM_OBJECT_SELECT_MODE_NONE.
The checking select_mode should be handled at one place.
This removes some useless code in various places, where the
switch from eo_do() to standard function call was not properly
refactored.
This changes:
type ret = 0;
ret = my_eo_function();
return ret;
To:
return my_eo_function();
In elm_image, efl_file_get() was called on a legacy Evas Image
object, which generated an ERR message. This was way too much
noise for something that actually works.
It's best not to call efl_file_get/set API on a legacy
object, but it can be convenient for smooth code transitions
from legacy to pure eo.
Also, add safety to those APIs.
Test case: elm_test genlist dnd, start dragging anything.
Because of the translation between legacy and eo key
events, the on_hold flag state could sometimes be lost.
Symptom:
elementary_test -to Focus
Click on a button inside the scroller
Up/down would jump to the end of the scroller, rather than
the next button.
Thanks a lot to Woohyeon for the very good bug report.
in 14ec825aa9 cedric added trying
ELM_DATA_DIR env var explicitly for looking for themes. first if this
is NULL then we look in a bogus directory (null). secondly eina_prefix
already takes care of env vars like thsi as part of figuring out
prefix with correct namespace etc. so this just is a bug as opposed to
anything useful and the CORRECt implementation is already done in
eina_prefix.
@fix
This is a corner case bug I spontaneously found.
* Scenario.
A. Disable A widget.
B. Add a child B widget to A.
C. Now B Widget theme will be followed to A that is performed by
elm_widget_theme_apply()
D. This elm_widget_theme_apply() calls elm_widget_disabled_set() (originally.)
E. Now B widget will be logically disabled.
D. Let's enable A widget again.
E. After going through widget disabled sequence, elm_widget_disabled_eval()
will be called in the last
F. In this function, A widget tries to enable its children. But B widget won't
be enabled because its logically disabled!
Acutally, nowhere widget change children's disabled states logically,
but it propagates its state to children within volatile way so that
A widget perfectly keeps the disabled/enabled state with its children and
recover the children's enable/disable state once their relationship is cut off.
@fix
now set default wheel scroll accel to 7 as epr the confgi upgrade code
and also improve the acceleration to "rely on itself" and feedback
loop. this is so much better now i can scroll through things in a
whisk with the wheel.
fixes T4263
@fix