The Efl.Ui.Focus.Manager abstracts the creation of a localization graph
and a logical tree. The localization graph is used to find a object
right left up or down of a given object. The logical tree is used to
iterate throuw the containers which are used to build a ui.
Those managers can be used bound to some layer in the ui, so for
example the window is a layer, the content of a scroller is a layer.
With those layers, we can make sure that movements of a scroller for
example just means that this graph of objects in the scroller needs to
be recalculated, and not the complete ui.
The advantage of having this to layer bound datastructures is that you
can easily debug those graphs, since the complete layer of this
managerobject can be calculated completly.
If we disable preload, then the second file set on an elm_image
object would not trigger a deletion of the first image. As a
consequence, both images would be visible... really bad if there's
alpha or different dimensions!
Thanks Anand Kumar for the report!
@fix
Summary:
When auto update is enabled, the label of the hoversel will be that of selected
item. This feature is usually used when changing state of something.
Highlighting item previous selected will show what is current state more
explicitly especailly hoversel has many items.
Test Plan: elementary_test -to hoversel
Reviewers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4799
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Elm_fileselector has the hardcoded value for calculate the item size
with thumbail, this size was 16, it's looks like thumbnail size plus
labal text height, but hardcoded value haven't effect to scale. Other
problem with items without labels. As a result we have correct
thumbnail size only with default theme and with scale 1.0.
This commit made the item size accordingly to size what user set. It's
made more clearly this API behavior.
@fix
By some reason style does not applyed to genlist/gengrid in
fileselector. Also fixed issue with applyed style for files view on
change mode. Now this problem is fixed.
@fix
After talking with @eunue I realised that the way I'd first
implemented the box/grid "pack" API was simply too complicated.
I had tried to make it possible to change the layout function
at runtime, like good old evas box, but since there are no function
pointers in EO the final design was really convoluted.
If someone really needs to change the layout of a box at runtime,
just create your own subclass, or unpack all items and repack them
in a new box.
Note: there are still some issues with the layout params & flow
Summary:
The values(259200, 86400) are hard to know the meaning.
And we don't have to call gmtime() in for loop.
Test Plan: elementary_test -> calendar
Reviewers: jpeg, Hermet, shilpasingh, cedric
Reviewed By: cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4717
The only purpose of this commit was to allow efl 1.19 to be
released on macOS wothout crashing on termination. Time to revert
it and see that we can find a real fix for the next release.
This reverts commit cd5e755951.
ref T5245
Summary:
When _item_filtered_get is called, block and pan re-calculations
happen, When there is no filter applied, we can skip item filtering to
avoid some unwanted calculations
Reviewers: cedric, raster, SanghyeonLee
Reviewed By: raster
Subscribers: rajeshps, Princekrdubey, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4759
Summary:
When popup is timeout, notify call hide func, and send time out event to popup.
After popup receiving time out event, popup hide object again,
so hide animation doesn't show.
And notify hide function doesn't send hide signal to block events part,
(but dismiss function send it)
So add that signal.
Test Plan:
1. elementary_test -to popup
2. click first item, "popup+center+text"
3. compare time out event before this patch and after.
@fix
Reviewers: herb, singh.amitesh, Hermet, cedric, raster, jpeg
Differential Revision: https://phab.enlightenment.org/D4780
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Test scenario:
elementary_test -to "ExtScroller"
Try and modify a slider's value with the mouse wheel. Bad things
were happenning, as the flag ON_HOLD was not properly propagated
from the slider to the scroller. This is because the legacy
event_info structure inside the eo event info was not updated
with the new flag value.
By introducing a new EO only API, which is meant to remain
internal, we can use a single legacy info structure, fixing
this issue.
Note: In the future this API needs to be internal, not protected.
@fix
Prerequisites:
Disable scroll animation (in elementary_config)
Test case:
elementary_test -to Scroller
1. Scroll with the mouse wheel. Scrolling will not loop or anything.
2. Enable loop in Y, scroll to the top and to the bottom, verify
that scrolling loops fine and shows the last and first page in
full.
3. Enable page snapping, and repeat 2.
FIXME: Page snapping doesn't do much if you use thumbscroll or
drag the scrollbars.
FIXME: In the test case, Y +/- 1 is useless as the scroller snaps
to the pages even without snapping enabled.
@fix
The freeze property is a set() only but could internally
be reset to false, after dragging a vertical or horizontal slider.
Test scenario:
elementary_test -to scroller
Click Freeze, test the mouse wheel (can't do anything), drag a
scroller side bar, test the mouse wheel again.
Before this patch, the scroller would scroll. After the patch, the
scroller remains fixed, respecting the value of freeze.
FIXME: It is possible that the proper fix would be to disable
bars drag during freeze, but that is not the case currently.
NOTE: freeze, hold, movement_block, lock_x/y have very similar
meanings. The doc really needs clarification here, and some
property might be removed. Also, freeze and hold have no
getter, only a setter. drag_lock_x/y is part of elm_widget,
and not specific to scrollers.
If the scroll animation is disabled, we ended up with an
immediate call from inside a post-event callback to modify
the canvas geometry which led to feeding events. Since
99d21f6d9c and 54e5841b2f it is basically forbidden
to modify the canvas or feed events from the post-event cb.
This is because feeding events from inside the post-event
callback can break the logical order of operations between
post-event cb and event cb.
Note: This also implements no-animation scrolling for page
scroll, in case scroll animation is disabled (unifying the
code did that).
Fixes T5289 (abort inside E)
Test scenario:
elementary_test -to "Scroller 2"
Use the mouse wheel to scroll inside the horizontal scroller
(the one with many "...Horizontal scrolling..." buttons). This
scroller should scroll horizontally. When reaching the end of
this scroller, the main vertical scroller should take over
and scroll vertically, but only after a 0.5s timeout has passed.
Before this patch, you could wait forever and scrolling inside
the horizontal scroller would never trigger a scroll in the main
vertical scroller, despite reaching the end point.
In 1.18 both the main and the horizontal scrollers scroll
simultaneously. The imbricated vertical scrollers seem to work
as designed, but not H inside V.
@fix
if you set config via environment variables then sa config
update/reload may end up overriding these again whenever it is updated
and thus may result in scaling or other things suddely changing
@fix
The efl_ui_win overrides _elm_interface_atspi_component_extents_get to give
correct value if screen_coord is EINA_FALSE which means relative position.
The efl_ui_win has given its object geometry value + ecore evas geometry value.
The object geometry value was equal to the ecore evas geometry value, so the
relative position was not correct(twice of ecore evas geometry value).
The "access,activated" smart callback is called when "Activate the selected item"
gesture occurs.
Application could do the activation action using elm_access_action_cb_set.
But we recommend not to use elm_access_action_cb_set for this purpose on atspi
environment. And this would be usual widget behavior as elm_button does.
the height of a item is 0 because the item is not realized, so if no
item is realized we are waiting until one is realized, until then we
just take 1px as a height, so at minimum one item needs to be realized.
If there is a realized item (or we are getting the event that there is
one) we are just calling _table_resize again, and are getting the size
for real.
in cases where a ui is using layers other objects could overlap the
hover object. Which is wrong, the genlist should stay above the rest of
the content, in any case.
if the parent is not a window the elm hover is created for the parent of
the combobox, which is a problem because the hover will not expand to
its full size of the window, and will stay in the size of the parent.
Adding the top widget instead of the parent widget fixes that.
Currently, elementary programs crash on termination on macOS (seems
Sierra-specific). This is very nasty, looks like deep memory corruption...
Without valgrind (or like) support on Sierra, it is difficult to
pinpoint the origin of the problem.
Due to the imminient release, and after discussion with @stefan, this
kludge will allow the release to happen.
This commit MUST be reverted just after the release, so we don't
blindfold ourselves!
Ref T5245
flipselector item destructor had a severe drawback and this patch fixes it.
when deleting multiple items at once, the view needs to be updated only once.
however, the destructor updated the view on deletion of
every single item and it caused a severe performance issue.
the worst case happened when deleting a flipselector object -
with 10000 items, it took 10 seconds to finish deletion.
this patch has two points:
1. if a flipselector object is on deletion, item destructor doesn't update the view
2. otherwise, view update is handled in one job for multiple item deletion
We have a tag for unstable API, use it. It'll be visible in the
doc and force users to add the macro before being able to compile
code.
This amends d8dd685966.
_elm_gengrid_item_edge_check can have eo_it as NULL if none of widget item
is focused. This could happen if item_focus is not enabled on items.
test case: elm test -> gengrid 2 (enable only "focus hightligt set") and move focus.
@fix
Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
Summary:
Delete check on NULL for icon object due to incorrect work. Function must delete
icon in map overlay (according to documentation) if we set NULL, but with this check -
nothing happening and after elm_map_overlay_icon_get we have not NULL returned value.
@fix
Reviewers: cedric, Hermet, raster, jpeg
Reviewed By: cedric
Subscribers: artem.popov
Differential Revision: https://phab.enlightenment.org/D4720
If multi select mode is ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL and
user code try unselect a item and select another part which not
realized select callback calls twice in this case. For avoid this no
needs focus newly selected item.
@fix
The item, after having been unswallowed from its decorate
item, becomes unclipped and unparented. The parent was well
reset, but the clip wasn't.
Test case:
elementary_test -to "Genlist Decorate Item Mode"
I'm sure some bugs are still lurking. Genlist is so lovely.
Fixes T1551
In "Genlist Decorate Item Mode" after decorating a few items
(rotate or slide, doesn't matter), only one item or none should
be decorated. Scrolling up and down the genlist should work just
fine. This fixes massive render issues and inconsistent states
of the items in this test case.
"rotate" mode is still going nuts.
Ref T1551
This fix elementary_test use of elm_code where the object needed
to get clicked to have their content displayed. The reason was that
the line where appended while the object size was 0 and once it was
resized the line where not displayed.
Summary:
Genlist item doesn't change its size when its content size is changed,
but its size is determined in realization.
Therefore, deferred calculations for content should be performed immediately
before swallowing it by genlist item.
Test Plan: make and run attached sample
Reviewers: cedric, SanghyeonLee, jpeg
Reviewed By: jpeg
Differential Revision: https://phab.enlightenment.org/D4705
If an item is marked as disabled it should be re-enabled
before being put in the reusable contents cache. Otherwise
a following use of this object may result in a disabled
item being used, making the UI effectively disfunctional.
Also modify the test case to show and test this behaviour.
Add an efl_isa() to protect calls to elm_widget APIs.
Fixes T5236
@fix
Summary:
When popup hides and shows fast, sometimes popup is not shown
because of the difference visible value between popup and notify
(case: popup visible state: 1, popup_notify visible state: 0)
To sync this value I added the visible set code in elc_popup.c
@fix
Test Plan:
1. run elementary_text -to popup
2. shows the hide popup
3. hides popup using the hide button
4. repeat 2,3 step
5. popup will be shown well
Reviewers: jpeg, cedric, Hermet, raster
Subscribers: Blackmole, woohyun
Differential Revision: https://phab.enlightenment.org/D4710
Summary:
If user added item with item_insert_before and item_insert_after, item was not displayed.
For this reason, fixed box indicated item correctly from reference->button to VIEW(reference).
Additionally, remove the unused variable button in _Multibuttonentry_Item struct.
Reviewers: woohyun, CHAN, cedric, jpeg
Reviewed By: CHAN
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4708
If item pop was started without focus at a naviframe object
and the naviframe object got focus before finising item pop,
the naviframe object could give focus to its first object of prev item.
It could ruin focus orders and failed to restore previous focused
object in the item.
To keep consistency of focus policy, same logic will be applied to
item push scenario.
@fix
Change-Id: Ia74bdce3620bd59622ef32a0cedf5fbd84815400
Summary:
When if item_show / bring_in is proceeded as 'deferred_show'
sequence, Scrollto_Type does not be checked perfectly.
As a result,
ELM_GENLIST_ITEM_SCROLLTO_NONE and any other integer values
are worked such as ELM_GENLIST_ITEM_SCROLLTO_BRING_IN.
As doxygen of Elm_Genlist_Item_Scrollto_Type,
ELM_GENLIST_ITEM_SCROLLTO_NONE and other incorrect number
should not work.
Fixes T4854
@fix
Reviewers: SanghyeonLee, woohyun, jpeg
Reviewed By: jpeg
Subscribers: id213sin, conr2d, cedric
Maniphest Tasks: T4854
Differential Revision: https://phab.enlightenment.org/D4684
Small patch to reduce calls to setting opaque/input regions in
wayland. Basically, if the window is not shown then there is no point
in updating these regions until such time that the window is actually
visible and the regions will get committed.
ref T5226
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Small patch to fix an issue that Derek brought up ... that is
basically, if you try:
WAYLAND_DEBUG=1 WAYLAND_DISPLAY=wayland-0 terminology while inside an
X11 environment, then elm_config would try to initialize ecore_wl2
even when running under X11.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
As we are already resetting the pointer object theme when we make a
call to set the cursor, don't set it on window creation. This should
address the issue of animators getting created on window creation.
ref T5209
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
If orientation is TOP, BOTTOM, LEFT and RIGHT and
tooltip was moved due to located out of screen,
adjust location of arrow so that can indicate right position.
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Test Plan: elementary_test -to tooltip4
Reviewers: cedric, Hermet, jpeg
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D4554
The key was to emit & process the signal to the edje objects
(item views) at the same time as we move them, ie. from the
loop in _item_block_position().
Also the proper counting must be used at all times. Hidden
items should not be counted.
Tree effect may still have issues but otherwise there is no
more blinking, double odd or even rows, etc... It all looks
good (as long as there is no tree effect!).
Fixes T3086
@fix
When using the fileselector in tree view mode (ie. expandable),
expanding any folder with a lot of files in it would cause the
genlist view to jump somewhere to the bottom. This is because
the mechanism preventing the view from moving was assuming that
all "prepend" operations meant prepending before the selected
item. This is not the case in case of expansion like in the
fileselector.
@fix
If an item is selected, and another item is insert before
the selected item, then we try to lock the genlist view (pan)
around the selected item (if it's visible). Unfortunately,
every 16 inserts cause a jump by one line in the scroller.
That's because the scroll math assumes the block position is
known, but since it's a new block it wasn't known.
This patch fixes this issue by precalculating the block position.
Test scenario:
elementary_test -to "Genlist Tree, Insert Relative"
Select an item, clikck 50 times on "+ before".
The view should not jump.
This does not fix fileselector's craziness.
@fix
This fixes the internal item order index.
Note that groups don't reset the odd/even styles. The
original code wasn't very clear on the intent (setting
to 0 in one case, not increasing the counter in another,
but that was not consistent all over the place). I believe
resetting the odd/even styles at a group boundary would
look great, but this might be for another patch :)
This amends part of another commit, but keeps its feature:
b40a6eb85bf44a genlist: implement list position signals.
See T3086
PS: I've discovered more odd/even issues with the
fileselector in particular. Still working on it...
@fix
This reverts commit 43d82e567a.
I don't understand this commit. It broke the logical order of
items, as the internal list wouldn't match the order on screen.
Other places in the code didn't seem to make this assumption
that parents come after their children. And for sure my recent
fixes require the parent to come before.
This commit was one of the many reasons why odd/even styles
look often wrong.
See T3086
It was used to hide "it->item"... but was used less than it->item
itself. Explicit code here is not longer, and just as readable.
This macro I think was harmful to readability.
Simple sed, no real change at all.
Not sure how long this has been broken, but the variable name changed
in this routine to "is_gl_accel"..."is_hw_accel" is no longer used, so
change variable name here to fix compilation with SDL.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
elm_pan_gravity_{set,get} are functions that were generated as
legacy APIs (in other words EAPI), but were never actually exposed
to applications as they were protected behind EFL_EO_API_SUPPORT
(see elm_interfaces.h).
This patch restores the ABI compatibility with elementary 1.18.
This fixes a lot of cases where a genlist node (of any type)
with children may have appeared in the invalid expanded or
contracted state.
Before this patch, the test case "Genlist tree, Relative insert"
looked like below (all items are programmatically added):
> A
> 1
> 2
> B
> 3
> 4
The problem above is that A and B have visible children but
still believe they are in contracted state. This patch ensures
that A and B will be marked as expanded, but will do so without
firing an "expanded" signal and definitely without the
"expand,request" signal.
After this patch, the test case will look like this:
v A
> 1
> 2
v B
> 3
> 4
Which is more correct. Note that this test case does not handle
any expand/contract signal.
NOTE: This is a behaviour break!
This fixes a case where inserting item "C" after item "B" in this
tree would go wrong:
A
B
- 1
- 2
Before this patch, 1 and 2 lose their parent:
A
B
C
- 1
- 2
After this patch, 1 and 2 retain their parent:
A
B
- 1
- 2
C
Insert before worked by luck, no need to fix it.
Note that this patch may require the next one to actually
work (ensuring expanded state flag).
NOTE: This is a behaviour break!
This fixes the test case "Genlist Tree, Insert Sorted".
This is a pretty ugly patch... but the genlist code is already
pretty ugly, as it keeps a flat inlist of items (sd->items)
as well as a tree structure in parallel.
Before this patch, the following configuration led to issues:
1
3
- A
- B
Adding item "2" led to a crash. Adding item 4 led to this:
1
3
4
- A
- B
Items A and B lost their parent "3". Subsequent sorted inserts
would lead to insane bahaviour, where for instance "8" would
appear before "3".
This patch fixes all sorted inserts, at the cost of performance
(an optimized code path is avoided). Subsequent patches will
increase the robustness of the tree structure.
NOTE: This is a behaviour break!
Fixes T4850
Summary:
Change the item indexing to start 1 after reordering animation.
Change the logic of edge checking to get the row or col correctly.
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Test Plan:
elementary_test -to gengrid2
append 6 items
enable the reorder mode
check reordering is working properly (4 to 1)
@fix
Reviewers: singh.amitesh, cedric
Subscribers: jehun.lim, jpeg
Differential Revision: https://phab.enlightenment.org/D4676
I was in a situation where my elm_config had the proper version
but did not contain a proper module name for the clock widget.
This resulted in not being able to create any field object in
the clock widget... in other words it made for a very useless
clock :)
Ideally the config should be updated at this point. I'm not
sure how to proceed exactly, though :(
Summary:
When you set gravity 1 on scroller, scroller sticks to the bottom
even content is changed.
however, scroller don't work like above, if size of pan is changed.
this commit uses pan_pos_max rather than w/h of content_info
because pan_pos_max is related with both content_size and pan size.
gravity_set will work properly even if both size of content and pan are
changed simultaneously.
Test Plan:
1. Select 'scroll3' in the elementary_test
2. Append enough items so that scroll bar appears (about 30 items)
3. Go to the bottom and Set gravity 1.0
4. Check that scroller sticks to the bottom once you append another item
(it works)
5. Check that scroller sticks to to bottom once you resize window(pan)
(it doesn't work without this patch)
Reviewers: eagleeye, jpeg, cedric, woohyun, z-wony, herdsman
Differential Revision: https://phab.enlightenment.org/D4665
Also support both Evas.Image and EO Efl.Canvas.Image classes.
Add a test case in elm_test (under "Icon").
I'm not so happy about this patch... it shows that the API
barrier between legacy and EO implemented for images may not
be such a great idea after all :(
After a long search I found that fileselector was not calling
super.group_del on deletion, leading to the use of dangling pointers.
So let's verify that group_del is properly called.
See T4598
The data class should be specified for debug purposes.
Also, this fixes invalid uses inside the smart object
implementation where it assumed that the smart data was part
of the eo data. It may not (legacy objects).
This fixes some of the occurences of the following error message
when using eo_debug:
ERR<23101>:eo /home/jpeg/e/core/efl/src/lib/eo/eo.c:1955
efl_data_scope_get() Tried getting data of class 'Elm.Widget'
from object of class 'Edje.Object', but the former is not a
direct inheritance of the latter.
If we're going to call efl_isa, then let's at least do it before
efl_data_scope_get.
Summary:
When mbe got focus the input panel will be shown.
Otherwise, input panel will be hidden.
If the mbe still got focus then input panel hide by user action.
there is no way to reactivate the input panel in case.
Reviewers: woohyun, jpeg, cedric, Hermet
Reviewed By: jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4661
Summary:
In singleline textblock, using "text.min: 1 0" and min, max width,
Edje allows to use expandable text with ellipsis. It shows ellipsis
when only text's width reach the max width.
But, Edje couldn't support same feature on multiline textblock.
Edje dose not use max height or text.max properly if ellipsis is enabled.
This feature is very useful to make a layout with dynamically aligned text.
@fix
Reviewers: cedric, tasn, woohyun, raster, herdsman
Subscribers: z-wony, eagleeye, jpeg
Differential Revision: https://phab.enlightenment.org/D3595
Summary:
_index_box_auto_fill will be called when user calling elm_index_level_go(), elm_index_omit_enabled_set().
item size re-calculated and each item style reset even index size is invalid.
It can make performance issue during index creation time.
Test Plan:
elementary_test
index sample
Reviewers: taxi2se, jpeg, cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4653
This makes the env var override and the elementary config
global override on accel preference work for not only "gl"
but also advanced configs such as "gl:msaa_high:depth:stencil"
every time i build efl i see all these warnigns spew by about elm_code
and possibly uninited vars being used. yes - they're filled in via ptr
ref bya func but gcc definitely seems to think they MIGHT not be
filled in in some cases... and either way tyhe cost of setting to 0 is
minimal and less noise is better so we see real warnings more
easily... :)
since these are only local path resolves, the do and wait are
technically not needed. also remove any other tmp strings
and use the vpath string resolving feature to avoid
printfs/strjoins/cats etc. etc. as well.
also remember to remove old name string from evas shm code - it worked
for me. i guess i was lucky and it happened to be NULL thus free was
fine.
This reverts commit 2037474dc0.
This causes the wayland_shm engine to seg fault immediately at
startup when attempting to create shm buffers.
Please make sure when committing changes to the wayland_shm engine to
test on intel, exynos, and at least one platform without dmabuf
capabilities - or using the EVAS_WAYLAND_SHM_DISABLE_DMABUF env var
to disable dmabuf on intel or exynos.
Anyone without the time or hardware to fully test changes to wayland_shm
can submit a patch to phabricator and assign it to me so I can fully
test it before landing.
since these are only local path resolves, the do and wait are
technically not needed. also remove any other tmp strings and use the
vpath string resolving feature to avoid printfs/strjoins/cats etc.
etc. as well.
this fixes a bug where elm_cofnig would firstly use
~/.config/elementary which isnt what we have used before and so would
break older config. also it'd create junk if it was setuid. fix this.
@fix
genlist/gengrid now uses cache for view objects of items and
re-associate edje objects to different obj items whenever needed.
problem here is if app user changes the state of view object
(by sending edje signal, elm_object_item_signal_emit()) and
forget to reset it in unrealized, the old edje object state will link to other
object item, so its application user responsibility to reset
the edje state to normal in "unrealized" callback.
Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
Summary:
Once rtl mode is set, elm_layout reverses its x-axis.
however, scroller uses elm_layout to contain both original content and
proxy image of it when loop mode is set.
In this situation, elm_layout should not reverse its x-axis when It is
used for container of proxy to support loop mode of scroller.
This commit will not apply rtl mode to contents layout (mirrored set)
Test Plan:
* Check that there is a proxy image over right edge of original content.
1. Run elementary_test
2. Open scroller
3. Switch UI_mirrored mode on
4. Test (Control with keyboard / mouse wheel control looks bad on rtl mod)
a. go to the right edge with keyboard
b. get over the edge
Reviewers: woohyun, z-wony, jpeg, cedric
Differential Revision: https://phab.enlightenment.org/D4568
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
If show_item is NULL then does not need to check scroll.
But, sometimes show_item is NULL but check_scroll is true.
It was wrong and can makes a crash.
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Reviewers: cedric, Hermet, SanghyeonLee, raster
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D4569
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Small devices (like smart watch) can disallow entry selection by default.
This patch enables to control this behavior with elementary configuration.
Reviewers: cedric, jpeg
Subscribers: id213sin, woohyun
Differential Revision: https://phab.enlightenment.org/D4615
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
- When scrollable panel is closed by elm_panel_hidden_set(),
elm_panel_toggle() APIs, it shows animation with
scroller bringin effect.
- During this animation, panel is still focusable, and may
stop closing when content gets focused.
- scrollable panel is now set unfocusable when closed by
APIs above, and set focusable when opened after bringin
animation.
Test Plan:
1) Set panel scrollable and opened.
2) Set another object focused and deleted it
when panel is closing.
3) Observe panel is closed.
Reviewers: cedric, jpeg, woohyun
Subscribers: conr2d, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4641
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
- In mouse move callback, index tries to calculate
current level.
- This is not needed when level 1 is not active.
and blocks index item change.
Test Plan:
1) Run elementary test -> any vertical index.
2) Click on index item and drag to outside of index.
3) Observe index item is now changed as mouse movement.
Reviewers: cedric, Hermet, jpeg, eunue
Reviewed By: cedric
Subscribers: conr2d
Differential Revision: https://phab.enlightenment.org/D4643
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This patch fixes an issue where the wrong wayland window would be
returned from elm_win_wl_window_get. When we lookup a window in
Enlightenment, this function would end up returning the parent window
(if existed) when what we want there is the actual window. This patch
puts the function more in line with the X11 equivalent.
Fixes T5142
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
The item is already deleted at this point and its garbage here
which results into crash ultimately.
Also I don't see a point in setting access_obj to NULL here
@fix
Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
Efl.Model.Container and Efl.Model.Item to efl/interfaces are used
to create Efl.Model objects with predefined property values.
This is useful to any situation where we want an Efl.Model with
explicit defined property values.
Efl.Ui.View and Efl.Ui.Factory are used to connect Efl.Models with
Widgets, Elm.Layout and Efl.Ui.Image has changed to use news interfaces
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: The patch for supporting copy,paste and cut undo
Test Plan:
1. elementary_test - Code Editor
2. Check that undo work correctly when copy,paste and cut
Reviewers: ajwillia.ms
Reviewed By: ajwillia.ms
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4636
If the user icons are set but animation time is set to 0, the icons are
not deleted, resulting in ghosts images in the application.
Additionally, behavior was badly handled when animation time or timeout
before drag were set to 0.
@fix
When we mouse_in on a window, the cursor hotspot may need updating for
the new pointer image, so utilize an existing function we already have
which will set the pointer image and calculate updated hotspot. This
patch also uses the same function call in _elm_win_frame_cb_move_stop
in order to reduce duplication.
ref T4987
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This patch fixes an issue where pointers would occasionally disappear
when running EFL apps in a Wayland compositor. This was occuring
because we would hide the pointer window on mouse_out (and thus attach a NULL
buffer to the pointer surface), but then when we mouse_in again on the
window, it still have a NULL buffer attached to that pointer surface.
This patch fixes the issue.
ref T4987
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
As the pointer canvas will already be visible at this point, there is
no need to redo the wl_pointer_set_cursor call as we can just set the
pointer image we desire on the surface (_elm_theme_object_set) and
when the pointer canvas renders, it will have the proper cursor
Signed-off-by: Chris Michael <cp.michael@samsung.com>
If we create the pointer After the frame, then we end up setting
elm_object_cursor on the frame object which we do not need so this
patch just slightly modifies the order of things during finalize so
that _elm_win_frame_add does not end up calling
_elm_object_part_cursor_set on the frame object.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This small patch avoids resetting ecore_wl2_window_pointer (and thus
wl_pointer_set_cursor) if the actual pointer canvas is not visible.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
the pan object width can be different with object width,
because of padding and bar area, so we should using pan's width
instead of object width for mirrored calculation.
in elementary_test gengrid sample, you can see, when mirrored on,
the alignment is broken before merge this patch.
Signed-off-by: SangHyeon Lee <sh10233.lee@samsung.com>
Summary:
Set sd->scroller as NULL when the scroller object is deleted.
It prevents error logs when elm_conform tries to delete resize callback
function from deleted object.
@fix
Test Plan: N/A
Reviewers: raster, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4519
For c source and headers lookup a simple syntax definition.
Use a very simple text processing line by line to tokenise.
Simple but it gets us one step closer to cross-language syntax
Now the size evaluation will query for the native size of the
canvas.text object, and continue with calculations to set the min size
of itself.
This fixes a bug in containers where the widget's size wasn't picked up.
Also, the canvas.text object wasn't reporting 'changed' on text changes.
Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
Summary:
If rtl mode is set, current_page_get api should return reversed page number.
To do that, make x position x-axis reversed before page calculating.
Also bring_in and page_show should show the reversed page in rtl mode.
This patch modify the functions to support that.
Lastly, scroller should be scrolling based on the right edge of the page.
This patch is a combination of the patches(D4559,D4560)
Test Plan:
1. Run scroller test on elementary_test
2. Turn ui mirrored mode on
3. Manipulate scroller in various ways
- It should scroll proper position when you click next or prev btn.
Reviewers: woohyun, taxi2se, z-wony, cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4558
Summary:
Even User set a MBE state as "shrink" when MBE created.
MBE has been changed the state as "none" during added items.
This patch will be fixed that bug state.
@fix
Test Plan:
Add below line after create mbe.
'elm_multibuttonentry_expanded_set(mbe, EINA_FALSE)'
Then Add items using item_append API.
See the result. mbe is not on shrink mode.
Reviewers: Hermet, jpeg, cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4548
Summary:
Add description about gesture APIs.
Some of the developers told me that they really have no idea what is this for when first see the API doc...
Reviewers: Hermet, raster, jpeg, cedric
Reviewed By: cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4541
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
The changes of previous patch (4ea7effe70)
are reverted, and item calculation is fixed correctly.
The main reason why hoversel item has wrong size in screen rotation is
that hover doesn't update geometry when the size of target object is changed.
Test Plan: elementary_test -to hoversel
Reviewers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4556
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
When screen is rotated, _resizing_eval() will be called twice by hover_parent
resize and hoversel movement.
If the alignment is changed to the right in the first call because of the geometry
of edje part is not updated yet (hoversel uses edje part geometry in calculation),
hoversel keeps being right-aligned in the second call,
even though there is enough space to show with default alignment.
Test Plan: elementary_test -to hoversel
Reviewers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4557
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
The Efl.Canvas.Text object loses its parent due to a specific behavior
of Edje when swallowing objects.
The mentioned object then loses sync with the Ui.Text object, thus not
getting deleted upon destruction - that's actually because Edje
reparents to the canvas upon its own deletion.
Adding this fix until we figure out if there is a better alternative.
Strictness of various Eolian APIs has been enhanced, for example
eolian_class_function_get_by_name now won't return anything if
you request an EOLIAN_PROPERTY and the found func is just an
EOLIAN_PROP_GET, and various APIs won't accept arbitrary inputs
like EOLIAN_UNRESOLVED or EOLIAN_PROPERTY now, instead you will
need to provide EOLIAN_PROP_GET, EOLIAN_PROP_SET or EOLIAN_METHOD
explicitly.
The purpose of this is to reduce potential bugs and fix ambiguous
behavior. Thanks to use of EINA_SAFETY, appropriate errors should
be printed into terminal when an API is used incorrectly.
Now you can't use the same syntax as you would for a method to
implement a property as whole, instead you need to specify the
getter and/or setter explicitly. This is to allow parent classes
to expand their properties without altering behavior of the child
classes.
Summary:
When insert newline, check the previous line has keyword.
If so, insert 2 spaces indent more.
Test Plan:
1. run elementry_test - Code Editor or Edi.
2. Type some code with keywords.
3. Type <Return>.
4. Check that the indentation of newline is correct.
Reviewers: ajwillia.ms
Reviewed By: ajwillia.ms
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4543
This doesn't change anything (in theory) but was to test the
box implementation. Conclusion: it's not much better than
elm_box. Also, homogenous mode isn't set because the layout
is completely broken (+ sets a min size equal to the object
size, thus can not resize down ever). The palette's objects
have the same size anyway.
This reverts commit 584e17ae84.
After talking to @herdsman (before xmas) we concluded that we
didn't necessarily want a generic version of efl_text_set/get
for elm_layout. Instead, each widget that should have a default
text part should implement text_set/get themselves (very simple).
Note that Efl.Ui.Text somehow does not "implement" efl_text when
looking at the eolian files. It works by composition.
Summary:
Added get function for getting the size of the scrollable panel.
Additionally, added some exception handling code in scrollable_content_size_set
Reviewers: woohyun, eunue
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4549
As we now support xdg_shell version 6 on the client-side, we need to
use the zxdg_toplevel_v6 function call to show window menus.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Adding sizing eval when gengrid min width and height is changed,
so need to re-evaluate properly.
Signed-off-by: SangHyeon Lee <sh10233.lee@samsung.com>
Summary :
If current realized item is changed to another block which
was unrealized, item still stay in realized states because
new block is unrealized.
so when adding item to new block, adding realized state check
to change block realized state correctly.
Test Plan :
The issue is happen in eflete edc group list view.
when you expand and contract the tree view, if child is
bigger then block size, items under the current tree still
floating on the child items.
Signed-off-by: SangHyeon Lee <sh10233.lee@samsung.com>
Summary :
As the child of layout and scroll interface user,
gengrid need to support content min limit feature to set min size
by layout sizing eval.
Test Plan :
Set elm_scroller_content_min_limit to gengrid and get min size off
gengrid object.
Signed-off-by: SangHyeon Lee <sh10233.lee@samsung.com>
Summary:
Elm.Widget.event_callback_add conflicts with Efl.Object.event_callback_add.
To solve this problem, "widget_" prefix is added to methods starting with
"event".
Reviewers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4521
Summary:
- In commit rEFL9f5e9ec7ca120242a92ac97fb20016263c152d8e
previous view is raised after item pop transition
so that current view's pop animation can be shown.
- But, previous view has to be in it's proper size
during transition because some of animation might
show previous view.
Reviewers: Jaehyun_Cho
Subscribers: cedric, conr2d, jpeg
Differential Revision: https://phab.enlightenment.org/D4535
Summary:
- When mirrored is set, horizontal box packs item
reversely, from right to left. However, index box
packs index item the same as before, from left to right.
This commit changes index box custom layout to sync
with other box.
Test Plan:
- enable mirrored UI, or use elm_config_mirrored_set(EINA_TRUE);
run elementary_test, "Index Horizontal".
- Observe index item packs in a same direction with box contents.
Reviewers: cedric, Hermet, jpeg
Subscribers: conr2d
Differential Revision: https://phab.enlightenment.org/D4512
Summary:
arr has been checked earlier so as to avoid when it is NULL.
If there is a possibility of being NULL earlier
then it should be checked even when freeing.
So added the NULL check before free.
@fix
Reviewers: singh.amitesh, bu5hm4n, tasn, cedric, raster, atulfokk, hyunseok, minkyu, Hermet, jpeg
Reviewed By: jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4537
Summary: return value of brace matching function no longer need free().
Test Plan:
1. run elementry_test - Code Editor or Edi.
2. Type some code with braces.
3. Check that closing brace has correct indent.
Reviewers: ajwillia.ms
Reviewed By: ajwillia.ms
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4540
in _state_sync() function, scrollable content's position is used to tell
whether the panel is open or not. in case of a top panel, for example,
it is considered to be open when the content's vertical position equals to zero.
however, this logic has a defect in that the position is always zero
if the content size is zero - not resized properly yet. it caused unwanted results.
this patch added some codes to check
1. if the panel's width or height is bigger than zero
2. if the box which contains panel contents is visible (resizable)
@fix
this ensures the integer "id" is at least set before using it, though
reality is it will be set, it's better to have less warnings and there
isn't any other way to silence this warning other that setting it.
On windows platform file path contain '\\' instead of '/'.
Test plan:
- on windows platform launch elemntary_test -to fileselector.
- type something into search entry.
@fix
This reverts commit 082ea96673.
As per mail from Andrii, and he's right:
From: Andrii Kroitor <an.kroitor@samsung.com>
To: Enlightenment developer list <enlightenment-devel@lists.sourceforge.net>
Subject: [E-devel] elementary callbacks hell
Date: Fri, 23 Dec 2016 18:03:58 +0200
Recently existing callbacks behavior was broken once again. This time by
https://git.enlightenment.org/core/efl.git/commit/?id=082ea9667343b7016d86143a625881a8c4aa30a4
Before that commit "changed" callback was triggered only on user
changes, after - on user changes and changes from code.
I understand that in some cases this flow is needed. But previously you
could simply trigger your callback after setting value to spinner from
code to get desired missing behavior.
On the other side - now you can't distinguish value changes made by code
from value changes made by user without dirty and painful to support
hacks. If you don't want your callback to be
triggered by elm_spinner_value_set you need to add some flag meaning
"change from code", raise it before every call of value_set, check it
inside callback, remove it after the call.
And if you want to call it from spinner "changed" callback..? Good luck
here. This is possible, but requires additional wrappers around
spinner_add and spinner_value_set and replacement with custom signals.
So this change added bigger problems than solved.
This led to a completely invalid layout when using the Ui.Box
widget. Clearly the patch hasn't been thought through and tested
properly.
No comment.
Fixes dc022d602d