Commit Graph

15837 Commits

Author SHA1 Message Date
Mike Blumenkrantz bd41e4626f efl-wl: don't leak xkb mmaps when running under x11
ref a32735e9a7
2018-01-24 16:31:26 -05:00
Mike Blumenkrantz a32735e9a7 efl-wl: create and maintain xserver-based keymap and keyboard states under x11
when run in a non-wayland environment, it's necessary to do some extra work
in order to guarantee that the keymap remains the same in the compositor as
in the xserver and to also guarantee that modifier states are accurately
applied even when the compositor is not actively focused

fix T6631
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz 6e4c3b0445 efl-wl: use image border to optimize surface rendering with 1 opaque rect 2018-01-24 16:18:51 -05:00
Mike Blumenkrantz 093aecd75e efl-wl: unset kbd mods changed flag after sending modifiers
@fix
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz 4a32e2456e efl-wl: fix no-op of setting keyboard enter on already-entered surface
@fix
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz a524ab1fe3 ecore-x: add some useful xkb function wrappers
@feature
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz b28d6ac5e6 ecore-x: re-add implementation of ecore_x_connection_get()
this symbol has been missing since the removal of xcb

@fix
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz 067ec7bd5c ecore-x: filter XkbNewKeyboardNotifyEvent before emitting ecore-x event
this is only relevant to watchers of the ecore-x event if there is a keycode
change

@fix
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz 4b38020f89 ecore-x: add more info to Ecore_X_Event_Xkb event
this event corresponds to xkb state changes which are useful when working
with xkb instances

@feature
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz 10fc36614f efl-wl: add functionality for directly passing through xkb objects
when used in enlightenment, it's necessary to be able to directly use
the compositor's keyboard state to ensure consistency when keypress events
are not propagated

@feature
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz 2f4a89cb0e efl-wl: add docs for smart callbacks 2018-01-24 16:18:51 -05:00
Sungtaek Hong 549c781310 eolian_gen: remove reference to elm_entry because it is not installed
Summary:
elm_entry.eo is not installed to system directory like
         "/usr/local/share/eolian/include/elementary-1", and
         eolian_gen tries to refer elm_entry.eo which results in failure.

Test Plan:
Create any eo class file which inherits Efl.Ui.Layout.
           eolian_gen eo_file.eo
           observe eolian_gen finishes

Reviewers: jpeg, herdsman, woohyun, Jaehyun_Cho, cedric

Subscribers: conr2d, id213sin, JongminLee

Differential Revision: https://phab.enlightenment.org/D5760
2018-01-24 18:51:26 +09:00
YeongJong Lee 8eda161f67 efl_ui_focus_layer: avoid a call to NULL
Summary:
efl_ui_focus_layer_enable_set(obj, EINA_FALSE) can be called before
registered_manager assigned

Test Plan:
1. EINA_LOG_LEVELS=eo:2 elementary_test -to menu
2. terminate the elemetary_test
3. check that there is no focus_manager warning about a call to NULL

Reviewers: bu5hm4n

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5759
2018-01-24 18:49:04 +09:00
Sungtaek Hong cb25699dac efl_ui_legacy: add new interface to indicate legacy widget
Summary:
For now, how to check whether a widget is legacy or not
is to check flags in private data or static flag, which is set
during elm_legacy_add.
If Efl.Ui.Legacy interface is added, it can be easilly checked
by efl_isa(obj, EFL_UI_LEGACY_INTERFACE)

Reviewers: woohyun, jpeg, cedric, Jaehyun_Cho

Subscribers: conr2d, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5748
2018-01-24 18:14:26 +09:00
YeongJong Lee f6ba674cd8 efl_ui_win: Avoid a call to NULL
Summary:
parent_get and smart_parent_get are called in parent_widget_get
this also remove the duplicated code

Reviewers: jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5757
2018-01-24 15:36:08 +09:00
Bryce Harrington 692136202f eina: Make return doxygen consistent
Summary:
Ensure @return defines error returns consistently.  In several cases the
errors were explained in the body but not mentioned in the @return docs.

Drop redundant return value documentation for clarity.  Some routines
were defining the return values both in @return and in the doxygen body.

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5756
2018-01-24 11:35:01 +09:00
Marcel Hollerbach 8d1b9d4f9e efl_ui_focus_manager: listen to deletion for regular and logical
otherwise we might exit with a load of errors
2018-01-23 21:27:45 +01:00
Marcel Hollerbach b2be688ccc elm_genlist: prepare the item when its set
so the border element is set accordingly on the parent manager which
then can be picked up for focus relations.

ref T6453
2018-01-23 21:27:45 +01:00
Marcel Hollerbach 1bdbf207f1 efl_ui_focus_composition: only rely on manager
for the case of a custom manager this resulted in wrong behaviour.
2018-01-23 21:27:45 +01:00
Chris Michael 382e1a8957 elput: Fix null pointer dereference
Coverity reports this as a null pointer dereference, so check for
'seat' existence before comparing with strcmp

Fixes CID1385369

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-01-23 07:00:19 -05:00
Youngbok Shin 32f8e0c726 elementary config: Fix to use ELEMENTARY_BASE_DIR for configure path
Summary:
"--with-elementary-base-dir" option was ignored by recent patches on elm_config.
The macro is being used in elm_theme. It should be syncronized.
The default value of the macro is ".elementary".

@fix

Test Plan: N/A

Reviewers: raster, cedric, jpeg

Reviewed By: jpeg

Differential Revision: https://phab.enlightenment.org/D5755
2018-01-23 11:27:55 +09:00
Mike Blumenkrantz ff1a0475c3 ecore-x: add more null checks for functions
@fix
2018-01-22 17:34:37 -05:00
Mike Blumenkrantz 7c087d209a ecore-x: perform internal shutdown on io error if callback is set
avoid crashing in callback when referencing dead display or handling events

@fix
2018-01-22 17:34:37 -05:00
Mike Blumenkrantz d555c6c903 ecore-wl2: correctly translate spacebar keyname into key events
fix T6620

@fix
2018-01-22 13:04:15 -05:00
Chris Michael d1a7dd5e42 ecore_drm2: fix seat matching when checking for a device with a null seat
Summary: Check to make sure that the seat from the matching device is still null.

Test Plan: Make sure that devices are not being rejected while on seat1. This depends on another patch

Reviewers: ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: ManMower, devilhorns, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5711
2018-01-22 11:26:13 -05:00
Chris Michael 4e2406ed3b ecore_drm2: Only use a virtual terminal on seat0
Summary: Only seat0 supports virtual terminals.

Test Plan: Make sure enlightenment does not error out on non-seat0 due to a virtual terminal error. Enlightenment will not start yet on seat1 with this alone

Reviewers: ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: ManMower, devilhorns, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5710
2018-01-22 11:25:15 -05:00
Shinwoo Kim 5d8f2df24b elm: Fix typo checking ecore_evas for efl_access_component_extents 2018-01-22 22:07:57 +09:00
Myoungwoon Roy, Kim 0a5b15ccac ecore_main: Check for null ptr deref
Summary: This patch fixes a tentative crash owing to dereference of fd_handler.

Test Plan: Execute test suite

Reviewers: cedric, raster, stefan, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5754
2018-01-22 21:27:20 +09:00
Jean-Philippe Andre 2c66616179 genlist: Avoid a call to NULL
elementary_test -to genlist
-> LOTS of warnings, when creating the genlist, as the items aren't
ready yet. This just avoids the WRN as recalc will happen later anyway.
2018-01-22 20:38:37 +09:00
Stefan Schmidt 131ddded60 efl_selection_manager: fix compilation on osx after rename
In commit c91ae98fd3 data was renamed but
the ifdefed osx part forgotten to update.
2018-01-22 12:15:19 +01:00
Myoungwoon Roy, Kim 1b7089a26b ecore_evas: Check for null ptr deref
Summary:
This patch fixes a tentative crash owing to ptr dereference.
Unlike ecore_evas_object_cursor_set and ecore_evas_object_cursor_device_set,
ecore_evas_cursor_set uses Ecore_Evas *ee before calling internal function which
internally checks null ptr dereference of Ecore_Evas *ee.

Test Plan: Executes test suite

Reviewers: cedric, raster, stefan, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5753
2018-01-22 18:28:24 +09:00
Myoungwoon Roy, Kim 6629df5e67 ecore_anim: Check for null ptr deref
Summary:
This patch fixes a tentative crash owing to null ptr dereference
ecore_animator_freeze() has a same patch already.

Test Plan: execute test suite

Reviewers: cedric, raster, jpeg, stefan, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5752
2018-01-22 17:07:58 +09:00
Carsten Haitzler d309687865 fix break of hoversels
this fixes T6627
2018-01-21 19:26:38 +09:00
Vincent Torri 0623618f73 elementary: fix compilation of efl_selection_manager on windows
Test Plan: compilation

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5751

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2018-01-19 13:36:13 -08:00
Derek Foreman 520821e432 wayland: Reduce number of unneccessary display flushes
b48781aa6c fixed multiple bugs where the
display wasn't flushed correctly, however it was a little overzealous.

Some of the flushes were added after calls that only updated internal
state, some in internal functions in which the caller was already going
to flush, and some were after wayland protocol calls that are double
buffered anyway and won't do anything until a following commit.

Also, I've removes at least one long standing flush where the recently
added flush is in a better location than the original.
2018-01-19 12:40:40 -06:00
Jean-Philippe Andre 4153320476 widget: Ooops! Fix focus break in previous patch.
Sorry... Weird that elementary_test worked fine. I might have badly
tested.
2018-01-19 17:48:45 +09:00
Jean-Philippe Andre 20570f74d3 widget: Move on_focus_update to Focus.Object
Following @taxi2se's recommendation. This is indeed a focus method, and
Widget already inherits from Focus.Object.

Ping @bu5hm4n who probably wants to adapt this further.

Ref T5363
2018-01-19 17:30:04 +09:00
Jean-Philippe Andre c35f257bf2 widget: Remove item from on_focus_update
It's legacy stuff, and always NULL.
2018-01-19 17:17:01 +09:00
Jean-Philippe Andre a465f4d878 widget: Use enum for orientation_mode
This was proposed by Dave on the ML, I think it makes sense. Right now
the enum is just like the boolean, feature-wise, but it makes more sense
semantically (mode is not a bool) and allows for future extension (eg.
only apply orientation update for landscape vs. portrait modes).

There is absolutely zero testing for this in our existing codebase. Yay.
2018-01-19 16:19:36 +09:00
Jean-Philippe Andre 9ceb9419af cxx: Fix a trivial warning 2018-01-19 15:59:21 +09:00
Cedric BAIL e9bc9c920a elementary: simplify Efl.Ui.Text.Factory.Emoticons. 2018-01-18 10:48:21 -08:00
Daniel Hirt 4a905a22a4 Canvas image: add Efl.Canvas.Text.Factory + use in Ui.Text
This interface has a simple 'create' method to create Efl.Canvas.Object
given a key.
This is used higher-up in Ui.Text in the next commit.

Ui text: add ability to set item factories

Added API to set an item factory object.
This is similar to the previous item providers (that worked with
callbacks).

You instantiate a factory object and set it on the Ui.Text object.
Each factory implements the "create" method from
Efl.Canvas.Text.Item_Factory.

This also includes 3 public factories (Image, Emoticon and Fallback):
  - Image factory: creates images from added entries (key strings)
  - Emoticon factory: creates emoticons by querying the theme
  - Fallback: creates image, then falls back to emoticon

If no factory is set, then the fallback (internal) factory is used.

See the added "Ui.text Item Factory" test in elementary_test for an
example of usage.

@feature
2018-01-18 10:20:28 -08:00
Daniel Hirt 2eac0dd89d Edje: remove item provider from eo api 2018-01-18 10:20:28 -08:00
Mike Blumenkrantz 7a3ec89fd2 elm_win: move wayland display flush to after method calls
ref b48781aa6c
2018-01-18 10:47:43 -05:00
Bryce Harrington 77dc9ab874 eina: Clarify that Eina_Matrix_Type can describe any matrix
Summary:
The Eina_Matrix_Type enum is returned by eina_matrix4_type_get and
eina_matrix2_type_get; it is not Matrix3-specific.  Update doxygen
accordingly.

Reviewers: devilhorns

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5744
2018-01-18 08:19:08 -05:00
Bryce Harrington 5f59a76587 eina: Cleanup spelling/grammar/punctuation for Eina List
Summary:
This fixes some typos and misspellings, massages grammar in a few
places, tidys up a little whitespace, and fixes incorrect docs in a spot
or two.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5745
2018-01-18 08:16:52 -05:00
Daniel Kolesa 1017f37de7 eolian: fix redefined function checks
For one, the hash has to be populated once per inheritance tree
and the skipping on already-validated funcs was interfering with
that as the function might have been validated in another
inheritance tree already.

Also, if a class appeared multiple times in an inheritance tree,
as is common with e.g. Efl.Object, it would get added into the
hash the first time and then checked against the second time,
which would result in a strange error message about the
function being redefined in its own class.

So now we prevent both cases from happening.
2018-01-18 12:49:05 +01:00
Jean-Philippe Andre c91ae98fd3 cnp: Rename selection data to content
This solves an issue with C# bindings where a field of a struct can not
have the same name as the struct itself. Go figure why.
2018-01-18 18:46:15 +09:00
Vincent Torri f5b01ac5ce all: Simplify definition of EAPI
This will help in the transition from Autotools to Meson. This has been
tested on Windows for which EFL_XXX_BUILD were first introduced.
2018-01-18 18:04:03 +09:00
Jean-Philippe Andre 8a1655a15c widget: Remove comment 2018-01-18 17:40:21 +09:00
Jean-Philippe Andre 71ee800521 efl: Merge Flipable and Orientation
No need to split: those two are used in all the same classes, since the
split between Orientation and Ui.Dir.

Note that the enum types remain in the main namespace.
2018-01-18 17:29:28 +09:00
Jean-Philippe Andre f312ed6db9 widget: Rename orientation_mode_disabled
Name is stupid and long, why not just invert this bool?
2018-01-18 17:25:15 +09:00
Jean-Philippe Andre 6296d3815f vg: Fix warning (unused function) 2018-01-18 17:25:15 +09:00
Jean-Philippe Andre 5d85dc184f a11y: Remove import elm_general
Ref T5329
2018-01-18 16:31:20 +09:00
Jean-Philippe Andre 15d32fd4cc ui.text: Use proper EO type for cnp mode
It's not working. Just "fixing" the API for consistency.
Also, we're lacking a proper hint for "markup without images".

So I think EFL_SELECTION_FORMAT_MARKUP should be without images, while
EFL_SELECTION_FORMAT_MARKUP | EFL_SELECTION_FORMAT_IMAGE would allow
markup with images.

Ping @thiep.ha

Ref T5329
2018-01-18 16:27:57 +09:00
Jean-Philippe Andre 4e055db429 cnp: Use EO types to define legacy types
They are the same.
Ref T5329
2018-01-18 16:20:52 +09:00
Jean-Philippe Andre eb10b6eb25 win: Avoid a warning
I still hate those types.
warning: case value not in enumerated type 'Efl_Ui_Win_Type' [-Wswitch]
2018-01-18 16:20:52 +09:00
Jean-Philippe Andre 934f23c9be win: Remove unusable type "dnd"
Override mode is not available in the unified api. That's because you
can't do it in Wayland.

I still think those types are stupid and should all die: Win subclasses
handle them for you. Odd types can't be used anyway.

Ref T5322
2018-01-18 14:20:49 +09:00
Jean-Philippe Andre 50e0099ceb ui.list: Fix shadow variable warnings
node2 didn't conflict, just making it consistent with nodedata2
2018-01-18 14:13:05 +09:00
Jean-Philippe Andre 50a082cab9 win: Remove "ioerr" event
Unless it's implemented for Wayland as well, AND provides more
information than a NULL event_info, I see no point in this being an EO
event. Keep legacy as-is: a smart callback only.

Also, minor cleanups to the EO file.

Ref T5322
2018-01-18 14:06:45 +09:00
Jean-Philippe Andre 8abf43b373 edje: Return "" as state for invalid parts
Instead of "default". This is consistent with legacy, and allows for
some kind of error checking. Not returning NULL helps avoiding crashes.
2018-01-18 13:57:31 +09:00
Mike Blumenkrantz 4d32334f21 Revert "efl wl - fix segv where garbage ptr to comp surface is still there"
This reverts commit 574ef9a5e5.

this should be resolved by 863a6e159e99c5f69ecc7461106aba2102f1da11 and is
only a possible case when an unmapped surface was activated, something which
is prevented by spec and can only occur if bugs exist elsewhere
2018-01-17 17:33:23 -05:00
Mike Blumenkrantz b48781aa6c wayland: always flush client display when protocol sends are pending
in the case where a connection was not actively rendering, there was nothing
which would trigger a display flush, leading to applications potentially
deadlocking

@fix
2018-01-17 17:06:13 -05:00
Mike Blumenkrantz 4fb807dd20 efl-wl: only perform mouse-out operations for a seat if the mouse was "in"
this could lead to cases where the original application's cursor was permanently
lost

@fix

 #TheDisappointer
2018-01-17 17:04:20 -05:00
Mike Blumenkrantz 9ccf88e326 efl-wl: ensure parent surface is mapped before attempting to revert activation 2018-01-17 17:03:48 -05:00
Mike Blumenkrantz beb430a00b efl-wl: immediately unset a destroyed surface's cursor
@fix
2018-01-17 17:01:01 -05:00
Mike Blumenkrantz c13ae0a630 efl-wl: enforce xdg-shell spec requiring a commit to an unmapped surface
a separate commit is required for a newly-unmapped surface in order for
the surface to be able to attach a buffer and be mapped
2018-01-17 16:55:35 -05:00
Mike Blumenkrantz 02af7e8210 efl-wl: only send keyboard enter and activation for mapped surfaces
setting active for unmapped surfaces bypasses the expected path for
unsetting activate during surface unmap if the surface is destroyed
while active and unmapped

@fix
2018-01-17 16:52:34 -05:00
Mike Blumenkrantz f6d045ea8d efl-wl: remove some broken logic for activating toplevel parents
parents of parents should not be marked as activated...probably

@fix
2018-01-17 16:42:31 -05:00
Mike Blumenkrantz 11a9ed301d efl-wl: set event ON_HOLD flag when they are sent to a surface
use a flag to indicate when processed events have been internally processed

@fix
2018-01-17 16:41:41 -05:00
Mike Blumenkrantz b7eba8af7b efl-wl: propagate surface activation back to parent if child is hidden
a toplevel child will always be stacked right above its parent

@fix
2018-01-17 16:39:44 -05:00
Mike Blumenkrantz 45191ff294 efl-wl: send more mouse buttons to clients
@fix
2018-01-17 16:39:44 -05:00
Mike Blumenkrantz 742e20a002 efl-wl: split case for toplevel vs popup during surface hide activate propagation
this should have no functional differences due to spec, but make sure it reads
more clearly
2018-01-17 16:39:44 -05:00
Carsten Haitzler 20605953f5 Revert "efl loop - provide efl namespace versions of begin/end locks on mainloop"
This reverts commit 76b837002e.

seems no one wants efl api's for this
2018-01-17 21:30:49 +09:00
Carsten Haitzler b461830e64 elput - fix crash on shutdown where input.lib was NULL
this was null checked everywhere except in 1 place. fix. now more
crash on shutdown now
2018-01-17 18:14:51 +09:00
Jean-Philippe Andre 1a39e2d429 glview: Remove trailing newline in ERR
It's not needed.
2018-01-17 15:23:52 +09:00
Jean-Philippe Andre 24447641d3 evas gl: Properly verify that Evas GL works
For SW engine we need to verify that OSMesa is present. The patch
fb048e7312 broke the logic.

Tested by temporarily removing OSMesa from my system.

Fixes T6617 (again)
2018-01-17 15:22:46 +09:00
subhransu mohanty 2a31883f5a efl/vg: Refactor the svg path handling and interpolation.
Summary:
This patch is taken from the tizen branch

1. Take care when the locale is different than POSIX.
See: strtod, strtol

2. Interpolate  all the property of a shape.

Reviewers: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5740
2018-01-17 14:54:18 +09:00
Jean-Philippe Andre 7cef580f11 win: Fix standard window bg with custom themes
Ref T6579
See also D5740
2018-01-17 14:18:25 +09:00
Jean-Philippe Andre 421217b150 Revert "elm: disable interface theme loading"
This reverts commit 3d07b90461.

Some commits should address the issues mentioned in T6579
  959571b995
  fe346d2ee2

But to be honest I am still not sure exactly what the issue was?

Ref T6579
2018-01-17 14:18:17 +09:00
Jean-Philippe Andre 6a8816b50c Revert "warning remove - comment out unused vars"
This reverts commit bbac253f11.
2018-01-17 14:03:09 +09:00
Sungtaek Hong 959571b995 elm_tooltip: set theme group to NULL
Summary:
Even though elm_tooltip does not support EO API, for now,
Efl.Ui.Widget will support elm_tooltip-like feature.
This change group name compatible with new group name policy.

Reviewers: jpeg, woohyun, herdsman, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5739
2018-01-17 13:49:49 +09:00
Jean-Philippe Andre 1375705168 panes: Expose parts in EO file 2018-01-17 13:49:49 +09:00
Myoungwoon Roy, Kim ecaec8b0af docs: Fix wrong doxygen expressions.
Summary: This patch fixes wrong doxygen expressions in elm_box legacy API reference doxygen.

Test Plan: documentation

Reviewers: cedric, raster, jpeg, stefan, Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5743
2018-01-17 13:22:56 +09:00
YeongJong Lee 2bad31bdc4 efl_animation: fix typo
Test Plan: make

Reviewers: Jaehyun_Cho

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5746
2018-01-17 12:51:31 +09:00
Thiep Ha e625c9b830 selection: delete callbacks when the manager is deleted
If the selection manager is deleted before the drop objects
are deleted, we need to remove callbacks in its destructor.

Thank @herdsman for reporting this.
2018-01-17 09:25:57 +09:00
Mike Blumenkrantz 17b0db9ed3 efl-wl: add lots of null checks to egl init
ref T6617
2018-01-16 18:38:25 -05:00
Marcel Hollerbach 5b64079ee9 efl_ui_focus_manager: fix infinit loop in enlightenment wizard
we unsetted and setted focus_manager once too often, so we ended up in a
infinite loop. This should be fixed now. Sorry Derek!
2018-01-16 23:22:01 +01:00
Yeongjong Lee 210db8fc5d efl_ui_focus: merge efl_ui_focus_user and efl_ui_focus_object into one mixin
Summary:
focus_user and focus_object are similar classes. by merging them into
one mixin, we can maintain consistency.

Test Plan: make check

Reviewers: bu5hm4n

Subscribers: cedric, Jaehyun_Cho, woohyun, jpeg

Differential Revision: https://phab.enlightenment.org/D5734
2018-01-16 22:39:13 +01:00
Cedric BAIL 1af649d57b eina: make updating rectangle cache thread safe. 2018-01-16 09:54:04 -08:00
Daniel Kolesa d47610a732 eolian: do not require unit when stringifying types
As it is no longer necessary to pass unit when evaluating exprs,
it is not necessary to pass it here either. Convert all the APIs
to the new style and update all instances in our tree.
2018-01-16 16:39:05 +01:00
Daniel Kolesa dd2e579fec eolian: do not require unit for expr eval APIs
The necessary information is now stored directly in the expr
during database validation.

Also enable expr validation for params.
2018-01-16 16:37:52 +01:00
Daniel Kolesa b70604d018 eolian: cache enum expr in the database 2018-01-16 16:37:52 +01:00
Daniel Kolesa 29a9b9ad44 eolian: expose _eval_type to internals 2018-01-16 16:37:52 +01:00
Jean-Philippe Andre ccf90aa0e4 widget: Expose "background" part (for bindings) 2018-01-16 22:04:55 +09:00
Jean-Philippe Andre 854cce329a cxx: Remove elm_widget.h from Elementary.hh
It's internal.
2018-01-16 22:04:55 +09:00
Jean-Philippe Andre 2686742587 selection: Fix two remaining warnings 2018-01-16 22:04:55 +09:00
Jean-Philippe Andre f1dd333e81 animation: Fix some warnings including a real one
Real issue here:

.../efl_animation_group.c:120:40: warning: for loop has empty body [-Wempty-body]
   EINA_LIST_FREE(pd->animations, anim);
2018-01-16 22:04:55 +09:00
Sungtaek Hong 588995da31 efl_playable: split Efl.Player interface to Efl.Playable interface
Summary:
Efl.Player interface simply provides play functions,
but another interface which indicates Efl.Player will play is also
needed.

Test Plan: Run elementary_test->Efl.Animation tests

Reviewers: woohyun, conr2d, Jaehyun_Cho, jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D5662
2018-01-16 22:04:55 +09:00
Amitesh Singh 1da72770f3 Efl.Ui.Progressbar: Add Efl.Ui.Translatable/Markable too.
it was missed in previous patch.
2018-01-16 20:35:56 +09:00
Amitesh Singh 4e3d71ef22 Efl.Ui.Progressbar: Add missing Efl.Text/Content 2018-01-16 20:15:10 +09:00
Jean-Philippe Andre dd2f450ea7 eo: Fix make check
The cache had a generation count, removing this check breaks eo suite.
EO is designed to tolerate init/shutdown cycles (as long as
dlopen/dlclose isn't involved).

Note: the ugly goto are useless as GCC -O2 understands EINA_(UN)LIKELY
and deals with it as expected (just look at the asm produced).

See 34d9f20706
2018-01-16 19:50:52 +09:00
Jean-Philippe Andre 8b4abdcd0e eo: Remove unused goto label 2018-01-16 19:35:54 +09:00
Jean-Philippe Andre df1900b9bd edje: Add beta event when an invalid part is used
This can be used for debugging, by listening to
  EFL_LAYOUT_EVENT_PART_INVALID

Or just use
  EINA_LOG_LEVELS=edje:2
if you just need the logs.
2018-01-16 19:35:54 +09:00
Jean-Philippe Andre eb9f35bcb9 panes: Fix invalid part name in layout recalc 2018-01-16 19:35:54 +09:00
Jean-Philippe Andre e592a0ab5b code widget: Fix order of operations
super functions, when creating stuff, should be called first.
2018-01-16 19:35:54 +09:00
Jean-Philippe Andre 001fa5af11 edje: add invalid part handler 2018-01-16 19:35:54 +09:00
Jean-Philippe Andre a92186be6a ecore/edje/elm: Fix a few WRN from calls to NULL
This fixes some of the warnings generated by calling functions on NULL
objects. One of the main remaining points is to avoid unwanted warnings
on non-existing parts.

Ref T6326
2018-01-16 18:37:05 +09:00
Jean-Philippe Andre f2b5b00ca2 eo: Warn on calls to NULL object
This makes eo print a WRN message in case a function is called on NULL.
efl_del is an exception to this rule (implemented in a hackish way, I
admit). I don't know any language or object model where using a null
object doesn't result in an exception or crash, except EO. In any case,
calls to null are invalid.

The next commits will resolve most warnings for EFL.

Ref T6326
2018-01-16 18:37:05 +09:00
Jean-Philippe Andre f47f8dcf82 evas: Remove stupid warning 2018-01-16 18:37:04 +09:00
Jean-Philippe Andre 9e2f2970b8 edje: Add property "part_exist"
This allows to safely verify if a part exists, without triggering any
potential call to NULL object, or even requiring the efl_part() handle
to be created.

This is perfectly equivalent to edje_object_part_exists(), but
implemented by both edje object and elm layout.
2018-01-16 18:37:04 +09:00
Jean-Philippe Andre d133336399 selection: Disable debug logs
selection's namespacing still requires some love
2018-01-16 18:36:47 +09:00
Jean Guyomarc'h 34d9f20706 eina: remove usless newline
Summary:
ecore_evas: remove debug

eina: unregister log level when done with

Fixes a constant memory leak.

eina: introduce EINA_HOT and EINA_COLD

These attributes respectivelly expand to __attribute__ ((hot)) and
__attribute__ ((cold)) when available. They allow to mark functions are
being hot/cold (frequently used or not) as well as to qualify labels
within a function (likely/unlikely branches).

eo: speed-up generated calls by removing call cache

The call cache needed to by thread-local, to avoid concurrency issues.
Problem with TLS is that is adds an extra overhead, which appears to be
greater than the optimization the cache provides.

Op is naturally atomic, because it is an unsigned integer. As such, it
cannot be tempered with while another thread is reading it. When
entering the generated function, the first operation done is reading
'op'. If we have concurrency, we will have access sequences returning
either EFL_NOOP or a VALID op, because 'op' is not set until the very
end of the function, when everything has been computed. As such, we now
use the 'op' atomic integer to instore a lock-free/wait-free mechanism,
which allows to drop the TLS nature of the cache, speeding up the access
to the cache, and therefore making functions execute faster.

We don't test anymore the generation count. This can be put as a
limitation. If means that if you call efl_object_shutdown() and
re-initialize it later with different data, opcodes will be invalid.
I am not sure there is any usecase for this to ever happen.
We could move all the caches in a dedicated section, that can be
overwritten after a call to efl_object_shutdown(), but I am not sure it
will be very portable.

Benchmark: mean over 3 executions of
   ELM_TEST_AUTOBOUNCE=100 time elementary_test -to genlist

```
                     BEFORE               AFTER
------------------------------------------------------------
time (ns)            11114111647.0        9147676220.0
frames               2872.3333333333335   2904.6666666666665
time per frame (ns)  3869364.6666666665   3149535.3333333335
user time (s)        11.096666666666666   9.22
cpu (%)              22.666666666666668   18.333333333333332
```

Ref T6580

Reviewers: raster, cedric

Subscribers: cedric, jpeg

Maniphest Tasks: T6580

Differential Revision: https://phab.enlightenment.org/D5738
2018-01-16 17:50:46 +09:00
Carsten Haitzler 574ef9a5e5 efl wl - fix segv where garbage ptr to comp surface is still there
comp surface destruction doesnt clear the pointer to one in the comp
struct that then is garbage later. fix.
2018-01-16 17:49:52 +09:00
Thiep Ha 07e7bbd4b5 selection_dnd: fix warnings in clang
Fix warnings about type convert and vars init in clang and remove comments.
2018-01-16 16:35:14 +09:00
Jaeun Choi d36c849e20 elm_panel: add exception handling in _drawer_close()
this fixes a bug with scrollable panel not being blocked
when it is closed. scroll is blocked in _anim_stop_cb()
which is called after elm_interface_scrollable_region_bring_in().
but if panel content is already at the target position, _anim_stop_cb()
is not called. so there is a need to check content's position and
handle the exceptional case.
2018-01-16 14:57:38 +09:00
Jaeun Choi 4f2b04c7a2 Revert "elm_panel: add exception handling in _drawer_close()"
This reverts commit 2acfc3e381.
2018-01-16 14:48:11 +09:00
Jaeun Choi 2acfc3e381 elm_panel: add exception handling in _drawer_close()
this fixes a bug with scrollable panel not being blocked
when it is closed. scroll is blocked in _anim_stop_cb(),
which is called after elm_interface_scrollable_region_bring_in().
but if panel content is already at the target position, _anim_stop_cb()
is not called. so there is a need to check content's position and
handle the exceptional case.
2018-01-16 14:42:58 +09:00
Jaeun Choi 65b828b050 elm_panel: prevent redundant callback function addition or deletion
there is a need to check if callback functions already exist or not
before adding or deleting them, because they are added or deleted
at two points:
in _elm_panel_scrollable_set() and _elm_panel_elm_widget_disable().
2018-01-16 13:19:36 +09:00
Boris Faure a8d2c6c42f elementary dnd: fix tautology 2018-01-15 21:30:28 +01:00
YeongJong Lee f7849d0727 elc_popup: reorder the sub objects free sequence
Summary:
when the popup is deleted, some EVAS_CALLBACK_DEL callback functions
try to use already freed objects.
reorder free sequence to prevent it.

Test Plan:
1. elementary_test -to popup
2. check 'Enable popup scroll'
3. open several popup test and click Close button.
4. check that there are no error message

Reviewers: Jaehyun_Cho, bu5hm4n

Reviewed By: Jaehyun_Cho

Subscribers: cedric, jpeg, herb

Differential Revision: https://phab.enlightenment.org/D5730
2018-01-15 19:55:37 +09:00
WooHyun Jung 9fc1dd1a4e ecore_file_monitor: replace EINA_LIST_FOREACH to EINA_LIST_FOREACH_SAFE
If ecore_file_monitor_del is called inside the file monitor callback function,
eina_list found from monitor_hash would be freed. (You can check this inside
eina_hash_list_remove.)
Then, EINA_LIST_FOREACH makes one more for loop with invalid eina_list pointer.

EINA_LIST_FOREACH_SAFE can prevent from this problem.
2018-01-15 13:54:01 +09:00
Vincent Torri 487f2a5f81 Ecore_Win32: move monitor window initialization to earlier in init func
Summary: This monitor window is just used to receive events when mutiple
monitors are available. it should not be managed by the ecore loop
(creation and destruction events), so initting it earlier means
ecore_win32 attaches less memory/overhead to it as it's just being
used for notifications for devices.

Test Plan: DrMemory to check used memory

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5736
2018-01-14 22:33:34 +09:00
Andy Williams 939237ad7f Correct module name for the interface context 2018-01-14 00:21:35 +00:00
Carsten Haitzler 90e186a0c8 ecore_audio wasapi - fix ecore win32 handler deletion and destruction
vtorri pointed this out in T6607. this should fix this.

fixed T6607

@fix
2018-01-13 14:46:08 +09:00
Vincent Torri 83b91fff02 Evil: remove useless dirent code
Test Plan: compilation of the EFL

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5735

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2018-01-12 13:34:32 -08:00
Mike Blumenkrantz abc88c498e efl-wl: multiply axis events by 10 to send normalized values
ref T6443
2018-01-12 16:03:12 -05:00
Mike Blumenkrantz 60028fafb7 efl-wl: unset cursor role on existing cursor surface if new cursor is set
this avoids killing clients which replace cursors

@fix
2018-01-12 15:49:06 -05:00
Mike Blumenkrantz b585dd0de7 elm_tooltip: immediately show tooltip if callback is set for obj under pointer
@fix
2018-01-12 14:58:34 -05:00
Mike Blumenkrantz 6822927988 elm_tooltip: force immediate hint recalc during tooltip creation if 0x0 size
try to avoid initial 0x0 sized tooltips

@fix
2018-01-12 14:58:34 -05:00
Mike Blumenkrantz d176fbc806 efl-wl: return NULL without error when non-extracted parent is found
in  efl_wl_extracted_surface_extracted_parent_get()
2018-01-12 14:58:34 -05:00
Bryce Harrington ebdfc54def eina: document quadtree
Reviewers: cedric, ajwillia.ms

Subscribers: segfaultxavi, jpeg

Differential Revision: https://phab.enlightenment.org/D5522

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2018-01-12 11:25:04 -08:00
Vincent Torri 4916973a60 efl: remove inclusion of dirent.h where it is not used
Test Plan: compilation

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5733

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2018-01-12 11:06:12 -08:00
Daniel Kolesa dd11d19653 efl: make efl build again
After a function pointer validation branch got enabled, it turned
out that people have been writing obviously incorrect eo files
all along.

So while I have no idea if this is logically fully correct, at
least EFL builds again now...

cc @thiepha
2018-01-12 19:31:45 +01:00
Daniel Kolesa 54eac123c2 eolian: correctly validate function pointers 2018-01-12 19:14:13 +01:00
Cedric BAIL e90a9f3eef Revert "promise: Add even simpler helper for main loop promise creation"
This reverts commit e931fd698d.
2018-01-12 09:37:47 -08:00
Cedric BAIL f5a5609c27 Revert "efl-loop: Don't use 'main' as a variable name"
This reverts commit 214dbdbd59.
2018-01-12 09:37:47 -08:00
Daniel Kolesa c6436337a4 eolian: aliased_base_get funcs don't need unit 2018-01-12 18:05:13 +01:00
Daniel Kolesa 19c16b671e eolian: type_typedecl_get doesn't need a unit 2018-01-12 18:05:13 +01:00
Daniel Kolesa 707ed05d58 eolian: do not require unit for type_class_get 2018-01-12 18:05:13 +01:00
Daniel Kolesa db41734954 eolian: store typedecl/class in type 2018-01-12 18:05:13 +01:00
Chris Michael 4dfde2cd24 elementary: Fix constant qualifer warning message
Gcc complains here due to _wl_default_seat_id_get not accepting a
'const' Evas_Object, so to avoid the warning just case it to a normal
Evas_Object when passing in.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-01-12 10:50:26 -05:00
Carsten Haitzler 99bf0732af edje - multisense - only complain once about being inable to play audio
no p[oint creating streams of noise, so only once.
2018-01-12 22:32:39 +09:00
Carsten Haitzler ce0ea3c297 ecore_audio - only complain once about not loading pulse/sndfile
otherwise we get a complaint for everty time some audio needs/wants to
play and that's just noisy and ugly, so only do it once - the first
time sndfile/pulse are being loaded and it fails.
2018-01-12 22:32:39 +09:00
Carsten Haitzler 368e0c5d8f ecore_audio - don't about destruction because of failed sndfile load
this means objetcs are only partly destroyed and that is wrong.

@fix
2018-01-12 22:32:39 +09:00
Thiep Ha 360ce182ef eolian_cxx: support multiple function pointers 2018-01-12 18:45:40 +09:00
SangHyeon Lee f7d9f0dde6 gengrid: add visible/hidden signal for texts and contents
Send visible/hidden signal when text/content are realized.
This feature is already implemented in genlist widget,
for reacting dynamically in item layout depending on their
text/content realizations.
2018-01-12 14:41:13 +09:00
Cedric Bail 23624acc16 eio: remove unecessary include. 2018-01-11 21:30:39 -08:00
Carsten Haitzler f32f0d89f4 mmap memory allocation - do not used when under valgrind
we can't sensibly use things like massif to track memory if we bypass
itr with mmaping -1 fd anonymous memory... so if built with valgrind
support and running under valgrind, use malloc/calloc and free so
these tools actually do something useful for these bits of memory.
2018-01-12 03:02:43 +09:00
Chris Michael 075b14d53f elementary: Remove use of implicit declaration
evas_canvas_default_device_get used here leads to an 'implicit
declaration of function warning'. Use evas_default_device_get instead
to remove warning.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-01-11 12:37:43 -05:00
Carsten Haitzler 659d5d2894 ecore signal - since we arent going to use threads due to osx, remove
remove thread code since osx is not happy with threads trapping
signals (or at least a thread setting up the handler and trapping
there with signal blocks...). this should now work universally.
2018-01-11 23:13:13 +09:00
Thiep Ha e88bbaa1e3 cnp_dnd: make legacy APIs use new interfaces
Legacy APIs can uses efl_selection, efl_ui_dnd, efl_ui_dnd_container interfaces
with helper functions.
2018-01-11 17:56:24 +09:00
Thiep Ha 35339504b0 dnd: add efl_ui_dnd_container
efl_ui_dnd_container is the interface of dnd for container objects.
2018-01-11 17:56:24 +09:00
Thiep Ha e6ab4b41ed dnd: add efl_ui_dnd
Efl_Ui_Dnd is the interface for drag and drop of elm_cnp.
2018-01-11 17:56:24 +09:00
Thiep Ha f191d6821f selection: add efl_selection interface
Efl_Selection is the object interface for selection api of elm_cnp.
It allows get, set, clear, check selection.
2018-01-11 17:56:24 +09:00
Thiep Ha 763daa870e cnp_dnd: add selection manager
Selection manager implements functions for selection (cnp)
and drag and drop.
All objects can uses it APIs. It also supports multi-seat.
2018-01-11 17:56:24 +09:00
YeongJong Lee 1b4f330c9c efl_ui_focus_manager_calc: store node data before the node is freed
Summary:
we can consider that the node is freed during focus_manager routine.
for example, efl_ui_focus_manager_redirect_set call edje event callbacks,
and a application can delete a object in the edje callback. if the object is
the focusable object of a node, focus_manager make the node freed.
the focus_manager is able to use freed node. (a good example is test_popup.c)

this prevent reusing freed pointers.

Test Plan:
1. elementary_test -to popup
2. popup-center-text + 1 button
3. Click the Close button
4. check that there is no erroe message

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, woohyun, jpeg, Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5729
2018-01-11 09:51:59 +01:00
Carsten Haitzler af681a1091 ecore signal write - save and restore errno since may be on mainloop
now i disabled the signal thread watcher ... save+restore errno.
2018-01-11 17:25:24 +09:00
Carsten Haitzler 21c8e73111 ecore signal - for now disable the sig watcher thread and do on mainloop
we used to do signals on main loop. keep doing. the pipes should work
in cleanly serializing the signals irrespective of when/where they are
caught (because we do into kernel and back out again). hoping this
makes osx work again. can't test as i have no osx box or vm. works on
linux and freebsd though.
2018-01-11 16:17:54 +09:00
Jongmin Lee 904ba231c3 remove proper timer in landscape indicator connect callback
Change-Id: I7b6971502a8c26f06ceccf1a7ed5f567cb42da54
Signed-off-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
2018-01-11 15:12:24 +09:00
Cedric Bail 79d7483fe7 eina: add eina_promise_continue_new to create a promise using an existing dead future. 2018-01-10 18:16:25 -08:00
Cedric Bail 0b6f74fde6 ecore: no write after del for efl_loop_timeout. 2018-01-10 18:16:25 -08:00
Mike Blumenkrantz 571702aebb efl-wl: do not modify extracted surface visibility during commit
extracted surfaces are wholly managed externally, so this should not be modified

ref T6443

@fix
2018-01-10 14:21:03 -05:00
Derek Foreman 54fede47a9 ecore_drm2: simplify device selection code
The platform check was added for systems (like ARM) that don't generally
have PCI graphics devices.  However, now we pick a fallback device that
doesn't have a PCI constraint, so the platform check should no longer be
necessary.
2018-01-10 12:54:42 -06:00
Derek Foreman 324c917a20 ecore_drm2: Allow non-pci DRM devices to be selected
Summary: This is a tweak to c264ef264f for D5712 . chosen_dev in the loop was only being set for DRM devices attached to PCI devices. While this is useful for determining if the device is the preferred boot_vga device, There is no apparent requirement (comparing to Weston) for all DRM devices to be attached to a PCI device. (This is considering USB DisplayLink devices. I am not sure how the parent device tree is with these...)

Reviewers: devilhorns, ManMower

Reviewed By: devilhorns, ManMower

Subscribers: cedric, jpeg, #efl

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D5727
2018-01-10 12:23:34 -06:00
Mike Blumenkrantz ffa276fce3 wayland: add xdg-shell vfinal support for client-side
@feature
2018-01-10 11:39:52 -05:00
Mike Blumenkrantz 79ca67d8a5 efl-wl: move to xdg-shell vfinal
@feature
2018-01-10 11:39:52 -05:00
Jean-Philippe Andre f285fd5925 eo: Add "destruct" event
Triggered after (almost) complete destruction of the object.

Not called "deleted" because the other event is already "del".
I don't like "destruct" much but this follows the terminology of
"constructor" / "destructor".

@feature
2018-01-10 16:31:06 +09:00
Jihoon Kim 1069c28b95 entry: Add autofill hint
@feature

Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
2018-01-10 16:00:49 +09:00
Chris Michael 2ac8458238 ecore-drm2: return supported rotations if not using hardware
If we are Not using Atomic/Hardware support for output rotations, we
should return all available rotations as these will still work in
software mode.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-01-09 12:48:25 -05:00
Chris Michael 4aeca75cff ecore-drm2: Fix enabling outputs
Commit 9d583b3fdb broke
ecore_drm2_output_enabled_set function due changing order of setting
output->enabled value. This patch fixes both issues by checking the
'enabled' variable being passed in.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-01-09 12:48:07 -05:00
Jihoon Kim d1823c6152 ecore_imf: Add transaction start and end event callback
@feature

Change-Id: I091b4e291b821ee5b6cc180d98024e251d4bcd03
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
2018-01-09 11:00:43 +09:00
Cedric BAIL 1f28dce028 ecore: make loop quit exit code work with EINA_VALUE_EMPTY. 2018-01-08 13:40:02 -08:00
Amitesh Singh 44d3227beb widget: rename elm widget to Efl.Ui.Widget. 2018-01-08 21:28:10 +09:00
Carsten Haitzler bbac253f11 warning remove - comment out unused vars 2018-01-06 19:01:09 +09:00
Carsten Haitzler f8c9b0d71e warning remove - ignoring const (returning obj handle)
cast to fix
2018-01-06 19:01:05 +09:00
Carsten Haitzler f62e051343 efl signals - add signal callbacks for minimal signal set on loops
this willonly apply to the main loop, but to be able to see these
signals as callbacks, we have to expose them. term/quit/int are
already handled internally where the loop will terminate (efl will
enforce this) AND ... there is a terminate event already on the loop
to deal with this cleanup. other signals really arent applicable IMHO
except usr1/2 and hup.
2018-01-06 18:49:07 +09:00
Carsten Haitzler ba16dee6b3 ecore signal - move to using a pipe (and optional thread) tfor signals
this should remove any races in catching signals. it should also be
portable. as well.
2018-01-06 18:20:23 +09:00
Carsten Haitzler 2fb80270ba efl thread signal masks - fix up for various threads manually created
so xine module plus 2 eina dbug threads didnt set up signal
blocking/masks correctly. xine use ssigprocmask not pthread_sigmask
and the other 2 didnt even bother at all. fix this so these threads
all block most of these commnly caught signals so these threads never
get them
2018-01-06 18:20:23 +09:00
Derek Foreman 0d845ce3aa ecore_drm2: Remove pointless goto
This "out" label probably used to be the target of multiple gotos,
but now it's just being used to jump over a single line of code.
2018-01-05 12:28:36 -06:00
Derek Foreman c264ef264f ecore_drm2: Don't fail if there's no boot_vga device
In a multi-seat configuration it's quite likely that only one
seat will have a boot_vga device.

While we should use the boot_vga device if possible, we shouldn't
fail just because a seat's gpu isn't the boot_vga device.  Fallback
to the last viable drm device we saw.

Reported-by: n3rdopolis
ref D5712
ref T6455
2018-01-05 11:51:22 -06:00
Mike Blumenkrantz 3d07b90461 elm: disable interface theme loading
this is broken. do not reenable until testing has been done.

partially reverts dd4467505e

ref T6579
2018-01-05 11:46:36 -05:00
Carsten Haitzler 76b837002e efl loop - provide efl namespace versions of begin/end locks on mainloop
add efl_main_loop_steal() and efl_main_loop_release() for new efl
namespace versiosn of ecore_thread_main_loop_begin() and
ecore_thread_main_loop_end().
2018-01-05 15:04:05 +09:00
JinYong Park 4717f358da efl_ui_popup_alert: change clicked event name
Summary:
clicked event will be called when alert popup's button is clicked.
But usually, clicked event means when object is clicked, not sub object is clicked.
So it is so ambiguous, event name change.

Test Plan:
1. elementary_test -to efl.ui.popup.alert
2. click button.

Reviewers: Jaehyun_Cho, herb, jpeg, cedric

Reviewed By: Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5722
2018-01-05 13:36:21 +09:00
Vincent Torri f2364053b4 ecore, elementary: remove useless inclusion of Evil.h on public headers when compiling with Visual Studio
Evil.h is already included on Windows in Eina.h
2018-01-04 13:00:00 -08:00
Vincent Torri 4ae6eeb2cf efl: remove _MSC_VER (Visual Studio macro) usage in source code 2018-01-04 12:59:47 -08:00
Cedric BAIL 298915c627 ecore: Efl_Core.h means using EFL_BETA_API_SUPPORT at the moment. 2018-01-04 11:45:10 -08:00
Cedric BAIL 526415d903 eo: make efl_provider_find a @const function. 2018-01-04 11:45:10 -08:00
Cedric BAIL ce373c9b1f ecore: fallback to use efl_provider_find if the passed object isn't an Efl.Loop_Consumer. 2018-01-04 11:45:10 -08:00
Carsten Haitzler 0fd8cd82e3 ecore evas init - init ecore then evas not the other way...
because as of... i don't know when, evas relies on ecore with
ecore_pipe_add to create the async fd... and if you init evas then
ecore this doesnt work. obviously. well now it isn't working. probably
due to new efl loop work. but the efl loop code is correct.
ecore_pipe_add should never work until you init ecore... it just
happesn to have managed to be gotten away with for a while.

@fix
2018-01-05 02:34:16 +09:00
Carsten Haitzler df61af9efa eocre timechanges - set obj to null before deletion on stop
stops double-deletion due to callback nesting
2018-01-05 02:34:16 +09:00
Marcel Hollerbach deca91bfe9 elm_popup: its not a focus layer
elm popup is only a contextual wrapper arround a elm_notify, so
implementing this thing here as focus layer is wrong.
2018-01-04 17:27:43 +00:00
Marcel Hollerbach c26e759b9e elm_widget_item_focus: use the correct parent
You need to use the parent here, otherwise the adapter will stay alive
for too long.
2018-01-04 17:27:43 +00:00
Andy Williams 76d8ff590a ecore: fix future -> promise doc 2018-01-04 17:02:57 +00:00
Mike Blumenkrantz e6d53d1e67 emotion: unset DISPLAY when loading an engine under wayland
ensure that this doesn't trigger xwayland deadlocks during gst init

probably fixes T6418

@fix
2018-01-04 10:12:33 -05:00
Chris Michael 214dbdbd59 efl-loop: Don't use 'main' as a variable name
Gcc issues a warning here that 'main' is usually a function, so just
rename the variable to avoid the warning.

NB: No funtional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-01-04 09:26:28 -05:00
Andy Williams 345c59ad3b docs: Update elementary eo files for grammar and readability
Author: Nate Drake
2018-01-04 12:29:11 +00:00
JinYong Park deef737067 efl_ui_popup_alert_text_scroll: do not calc size when need size calc flag is FALSE
Summary:
efl_ui_popup has needs_size_calc flag
to skip size calculation when it is not needed.
But efl_ui_popup_alert_text/scroll do size calc although that flag is FALSE

Test Plan:
1. elementary_test -to efl.ui.popup.alert.text
  or elementary_test -to efl.ui.popup.alert.scroll

2. resize window

3. watch _sizing_eval call

Reviewers: Jaehyun_Cho, herb, jpeg, cedric

Reviewed By: Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5720
2018-01-04 21:12:30 +09:00
Andy Williams e931fd698d promise: Add even simpler helper for main loop promise creation 2018-01-04 11:56:01 +00:00
Mike Blumenkrantz cca561e94e efl-wl: add function to get the parent of an extracted surface
@feature
2018-01-03 18:46:54 -05:00
Cedric BAIL 0f7c5582a4 ecore_con: we should just stop using ecore_main_loop_get. 2018-01-03 12:49:10 -08:00
Cedric BAIL fd0bcc201b eio: switch code to simpler pattern with efl_loop_promise_new. 2018-01-03 12:16:25 -08:00
Cedric BAIL 5628ecddd6 ecore: introduce efl_loop_promise_new to simplify creation of Eina_Promise. 2018-01-03 12:16:25 -08:00
Cedric BAIL 5efb8f3eb2 ecore: add some documentation for efl_loop_future_scheduler_get. 2018-01-03 12:16:25 -08:00
Cedric BAIL b8ab0ca1f5 ecore: efl_loop_future_scheduler_get actually should be considered a const method. 2018-01-03 12:16:25 -08:00
Cedric BAIL c19ef91020 Revert "efl_loop: move scheduler_get to eo API"
This reverts commit f910ba248e.

The scheduler is meant to be used only in C, not by bindings so there isn't really
a use for it in the loop class. Now this patch was triggered due to complexity in
using future/promise, so will do a follow up patch to improve that.
2018-01-03 11:21:34 -08:00
Andy Williams d280ab7410 docs: Fix eo_add -> efl_add 2018-01-03 14:44:39 +00:00
Andy Williams f910ba248e efl_loop: move scheduler_get to eo API 2018-01-03 12:46:06 +00:00
Andy Williams 8e23f6abff Merge branch 'devs/xartigas/typos' 2018-01-03 09:21:33 +00:00
Andy Williams c82d565c48 docs: Fix exmplanation for edje_file_iterator 2018-01-03 09:19:54 +00:00
Carsten Haitzler 0ccf813112 eina debug - use pthread _sigmask instead of sigprocmask like elsewhere
elsewhere in efl we moved to pthread_sigmask but eina debug didn't, so
mirror the changes here too. at this point in time when we are
initting eina debug this shouldnt really matter much as we're single
threaded until this pthread_Create is called. after that tough...
we're not. signals + threads is a nightmare though... horrible
horrible...
2018-01-03 13:05:16 +09:00
Xavi Artigas ee61190af8 Typo in error message 2018-01-02 13:56:04 +01:00
Xavi Artigas e4e48aa4f9 Typo in example 2018-01-02 13:56:04 +01:00
Carsten Haitzler 9bedda14b3 efl loop - rename ecore_main_loop_get to efl_main_loop_get
ecore_main_loop_get() is really a new "eo api" but it's using our old
ecore_* namespace, so move to the new efl namespace.
2018-01-02 16:13:54 +09:00
Amitesh Singh 44b6aa16c1 Efl.Gfx.Color: add color_class_code.set/get{} method 2018-01-02 15:41:34 +09:00
Carsten Haitzler c3e322be28 efl loop - make param as unused to remove warning 2018-01-02 15:11:06 +09:00
Andy Williams d234458dfc Fix and simpligy windows behaviour.
Author: Vincent Torri
2017-12-31 16:08:31 +00:00
Andy Williams 0a068ac549 elm_code: Fix usage of basename 2017-12-31 15:28:23 +00:00
Jean Guyomarc'h 541d6527fa elm: fix memleak in combobox
@fix
2017-12-30 10:14:41 +01:00
Jean Guyomarc'h a71ea3f9dc elm: fix typo in elm_list documentation 2017-12-30 10:14:41 +01:00
Carsten Haitzler b27ca559f6 remove elgacy ecore event usage in futures that limit to mainloop only
also eina_procmis was not threadsafe so cannto use loops in different
threads at all until this was made safe. needed to disable the old
ecore_event using code in for ecore futures and create a new efl loop
message future and handler instead ... but now a quick experiment with
multiple loops in 10 threads plus mainloop have timers at least work.
i need to test more like fd handlers etc etc. but it's a step.
2017-12-28 02:24:12 +09:00
Carsten Haitzler 6ccfea3d51 Efl_Ui.h - remember to define EWAPI too 2017-12-27 14:55:15 +09:00
Carsten Haitzler b7eb3c5fe8 elm_priv.h - improve defines, EAPI EWAPI etc. because sub-includes need
this also makes it build for windows
2017-12-27 14:54:13 +09:00
Carsten Haitzler bfeded7252 ecore/efl loop - use efl_loop_time_get on loop obj where needed
stop using the legacy ecore_loop_time_get() func when it should be
coming from the loop object's loop time. also ecore_time_get should
never fall back on ecore_loop_time_get for similar reasons.

part of making the ecore/efl loop a non-global instance (allow loops
in threads)
2017-12-27 01:40:07 +09:00
Carsten Haitzler 27ac9a2be2 ecore main loop - fix fd handler clearning
so loop object destruction was clearing out fd handlers but those may
be later deleted by destructors of child objects. so leave legacy
fdh's and just remove them from the list
2017-12-23 21:13:47 +09:00
Andy Williams 7b4441e2b8 ecore: Reduce the number of lines in our error log
And align for readability
2017-12-22 14:48:28 +00:00
Daniel Kolesa efb419fd74 eolian: prevent unnecessary hash table allocs 2017-12-22 15:36:31 +01:00
Daniel Kolesa 65ea735fd7 eolian: remove the toplevel information 2017-12-22 15:36:31 +01:00
Daniel Kolesa 7da6675c34 eolian: perform partial class validation every time
This makes sure that duplicate method/part/etc checks are done on
every database update, removing the need for clunky toplevel
checks and improving reliability. It also sacrifices some
performance but it shouldn't be too bad (if a class is already
validated, some checks are avoided to speed things up).
2017-12-22 15:36:31 +01:00
Daniel Kolesa 30c5753172 eolian: deferred parsing of type deps 2017-12-22 15:36:31 +01:00
Daniel Kolesa e1bcd61bdf eolian: move inherit type checking to validation 2017-12-22 15:36:31 +01:00
Andy Williams 6ecad5b873 docs: Update evas canvas eo files for grammar and readability
Author: Nate Drake
2017-12-22 13:45:48 +00:00
Andy Williams 9a4eedb078 Remove all ocurrences of SPANK from our user facing errors.
This has been bugging me for some time but now we are triggering new errors internally
this is appearing to end users for problems they did not cause.

Additionally I was able to improve a couple of the errors by copying the
explanation from code comments into the error message.

Shorter error logs now too :)
2017-12-22 11:18:46 +00:00
Andy Williams 77dd065c52 docs: Update efl interface eo files for grammar and readability
Author: Nate Drake
2017-12-22 10:41:18 +00:00
Andy Williams f0d6a60cf8 docs: Update edje eo files for grammar and readability
Author: Nate Drake
2017-12-22 10:41:18 +00:00
Amitesh Singh 961743475c Efl.Ui.List: fix compiler warning. 2017-12-22 13:43:30 +09:00
Amitesh Singh e2cb16c78b Efl.Gfx.Color: add color_code{}
color_code allows user to pass/get the color hex string
(e.g. efl_gfx_color_code_set(o, "#FFAA22CC"))

Also make this interface as mixin class.
2017-12-22 13:29:20 +09:00
Amitesh Singh 9db0ec554b interface: add Efl.Gfx.Color interface for color related APIs
This would eventually turn into mixin class later after adding
more color related helper functions.
2017-12-22 13:29:20 +09:00
Andy Williams 14d10e8b7b elm_code: Cancel selection if clicked outside of the editor area 2017-12-21 22:05:42 +00:00
Carsten Haitzler 6b70cd5f97 ecore/efl loop - refactor idle stuff to be less convluted when
less jumping around the codebase and no need for a message exists
method on the loop as we can find out internally, so only the process
left.
2017-12-21 19:45:21 +09:00
Carsten Haitzler 04a01c13af ecore/efl loop. remove internal ecore_timer legacy api usage for eflloop
efl.loop was still using legacy ecore_timer_* calls inside. of course
this is a big no-no if we are to allow multiple loops, so clean this
up and convert them to efl.loop.timers.
2017-12-21 17:55:03 +09:00
Lauro Moura 46b202b86c eolian-mono: Add documentation generation support
This commit adds the "documentation" generator, which gets the
documentation_def attribute of the given item and generates xml comments
to be exported by MCS.

For items requiring some customization of the generated comments (e.g.
functions and its parameters), the helpers to generate the preamble
(summary), body (paragraphs) and epilogue (currently just the @since
tag) were added.

Currently we do not support converting Eolian references into xmldoc
references.

As we explicitly generate Get/Set methods for properties, for now the
generator tries to get the get/set specific documentation first. If it
is not present, fallback to the common docs.

Later this could be changed to generate the common one as paragraphs of
the Get/Set.

Also some generated code like the wrappers for calling C# methods
from C can be private. This will cleanup the introspection results
and warnings when generating documentation.

Due to this visibility change, the binbuf tests had to be changed
to add redirect calls to the native methods instead of directly
calling the DllImport'd methods.
2017-12-20 19:57:17 -02:00
Daniel Hirt 4bde4ceada Canvas image: fix endless call to 'load_error_get'
Fixes a bug introduce with c8c4572d70.
My guess is that the true intention was to query the Efl.File mixin
first, and the check the specific load_error.

Basically a call to 'efl_file_load_error_get' on an
Efl.Canvas.Image triggered this.
2017-12-20 09:40:52 -08:00
Andy Williams b9401d7e0a docs: Update ecore_con eo files for grammar and readability
Author: Nate Drake
2017-12-20 17:30:29 +00:00
Carsten Haitzler 75bb46a412 elm - scroll manager - fix up momentum animator code to use real consts
use real constnants and remove useless vasriables as well as fix up
formatting... so we don't get compilers complaining about non-const
values etc.

@fix
2017-12-20 21:49:18 +09:00
Carsten Haitzler b22b2ded1d ecore_con: bug workaround SO_REUSEADDR and EADDRINUSE from bind (fix)
what i'm seeing is this with local unix sockets:

1. server process not cleanly shut down (kill -9 for example).
2. run server process again and bind fails due to EADDRINUSE
3. we ARE doing setsockopt() with SO_REUSEADDR set to 1 ...

this just makes no sense because setsockopt() SHOULD allow use to
re-use... the previous efreetd process for example is gone. no such
process, yet socket is not re-usable. this should just not happen due
to SO_REUSEADDR, but it does. this has nasty consequences like efreetd
maybe never running because of stale sockets. this should never have
happened, but it does. odd. so a hacky workaround:

1. try bind.
2. if bind fails with EADDRINUSE and its a socket path AND
pd->unlink_before_bind is NOT set... then try a connect to the socket.
3. if connect succeeds then fail as normal (close socket and error on
bind'ing)
   if connect fails then we have a stale socket, so unlink it
forcibly. create the socket again and try bind again.

hacky but... fixes the core issue.

@fix
2017-12-20 21:10:53 +09:00
Carsten Haitzler 9c88bc4933 elm build for osx - try another dotting of i's and crossing of t's
try this and fix T6448 ...
2017-12-20 19:07:01 +09:00
Andy Williams 5162d66c51 eo: Update grammar and readability 2017-12-20 09:52:31 +00:00
Andy Williams e942dd6420 Eo docs: update for grammar and readability 2017-12-20 09:41:46 +00:00
Jihoon Kim 4262c33bfc ecore_imf: Add prediction hint hash APIs
Change-Id: Id012fd172d3b15bfa3e9ea10c22216db10ba23b5
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
2017-12-20 17:36:27 +09:00
Jihoon Kim 9e8bd48e70 ecore_imf: Add autofill hints in input hint
Change-Id: I4e51adf179afa69a077de8ecabf7fa763c03f871
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
2017-12-20 17:36:27 +09:00
Carsten Haitzler c102ab9b2f remove all specific including of elm headers inside out src tree
... other than Elementary.h after d6e3ce3df422751cb1c4524f1ea0b16ce897410 etc.
2017-12-20 17:26:32 +09:00
SangHyeon Lee a99941d24f efl_ui_scroll : fix scroll bar size visibility issue in efl_ui_list
Summary :
mostly, bar-related event callback will be registered after
scroll manager creation, so in scroll manager constructor,
visibility_update cannot update their visiblity properly.
2017-12-20 15:27:12 +09:00
Jean-Philippe Andre c2a5ee65d5 elm: Fix duplicate EO API
elm_interface_scrollable is used by legacy but isn't public API.
2017-12-20 15:26:22 +09:00
SangHyeon Lee 0c579c82c3 elm: apply new scroll interface in efl_ui_list
Summary: Apply new scroll inteface in efl_ui_list.

Test Plan: tested by examples

Reviewers: jpeg, eagleeye

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5690
2017-12-20 15:22:22 +09:00
Jean-Philippe Andre 0d85525dc8 loop: Fix loop_get search priority
According to comments by @k-s & @raster.

See 784a5b56a3 this was intended to be a fallback, not the first
lookup indeed. Since this is an error case, let's print an ERR message
at least.
2017-12-20 13:39:11 +09:00
Jean-Philippe Andre 28661cb650 scroller: Fix compilation on Windows
Thanks @vtorri for the report.
Fixes T6528
2017-12-20 11:21:50 +09:00
Cedric BAIL 98aa1a4eb1 eina: fixup EAPI definition. 2017-12-19 09:54:45 -08:00
Carsten Haitzler 036cf62cc7 efl build... let's not break building against efl...
yet again headers messed up and building against efl is broken!
2017-12-20 01:24:58 +09:00
Jean Guyomarc'h e835a02ebb eina: fix random segfaults when displaying BT
Under some circumstances, eina crashes when attempting to display the
backtrace, because dladdr() may yield a dli_fname that is NULL. This is
especially annoying in realease, when the backtrace is shown by default
when CRI/ERR are thrown.

@fix
2017-12-19 16:56:22 +01:00
Jean Guyomarc'h a1e05aa089 evas/elm: fix visibility of some symbols
Public symbols were defined internal to Evas/Elementary on macOS, making
the link of external modules unfeasible.

- EAPI was messed up by an invalid inclusion of evas_text_utils.h, making
  some symbols private instead of public.
- A similar issue was present in evas_font_draw.c, where the symbols
  were directly imported without the proper definition of EAPI.
- Elementary.h did include some eo-generated headers, but for windows
  only. It should not been restricted to windows, as it allows to export
  symbols to external modules.

Fixes T6448.
2017-12-19 15:08:46 +01:00
Jean Guyomarc'h f71444baa8 evas: include missing header
This fixes a compilation warning telling a function was used without
prior declaration.
2017-12-19 14:30:23 +01:00
Jean-Philippe Andre 0f1469280d win: Show windows created by efl_add with a job
This fixes efl_add(WIN) on wayland, using an internal API.
Test scenario:
  ELM_DISPLAY=wl elementary_test -to "Part Shadow"
2017-12-19 20:37:25 +09:00
Jean-Philippe Andre f2b13e4a21 scroll: Fix a warning (and probably the logic too) 2017-12-19 14:25:08 +09:00
Yeongjong Lee 434e7b4470 efl_ui_spin_button: remove needless focus_set
Summary:
because _entry_show_cb callback call focus_set function,
efl_ui_focus_manager_focus_set is unnecessary.
also, this fixes focus error message.

Test Plan:
1. elementary_test -to Efl.Ui.Spin.Button
2. click the entry.

Reviewers: CHAN, Jaehyun_Cho, bu5hm4n

Reviewed By: CHAN

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5641
2017-12-19 14:25:08 +09:00
SangHyeon Lee 0f16a06710 interface : change efl_pack_grid and efl_ui_grid to efl_pack_table and efl_ui_table
Summary:
Change name of 'grid' to 'table' for matching on common ui naming
and avoiding confusion with 'gengrid' and 'grid view'.
grid will be introduced as grid image view after.

Test Plan:
checked make & make install
checked make check - there are errors but not related with these changes.
checked make examples - there are errors in cxx but not related with these changes.
checked make discheck - failed
test in elementary_test with Efl.Ui.Table and Table_static.

Reviewers: raster, cedric, jpeg, felipealmeida

Differential Revision: https://phab.enlightenment.org/D5668
2017-12-19 14:25:08 +09:00
Jean-Philippe Andre c8a28b9780 ecore: Properly shutdown pollers 2017-12-19 13:44:33 +09:00
Jean-Philippe Andre ff24ac2d6d efl: Reset ecore event types on init
This fixes cycles of init/shutdown/init where ecore event types would
become invalid, since they are now stored in a dynamic array rather than
a statically stored array.

The risk here is that if a module of EFL tends to init/shutdown in a
"normal" scenario then the event type array will grow in a leaking
manner. This could be fixed by resetting those event ID's only when the
loop actually exits (EFL_EVENT_DEL on the main loop). I'm not using
EFL_EVENT_DEL in this patch as this would add too many event callbacks
to the main loop object, which may result in slightly slower event calls
to it, affecting the overall performance.
2017-12-19 11:14:37 +09:00
Wonki Kim 47bf356435 scroller: Introducing Efl.Ui.Scroller
Summary:
scrollable widgets had a interface_scrollable as a mixin so that the
widgets had a 'is-a' relation with interface_scrollabe.  however, new
scroller concept don't have 'is-a' relationship, but 'has-a'
relationship.  scrollable widgets should have a scroll manager inside
them, then scroll manager handles event from user and api
implementations.  and also we cut the features such as paging because
there will be aka 'elm_pager'.

we are expecting that the new concept make us to maintain the scroller
easier.  please excuse for many unorganized code and logics. : (

[contained commit]
scrollable: add efl_ui_scroller example
scrollable: refactoring for behavior in case of multiple scroller
scrollable: remove repetitive scrollbar code.
scrollable: combine calculating bounce distance code.
scroll_manager: mouse up function refactoring
scroll_manager: mouse move function refactoring
scroll_manager: warp animator wip
scroll_manager: fix denominator value when calculating flicking behavior.
Fix to disconnect bounce animator once animation is done
gather duplicated animator drop logics
gather duplicated conditions
Rearrange prototypes and append comment
Add manipulate functions for animators
scroll_manager: change member_add function.
scroll_manger: apply mirroring logic
scroll_manager: apply scrollbar
apply API to scroller widget
scroll_manager: apply scroll event callback
Change logics for all about scroll animating
efl_ui_pan: add efl_ui_pan
scrollable:  change content_min_limit to match_content
scroll theme: apply overlapped scrollbar
+ many others!

Reviewers: akanad, woohyun, cedric, jpeg

Subscribers: jenkins, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5222

Note by @jpeg:
Unfortunately this patch comes in a massive single blob, after too many
rebase operations. It has now come to a point where I think the API is
nice and it works as I'd expect.
Now I only wonder how applicable this will be for Efl.Ui.List. As we can
see Photocam (legacy and unified API) could be transformed to use this
new API.
2017-12-19 10:26:25 +09:00
Jean-Philippe Andre 29ce7550eb eina: Add missing eina_internal.h 2017-12-19 10:20:18 +09:00
Cedric BAIL 90f30ea418 eina: make __eina_promise_cancel_all an internal only function. 2017-12-18 16:17:04 -08:00
Cedric BAIL 29d4cb864b ecore: make message_process and message_exists internal function. 2017-12-18 16:10:11 -08:00
Daniel Kolesa 03e77ea361 eolian: fix use-after-free in eo_parser
Thanks @netstar for finding this.

Fixes T6523.
2017-12-19 00:20:40 +01:00
Sungtaek Hong a2309c5083 efl_ui_image: apply load_size when API is called
Summary:
when  efl_image_load_size_set() is called, image only sets
internal variable and not apply to the internal image.
elm_image_prescale_set() is also affected.

Test Plan: Run elementary_test->Image Prescale

Reviewers: jpeg, eunue, woohyun

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5645
2017-12-18 20:49:46 +09:00
Sungtaek Hong 81ba035f69 efl_ui_bg_widget: replace internal image to efl_ui_image 2017-12-18 20:49:45 +09:00
Sungtaek Hong 25136ddf8c efl_ui_bg: add Efl.Ui.Bg interface
Summary:
- Previous class efl_ui_bg moved to efl_ui_bg_widget.
- Scale_type moved to efl_image from efl_ui_image.
- Previous enum Efl_Ui_Image_Scale_Type moved to Efl_Image_Scale_Type.

Test Plan:
Run elementary_test
1.Image Scale Type
2.Efl.Ui.Bg
3.Efl.Ui.Win
4.Part Background

Reviewers: jpeg, woohyun, cedric

Differential Revision: https://phab.enlightenment.org/D5616
2017-12-18 20:49:45 +09:00
Jean-Philippe Andre 147ef4f91d ecore: Avoid access to invalid eo id
Not a fan of the solution, as I think some of the logic handling those
futures is a bit broken. I'm not 100% sure about this patch. But this
improves make check with CK_FORK=no in elm_suite.
2017-12-18 19:54:31 +09:00
Jean-Philippe Andre 06fea06c86 ecore: Simplify code 2017-12-18 19:54:31 +09:00
Jean-Philippe Andre fce444bb18 ecore_con: Make sure the proxy helper is valid
If the http proxy helper gets deleted at shutdown rather than because
the process actually exited, the object pointer becomes invalid. This
patch tries to avoid a situation where the object is not valid.
2017-12-18 19:54:31 +09:00
Jean-Philippe Andre c0c5e72408 ecore_con: Properly shutdown and unregister log domain
I believe the comment saying we should not unregister the log domain is
invalid as we try to flush the pending ecore events.
2017-12-18 19:54:31 +09:00
Jean-Philippe Andre 81bad9f47c ecore_con: Always get the loop on init
In case of init/shutdown/init cycles, the loop EO ID has changed, so it
must be fetched again.
2017-12-18 19:54:31 +09:00
Jean-Philippe Andre a90746378d ecore_con: Avoid safety errors when closing http
When setting EOS on the dialoer, it's possible that it will also get
automatically closed (by a callback). This results in safety check error
messages, while everything is fine (at least I believe it is).
2017-12-18 19:54:31 +09:00
Jean-Philippe Andre 784a5b56a3 loop: Try harder to find the main loop
If the object has no parent or anything else goes a bit wrong,
efl_loop_get() may fail to return the loop object. It's a bit ridiculous
when we're in the main loop as we know which loop object was requested.

This avoids returning NULL.
2017-12-18 19:54:31 +09:00
Jean-Philippe Andre fed8123448 ecore: Avoid double free with promises 2017-12-18 19:54:31 +09:00
Jean-Philippe Andre 796b1dd566 ecore: Fix legacy message handlers destruction 2017-12-18 19:54:31 +09:00
Jean-Philippe Andre 5dbfb7961f eo/eina: Add HACK to avoid calls to EO after shutdown
Efl.Future is an EO object which means even cancelling Efl.Future
objects requires EO. So this should be done before shutting down EO,
otherwise everything fails badly.

I believe Efl.Future is going to disappear soon, but the problem will
remain: if any promise/future uses EO or anything else outside of Eina
(so, basically anything) then it needs to be canceled before shutting
down the above layers. This is the same situation as with ecore events,
for which we've introduced ecore_event_type_flush.

Ping @cedric
2017-12-18 19:54:31 +09:00
Jean-Philippe Andre 9427862d40 ecore: Fix clean shutdown
There is no good reason to not shutdown a library properly. The loop
object can easily be deleted safely, if it is properly initialized. The
del event happens before destruction so it is too early to set the
singleton variable to NULL. Do that as late as possible and all calls to
efl_loop_main_get() will work as expected.

The issue with fd's was simply that they were not initialized to -1
(timer_fd), as some #ifdef statements have disappeared.
2017-12-18 19:54:31 +09:00
Jean-Philippe Andre b6eeed74bb ecore: Fix warning with enum 2017-12-18 19:54:31 +09:00
JinYong Park e8735068ac Efl.Ui.Popup.Anchor: remove event callback when popup is deleted
Summary:
When popup is deleted, popup didn't remove event callback
which its parent and anchor object.
So before popup destruction, detach anchor.

Test Plan: elementary_test -to efl.ui.popup.anchor

Reviewers: Jaehyun_Cho, herb, woohyun, jpeg, cedric

Reviewed By: Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5667
2017-12-18 14:08:09 +09:00
Woochan Lee 845d6d1b57 efl_ui_spin_button: Fix can't input number in case of the min value is bigger than 1.
Summary:
Min Max validate logic has been changed to support decimal point counting.
It makes this side effect.

Test Plan:
elementary_test -> efl_ui_spin_button sample.
(On the min max filter enabled.)

Reviewers: jpeg, Jaehyun_Cho, woohyun

Reviewed By: Jaehyun_Cho

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5580
2017-12-18 13:23:32 +09:00
Andy Williams a34aca27a0 ecore: Additional safety for bad futures
Fixes T6519
2017-12-17 14:38:19 +00:00
Carsten Haitzler 679d41fc3c ecore - remove warning for win build 2017-12-17 16:27:08 +09:00
Carsten Haitzler 52c9c0e939 windows build - try fix again 2017-12-17 16:03:33 +09:00
Carsten Haitzler 4abe5d90e4 ecore main - try fix windows build
i hope this fixes T6517
2017-12-17 15:07:37 +09:00
Carsten Haitzler 90d0f695b4 elm widget - remove unused vars from new shadow part code
fill isn't used... maybe at some point someone jpeg wanted to.. but he
didn't, so let's not have warnings.
2017-12-16 12:09:52 +09:00
Carsten Haitzler 24d43f2f48 efl loop - fix merge issue with future changes. 2017-12-16 12:09:52 +09:00
Carsten Haitzler d9e149eb4d efl loop message stuff - document the eo files. 2017-12-16 12:09:52 +09:00
Vitor Sousa acd99be98b efl_mono: tests and better support for structs, plus some other fixes
Fix several integer binding type deduction based in its size on C.

Generation for function pointers no longer use modified argument name
which is different from the parameter name.

New generation context for structs.

bool from UnmanagedType.I1 to UnmanagedType.U1 (correct use
inside structs according to mono documentation).

byte (signed char) and int8 now is correctly represented by
sbyte in C#.

Check parameter direction in some out generators in parameter.hh.

Add efl_libs.csv to gitignore.

Make eina.Value pointer constructor public.

Add missing fields to efl.kw_event.Description struct.

Remove eina.File workaround (let struct gen handle it).

Remove is_function_ptr bool from regular_type_def and
add a typedecl_type enum to it. Also add some helper
methods for easier comparison.

Left some test cases commented for when pointer parameters
are properly working.
2017-12-15 22:26:29 -02:00
Cedric BAIL b20dd869a4 elementary: fix definition of EAPI. 2017-12-15 15:48:17 -08:00
Cedric BAIL fa0ba4c0c9 eio: remove uneeded function. 2017-12-15 09:45:48 -08:00
Daniel Kolesa 373392d56e eolian: remove now unused database init/shutdown 2017-12-15 17:11:11 +01:00
Daniel Kolesa 18e18ca74c eolian: remove remaining global state (+ modify APIs accordingly) 2017-12-15 17:11:11 +01:00
Daniel Kolesa d624464ab4 eolian: filename retrieval APIs are read only 2017-12-15 17:11:11 +01:00
Daniel Kolesa c8aa30e698 eolian: make declaration APIs use units 2017-12-15 17:11:11 +01:00
Marcel Hollerbach f05249f30b efl_ui_focus_manager_calc: dont use sqrt
We only need the order, not the exact value
2017-12-15 11:31:25 +01:00
Marcel Hollerbach f1a2e0f439 efl_ui_focus_manager_calc: use pow instead of powerof2 2017-12-15 11:31:25 +01:00
Jean-Philippe Andre 69c595b5fd eo: Fix crash with invalid objects
Not a legacy fix as auto-unref is new in 1.21.
2017-12-15 16:17:42 +09:00
Carsten Haitzler 02737b1308 ecore - unify comment style 2017-12-15 14:36:30 +09:00
Carsten Haitzler 3a703dbf4a eo - set opts hash to NULL after free 2017-12-15 14:16:53 +09:00
Carsten Haitzler c4e96e4e83 eo - fi missed error condition if eoid passed in is NULL
in some cases construction can fail badly and this causes a crash...
eoid is NULL going in and this causes a cascade of failure. survive
and be more robust.
2017-12-15 14:16:53 +09:00
Carsten Haitzler 5dd52fd09b ecore - begin moving data into the efl loop data in the object
we really should have data inside the loop object, so begin moving it
one small thing at a time. this is the basics that will allow multiple
efl loops. make an eo efl object and class for fd handlers that is efl loop
bound make fd handlers really bound to their parent loop and not global  as
well as have a nice class/obj. create an message queue per loop and
put legacy ecore events on top of it... and a lot more.

this is not 100% done, but it's a lot of the core and groundwork.
various ecore_timer_add(), ecore_diler_add() etc. need changes.

The following still need doing:

  ecore_timer (internal usage for sure)
  ecore_idler (internal usage for sure)
  ecore_idle_enterer
  ecore_idle_exiter
  ecore_pollers? (is the new efl loop stuff ok?)
  ecore_exe (fork/spawn from any thread and track exe from that thread?)
  ecore_signal code
  ecore_throttle (should we have a single global too? we have per loop)
  ecore_app ? (should every loop be given its own argv/argc?)

Lots of internal ecore code uses/calls these legacy calls and we
should have efl loop replacements and/or use the ones we have

The following will bedifferently designed for loop to loop
control/messaging/ipc:

  ecore_thread
  ecore_pipe
2017-12-15 14:16:53 +09:00
JinYong Park ccfa9ae220 Efl.Ui.Popup.Anchor: apply group calculate with size problem fix
Summary:
Size and align calculation in Efl.Ui.Popup was advanced using group calculate,
so Efl.Ui.Popup.Anchor apply it also.

Test Plan: elementary_test -to efl.ui.popup.anchor

Reviewers: Jaehyun_Cho, herb, jpeg, woohyun, cedric

Reviewed By: Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5655
2017-12-15 13:56:25 +09:00
Cedric Bail d5c9c0b784 eio: migrate Efl.Io.Manager.xattr_ls to use Eina_Future. 2017-12-14 16:42:44 -08:00
Cedric Bail affd07a11f ecore_con: move Efl.Net.Control.Access_Point to use Eina_Future. 2017-12-14 16:42:44 -08:00
Felipe Magno de Almeida 9a120e3e72 elm: Fix typo in copy and paste in efl_ui_list precise layouter
Fix comparison between height and width instead of width and width.

CID 1383711
2017-12-14 22:23:07 -02:00
Cedric Bail dd4be85d7e evas: forgotten adjustement to handle the output geometry offset. 2017-12-14 10:56:49 -08:00
Daniel Kolesa 9aaa5cf839 eolian: remove _cunit and prepare for returning actual units 2017-12-14 17:31:21 +01:00
Daniel Kolesa 2259b6f16f eolian: remove parent info from units (actually doesn't make sense) 2017-12-14 16:45:13 +01:00
Daniel Kolesa f9868b541e eolian: store unit inside lexer 2017-12-14 16:38:35 +01:00
Chris Michael af4af300af eeze: Remove unused device variables
As we do not ever use the udev_devices created from
udev_device_new_from_syspath in these functions, remove them.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-12-14 07:35:07 -05:00
Chris Michael 5f7d942253 eeze: Don't leak udev enumeration
If we cannot create a new udev device, then we should free the
previously created udev enumeration from above.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-12-14 07:31:39 -05:00
Jean-Philippe Andre 7bf8e87185 elm: Include elm_widget.eo.h for EO API
This is the header that exposes the efl_ui_widget API. Only for the EO /
Unified API.
2017-12-14 20:30:46 +09:00
Jean-Philippe Andre a13e61a37b elm: Add "shadow" part to all widgets
This makes it possible to very easily create drop shadows and glow
effects on any widget. This is absolutely not optimized, though the main
performance bottleneck is that the proxy images get redrawn after just
moving.

@feature
2017-12-14 18:03:49 +09:00
Jean-Philippe Andre 00bb3bd3c7 efl: Add simple API for "blur" effects
This will use the Efl.Gfx.Filter interface internally, but makes it
usable by normal people.
2017-12-14 18:03:49 +09:00
Jean-Philippe Andre 88bfba1fdd evas filters: Add "alphaonly" flag for blend and blur
This is very useful to specify precisely which kind of RGBA -> Alpha
conversion you want. If all you wanted was the alpha layer to use as a
mask, set this flag to true.

@feature
2017-12-14 18:03:49 +09:00
Jean-Philippe Andre 8bb03d8170 evas: Avoid invalid call to efl_file
If not legacy, the object does not accept files, resulting in an ERR
message.
2017-12-14 18:03:48 +09:00
Jean-Philippe Andre fc82281603 evas: Fix potential crash with draw context
Using filters I end up in situations where this function returns NULL
and all hell breaks loose. I guess the spinlock is what makes this
possible (race condition).

@fix
2017-12-14 18:03:48 +09:00
Andy Williams fcdf4e9d10 elm_code: Correct tooltip behaviour for elm_cde_widget 2017-12-14 08:55:01 +00:00
Amitesh Singh 3726af8313 efl.image.load: fix eolian redefine warnings for load_error{}
load_error{} was defined in efl.file as well.
remove load_error{} from efl.image.load intf and implement
Efl.File.load_error{} instead.

Ref T6514
2017-12-14 14:16:13 +09:00
Jaehyun Cho 0722992790 efl_ui_popup: Code refactorying for elm_layout_sizing_eval
Use flags for group calculation, size calculation and align calculation.

If the flag for size calculation is set to be false, then size is not
calculated in the efl_canvas_group_calcualte().
(The flag for align calculation works the same way.)

Efl.Ui.Popup's sub classes can set the above flags false before they
call efl_canvas_group_calculate() with its super class not to calculate
size or align by its super class.
2017-12-14 13:58:06 +09:00
Cedric BAIL df032058fd ecore: rename Efl.Loop_User to Efl.Loop.Consumer. 2017-12-13 14:54:57 -08:00
Andy Williams 433c7ef8fe elm_code: Fix tooltip crash 2017-12-13 22:44:31 +00:00
Derek Foreman 51599fe86c ecore_wl2: Better handling of extra commit
Discard the old callback so it can't fire later - which can happen after
the window's deleted in certain cases.
2017-12-13 16:34:10 -06:00
Ivan Furs 55b8cf8244 edje: fix using undefined macros(ECORE_AUDIO_OUT_RENDER_CLASS/ECORE_AUDIO_OUT_RENDER_EVENT_CONTEXT_FAIL)
Summary: @T6154

Reviewers: vtorri, NikaWhite, raster, cedric

Subscribers: artem.popov, jenkins, cedric, jpeg

Tags: #windows, #efl

Differential Revision: https://phab.enlightenment.org/D5311

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-12-13 10:27:48 -08:00
Ivan Furs 97f79344da ecore_audio: fix using undefined macros
Summary: @T6154

Reviewers: vtorri, cedric, NikaWhite, raster

Subscribers: artem.popov, vtorri, jenkins, cedric, jpeg

Tags: #windows, #efl

Differential Revision: https://phab.enlightenment.org/D5310

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-12-13 10:27:48 -08:00
Cedric BAIL 53c548a97e Revert "Revert "ecore_audio: a minimal template for playing sound on WINDOWS is added""
This reverts commit 4457f8c9c8.
2017-12-13 10:27:48 -08:00
Ross Vandegrift 71e5c74eb6 efl: drop deprecated Encoding key from desktop files
Summary:
The Encoding key is no longer required, all desktop files are assumed to
be UTF-8 encoded.  See details at:
https://standards.freedesktop.org/desktop-entry-spec/1.1/apc.html

Fix various typos and misspellings

lintian, Debian's package checker, uses strings to check for common typos
in compiled binaries.  This change fixes the ones it identified in 1.20.6.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5584

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-12-13 10:27:48 -08:00
Felipe Magno de Almeida e67d6484b8 efl-cxx: Fixes to make dist 2017-12-13 14:13:09 -02:00
Felipe Magno de Almeida fd92dec358 elementary: Add efl_ui_list widget 2017-12-13 14:13:09 -02:00
Taehyub Kim cf36e21e07 efl_ui_popup_alert_text: add expandable feature
Summary: add expandable feature for text popup

Test Plan:
1. run elementary_text -to Ui.Popup.Alert.Text
2. check the cases of the sample

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

Reviewed By: Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5547
2017-12-13 17:46:40 +09:00
Jaehyun Cho baabcdcd7d efl_ui_popup_alert_scroll: Fix indentation on eo file 2017-12-13 17:12:05 +09:00
Jean-Philippe Andre 2bc583e3e7 text: Another event info fix
I shouldn't have pushed so fast! :)
2017-12-13 15:44:48 +09:00
Jean-Philippe Andre efe99b08ae text: Fix event info in one case
Dunno how to test... but this seems pretty obvious.
2017-12-13 15:41:23 +09:00
Jean-Philippe Andre e5d80f1ced text: Don't use legacy events
Efl.Ui.Text is an EO object, why use the legacy event API?
2017-12-13 15:36:10 +09:00
Jean-Philippe Andre 315c4f761e text: Merge changed,user events
Efl.Ui.Text and Efl.Ui.Text.Interactive were both defining it.
2017-12-13 15:36:10 +09:00
Jean-Philippe Andre 7155256422 text: Fix event propagation (changed,user) 2017-12-13 15:36:10 +09:00
Jaehyun Cho d59003a604 efl_ui_popup_alert_scroll: Modify variable name for better understanding
obj_min means the minimum size excluding scroller's minimum size.
scr_min means the minimum size including scroller's minimum size.
2017-12-13 14:55:16 +09:00
Jean-Philippe Andre 1fdbb00e22 efl: Move VG-specific change event to efl.gfx.path 2017-12-13 13:47:48 +09:00
Jean-Philippe Andre 3136500fbe elm: Uniform change event for nstate,radio,check
I added convenience macros for check and radio, easing discoverability
in C.

This will avoid C# issues such as:

lib/elementary/elm_pan.eo.cs(14,23): warning CS0108: `elm.Pan.CHANGED'
hides inherited member `efl.Gfx.CHANGED'. Use the new keyword if hiding
was intended
lib/efl/interfaces/efl_gfx.eo.cs(24,23): (Location of the symbol related
to previous warning)

Since nstate is not a legacy widget, I can safely change the event name
and the test case.
2017-12-13 13:47:48 +09:00
Amitesh Singh 1264fb4af2 Efl.Canvas.Object: add legacy APIs for pointer_coords_inside_get()
fix the b0rkage after 8fb49de5eb
2017-12-13 13:43:02 +09:00