Commit Graph

13576 Commits

Author SHA1 Message Date
Derek Foreman 27f88b534a elput: Fix multiple open/close of drm devices
When I added the code to probe drm devices to ensure they're
modeset capable (ref 414d406b3b)
I didn't realize elput didn't allow us to open and close more than
one drm device at startup without blowing up libinput.

This is a somewhat dirty hack to rough that in.

The problem is that open/close the device during startup will
result in an async "gone" callback from logind, which then kicks
off an input shutdown.  We need to try harder to only do that
shutdown when it makes sense.
2017-07-24 16:06:52 -05:00
Mike Blumenkrantz aae4d21b63 ecore-wl2: handle null offer drags more effectively
this is valid and refers to an offer with no types; a leave event
with no enter is a protocol error, however

fix T5770

@fix
2017-07-24 08:30:05 -04:00
Mike Blumenkrantz 451a93d9d2 Revert "ecore wl2 - dnd - handle NULL drags... shouldnt happen but does"
This reverts commit 85e5858466.

please do not randomly add null checks for the purpose of quickly closing tickets.
2017-07-24 08:29:45 -04:00
Carsten Haitzler 85e5858466 ecore wl2 - dnd - handle NULL drags... shouldnt happen but does
this should fix T5770

@fix
2017-07-24 18:53:33 +09:00
Carsten Haitzler fd9e6b305d efl net server udp - report erro on alloc failure
unwind nicely and complain
2017-07-24 17:44:22 +09:00
Carsten Haitzler 143709faba ecore con proxy helper - complain when realloc fails
so you know why things might be failing... complain about out of
memory errors.
2017-07-24 17:35:13 +09:00
Carsten Haitzler fe6dc2000d ecore exe - pisix - handle malloc fails
handle malloc fails better
@fix
2017-07-24 16:59:53 +09:00
Carsten Haitzler 829d0bc3f9 ecore win32 exe handling - check realloc and malloc returns
handle out of memory errors better
@fix
2017-07-24 16:57:22 +09:00
Carsten Haitzler b47cbdcb65 ecore_exe - handle realloc failures by complaining and rolling back
@fix
2017-07-24 14:10:17 +09: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 3826f21a29 evas seat focus add - handle other case where layer may be null
fix CID 1377522
2017-07-23 19:30:31 +09:00
Carsten Haitzler bb7e8456c4 eina debug timer - handle fail wakeup write with error complaint
fix CID 1377528
2017-07-23 19:26:56 +09:00
Carsten Haitzler 144f5f73e0 add comment about poll high/medium/low implementation of events
not brilliant as it stands. :(
2017-07-23 19:18:55 +09:00
Carsten Haitzler 8a80005f25 ecore main - fix division to remain a double/float as expected
1/60 != 1.0/60.0 ... the first is an integer which is 0... the second
is 0.016666666 .... a float/double. fix CID 1377532
2017-07-23 19:12:32 +09:00
Carsten Haitzler 758e7d3562 eina debug - don't try and collect stats on more than a million threads
sanity check... just in case.
2017-07-23 19:09:11 +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
Carsten Haitzler b3b0411a05 evas callbacks - check if obj->events is valid because it's cow alloced
it COULD be null and we do have other checks for it being not-null and
we dont check if the alloc fails...  so check. this SHOULD fix
CID 1377547
2017-07-23 18:53:46 +09:00
Carsten Haitzler 6a65cb2f3c eina debug - add comments to cpu debug using locks to pause sysmon
this is intended so leave comments saying so. coverity doesn't like it
with CID 1377549
2017-07-23 18:43:58 +09:00
Carsten Haitzler c69f9d2837 eina debug - check return value of syscall for errors
this should fix CID 1377550
2017-07-23 18:40:04 +09:00
Carsten Haitzler 4095165385 efl canvas image - dbug ingo get - dont get if no root dbg info supplied
if root dbg info is null we'll leak and not have anything useful
stored somewhere for fetching anyway.

this should fix CID 1365656
2017-07-23 18:36:44 +09:00
Carsten Haitzler 60d2bd233b evas module load add comments pointing out this is intentional ptr loss 2017-07-23 18:29:57 +09:00
Carsten Haitzler 8f67f2f2d3 ecore_audio headers conflict with app have ifdefs
Ecore_Audio.h had #ifdef HAVE_PULSE ... and that is just so wrong as
this is something an ap[p may or may not set in its config.h ... but
this certainly hase no place in our public headers. the api's there
should always be there... symbols always... just imtplementation may
be empty ... though ecore_audio doesnt build at all without pulse...
so it's moot.

so fix this build issue i found when fixing e build issues with meson
changes etc.

@fix
2017-07-22 17:59:11 +09:00
Derek Foreman 414d406b3b ecore_drm2: Ensure device we find can mode set
Some systems have dri devices that can't mode set, and if they're first in
the directory they'll get picked by our code and things fall apart later.

So, open the potential device and ensure it has basic functionality before
selecting it.

This is a little inefficient as it gets the device via elput twice before
it can be used - this will be addressed later as the changes are a little
more invasive to optimize.
2017-07-21 16:46:00 -05:00
Derek Foreman 57e826db69 ecore_drm2: Open elput manager before drm device
We're going to need to access the device as part of the find process,
so we need a manager.
2017-07-21 16:46:00 -05: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
Carsten Haitzler b8a760ed58 efreet - dont complain if INTERNAL x extension hash of desktop is NULL
asking for an x- field from a desktop shouldnt result in null safety
checks IF the x hash is null - it's fine if it's null - that field
just doesn't eixst. if other fields were in the x hash but the desired
one wasn't it'd not complain, so why complain if there is just no x
hash?
2017-07-21 17:02:43 +09:00
Carsten Haitzler 0f73f10a42 efreet - remove noisy debug printfs 2017-07-21 06:06:59 +09:00
Daniel Hirt 01a693412f Evas textblock: add definition to 'cursor_equal'
This is a follow-up to c4ea25cbdb to fix
legacy API.
The definition was missing, so adding it.
2017-07-20 19:20:36 +03: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 5db3e557c5 eina_list: Ensure single init
This fixes a crash in make check when --profile=dev is explicitely
enabled. eina_list_init() is called by the standard eina_init() loop
and by eina_debug_init() as well.

Honestly I'm not sure why it doesn't crash for other people as
well...

The crash was in eolian_suite during the second eina_init (called
from eolian_init).
2017-07-20 17:47:51 +09:00
Hosang Kim 05e3e450e5 slider: fix jumping handler bug.
Summary:
Actual slider value is not changed.
So when user release mouse or touch, slider value is returned
to the value by user set.

This is a partial revert of f41e276160

Fixes T5745

Test Plan: elementary_test -> slider

Reviewers: jpeg

Subscribers: cedric

Maniphest Tasks: T5745

Differential Revision: https://phab.enlightenment.org/D5031
2017-07-20 15:28:32 +09:00
Jean-Philippe Andre 7243b71a19 evas: Restore flag pre_render_done in render_mapped
Some objects don't go through render_pre (unchanged, child
of mapped parents), even though they will go through
evas_render_mapped. Those were marked as pre_render_done
inside evas_render_mapped since it seemed to fix some issues
a long time ago.

Unfortunately, if those objects are changed their flag may
not be reset to false, which means they never go through
render_pre, leading to render issues.

I believe simply restoring the value of the pre_render_done
flag should be good enough. I don't know why it is set to
true inside evas_render_mapped but I also don't want to find
out :)

See 9ac13e4aec (old)
See 87e5e70a9d (older)

Patch made with @jiin.moon
2017-07-20 15:17:36 +09:00
Jean-Philippe Andre cb19c77558 evas: Avoid infinite loop on evas shutdown
If an object fails to call efl_destructor() on all the parent
classes, then it may never be removed from the layer object
inlist and never would its data be deleted either (eo keeps
it safely alive).

Here's how to test: add a "return;" statement inside an object's
destructor (eg. the window class).

Fixes T5680
2017-07-20 14:59:25 +09:00
Jean-Philippe Andre bbfdf8909b evas focus: Fix crash when shutting down with errors
Example test: add many evas_object_ref() to a window and click
on its X to close it.
2017-07-20 14:46:49 +09:00
Jean-Philippe Andre dccdd20335 elm: Fix a safety error message
Happens when shutting down E
2017-07-20 14:46:49 +09:00
Jean-Philippe Andre 7231a3295b eo: Fix deadlock due to the shared mutex
Explicit lock / unlock of the shared mutex mixed with implicit
lock / unlock when accessing the internal Eo_Object data lead
to uncaught issues such as these.

This was found by trying to run E with gfx filters under eo_debug.
2017-07-19 15:44:49 +09:00
Jean-Philippe Andre b98bc51968 evas: Fix cmopilation warning
Oops I forgot to add that to the previous commit!
2017-07-19 14:01:07 +09:00
Jean-Philippe Andre 45c8e5e983 evas: Fix support for image_data_get on snapshot
evas_object_image_data_get() is a legacy API that I made work
with snapshot objects (evas_object_image_snapshot_set()). Some
changes in the engine broke the behaviour and this patch fixes
it.

When getting the pixels from an FBO, in read-only mode, we need
to create a temporary image (pixels surface) that contains the
copy of the pixels we get from glReadPixels. This image needs
to be deleted afterwards. It is thus stored by the image object
and freed upon _image_data_set() (good) or object deletion (bad).

FBO + read-write is not supported by this API (it is supported
through buffer_map as the filters had to use that).

Fixes T5754
2017-07-19 13:59:42 +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 68eba4817a eo: clarify what extensions are. 2017-07-18 17:51:38 +02: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
Cedric BAIL 2330d4fec1 ecore_evas: make sure fn_post_render callback is called last.
Should fix T5595.
2017-07-17 11:51:15 -07: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 c4ea25cbdb Evas textblock: fix legacy header
Fix ABI changes with const qualifiers, as well as some missing docs.
2017-07-17 16:50:31 +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
Daniel Hirt bb2678d403 Canvas text: re-add support for tabs
Somehow this was left out. Fixes tabs, so you can now use "\t" and
press the "tab" key.
2017-07-17 16:50:31 +03:00
Andy Williams bf8a0eead2 OSX: fix version detection in build 2017-07-17 13:04:30 +01: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
Carsten Haitzler 9d1a8bb082 eina debug bt sig handle - fix build on osx for clockid_t
fix #ifdefs so it should in theory build on osx 10.11.x

@fix
2017-07-17 16:04:01 +09:00
Sungtaek Hong d545929845 edje_signal: reduce member count when deleted edje_signal_callback is found
Summary:
 - when deleted callback is found _edje_signal_callback_move_last() is called
   in order to pack match array.
 - during _edje_signal_callback_move_last() index skips when another deleted
   callback is found, but does not reduce members_count.
 - this duplicates a remaining callback and calls the callback twice.

Test Plan:
1. add multiple edje_signal_callback by edje_object_signal_callback_add()
              which have the same source, signal, func but different data.
           2. delete first and last callback by
              edje_object_signal_callback_del/edje_object_signal_callback_del_full.
           3. emit edje_signal.
           4. observe one callback is called twice.

Reviewers: SanghyeonLee, conr2d, jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4985
2017-07-17 15:05:20 +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
Jean-Philippe Andre 9c18f0d00a ecore joystick: Use const char * in API, not slstr
The API eina_slstr_ is meant to look just like const
strings, wihch means here there could instead be an internal
struct holding the name, and the API would behave the same.

Note: This API is new in 1.20
2017-07-17 13:53:42 +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
Carsten Haitzler ead5d9cefd eo lexer - handle malloc failure with longjmp
handles possible error case nicely
2017-07-16 15:56:02 +09:00
Andy Williams 665679bc42 elm_code: add missing selection signals 2017-07-15 21:29:48 +01:00
Mike Blumenkrantz 3d4bb3851c ecore-evas: make the window_get apis return null without errors on failure
the normal usage of these is something like

if (!strcmp(engine, my_engine))
  win = window_get(ee);

which is a waste of effort since the window_get() functions all check
the engine interface internally
2017-07-14 18:43:00 -04:00
Mike Blumenkrantz 83ff889f6d eina: fix eina_tiler_equal to not always return true
ref e3f4f4457d
broken by D996

@fix
2017-07-14 18:43:00 -04:00
Mike Blumenkrantz 47ddbede05 eina: make tiler function params const where appropriate
stop throwing warnings when passing const params to functions which don't
modify the params
2017-07-14 18:43:00 -04: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
Derek Foreman 981d851d57 ecore_evas: Perform a tick before a manual render if we're not ticking
If we turned off the ticking with manual_render_set then perform a
manual render, we need animators to update.

ref T5462
2017-07-13 18:07:42 -05:00
Derek Foreman b86e6611f3 ecore_evas: Don't start custom tickers for manually rendered canvases
When a canvas is manually rendered the ticker is just a waste of cpu, and
worse - it can wake the drm back-end from dpms sleep, as the display needs
to be awake to generate vblanks.

We fire a DBG message when attempting to start an animator in this state
because it's frequently a bug that wastes battery life - (like E doing idle
cursor animations or clock updates while the display is off)

However, dpms off is not the only potential usage of manual render, so
another commit will follow shortly to fix the bug this commit introduces -
when using a backend with a custom ticker and doing manual render with
the display on, calling ecore_evas_manual_render() will not draw with
updated animator state.

Fix T5462
Again.
Really.
2017-07-13 18:07:42 -05:00
Derek Foreman aa8d9c1829 ecore_evas: Add a function pointer for last_tick_get
Engines that provide their own tickers may need to be able to provide the
time of the last tick even if they weren't sending ticks to EFL at the
time.

This is a feature added during freeze as it's necessary to resolve a bug.

ref T5462
2017-07-13 18:07:42 -05:00
Derek Foreman 20def4da21 ecore_drm2: Add a query for the next vblank time
I guess this is a feature, and we're deep in freeze, but:

a) this is critical for fixing T5462 properly without any side effects.
b) ecore_drm2 is all beta api
c) this should only affect wayland users

ref T5462
2017-07-13 18:07:42 -05:00
Derek Foreman 7e0beea3f5 ecore_evas: Refactor event catchers to call custom_tick_begin/end
Make the event catcher functions call the custom_tick_begin/end helpers
instead of directly calling the engine functions.
2017-07-13 18:07:42 -05:00
Cedric BAIL 7d9f1dbfd3 ecore_evas: protect against application holding a reference on the canvas while destroying the ecore_evas. 2017-07-13 15:35:17 -07:00
Andy Williams 77adf813d5 doc: Include two missing properties 2017-07-13 23:19:52 +01: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
Stefan Schmidt 9e3ff96f7b eina: inarray: remove documentation pointer to non-existing functions
These do not longer exist in our current code base (did they ever?).

Thanks a lot to Vincent Torri for spotting this!
2017-07-13 11:21:59 +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
Derek Foreman 599cdc93fa ecore_anim: set the tick thread's fds CLOEXEC
If we don't set them CLOEXEC then they end up in the fd space of every
client Enlightenment launches, allowing any client to write to them
and mess with animator timings or freeze the compositor.
2017-07-12 13:04:58 -05:00
Mike Blumenkrantz 46f024bbe3 efl-wl: initialize variable
CID 1377573
2017-07-12 13:41:23 -04:00
Andrii Kroitor 5f021bbfcf edje_edit: fix source generation 2017-07-12 19:21:15 +03:00
Mike Blumenkrantz 1cc9748c61 efl-wl: change x11 atom name var to normal char* 2017-07-12 11:59:21 -04:00
Mike Blumenkrantz 9940cabd13 efl-wl: free atom name when sending selection
CID 1377542
2017-07-12 11:59:21 -04:00
Mike Blumenkrantz 39c70f1fa7 efl-wl: free x11 pipe read buf on read fail
CID 1377520
2017-07-12 11:59:21 -04:00
Mike Blumenkrantz bad0d9dbd6 efl-wl: return if pipe reading fails in x11 bridge
CID 1377526, 1377534
2017-07-12 11:59:20 -04:00
Mike Blumenkrantz 7c80d82f25 efl-wl: check returns in x11 selection request handler
CID 1377518
2017-07-12 11:59:20 -04:00
Mike Blumenkrantz 74bd1d4000 efl-wl: mmap byte for nul terminator in keymap string
CID 1377545
2017-07-12 11:59:20 -04:00
Mike Blumenkrantz c6f41d8e10 efl-wl: check return of ecore_main_fd_handler_fd_get
CID 1377541, 1377546, 1377519, 1377529, 1377543
2017-07-12 11:59:20 -04:00
Mike Blumenkrantz 8c2afaf251 efl_wl: check mkstemp return
CID 1377533
2017-07-12 11:59:20 -04:00
Mike Blumenkrantz 98e14ef3d4 efl_wl: error and cleanup on CLOEXEC fail
CID 1377530, 1377531
2017-07-12 11:59:20 -04:00
Chris Michael 627fc6842a efl_wl: Fix resource leak
Coverity reports that 'name' is leaked here, so free the return
ecore_x_atom_name_get.

Fixes CID1377537

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-07-12 11:24:37 -04:00
Chris Michael c45da5c138 elput: Fix resource leak
Coverity CID1377539 says that we leak the eldbus reply here when we
error out, so be sure to cleanup 'reply'

Fixes CID1377539

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-07-12 11:02:16 -04:00
Chris Michael cd615667d5 ecore: Fix coverity resource leak
Coverity CID1377544 reports that poller is leaked here if we error out
and return null. As poller is created with calloc, we should free it
before returning.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-07-12 10:58:28 -04:00
Youngbok Shin e81be3a664 edje: give proper width to entry's cursor according to its theme
Summary:
evas_object_textblock_cursor_geometry_get() always return 0 as cursor's width
for BEFORE type cursor. It casued different cursor width when cursor_fg2 was shown.
The cursor_fg and cursor_fg2 must have same width according to its min width.

Also, the patch will enclose code for cursor_fg2 by cursor_fg code.
It is used when only there is cursor_fg.
@fix

Test Plan:
1. Give bigger width to entry's cursor by changing its theme.
2. See the width cursor_fg, cursor_fg2 when there is [LTR text + RTL text].

Reviewers: raster, herdsman, cedric, jpeg

Subscribers: stefan_schmidt

Differential Revision: https://phab.enlightenment.org/D4798
2017-07-12 18:37:50 +09:00
Jean-Philippe Andre 9513fed85e evas_smart: Fix evas_smart_callback_description_find
bsearch was returnign a cb** not a cb*

Fixes T4540
2017-07-12 17:38:51 +09:00
Carsten Haitzler ea7dd2a9c2 evas mouse in/out/move event fix to remove "invalid move"
this should fix T5582 "properly" by emitting a move after an in only
if pointer x,y changed. this fixes rage and i hope still should handle
the original issue. let me know if it doesn't.

@fix
2017-07-12 15:45:47 +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 40029ce70a eo: Don't resolve function calls for NULL objects
eo_function(NULL) always leads to a no-operation. A this
point it is basically considered the normal operation
with EO to just silently ignore NULL errors.

If the API function "eo_function" belongs to a class that
has not been loaded yet (eg. no object of this type has
been created yet), then the op associated to the API func
may not be defined yet.

Fixes 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
Cedric BAIL 3c62a5fab8 ecore: properly cleanup callbacks of future/promise. 2017-07-11 11:02:47 -07:00
Jean-Philippe Andre 231ef8142b elm: Fix fileselector button "hidden files"
Fixes T5465

@fix
2017-07-11 19:00:02 +09:00
Romain Naour 0c21139b29 ecore_input: fix build without eeze
A dependency on HAVE_EEZE is missing in ecore_input_joystick_name_get():

lib/ecore_input/ecore_input_joystick.c: Dans la fonction « ecore_input_joystick_name_get »:
lib/ecore_input/ecore_input_joystick.c:632:4: erreur : unknown type name « Joystick_Info »
    Joystick_Info *ji;
    ^~~~~~~~~~~~~

Fixes T5665

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2017-07-11 11:31:34 +02:00
Hosang Kim f41e276160 slider: Allow range limitations
Summary:
When user drags slider, slider value cannot be changed by API.
However the necessity of above behavior has emerged.
Because sometimes applications want limitation of slider value.

Test Plan: elementary_test -> slider -> Limited

Reviewers: woohyun, cedric, SanghyeonLee, singh.amitesh, jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4883
2017-07-11 16:34:14 +09:00
Youngbok Shin 5e5e408e58 evas font: append global font path when Evas initializes Fontconfig
Summary:
If there are appended font pathes before initializing Fontconfig,
Evas must care the font pathes after initializing Fontconfig.
@fix

Test Plan:
1. Call evas_font_path_global_append() with a private font path
   before adding any Evas Object.
2. Add a Evas Textblock object which uses a font from the private font path.
3. See the font is not loaded properly without the patch.

Reviewers: raster, cedric, herdsman, jpeg, woohyun

Differential Revision: https://phab.enlightenment.org/D4867
2017-07-11 15:46:04 +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
Bryce Harrington 05344040ec evas: Improve the documentation for evas_init() and evas_shutdown()
Summary:
Rephrase the documentation to read a bit more clearly, and restructure
the inclusions of stanzas from evas-buffer-simple.c to reflect the
recent updates to that example.

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5015
2017-07-11 12:22:11 +09:00
Bryce Harrington ae1d78c36a evas: Fix stray periods
Summary: "to the Evas. @b buffer engine"

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5014
2017-07-11 12:22:11 +09:00
Derek Foreman cae1927554 ecore_evas: Don't start backend ticking for manually rendered canvases
Shortcut the code that starts up a back-end ticker if we're manually
rendered.

ref T5462
2017-07-10 16:24:25 -05: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
Chris Michael 1b97abae49 elput: Update modifers for caps lock
Small patch to fix issue of not setting caps_lock modifier. As we
lookup this modifier index when creating keyboard info, we should be
testing for it and setting seat->modifiers accordingly.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-07-10 14:27:27 -04:00
Chris Michael 8fdb4e0d8d elput: Fix support for setting keyboard led(s)
Small patch to update keyboard led(s) when caps, numlock, etc are
pressed. This patch adds some fields to internal (non-API exposed)
structures inside our private header (of a BETA-API library) and thus
should still be ok during freeze.

Fixes T5655

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-07-10 14:14:06 -04:00
Chris Michael 4052923ed0 elput: Minor formatting fix
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-07-10 13:13:59 -04:00
Chris Michael 1e694114d8 ecore-wl2: Formatting fixes
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-07-10 13:10:01 -04:00
Chris Michael 0c6aae1516 ecore-wl2: Add event handlers even if no data device manager exists
If we have no data device manager present, we would still like to
receive events when input devices get added or removed so these
handlers should be setup before we return from this function.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-07-10 13:02:43 -04:00
Chris Michael ff22abc4be ecore-wl2: Rename internal function
As we are in the Ecore_Wl2 library, lets use a function name that
reflects this.

NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-07-10 13:02:02 -04:00
Jaehyun Cho 078f83f4bc Evas textblock: add null check in evas_textblock_cursor_free 2017-07-10 21:02:13 +09:00
Jean-Philippe Andre 7f724f6c5d evas: Fix mouse event info in global events
When using the legacy API (and in fact also with the EO API) to
listen to mouse events (move, in, out...) on a window instead
of an actual evas object, some information was missing:
 - buttons (bitmask of pressed buttons)
 - prev.x/y (previous position)

This is because Evas had not handled the event yet at this
point, it was coming directly from ecore_evas with incomplete
information. This patch involves evas a little bit earlier, and
also fixes evas_events_legacy.c to have consistent values for
cur/prev canvas/ouput coordinates. See also 890a91785 and
484dae76e6. Those commits were making the pointer coord
a seat-based property (instead of canvas-based) but the event
should already have those proper values before converting to
a legacy struct. This patch restores the meaning of the DUP
macros, as I observed 4 different coordinates from the app side
(instead of just 2: prev and cur).

Thanks to Andy for reporting the original issue on the ML!
2017-07-10 17:01:05 +09: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
Vincent Torri bdb62b6bbe Add ecore_win32_cursor_show() API and ecore_evas_win32_cursor_(un)set() functions
This fixes double mouse cursor in elm entries on Windows (for example)

@feature
@fix
2017-07-09 13:34:09 +02: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 21276eac5b elput: don't leak event pointers 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
Mike Blumenkrantz 38d18e559d ecore-wl2: create surfaces once compositor global is bound
it's expected that surfaces are created when a window exists

@fix
2017-07-07 15:22:23 -04:00
Mike Blumenkrantz 03d2c43018 ecore-wl2: don't leak display event pointers 2017-07-07 15:22:23 -04:00
Mike Blumenkrantz 9c639f6ec8 ecore-wl2: add display object refs for windows
ensure the display lifetime exceeds the window lifetime

@fix
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
Uma Devika d4ab6ff90a Evas and Eolian : Freed string buffer
Summary:
Summary : String buffer returned by eina_strbuf_new() is not freed in some cases

@Fix

Signed-off-by: Uma Devika <u.bodapati@samsung.com>

Reviewers: cedric, tasn, jpeg, raster, singh.amitesh

Subscribers: tanwar.umesh07, yashu21985, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5000
2017-07-07 13:22:53 +09:00
Al Poole 9aeaef55c4 eina_file: fix unmap of unmapped region when Eina_File has copied data and not a map;
Summary:
This was causing problems on non-Linux architectures as eina_file_real_close unmapped not mapped data. Added a "copied" flag to Eina_File which is set on eina_file_virtualize (on copied data), and tested for when eina_file_real_close does the unmap. I'm surprised Linux allowed this. Certainly all of the BSDs crashed with the previous behaviour.

@fix T5479

Test Plan: Example inlcude Rage and Enlightenment Thumb on BSD systems which use eina_file_virtualize with emotion to obtain album artwork.

Reviewers: raster, cedric, jpeg

Reviewed By: jpeg

Maniphest Tasks: T5479

Differential Revision: https://phab.enlightenment.org/D5006
2017-07-07 13:22:53 +09:00
Jean-Philippe Andre 242127a96b evas,edje,elm: Mark all legacy objects as such 2017-07-07 13:21:18 +09:00
Carsten Haitzler eeb1eb1b74 eina - fix eina_file_virtualize to copy data to an aligned addr
so we copy data to an UNALINED memory address (just after whatever
string we packed on the end of the eina file struct header). this is
bad. especially for non-intel architectures. this forces a 16 byte
alignment which should cover us.

@fix
2017-07-07 12:08:01 +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 4f9cfc22bc edje: Fix some API issues (missing const) 2017-07-05 19:46:35 +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 76a668f022 ecore_evas_x: Track changes in framespace size
If the framespace size has changed and by accident (or in fact, by
design) the evas size + framespace size is equal to the size sent
by the X server, ecore_evas_x was skipping the resize event. This
patch adds a tracking of the framespace size so that we redraw the
canvas if it changed.

This will fix issues with the main menu (since it's in the framespace,
23 pixels tall with the default theme & scale).

Note that all this is partly because the ecore evas size is the size
without the framespace, so weird calculations are made during resize...

Ref T5482
2017-07-05 17:43:59 +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 722725dfc5 evas: Fix a crash in textblock
I could not reproduce it but the case should not happen,
so I'm adding a safety check rather than a silent return.

The private data should be NULL only after evas_object_free()
or before construction...

Fixes T5656
2017-07-05 17:43:59 +09:00
Jean-Philippe Andre 45c4f67b28 evas: Add internal type documentation (event grabber) 2017-07-05 17:43:59 +09:00
Carsten Haitzler 52fdb5e830 ecore-x - add ecore x dpms force api
add api that allows us to force dpms on or off. needed to fix e
support for non-suspend new systems that don't do S3 ...

@feature
2017-07-04 14:50:53 +09:00
Youngbok Shin 0735f6aa61 edje: support legacy Textblock calculation logic for 1.18 edje file
Summary:
From EFL 1.19, Edje Textblock calculation logic was fixed according to
Edje documents. But, it broke old edje files which ignored text.min
option for minimum width. Even if the old edje files were wrong,
we need to support them as discussed from T5548.

Also, this patch will change default efl_version to 1.18 from 1.19.
So, without efl_version property, edje file will run on the legacy logic.

Fixes T5548

Test Plan: Turn on/off presentation mode in Enlightenment.

Reviewers: herdsman, cedric, jpeg, zmike, raster

Subscribers: stefan_schmidt

Maniphest Tasks: T5548

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

Adjusted by @jpeg
2017-07-04 14:13:13 +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
Jean-Philippe Andre daf87093f8 eina file: Fix rare crash in line iteration
I'm not sure about the rest of this code, so it's possible that
the index is increased even if it shouldn't. But I've observed
a crash at this line, apparently when reaching the end pointer.
2017-07-03 16:23:40 +09:00
Daniel Zaoui 8906867500 Filter: check nullity before accessing structure member
@fix
2017-07-02 15:53:20 +03:00
Mike Blumenkrantz 468107dfb8 evas: add @since for map_coords_get()
ref eaeaf8831c
2017-06-30 16:51:43 -04:00
Cedric BAIL eaeaf8831c evas: expose evas_map_coords_get. 2017-06-30 13:46:07 -07:00
Derek Foreman f45c0fcd67 evas image: Set load error on native image set failure
evas_object_image_native_surface_set() has no return, so without
setting load error we can't tell if it failed.

fix T5418
2017-06-30 14:10:50 -05:00
Mike Blumenkrantz c2fde93c9e efl_wl: a multiseat wayland compositor in an evas smart object
build when wayland support is enabled and provide two test/demo cases

beta api

@feature

Reviewed-By: Cedric BAIL <cedric@osg.samsung.com>
2017-06-30 14:59:55 -04:00
Derek Foreman 3775a9645d ecore_drm2: fix scanout_on callback firing too often
We need to increase the on scanout count for a buffer only when the
plane it's on makes its transition from pending to visible.

Previously it was firing for every refresh which would break refcounting
for any plane using surface that didn't change every frame.
2017-06-30 10:26:41 -05: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
Sungtaek Hong 1ae77d0925 Efl.Observable: Free an iterator after use in observers_update()
Summary:
- In _efl_observable_observers_update() iterator is allocated but not freed.
- This frees the iterator.

@fix

Reviewers: conr2d, jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4994
2017-06-30 13:32:23 +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
Daniel Hirt 4024857bf6 Evas textblock: fix legacy_newline in legacy API
Fixes 4fda417bc9 that disabled
legacy_newline for both legacy (textblock) and new (canvas text) api.
It should enable legacy_newline for legacy.
2017-06-29 16:37:20 +03:00
Daniel Hirt a10f726fc5 Evas textblock: re-apply paragraph position inference
For some reason, c39855a8ac also seems to
address an issue with height calculations (although not mentioned in
the commit message).

It already went in v1.19, so by applying
b8beb6834b I also reverted that behavior.
Seems like a correct one, so re-applying.

Fixes T5594
2017-06-29 15:26:48 +03:00
smohanty cf927cdb34 efl/interface: emit path change event when stroke width change.
Reviewers: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4991
2017-06-29 17:39:09 +09: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 505aca0e42 evas: Fix compilation warnings
See 7365c087c7
Shadow variable.
2017-06-29 16:02:36 +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
Daniel Kolesa 352c044524 elua: use up to date lua API
luaL_reg is a 5.0 API which we don't support.
2017-06-28 11:51:29 +02:00
Jean-Philippe Andre e65e90a660 edje: Fix part reuse, fixes make check
An error was spotted when using an efl_part() handle for more
than one call (valid if you do efl_ref on the handle).

Thanks @stefan for the report!
2017-06-28 17:18:21 +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
Jean Guyomarc'h 077791b7cc eina,ecore_cocoa: fix detection of the macOS SDK version
There was trouble with Homebrew's CI to build EFL on a macOS < 10.12
which uses a 10.12 SDK. See PR #13252 on github, Homebrew/homebrew-core
for details.

@fix
2017-06-27 23:14:31 +02:00
Andy Williams 77800dd9b4 elm_code: fix whitespace highlighting 2017-06-27 16:19:16 +01:00
Chris Michael 84788fdf6a ecore-wl2: Add more window types to Window Type enum
Small patch which adds more window types to the Window Type enum.
These window types may be used by various compositors in different
ways. This patch does not add or change any functionality, it just
extends the window type enum to include the ability to specify other
types of windows.

'#divergence'

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-27 11:14:26 -04:00
Chris Michael 2f7f232582 ecore-wl2: Add client-side event for Window Deactivate
This patch adds and sends a client-side event for when a window gets
deactivated.

'#divergence'

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-27 09:47:43 -04:00
Chris Michael 640caf1d9c ecore-wl2: Add client-side event for Window Activate
This patch adds and sends a client-side event when a window gets
activated.

'#divergence'

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-27 09:47:43 -04:00
Chris Michael b12b26d4c0 ecore-wl2: Add client-side event for Window Hide
Small patch to add and send a client-side event for when a window gets
hidden.

'#divergence'

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-27 09:47:43 -04:00
Chris Michael 873b917e9e ecore-wl2: Add client-side event for Window Show
Small patch to add and send a client-side event for when a window gets
shown.

'#divergence'

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-27 09:47:43 -04: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
Mike Blumenkrantz 3e2d62d408 ecore-wl2: use first seat to start move/resize op when none specified
don't do lookups by name, the default seat is the first one added
2017-06-26 10:32:44 -04: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 881f91ef50 evas event grabber: add function to block stacking updates while visible
@feature
2017-06-23 17:43:44 -04: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 7b4e9f5d77 eina_log: make a log level of 0 disable the log domain
this has always been specified in the docs as the means by which a log domain
is disabled

@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 8c8dae5720 evas: check object layer existence before deref to avoid crash
@fix
2017-06-23 17:43:44 -04:00
Mike Blumenkrantz 3d098097bf ecore-wl2: do not send exit event on disconnect if servers exist
this kills the compositor.

@fix
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 920c3a5d5e evas_box: add safety check for adding box children to multiple boxes
this is guaranteed to cause a crash or equally bad behavior, so ensure an
error is raised

@fix
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
Derek Foreman 7365c087c7 evas_render: Use hardware planes
This is a very simple proof of concept for using hardware planes for
evas image objects.

Right now only dmabuf objects will be dropped into planes, and they're
considered in the order they're in in the scene graph with no attention
paid to which objects will have the most benefit from being on a plane
at all.  There's nothing to prevent your mouse cursor from consuming the
only hardware plane capable of UHD video. :)

This is mostly just to help test the low level functionality in the
engines and ecore_drm2 that enable hardware planes.  Smarter plane usage
is coming.
2017-06-23 08:15:42 -05:00
Derek Foreman 6043e11586 evas_object_image: Add support for direct scanout
Add functions for assigning hardware planes to evas image objects.

The unfortunate asymmetry of the code is due to plane assignment being
only fully verifiable by doing a test commit through ecore_drm2, so it's
simpler to have the "test" function also do the "assignment", and call
the release on failure to clean up after a failed test.
2017-06-23 08:15:42 -05:00
Derek Foreman 3965a663cc evas_object_image: Track whether an image object supports direct scanout
If an evas object is a wayland dmabuf, uses native surface 5 or higher,
and has a scanout handler set, then it meets the basic requirements for
placing on a hardware plane.
2017-06-23 08:15:42 -05:00
Derek Foreman 7e2c8c1cbd software_generic: Add plane assign/release function pointers
Functions to assign a plane for a native surface, and release a plane
that's been assigned to a native surface.

These are empty for now as they'll need to be overridden in any backend
that can handle planes.
2017-06-23 08:15:42 -05:00
Derek Foreman 95bf3debd3 native surface: Add scanout handlers
When a native surface ends up on a hardware plane, the caller needs to
know about it so it can prevent the resource from being destroyed while
on scanout (which may cause an implicit page flip and a stall), and
so it knows that the content may have changed usage domains.

This adds stubs for dealing with this - only for wl dmabuf right now, but
it may be useful for other surface types later.
2017-06-23 08:15:42 -05:00
Derek Foreman 1552f85ede ecore_drm2: Add scanout status callbacks
This generates callbacks when a fb becomes scanned out on a hardware plane
or when it no longer is.
2017-06-23 08:15:41 -05:00
Derek Foreman 5f2d4e75ab ecore_drm2: Add callbacks for plane assign/release
E will need these to gate wayland buffer releases.
2017-06-23 08:15:41 -05:00
Derek Foreman c67da0c869 ecore_drm2: Add Fb deleted event 2017-06-23 08:15:41 -05:00
Derek Foreman 69181cc9e8 ecore_drm2: Track number of times an fb is on scanout
The same fb can be placed in multiple hardware planes, we need to keep
track of the number of planes it's on at any time so we can send events
to a compositor in a later commit.
2017-06-23 08:15:41 -05:00
Derek Foreman bc8b11bd78 ecore_drm2: Track whether an Ecore_Drm2_Plane has ever been on scanout 2017-06-23 08:15:41 -05:00
Derek Foreman a8c7b89cb7 ecore_drm2: Move fb from plane state struct to plane struct
The plane state struct needs the fb id for drm updates, and the plane
state can be updated even if it's pointed to by a dead plane.

Dead planes need to keep their fb so we can properly handle the fb
lifetime.
2017-06-23 08:15:41 -05:00
Derek Foreman be90b91ac1 ecore_drm2: Don't clear plane fb on release
We'll need this later for post-page flip bookkeeping, and nothing will
notice that it's not cleared now anyway.
2017-06-23 08:15:41 -05:00
Derek Foreman 74290490ad ecore_drm2: Remove obsolete per output fb callback api
It's all beta API so I can throw this away now that there are no in-tree
users anymore.
2017-06-23 08:15:40 -05:00
Derek Foreman 0d1082f947 ecore_drm2: Stop using the old per output release callbacks 2017-06-23 08:15:40 -05:00
Derek Foreman a97b1ac006 ecore_drm2: Update buffer release mechanism to send new status information
Begin moving internals over to the new per fb status updates.
2017-06-23 08:15:40 -05:00
Derek Foreman a3eed7865a ecore_drm2: Add ecore_drm2_fb_status_handler_set
The old per output release handler is no longer complicated enough.  In
the near future we'll need to be able to tell an engine that its fb has
been placed on scanout via hardware plane, or removed from a hardware
plane.

It's simpler to provide that information as well as release information
through a single callback.
2017-06-23 08:15:40 -05: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
Amitesh Singh 02e9af50a1 Efl.Ui.Image.Zoomable: rename data get macros 2017-06-23 09:15:21 +09:00
Amitesh Singh b7e55a288e Efl.Ui.Slider: implement slider internal part class 2017-06-22 18:50:02 +09:00
Jean-Philippe Andre 56a74238d1 edje: Improve error report with efl_part misuse
This improves a rare error message when a function is called on an
efl_part() that does not implement it. Example: calling a swallow
function on a non-swallow part.

This isn't entirely fool-proof but should already help quite a bit.

This also changes how the efl_part proxies are stored: the variable
is not reset to NULL every time we use it, instead we check it in
the del intercept.

Note: _part_reuse_error() can not be enabled inside
_internal_proxy_get because there are valid use cases such as:

  func1(efl_part(obj, part), func2(efl_part(obj, part), ...), ...)

Here we use two efl_part() at the same time, on the same object,
but we haven't entered "func1" yet when we are reaching the second
call to efl_part(). This is completely valid and there is pretty
much no way to detect this.

I think I will improve this later with a core function on
Efl.Object like "debug_string".

Ref T5584
2017-06-22 16:16:21 +09:00
Jean-Philippe Andre 5a98f78ce8 eo: Improve invalid EO ID error message
This focus on the domain and ID bits is very confusing. Let's
keep it at the end of the message, and also try to guess whether
the object may have been deleted or simply doesn't belong to the
current thread.
2017-06-22 13:19:23 +09:00
Jean-Philippe Andre eaf21eee14 evas: Lower log level for animator tick cbs
This doesn't deserve to be INF, it's really low-level debug
information.
2017-06-22 11:51:40 +09:00
Amitesh Singh 1775597671 Efl.Ui.Slider: move legacy APIs at the bottom of the file. 2017-06-22 11:14:24 +09:00
Daniel Hirt 070171c7bb Canvas text: set 'changed' on the object when text is inserted
This fixes missed updates with the "Ui.Text" when text was inserted.
2017-06-21 11:29:34 +03:00
Daniel Hirt f3fff0c687 Ui text: defer region show to job
This moves the region-show logic to the proper update job where
cursors are also updated.
2017-06-21 11:29:34 +03:00
Daniel Hirt ec02b5f3fb Ui text: fix cursor api call
This widget doesn't have a text part.
2017-06-21 11:29:34 +03:00
Daniel Hirt 40e97c6589 Canvas layout: fix part text cursor geometry port
Forgot to consider the edje object's offset when porting the code
to efl_part (see 98dad1a52b).
This fixes a few bugs, one of which is region_show for the scrollable
mode.
2017-06-21 10:50:09 +03:00
Jean-Philippe Andre 4ca83755ed slider: Fix slider legacy API
See 4e79dd0f02

That patch was absurd. Do not change the use of a legacy stable
API when you change an EO API. If you need to do that then there
is very clearly a problem in the patch.

This reverts the test case to use the legacy API (which in turn
calls the EO API anyway so both are tested).

Fixes T5587
2017-06-21 15:40:48 +09:00
Chris Michael 52f35fde0c ecore-wl2: Fix issue(s) of setting wrong event device
As we may have both a pointer and touch device on a given system, we
need to accurately set event->device when sending mouse move, wheel,
down, and up events. Previous code here would always try to find a
mouse device first which could potentially end up setting the wrong
event->device (if a touch device also existed).

This patch fixes the issue by comparing the window used for the event
to our focused windows (either mouse or touch) and setting the proper
event->device based on that.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-20 11:59:36 -04:00
Sanjeev BA 0e21b4d280 Documentation for elm_code_widget_selection.
Reviewers: jpeg, ajwillia.ms

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-06-19 14:08:54 -07:00
Youngbok Shin 12787d6665 evas: fix version info for evas_language_direction_get
Summary:
The patch was created for EFL 1.18. But, it was merged for EFL 1.20.
@fix

Test Plan: N/A

Reviewers: herdsman, jpeg, cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-06-19 14:08:54 -07:00
Daniel Hirt 108bf99564 Efl text cursor: move around a few definitions
Need to handle this with special care as Efl.Text.Cursor is used in
some functions that are specific to Efl.Canvas.Text, was well as
functions in Efl.Text.Cursor interface.
2017-06-19 10:15:05 +03:00
Daniel Hirt d0da405620 Efl text format: change "halign" and "valign" to use enums
Value-based alignment (e.g. 0.5, 0.3 etc) isn't very practical.
Horizontal and vertical alignments will be assigned with enums
"left", "center", "right", "auto", "locale", for horizontal alignment,
and "top", "center" and "bottom" for vertical alignment.

This changes the previously added "halign" and "valign" properties.
2017-06-19 10:15:05 +03:00
Daniel Hirt 6033323e5c Canvas text: fix default format feature
Now that we can set the default parameters, there's no need to push
another one when having a style tag.

This fixes T5585.
2017-06-19 10:15:05 +03:00
Woochan Lee 3805544a32 multibuttonentry: Fix expand state changed callback called many times.
Summary:
The expand state changed callback has been called when layout property changed and other reason.
Even expand state is not changed.

So we need to check the current view state to call expand changed callback.
(We can't prevent calling the _shrink_mode_set() function. It needs to call the re-arrange internal items.)

Test Plan:
elemenatay_test - multibuttonentry.

Check the shrink, expand state.

Reviewers: jpeg, cedric, woohyun

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4970
2017-06-19 15:14:20 +09:00
Bryce Harrington 08f04b1496 ecore_evas: Document remaining new/get calls for misc. backends
Summary:
This completes the documentation for Ecore_Evas for all (non-deprecated)
APIs.

Note that ecore_evas_software_16_ddraw_new, ecore_evas_direct3d_new,
ecore_evas_gl_glew_new, and ecore_evas_sdl16_new are left undocumented
because while they're not declared as deprecated their implementations
are either missing or marked as obsolete or legacy.  I suspect a few of
the remaining routines are likely also obsolete but I added
documentation anyway.

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4972
2017-06-19 15:14:20 +09:00