Commit Graph

1857 Commits

Author SHA1 Message Date
Jean-Philippe Andre f79960839d layout: Implement missing edje APIs
This makes elm_layout implement:
 - efl_canvas_layout_signal_message_send
 - efl_canvas_layout_signal_process

This only transfers the calls from the elm widget to the internal
edje object.

PS: message_send is quite ugly in C...

Ref T5315

@feature
2017-08-08 11:10:56 +09:00
Jean-Philippe Andre 6864495c99 elm: Move elm_layout_sizing_eval to legacy
elm_layout_sizing_eval() marks an object as requiring recalc.

Unfortunately, it's been massively abused by various widgets into
actually doing the calc, or the min calc. So we end up with one API
that has 3 different definitions depending on the widget type:
1. Mark as requiring recalc (correct, respects doc, elm_layout)
2. Calculate min size and other size hints
3. Actually do some geometry modification

I believe we need to clarify these 3 requirements into 3 very clear
and specific APIs in elementary. Right now we have similar functions
in evas for 1 (evas_object_smart_changed) and 3 (smart_calculate).
But their exact definition also isn't necessarily what we want for
elementary.

Another clear problem is that layout_eval does not do any calculation
(in theory), so the "eval" word is a bit of a stretch here.

Once we're sure about the exact API we want, we can add this back to
EO and make it work across our EO widgets. For now let's just keep
the legacy API, and its EO overrides, as is.

Ref T5315
2017-08-08 11:10:56 +09:00
Mike Blumenkrantz f7278719c1 elm_win: set shadow geometry based on borderless state
@fix
2017-08-07 13:26:51 -04:00
Mike Blumenkrantz 56936c91c0 elm_win: simplify/fix recalc logic when changing csd
forcing a full eval here is unnecessary and broken since such an eval could
either change geometry in unexpected ways or fail to accurately change
the underlying canvas geometry

@fix
2017-08-07 13:26:51 -04:00
Marcel Hollerbach 66265c2f4d efl_ui_focus_manager: free iterator when done 2017-08-07 12:31:10 +02:00
Marcel Hollerbach 63393d344b efl_ui_focus_manager: fix leak when setting order
We should free the list when we set it again.
2017-08-07 12:31:10 +02:00
Stefan Schmidt dbf7057bca Revert "efl: terrible kludge so avoid termination crash on osx"
This reverts commit 9368eedd35.

The release is out so we can revert this bandaid again. In the hope to
find the real culprit and solution before the next release.
2017-08-07 11:53:00 +02:00
Amitesh Singh 40945d9859 elm: rename elm panes to Efl.Ui.Panes 2017-08-07 15:49:11 +09:00
Mike Blumenkrantz 6a6505106a elm_win: propagate window aspect hint in wayland 2017-08-04 16:15:43 -04:00
JinYong Park f2082c0412 layout: fix "elm,state,text,hidden" signal never be emitted
Summary:
 In _elm_layout_text_set function, text_signal_emit is called.
 But in that case, check text whether it is null or not null before call signal_emit.
 So "text" is not null always, and text_signal_emit's parameter "visible" is also always EINA_TRUE.

Reviewers: Jaehyun_Cho, cedric, jpeg

Reviewed By: Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5049
2017-08-04 15:33:27 +09:00
Jean-Philippe Andre 63f0dcc5fc layout: Fix compilation break
Oooops! This broke external apps!
2017-08-04 12:31:14 +09:00
Jean-Philippe Andre 4c8f87974c layout: Implement data_get from edje
This also implements size_min and size_max get.

Ref T5315
2017-08-04 11:52:17 +09:00
Jean-Philippe Andre 240cc9e501 edje: Move size_min/max and data to an interface
The new interface is:
  Efl.Canvas.Layout_Group

I'm not fan of the name.

Ref T5315
2017-08-04 11:52:17 +09:00
Jean-Philippe Andre 3e5cfb83c0 elm: Remove custom layout signal APIs
This merges them with the now standard interface:
  Efl.Canvas.Layout_Signal

Some wrapping work was required for legacy API which
takes no user_data in del() but instead returns it. The
new EO function, while harder to use, is more correct
(you can't delete the invalid callback by accident, and
this follows EO events design).

Another crazy wrapping was done in entry/text in order
to add the callbacks to 2 objects instead of just one,
and still return the user data.

As for Naviframe and Popup, those two widgets override
signal_emit to forward the call to another object than
the resize object, but not callback_add/del. So they
are definitely broken.

Ref T5315
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre ad7e16bcf4 layout: Use only legacy "elm_layout_sizing_eval"
This removes all uses of elm_obj_layout_sizing_eval.

Ref T5315
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre fb941c457c layout: Improve doc for theme_set
Ref T5315
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre 82e6100322 layout: Move Part_Alias struct to legacy
Part aliases need to be handled differently in EO.

Ref T5315
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre f0730f6f4c layout: Move edje_get to legacy only
Here's the reasoning:
 1. We will expose as many edje APIs as possible (and meaningful)
    through the elm layout class.
 2. Access to internal objects is usually risky, as it allows apps
    to bypass EFL in some ways, leading to potentially undefined
    behaviours.
 3. If the need arises we can still add a similar API back to EO,
    later.

Back to #1, it seems that the need for edje_get() was mostly to
call manual sizing functions, or the missing message_send(). I will
make sure these are accessible from the layout itself.

Ref T5315
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre aebd37cab8 layout: Remove sub_object_add_enable
Same as the previous patch. This was an ugly hack. Use another
one instead.

Ref T5315
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre a4940ae6c9 layout: Remove method theme_enable
This was an internal thing, ugly, replaced by another ugly
solution, but maybe less ugly.

Ref T5315
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre ed94e8b535 scroller: Implement default content part
This:
  efl_content_set(efl_part(scroller, "default"), obj)
worked fine, but, this:
  efl_content_set(scroller, obj)
didn't work as expected.

Thanks @JackDanielz for the report.

Note: There is a problem still... "default" should not work
      with efl_part. This is quite bad, actually. It should
      probably be "content" instead.
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre 7ba0ab5182 layout: Implement freeze and thaw from interface
This implements part of the interface
  Efl.Canvas.Layout_Calc
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre a4c3929894 layout: Implement cursor part APIs with efl_part
This makes layout parts implement Efl.Ui.Cursor.
This also adds the missing bool returns from that interface.

This removes 7 APIs from Elm.Layout.

Ref T5315
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre aeacb54c35 cursor: EO-ify elm_cursor API
This creates an interface and makes Elm.Widget implement it.
Next step: make elm_layout parts implement it.

Ref T5315
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre f63a564817 layout: Move edje_object_can_access to legacy
This is an API enabling accessibility on text(block) parts
in a layout. But it is said to have many issues. I can already
see that it only changes a flag but doesn't trigger any code
to create the appropriate objects, so definitely not fully
working.

According to @kimcinoo this may remain in legacy land for now.
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre 6df17b2ed0 edje: Split off calc APIs to an interface (EO)
Those APIs can then be used by Elm.Layout, hopefully
simplifying the API.

I wonder if the APIs should be prefixed "calc_" (as is)
or "layout_calc_". The extra "layout_" prefix would make
it common with other layout APIs (eg. signals, data,
size min/max, ...).

Ref T5315
2017-08-04 11:52:16 +09:00
Jean-Philippe Andre 796d4b138b elm: Make content and text aliases internal only
This removes the APIs from the EO API.

Ref T5315
2017-08-04 10:24:03 +09:00
Taehyub Kim 94d3fd3d82 win: implement efl_provider_find for EFL_UI_WIN_CLASS
Summary:
Implement efl_provider_find function for efl_ui_win class.
This will support to search window class by efl_provider_find function.

Reviewers: jpeg, cedric, Jaehyun_Cho, thiepha, woohyun, Blackmole

Reviewed By: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D5045
2017-08-04 10:24:03 +09:00
Jean-Philippe Andre a1509ab98d frame: Implement text set/get (EO only)
This is required for the default style which has a title.
2017-08-04 10:24:03 +09:00
Jean-Philippe Andre 999dbd9764 eo debug name: Use strbuf instead of slstr
This should be a little bit more efficient, even if more "risky"
in terms of leaks. The final API still looks exactly the same.
2017-08-04 10:24:03 +09:00
Jean-Philippe Andre 569ad0bac4 evas/edje/elm: Override debug_name in core classes
This is really only a demonstration of what kind of information
we can print with efl_debug_name_get(). Hopefully this can help
debugging with printf/ERR logs and even help with live debugging
inside gdb.

This shouldn't be used for other purposes than debugging, as the
exact string format is not defined.

@feature
2017-08-04 10:24:03 +09:00
Jean Guyomarc'h 9368eedd35 efl: terrible kludge so avoid termination crash on osx
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
2017-08-03 10:31:26 +02:00
Andy Williams 91293d3b25 elm_code: small optimisation for large files 2017-08-02 10:32:13 +01:00
Jiyoun Park c3d8a1d9f4 efl_ui_win: add error hanling code for malloc fail 2017-08-02 16:42:04 +09:00
Jean-Philippe Andre 3b8c60954e Revert "elm gesture layer - use fabs not abs when actually comparing floats"
This reverts commit 2d4d836018.

Don't pretend to fix an issue found by a static analyzer by
introducing another issue that even clang warns about.

Fixes:
elm_gesture_layer.c:2533: warning: using floating point absolute value
  function 'fabs' when argument is of integer type [-Wabsolute-value]
        if ((fabs(st->info.mx) > ELM_GESTURE_MINIMUM_MOMENTUM) ||
             ^
2017-08-01 20:03:20 +09:00
Shinwoo Kim 391a777c01 elementary: access overrides Accessible.state_set.get
The elm_access a widget makes primitive object accessible. If a primitive
object is not visible, then the elm_access should NOT have state VISIBLE, and
SHOWING. From now the elm_access is checking visibility of primitive object.
2017-08-01 19:52:38 +09:00
Jiyoun Park ca625aa323 efl_ui_win: add EFL_UI_WIN_SOCKET_IMAGE type check
elm_win_socket_listen api only work for EFL_UI_WIN_SOCKET_IMAGE type window.
    So it is better to add type check code.
2017-07-31 15:20:02 +09:00
Carsten Haitzler b1e9d46bcc elm code - handle alloc failure for line split
this culd optentially use large offsets before accessing the ptr thus
it may not segv inthe first page but actually work if positionoffsets
are large enouh, so handle this case explicitly.

@fix

found by PVS studio
2017-07-31 12:01:41 +09:00
Carsten Haitzler d639063b50 elm code - handle alloc failure for line split
this culd optentially use large offsets before accessing the ptr thus
it may not segv inthe first page but actually work if positionoffsets
are large enouh, so handle this case explicitly.

@fix

found by PVS studio
2017-07-31 12:00:45 +09:00
Carsten Haitzler 0efb70e317 elm theme - remove redundent check
found by PVS studio
2017-07-31 11:38:42 +09:00
Carsten Haitzler 2d4d836018 elm gesture layer - use fabs not abs when actually comparing floats
2 abs uses should have been fabs as they compe a src float with
anot her float.

found by PVS studio

@fix
2017-07-31 10:41:39 +09:00
Carsten Haitzler ae79052376 elm calendar - fix gmtime call to use an actual value
e85c92662b added this bug. before it was
always set to 259200 (first sunday after epoch).

found by PVS studio
2017-07-31 10:00:00 +09:00
Carsten Haitzler 7abf4715f2 efl ui text - remove useless else + free
string is null so no need to free. not a bug but cleaner and analysers
dont like it.

found by PVS studio
2017-07-29 11:11:21 +09:00
Carsten Haitzler 8b6e72bfad els box - remove rudundant double check
not a bug but checking something twice in a row isn't too useful

found by PVS studio
2017-07-29 10:56:53 +09:00
Carsten Haitzler 20333c7905 elm code - remove unneded extra check from copy and pasta it seems
extra check already done in if above - no need. looks like copy &
paste of the checks from above thus why it's there, but not needed.
not a bug, byt analysers dont like it so remove

found by PVS studio
2017-07-29 10:56:53 +09:00
Carsten Haitzler 9c507faf2a elm list - remove harmless extra null set to keep analysers happy
this was totally harmless and not an actual bug but it keeps analysers
happy.

found by PVS studio
2017-07-29 09:42:43 +09:00
Carsten Haitzler e85694f33b elm dayselector - remove double set of content var
this looks like a leftover from legacy to eo porting. it was harmless
but analysis hates it

found by PVS studio
2017-07-29 09:08:40 +09:00
Carsten Haitzler 5a1f8fdf41 elm code - remove double set of textlen
analysis doesnt like it, but not a bug

found by PVS studio
2017-07-29 09:08:40 +09:00
Mike Blumenkrantz b43a2d55e1 elm_table: do not propagate max size
evas table does not set max size, propagating this triggers unnecessary
callbacks

@fix
2017-07-28 15:40:47 -04:00
Mike Blumenkrantz 049d0c1f4c elm_box: use correct aspect ratio for HORIZONTAL layout
ratio should be flipped in this case

@fix
2017-07-28 15:40:47 -04:00
Mike Blumenkrantz 531422a2bb elm_box: use homogeneous layout if only one child exists
this should be a small speedup for a corner case of box use
2017-07-28 15:40:47 -04:00
Mike Blumenkrantz 812be4a43b elm_win: do not implement aspect_get()
this breaks aspect hints.

@fix
2017-07-28 15:40:47 -04:00
Daniel Hirt 2efa25511f Elm entry: fix call to set text via entry_set
Accidentally called the super here, so did not get routed to
'_elm_entry_text_set'.

Fixes T5803.
2017-07-28 12:36:07 +03:00
Amitesh Singh 0787b739cd efl.ui.image.zoomable: Add missing edje.group_size_min/max_get
This supresses the warnings when photocam is used as
an external edje object.
2017-07-27 19:06:27 +09:00
Marcel Hollerbach f2b6a67115 elm_widget: change to @inout
according to q66 this is correcter than ptr(..).

Anyhow this still leads to a bug in cxx that crashes compilation in cxx
examples, people are notified!
2017-07-26 18:56:59 +02:00
Marcel Hollerbach 01af4dd13b elm_widget: fix warning 2017-07-26 15:52:54 +02:00
Andy Williams 77db870b61 elm_code: Fix missing middle button selection paste
Resolves task T5520
@fix
2017-07-25 23:54:21 +01:00
Jean-Philippe Andre d4b2eb1e7f elm: Move calls to efl_destructor(efl_super()) to the end
When destroying any object, its parent class destructor should
be called after the subclass destructor has been called. Only
some extremely limited work may be done after the super call.

This commit makes sure that all efl_destructor() overrides in
elementary are doing operations in the right order.

Also, remove a return void.
2017-07-25 14:43:12 +09:00
Marcel Hollerbach dd883a7064 elm_widget: only emit events when there is really a changed manager
A manager change to NULL is to be used as "this object is not registered
anymore" call, which will happen quite regular during shutdown.
2017-07-24 23:40:38 +02:00
Marcel Hollerbach 6f0b79fe4b elm_widget: call the events after eval outself with new manager/parent
otherwise we might end up with a node_get error, since the widget where
the event is called on is still registered in the wrong manager
2017-07-24 23:40:38 +02:00
Marcel Hollerbach b49df7128a elm_widget: only set focus.manager if we are really registering
otherwise we might set focus.manager even if we are not registered
2017-07-24 23:40:38 +02:00
Marcel Hollerbach 47ce995637 elm_widget: give feedback if registration was successfull or not
with this we can whipe out the focus.manager field in elm.widget so for
the case that something goes wrong we only get the error message where
actually something went wrong, and not the whole bunch of follow ups
where the code assumes its registered but it isnt.
2017-07-24 23:40:38 +02:00
Andy Williams 292e9e9ecf elm_code: Fix crash with long lines
Also fixes issue where widget would sometimes blank when scrolling
@fix
2017-07-23 21:30:35 +01:00
Carsten Haitzler 17d33c7138 efl ui grid - handle invalid 0x0 fully if the grid size fails to do it
if efl_pack_grid_size_set is overridden and somehow allows 0x0 to
still happen then handle this caase and skip the layout.

fix CID 1374317
2017-07-23 19:42:06 +09:00
Carsten Haitzler b2809026bb elm cnp - check if selbuf is null or not and skip copying if null
this should fix CID 1377536
2017-07-23 18:56:43 +09:00
Jean-Philippe Andre dcf751bd3d hover: Return valid slot for main_menu_submenu
Fixes T5760
2017-07-21 16:18:36 -04:00
Mike Blumenkrantz 5070ecc99a elm_win: instantiate csd frame after creating pointer surface
csd attempts to create sw cursors if the pointer surface doesn't exist,
so create the pointer surface before the csd to avoid duplicate cursors

 #TheDisappointer
2017-07-21 16:17:53 -04:00
Mike Blumenkrantz 5acd75c0c9 elm_win: do not set invalid geometries on the window object
clamping to 1x1 is not valid, neither is trying to always position at 0,0

 #IGot99TicketsBut1x1AintOne
2017-07-21 16:17:53 -04:00
Mike Blumenkrantz 10516fa3fd elm_win: hide pointer surface on mouse out
this should be unmapped so edje stops trying to render to it, though
at some point it could be optimized to not hide and just reuse the buffer
when showing again

 #IGot99TicketsBut1x1AintOne
2017-07-21 16:17:53 -04:00
Mike Blumenkrantz d67bdc92b7 elm_win: show pointer canvas after setting cursor
setting cursor calls resize, which is what sets the surface size

 #IGot99TicketsBut1x1AintOne
2017-07-21 16:17:53 -04:00
Marcel Hollerbach 344a049ddb elm_widget: do not check for the visibility
it seems like the visibility is evalulated from different parent
relations, Just because the box (that is a container of a element) is
not visible, does not mean that the element in it is also not visible,
this somehow comes back to the box beeing deleted, the children beeing
reparented in evas, but not in elm. This is for now just a quickfix,
since those calls are just for optimization.

This fixes a load of errors once the elm_test window is closed

@fix
2017-07-20 12:00:13 +02:00
Jean-Philippe Andre dccdd20335 elm: Fix a safety error message
Happens when shutting down E
2017-07-20 14:46:49 +09:00
Woochan Lee 6d31f5c7fd multibuttonentry: Fix item resource clean up logic.
Summary:
There are four cases where items are deleted.

1. Select item and push back button.
2. Delete "X" part of item.
3. Calling elm_object_item_del().
4. MBE deleted.

Previous logic is can't support for all cases.

below problems were there.

eina_list_remove() called twice.
list data free twice.

@fix

Test Plan: elementary_test -> multibuttonentry test.

Reviewers: jpeg, cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5030
2017-07-19 13:59:42 +09:00
Marcel Hollerbach 1c9762d8ca elm_widget: do not register disabled logical nodes
this reduces the load of useless logical trees that

ref T5753
2017-07-18 17:51:38 +02:00
Marcel Hollerbach 92bad54778 elm_widget: eval all children if the disable property has changed
since all children could have a new register state in the manager

fix T5753
2017-07-18 17:51:38 +02:00
Marcel Hollerbach 8e2f5e8642 elm_widget: disable is a property across the tree
if a widget is disabled its children are also meant to be disabled.

ref T5753
2017-07-18 17:51:38 +02:00
Jean-Philippe Andre 521f41f536 win: Fix main menu when not in framespace
On OSX the framespace and CSD (Client-Side Decorations) are not
supported at all... I am not able to test this case. This patch
restores the main menu functionality based on pre 1.19 themes,
where it was located inside win.edc (app content) and not in
border.edc (framespace).

Note that the initial size of a window may be wrong, eg as in
  elementary_test -to "Main Menu"

Fixes T5734 (hopefully!)
2017-07-18 18:42:16 +09:00
Daniel Hirt 4923945f81 Text: move Annotation type to Efl.Text.Annotate namespace 2017-07-17 17:38:28 +03:00
Daniel Hirt d5f781da2b Efl text: replace all usages of cursor handle to same type
Changes cursor handle name from 'Efl.Text.Cursor.Cursor_Data' to
'Efl.Text.Cursor.Cursor'.
Also, replace all usages of Efl_Canvas_Text_Cursor
with Efl_Text_Cursor_Cursor as the handle for the cursor.
2017-07-17 16:51:45 +03:00
Daniel Hirt 22c39d4ee5 Ui internal text interactive: handle signed cursor position
CID 1377551.
2017-07-17 16:50:31 +03:00
Daniel Hirt e7f7636ac1 Ui text: don't send focus action to cursor on init
It made the cursor animation start on init, even if widget wasn't
focused.
2017-07-17 16:50:31 +03:00
Daniel Hirt 02a607f360 Ui text: set default color (white) 2017-07-17 16:50:31 +03:00
Jean-Philippe Andre 9dddc075d4 win: Amend previous commit about modifiers
The code was invalid, so making it valid now. Explicitely marking
the modifiers as unused, as mentionned in the documentation as
well.

See 9baa8752a9
2017-07-17 16:38:38 +09:00
Jean-Philippe Andre 9baa8752a9 win: Fix ABI compatibility for grab modifiers
This fixes an ABI change when moving from unsigned long long
modifier mask to a simple enum. This is a fix for the release
of EFL 1.20.
2017-07-17 14:24:30 +09:00
WooHyun Jung 245940c093 Revert "elm_widget: separate elm_widget_item codes from elm_widget.c"
This reverts commit 4f8d20c826.
I'll apply this after finishing of release.
Thanks JP to give notification.
2017-07-17 13:45:08 +09:00
WooHyun Jung 4f8d20c826 elm_widget: separate elm_widget_item codes from elm_widget.c
This will help to focus on creating efl_ui_widget class work.
And, we need to change all the Elm_Widget_Item related logics to
factory or something else.
2017-07-17 11:22:46 +09:00
Andy Williams 665679bc42 elm_code: add missing selection signals 2017-07-15 21:29:48 +01:00
Amitesh Singh ffa2cd5c75 efl.ui.image.zoomable: mark setter of img_region property as eo api
thanks to stefan for reporting.
2017-07-14 19:38:52 +09:00
Stefan Schmidt 625e1fae0a elm: naviframe/prefs : do not include non-public header files
We are not shipping those (part of the private eo header files) and thus
we can not include those either. Simply removing them fixes the problem
I see with our ABI checker and it still passes al build tests I have.
2017-07-13 13:57:06 +02:00
Marcel Hollerbach a95fd2c4b0 efl_ui_focus_manager: this whole thing is not just eo api its also beta 2017-07-13 10:37:34 +02:00
Marcel Hollerbach e1b8bd8c8b elementary: no need to provide the new legacy api
The api is beta AND only usable in eo, so no need to add those apis here
2017-07-13 10:23:56 +02:00
Amitesh Singh 98b9bb0da5 win: fix compiler warning 2017-07-13 11:16:48 +09:00
Jean-Philippe Andre 2ee389c54b Revert "colorselector: Avoid API call on NULL object"
This reverts commit b156f606e4.
The change should have been in EO itself. See the previous
patch.

Ref T5715
2017-07-12 11:20:59 +09:00
Jean-Philippe Andre b156f606e4 colorselector: Avoid API call on NULL object
Solves this error:
  ERR<2321>:eo ../src/lib/efl/interfaces/efl_pack_layout.eo.c:1
  efl_pack_layout_request() Unable to resolve op for api func
  0x7fffed16dba0 for obj=(nil) ((null))

Fixes T5715
2017-07-12 10:24:11 +09:00
Jean-Philippe Andre 231ef8142b elm: Fix fileselector button "hidden files"
Fixes T5465

@fix
2017-07-11 19:00:02 +09:00
JinYong Park 10d5f11a14 popup: fix sizing eval logic when scrollable set TRUE
Summary:
When scrollable set TRUE,
scroller must be calculated its size except using item.
If content is removed, scroller doesn't calculate its size, so it has previous size.
So there is a empty space in this case.

@fix

Test Plan:
1. elementary_test -to popup
2. open "popup-center-title + list content + 2 button (with delete content)"
3. click "Delete" button
4. compare between scrollable set true and false

Reviewers: herb, singh.amitesh, jpeg, cedric, conr2d

Differential Revision: https://phab.enlightenment.org/D5010
2017-07-11 15:45:27 +09:00
Amitesh Singh 7fa14e5cc6 genlist: fix multiple focus edje signal issue
We need focus edje signal when item is focused or the already
focused item realizes. its wrong to call focus signal on
_elm_genlist_item_state_update()

fixes T4969
2017-07-11 15:17:09 +09:00
Marcel Hollerbach 0fdc6a854a efl_ui_focus_manager: fix leaking safed_order 2017-07-10 20:32:07 +02:00
Marcel Hollerbach 23203c9e72 elementary: fix leaking manager objects
they are now automatically destroyed once the object is deleted.
2017-07-10 20:32:07 +02:00
Amitesh Singh 0d6cdd661c Efl.Ui.Image: fix crash on passing NULL file in file_set()
img was crashing on elm_image_file_set(image, NULL, NULL).

fixes T5697
2017-07-10 15:28:31 +09:00
Mike Blumenkrantz 804ce5f514 elm_cnp: fix selections for wl windows and FAKE wins
don't use hardcoded seat names and attempt to use wl protocol for
FAKE wins
2017-07-07 15:22:24 -04:00
Mike Blumenkrantz f052a2c02f elm_cnp: use local cnp when elm_cnp owns the selection
no need to use protocol to send an app's own selection to itself
2017-07-07 15:22:24 -04:00
Mike Blumenkrantz fe48334c59 elm_entry: don't use window_id to determine type of window
there's a real function for this...

ref a173efd0a9
2017-07-07 15:22:24 -04:00
Mike Blumenkrantz 378ac8b6aa elm_entry: don't update PRIMARY selection under wayland
this doesn't exist yet, and elm_cnp forces PRIMARY updates to overwrite
CLIPBOARD which is not good

@fix
2017-07-07 15:22:23 -04:00
Mike Blumenkrantz 5ffa2e7922 elm_cnp: mark x11 selection as lost when selection is lost in event
do not pretend that a widget maintains the selection when notified that
the selection has been lost

@fix
2017-07-07 15:22:23 -04:00
Mike Blumenkrantz 4be19d87f4 elm_win: remove engine checks from window_id_get()
if these exist then just return the id
2017-07-07 15:22:23 -04:00
Mike Blumenkrantz 0ea3d0daaa elm_win: remove engine checks from wl_window_get
if there's a win, return it, otherwise this returns null anyway
2017-07-07 15:22:23 -04:00
Mike Blumenkrantz 81adac88dc elm_win: manually create a wl2 window for FAKE wins under wayland
this enables elm_cnp to function using protocol
2017-07-07 15:22:23 -04:00
Jean-Philippe Andre f8d8136b2c win: Avoid CRI message before finalized
Test case was Bg EO API in elm_test
2017-07-07 15:44:51 +09:00
JinYong Park d6652c1138 popup: fix wrong signal emit when remove all button
Summary:
In visuals_set function,
check action_area is NULL, and signal emit action_area,visible/hidden
So, before call visuals_set, action_area should be deleted.

Test Plan: Actually, action area has not min size, so it couldn't be observed.

Reviewers: herb, singh.amitesh, jpeg, cedric, conr2d

Reviewed By: jpeg

Differential Revision: https://phab.enlightenment.org/D5007
2017-07-07 15:44:51 +09:00
Jean-Philippe Andre 242127a96b evas,edje,elm: Mark all legacy objects as such 2017-07-07 13:21:18 +09:00
Andy Williams ada147da71 elm_code: Fix number parsing to include legal separators
This also allows rust to use underscore!
@fix
2017-07-06 17:19:14 +01:00
Andy Williams 961c173f0f elm_code: Fix rust syntax to include types 2017-07-06 17:18:47 +01:00
Amitesh Singh 2faeffde71 efl.ui.image: fix the old align behaviour in img.
After ab23a53094, evas_object_size_hint_align_set()
has stopped working on elm img and that patch was perfectly right
to do so but we don't change the old behaviour.
This patch is an effort to make evas_object_size_hint_align_set()
to work with elm img again.
make sure not to mix both eo apis and legacy apis.

Thanks to dave for reporting and jpeg to show the right fix.

fixes T4635
2017-07-06 18:35:06 +09:00
Jean-Philippe Andre 5a922f4afa elm: Don't alias in efl_part()
Inside efl_part() we don't know whether we are dealing with a text
or content API, so we can't actually guess the proper alias.

The legacy API should have already dealt with aliasing at this point.
The EO API should not use those aliases.
2017-07-05 20:30:21 +09:00
Jean-Philippe Andre 9b667ed062 elm: Forbid calls to efl_part(obj, NULL)
This in theory should only affect the EO API usage. In EO
we don't want efl_part() to be used for NULL part. In other
words, there is no "default" part in EO objects. Instead, those
functions like text_set or content_set should simply be
implemented by the object themselves.

The legacy API on the other hand will make sure that the
"part" argument is set to a non-NULL value before reaching
this point.
2017-07-05 20:21:08 +09:00
Jean-Philippe Andre 075b4a7a0c elm: Remove EOLIAN tags in some files
Some functions were marked as EOLIAN when in fact they were
used by the ELM_PART override APIs.
2017-07-05 20:07:29 +09:00
Daniel Hirt 544fedaeba Elm layout: only allow legacy for using NULL text parts
This is a follow-up to a4b79fdbe1.

efl_part no longer supports NULL parts.
NULL text parts are now aliased in legacy code beforehand.

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2017-07-05 20:07:29 +09:00
Jean-Philippe Andre 68ad235f4e win: Try to fix some resizing issues with main menus
Omg this was a pain... The code is complete spaghetti and the
fact that the main menu is now in the framespace doesn't help
either. With this patch and the previous one (about ecore_evas_x)
Edi should be able to open correctly at the proper size and with
a visible menu.

This patch introduces a lot of changes so it'll need testing
before we accept it fully.

Fixes T5482
2017-07-05 18:46:38 +09:00
Jean-Philippe Andre 4488c51c5f win: Fix some sizing issues with main menu
This should fix issues when the main menu is wider than the
window content. This assumes that the menu is horizontal and
aligned with the client content.

The theme should probably handle this case better but right
now I am lost in the spaghetti resizes happening between
edje, elm, evas and X...

I am not very happy with this patch, and I think border.edc
needs some love in order to make it more robust and simpler
to read.

Ref T5482
2017-07-05 17:43:59 +09:00
Jean-Philippe Andre a4b79fdbe1 layout: Fix default content part
This fixes call to:
  elm_layout_content_set(ly, NULL, obj);

This only affect this legacy API, not the EO interface.

Thanks Dave for the report!

Ref 59081043a8
2017-07-04 11:49:31 +09:00
Andy Williams 8b8a43759c elm_code: Add rust syntax 2017-07-03 22:17:07 +01:00
Woochan Lee b7e51c7dc4 elm_spinner: Entry hide when inc/dec button pressed.
Summary:
The entry cursor does not disappear when the user pressed(long press value change case) inc/dec button.

@fix

Test Plan: elementary_test -> spinner.

Reviewers: cedric, jpeg, woohyun

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4997
2017-07-03 16:57:22 +09:00
Marcel Hollerbach 9600542547 elm_gengrid: remove duplicated code 2017-06-30 10:27:45 +02:00
Marcel Hollerbach f046394d0f elm_gengrid: refactor duplicated code
this brings the simple selection move into a single spot
2017-06-30 10:27:45 +02:00
Marcel Hollerbach 31c11925eb elm_gengrid: refactor single selection move 2017-06-30 10:27:45 +02:00
Marcel Hollerbach a7ca960025 elm_gengrid: refactor focus movement
This removes duplicated code and brings it into a smaller way more
readable function
2017-06-30 10:27:45 +02:00
Marcel Hollerbach 377311cd66 elm_gengrid: gengrid never sets the focus objects this is always NULL 2017-06-30 10:27:45 +02:00
Marcel Hollerbach 65feeb1b0b elm_gengrid: refactor reorder mode
Its breaking the logic down into 3 little functions that could be reused
later. Overall this reduces the code duplication
2017-06-30 10:27:45 +02:00
Marcel Hollerbach 452d109627 elm_fileselector: correct the focus chain 2017-06-30 10:26:25 +02:00
Jean-Philippe Andre 59081043a8 elm: Always pass valid part name inside part APIs
This affects the legacy content_set/get/unset part APIs. This
should avoid some unwanted ERR messages in case an elm_object_
API is used on an elm widget that doesn't implement said API.

What this does is request the widget for the name of the default
part if NULL was passed in. Since some widgets are not elm_layout,
they have to override the API themselves, which is why I made it
an internal EO API (rather than a series of efl_isa()).

In theory, part should never be NULL when reaching the internal
implementation code in the widgets, at least for content.

In EO, efl_part(obj, NULL) should be invalid.

Ref T5629
2017-06-30 14:37:54 +09:00
Sungtaek Hong 82a955be90 elm_entry: use layout text/content aliases when text_set/get content_set/get/unset
Summary:
- elm_entry has elm.guide text part and it can be set by "guide".
- However when using text_aliases_get, this cannot be found.
- Add elm_obj_elm_layout_part_aliasing_eval() internal APIs to make entry
  use proper aliases.

Test Plan:
1. Run elementary test
           2. Observe search entry has guide text with "guide" part.
           3. Run Entry 8.
           4. Observe "elm.guide" part also works.
           5. Observe "icon" and "end" part works.

Reviewers: id213sin, herdsman, jpeg

Reviewed By: jpeg

Subscribers: conr2d, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4962
2017-06-30 14:37:54 +09:00
Jean-Philippe Andre 9452a4ac49 widget: Avoid ERR in elm_object_content_ APIs
If content_part_{set,get,unset} are called on a widget that
is not a layout (or flip, and a few others), then some ERR
messages would be printed out.

We hide these ERR messages as all elm_object APIs should be
callable on an object for which elm_object_widget_check()
returns true.

Ref T5629
2017-06-30 14:37:54 +09:00
Amitesh Singh 0141417d5d genlist: move to next focusable/selectable item when looping
this fixes a bug in genlist when scrolling is enabled and
items at top and bottom are disabled. Focus behaviour is not normal
in case up arrow is pressed when focus is at the top enabled item
or down key is pressed when focus is at bottom enabled item.

fixes T5576
2017-06-30 12:21:20 +09:00
Daniel Hirt c0e4a218dd Elm layout: fix broken text part name resolving
This adds a few workaround to overcome the efl_part port.
Quite a few layouts got broken in some specific cases.
2017-06-30 00:20:10 +03:00
Jaehyun Cho ba91b00aa8 els_tooltip: Remove infinite job calls
Summary:
When tooltip or content size is 0, tooltip reconfigure job is called infinitely.
This patch removes the infinite job calls.

Test Plan:
See following patch, test case "Tooltip" -> "Tooltip with no min size"

Reviewers: zmike

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4982
2017-06-29 17:14:18 +09:00
Jean-Philippe Andre 65644d074e elm_code: Fix a compilation warning
warning: expression result unused; should this cast be to 'void'?
[-Wunused-value]
2017-06-29 16:02:36 +09:00
Amitesh Singh 261d3319df spinner: don't allow dragging if widget is disabled
fixes T5569
2017-06-29 14:43:43 +09:00
Shinwoo Kim 921c692f86 elc_popup: atspi - make popup label accessible
The application could customize default behavior of popup label.
There was no way to get the popup label so far.
2017-06-28 09:25:08 +09:00
Andy Williams 77800dd9b4 elm_code: fix whitespace highlighting 2017-06-27 16:19:16 +01:00
Andy Williams a7830b9c42 elm_code: Add a matched token so we can highlight searches
Should make dense matches in a text editor clearer.
2017-06-26 22:17:07 +01:00
Jihoon Kim 5b19dfafe7 Add since tag in elm_entry_prediction_hint_set 2017-06-26 17:53:04 +09:00
Jihoon Kim 1dcf2c814c elm_entry: Add prediction hint API
prediction hint can be used to provide an intelligent reply suggestion.

@feature
2017-06-26 13:44:58 +09:00
Andy Williams 06d2d04092 fix issue with patch D4981 2017-06-25 10:43:26 +01:00
Mike Blumenkrantz 990a9d485d elm_list/genlist/gengrid: don't unselect items when moving the mouse out of them
this seems wrong since it's using smart object geometry to determine
event-based positioning within an edje object. considering it from a user pov,
it definitely is wrong because why would you deselect items based on mouse
movement?

ref D2622
ref da81eff897

@fix
2017-06-23 17:43:44 -04:00
Mike Blumenkrantz 34ce5d648f elm_win: access wl seats in a more portable way
seat names are not guaranteed to be the same in every compositor so
this should not be hardcoded
2017-06-23 17:43:44 -04:00
Mike Blumenkrantz fb5cb4d5c3 elm_cursor: store and reapply non-elm cursors when setting an elm cursor
when using elm with non-elm objects, any custom cursors would previously be
destroyed by any elm_entry widget upon mouse-in

@fix
2017-06-23 17:43:44 -04:00
Mike Blumenkrantz 05e74a030b elm_box: unpack objects from internal evas box before elm reparent
this ensures that smart_parent_get() will not return the evas box for
any widget which overrides parent apis
2017-06-23 17:43:44 -04:00
Mike Blumenkrantz b4057ef6cc gengrid: implement reusable content based on genlist implementation
@feature
2017-06-23 17:43:44 -04:00
Amitesh Singh 488e1c20e9 Efl.Ui.Image.Zoomable: move legacy APIs at the bottom of the file. 2017-06-23 13:11:54 +09:00