Commit Graph

11325 Commits

Author SHA1 Message Date
Jihoon Kim be7e8f6513 entry: set autocapital mode according to the layout 2016-12-08 15:54:48 +09:00
Youngbok Shin 835c8d1b77 Edje: remove a unreachable code from edje_text.c
Summary:
If "text" is NULL, it is set as empty string in the above code.
So, the removed line is unreachable.

Test Plan: N/A

Reviewers: raster, cedric, herdsman, woohyun, jpeg, Hermet

Reviewed By: Hermet

Differential Revision: https://phab.enlightenment.org/D4462
2016-12-08 13:31:05 +09:00
Jonghee Choi 88e7606b39 access: do not count initted if elm_modapi_init() is fail
Summary:
When _access_init was called, initted will be increased always even though failed to initialize.
This patch will fix this problem.

Signed-off-by: Jonghee Choi <joi.choi@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>

Reviewers: cedric, Hermet

Reviewed By: Hermet

Subscribers: joi.choi, jpeg

Differential Revision: https://phab.enlightenment.org/D4466
2016-12-08 13:28:39 +09:00
Cedric BAIL 73b308fb66 evas: refactor setup stage and reduce complexity for engine. 2016-12-07 15:47:56 -08:00
Cedric BAIL 8205051ff6 evas: wait on one specific task to be done.
This prevent dead lock.
2016-12-07 11:17:20 -08:00
Derek Foreman 515362efe2 ecore_drm2: Make ecore_drm2_fb_release return status
We need to use this to free up gbm buffers on a surface release, so it
has to report when it successfully frees a buffer.
2016-12-07 11:30:03 -06:00
Tom Hacohen 5424cdbd81 Eo: Fix efl_isa() sometimes returning wrong results with extensions
This fixes an issue where efl_isa() wouldn't work for extensions or
ancestors of extensions of a class.

Example:
Class A implements interface F2
F2 inherits from interface F1
obj is of class A

Before this patch efl_isa(obj, F1) would return false, now it returns
true as expected.

This is just one example, there is a whole array of variations to this
issue that are now fixed.

Thanks to Gustavo for reminding me of this.

@fix
2016-12-07 13:55:13 +00:00
Daniel Kolesa 246288fff7 eolian: forgotten free() (leaks memory otherwise) 2016-12-07 14:06:02 +01:00
Daniel Kolesa 5fa81d9fab eolian: switch reference validation to new tokenizer 2016-12-07 13:56:35 +01:00
Artem Popov 4707c86a83 Evas: include efl_vg_container.eo.legacy.h to avoid implicit declaration for evas_vg_container_child* @fix
Summary: Due to implicit declaration, evas_vg_container_child_get casts to int and on 64-bit can return wrong pointer

Reviewers: cedric, NikaWhite, myoungwoon, jpeg, an.kroitor, Hermet

Reviewed By: Hermet

Subscribers: t.naumenko

Differential Revision: https://phab.enlightenment.org/D4464
2016-12-07 14:21:12 +09:00
Hermet Park 436e07277e elementary genlist: code refactoring.
removed duplicated logic and add a descriptive comment.
2016-12-07 14:17:33 +09:00
jinwoo.shin 825af0c89c genlist : fix cannot scroll to item after call elm_genlist_item_update
Summary: Fix cannot scroll to item after call elm_genlist_item_update

Test Plan: https://phab.enlightenment.org/T4974

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: SanghyeonLee, minkyu, cedric, jpeg

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D4460
2016-12-07 13:57:56 +09:00
Sungtaek Hong 44716502fc emile_image: fix possible segmentation fault in AGRY88
Summary:
 - ptrag is set NULL and is allocated only when prop is rotated.
   but *ptrag = 0xFF00 | ptr[0]; without checking rotation.

Reviewers: jpeg, cedric, Hermet

Reviewed By: Hermet

Subscribers: conr2d

Differential Revision: https://phab.enlightenment.org/D4463
2016-12-07 13:42:46 +09:00
Cedric BAIL c8fef4a556 emile: add infrastructure for callback to request what to do with image.
First use of this infrastructure is to make JPEG decoding interruptible.
2016-12-06 16:34:40 -08:00
Cedric BAIL 889944fefe efl: extend possible error while decoding an image to be cancelled. 2016-12-06 16:26:08 -08:00
Cedric BAIL 3aa63faa10 evas: add possibility for image loader to know if what they are working is still useful. 2016-12-06 16:26:08 -08:00
Cedric BAIL 27a47da15b evas: add infrastructure for Evas_Loader to know if what they are working on is still useful. 2016-12-06 16:26:08 -08:00
Cedric BAIL 3fab272906 evas: add capability to know if a thread has been cancelled. 2016-12-06 16:26:08 -08:00
Cedric BAIL 34758ad4f5 evas: switch to use Ecore_Thread instead of half done Evas thread infrastructure. 2016-12-06 16:26:08 -08:00
Daniel Kolesa 2ffc93ddf9 eolian: add a reference resolver
New API function eolian_doc_token_ref_get will resolve the kind of
reference in the given token and extract the necessary data you
might need for further use, for example class and function for
methods, or struct and field for struct field. It also supports
event references that will be added into Eolian later.

EFL will be switched to the new resolver (by changing the validator
code) during the next step.
2016-12-06 19:11:17 +01:00
Gustavo Sverzut Barbieri 261b0faa54 eo: guard lifecycle obj log inside spinlock.
since the array can be pushed or looked up from multiple threads we
must have a lock in place.
2016-12-06 14:38:34 -02:00
Gustavo Sverzut Barbieri 79d44f212e eo: guard all efl_super() checks under EO_DEBUG.
Tom is worried about performance hit (god, checking a bit in a pointer
we'll fetch to memory anyway, since we return it masked), so guard
under EO_DEBUG.
2016-12-06 14:27:10 -02:00
Stefan Schmidt e90622ec41 all: use void if we really want to make sure we do not accept parameters
In C we need this to make clear that we really do not accept parameters.
Found by the smatch source code matcher. I had run and fixed this before
but it seems to creep in again over time.
2016-12-06 17:16:24 +01:00
Stefan Schmidt 9d37fa2b8b eina: fix same wrong indenting
Brought up by running smatch. We have way to many of such things in tree though
to fix them all without annoying a lot of people. I will just stop here.
2016-12-06 17:16:24 +01:00
Gustavo Sverzut Barbieri 0593216995 eo: efl_super() can receive a class as first parameter.
This fixes the src/tests/eo/test_function_overrides
2016-12-06 12:40:33 -02:00
Stefan Schmidt ba496721fb evas: input_pointer: remove unreachable case statement
Directly in the beginning of the function we check if key is
<= EFL_INPUT_VALUE_NONE and return if this is true. No chance key could be
EFL_INPUT_VALUE_NONE below here.

CID: 1361997
2016-12-06 11:05:41 +01:00
Stefan Schmidt 5e06cd7daf evas: events: fix NULL check on returned value
Continuing the loop if the returned pdata is non-NULL does not make sense.
What Coverity actually found was that if we have cobj_pdata NULL here we
would happily deref it the line afterwards and crash.

Guilherme, Bruno if something else was intended here feel free to change it
again.

CID: 1366822
2016-12-06 11:05:40 +01:00
Hermet Park 8233770e36 evas render: code refactoring.
There were some obj->map->surface validation check
but final map drawing was in the out of the surface valid scope.

Actually, this change does nothing but logically this change makes sense.
2016-12-06 18:59:42 +09:00
Jean-Philippe Andre 4ff330856d win: Simplify sizing recalc
This amends the previous patch. Some moer testing showed that the
deferred resize flag was in fact harmful (on X with CSD).
2016-12-06 17:58:25 +09:00
Carsten Haitzler 96d90fa5d6 efl_net check openssl x509 check o runtime dlsym checks
this fixes T4814
2016-12-06 16:16:23 +09:00
Jean-Philippe Andre 74187ff425 win: Fix sizing issues with new windows
This fixes sizing issues in EDI when opening a new window (not
the splash screen). This patch is quite brute force in the way
it pushes recalc.
2016-12-06 15:20:13 +09:00
Sungtaek Hong 32635ad7bd elm_map: add copyright_cb for osm tile source.
Summary:
 - According to Copyright and license in Openstreetmap
   (https://www.openstreetmap.org/copyright/en)
   credit has to be in the corner of map.
 - Add copyright_cb which returns an object to show copyright.

Test Plan:
1. Excecute elementary_test->map
           2. Right click->source->set any tile source
           3. Observe copyright is added.

Reviewers: cedric, Hermet, jpeg

Subscribers: conr2d

Differential Revision: https://phab.enlightenment.org/D4449
2016-12-06 15:20:13 +09:00
soohye e0e0c892d2 scrollable_interface: fixed last_page_get() API
Summary: ceiling the vaule of content size divided by page size

Reviewers: cedric, jpeg, Hermet

Reviewed By: Hermet

Subscribers: minkyu, sju27, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4447
2016-12-06 13:34:53 +09:00
Jean-Philippe Andre 10eb4c9a6b eldbus: change to idle_enterer from idler
Summary:
This patch set changes eldbus to use idle_enterer from idler.
If an application does not give idle time, then the eldbus cannot have chance to work.

Reviewers: raster, cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4443
2016-12-06 12:02:32 +09:00
Hosang Kim 092f1919b1 elm_panel: change panel freeze API when swiping panel.
Summary:
The panel is freezed by elm_interface_scrollable_movement_block_set(),
but elm_interface_scrollable_freeze_set() is used to unfreeze panel.

Test Plan: elementar_test -> panel scrollable

Reviewers: woohyun, seoz, Hermet, cedric, raster

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4458
2016-12-06 11:36:17 +09:00
Hermet Park 7a71559eff elementary calendar: it'd rather return false here. 2016-12-06 11:10:27 +09:00
Jean-Philippe Andre aac516f352 evas: Ensure single init of common per canvas
After @cedric's commit 6427c77707 we end up with E
not working in Xephyr, because evas_common_shutdown() is called
too many times (init_count == -1). So I'm being paranoid and
tracking whether Evas has initialized or not evas_common. That
way we end up with exactly the right number of inits. We even
reach 0 after E shuts down :)
2016-12-06 10:48:17 +09:00
Cedric BAIL 6427c77707 evas: refactor initialisation and shutdown of evas_common. 2016-12-05 11:22:52 -08:00
Stefan Schmidt 74914c0515 elm: config: check return value of eina_value_get instead of returning always TRUE
There is always a chance that eina_value_get will not return EINA_TRUE here so
better check it and use it as return value directly.

CID: 1357138
2016-12-05 17:07:39 +01:00
Stefan Schmidt 6f847f1f55 elm: multibuttomentry: check if value is valid before we access it
The ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN will access 'it' here before we
check it is NULL. Reverse the order of these checks.

CID: 1365324, 1365323
2016-12-05 17:07:39 +01:00
Chris Michael 6dca94d8bf ecore-wl2: No need to call hide inside the free function
When we are freeing an Ecore_Wl2_Window, there is no need to call
ecore_wl2_window_hide anymore because inside the free function we are
destroying subsurfaces, surfaces, etc, etc so no need to even unmap
them.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-05 09:27:11 -05:00
Chris Michael 4c7ff57cb2 ecore-wl2: When we hide a window, attach a NULL buffer to the surface
This patch essentially makes sure that the surface gets a NULL buffer
attached to it when we are hiding.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-05 09:22:26 -05:00
Marcel Hollerbach 07bb7ca282 emile: do not rely on the struct size
Summary:
in newer versions of openssl, most of the public structures are made
opaque. So we should use the openssl api to allocate this structure.

Since ctx is now a pointer we dont need opened anymore, so those vars
are replaced with ctx checks. ctx is always NULL'ed after a free

fix T4923

Reviewers: cedric, jpeg, stefan_schmidt

Reviewed By: jpeg, stefan_schmidt

Subscribers: stefan_schmidt, ManMower, jpeg

Maniphest Tasks: T4923

Differential Revision: https://phab.enlightenment.org/D4456
2016-12-05 11:54:53 +01:00
Jean-Philippe Andre 552831386a eo: Fix potential inifinite loop
I saw a little oopsie in patch fc48161910. This
amends it to avoid a potential infinite loop.
2016-12-05 18:40:46 +09:00
Hermet Park 1e6246df24 evas textblock: fix a rendering issue.
It's a rare case but a possible scenario that textblock is not updated
 properly in case of textblock rendering via proxy/map.

If the textblock state turned out with an invisible state,
its relayouting won't be up to date. But actually, it could be rendered
by map/proxy. In that case textblock text layouting would be incorrect.

Additionally, removed evas event freeze state there because map/proxy won't
be drawn under the event freeze state always.

@fix
2016-12-05 18:07:39 +09:00
Jean-Philippe Andre c6dcf3dda4 eo: Make error message less nebulous
When writing this ERR log I thought about "thread" (it's really
the keyword here) but eventually reworded to "context". Let's be
clearer about the possible issue here.
2016-12-05 09:46:55 +09:00
Andy Williams 92eacde6e7 elm_code: refactoring of the elm_code_line_indent to work with lines 2016-12-03 15:59:52 +00:00
Gustavo Sverzut Barbieri 9eba6bf2e7 eo: do not use eina_trash when running on valgrind.
This allows valgrind to show when the object was created and deleted.
2016-12-03 10:35:27 -02:00
Gustavo Sverzut Barbieri 2e0fcbe5b4 eo: fix compilation without HAVE_BACKTRACE.
time_get() function was used even in that case to log when objects
were created or deleted.

thanks @vtorri.
2016-12-03 09:44:44 -02:00
Gustavo Sverzut Barbieri 7a1e5923f9 eo: fix missing Evil.h include 2016-12-03 09:41:09 -02:00
Jean Guyomarc'h deda8ac8e7 eo: fix build on macOS
Commit 227463bd introduces macOS-specific code, but without including the
header that provides the used declarations.
2016-12-03 12:10:04 +01:00
Carsten Haitzler 2de9f552b9 eio - have a smaller mempool as i can see 270k of stuff hanging about
eio seems to consume memory even when not in active use. this saves
most of 270k even when no longer needed. the mempool just keeps stuff
around pretty much forever. also the memory size limit doesn't work at
asll if yous set it to something other than -1. it just locks eio up.

@optimize
2016-12-03 18:01:53 +09:00
Carsten Haitzler 9e8257367d evas - fix out events broken by recent multiseat work
this fixes e's poitners to be "sensible" again.
2016-12-03 14:46:21 +09:00
Carsten Haitzler 8dd20ad8ed evas - more render cache cleanups
i forgot to save this file before git committing... so also delete
update rect del array from render cache.
2016-12-03 12:44:57 +09:00
Carsten Haitzler f9789aa94c evas render cache - clean up memory in all cases
this cleans up memory for the rect del array in render cache and when
smart objects are deleted that hold render caches
2016-12-03 12:43:11 +09:00
Andy Williams ad5bce5cbd elm_code: Add indentation for matching braces
Summary: when type closing brace, it find matching braces and then indent.

Test Plan:
1. run elementry_test - Code Editor or Edi.
2. Type some code with braces.
3. Check that closing braces have correct indent.

Reviewers: ajwillia.ms

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4444
2016-12-03 00:56:25 +00:00
Gustavo Sverzut Barbieri 6e8280a540 eo: more information when we cannot resolve method.
_efl_object_api_op_id_get() will query a hash for the given pointer,
however if it wasn't populated, it will return "NOOP" and we're
hopeless while debugging on what happened.

Common case is to use the incorrect method, like:

        obj = efl_add(CLS1, ...);
        cls2_method(obj);

Since we did not create CLS2, it won't populate its methods on the
hash, thus the lookup will return NOOP.

With this change the function now gets the target object and function
name so reports an insightful message such as:

        ERR:eo file.c:123 cls2_method() Unable to resolve op for api func 0x7ff492ddea00 for obj=0x400000007e8ee1df (CLS1)
2016-12-02 21:44:23 -02:00
Gustavo Sverzut Barbieri 227463bdde eo: allow valgrind-like tracking of object lifecycle.
Eo pointer indirection is super nice as it avoids you to access
invalid memory, but this extra checks inhibits valgrind's own tracking
of memory lifecycle, usually it would report when the object was
created and when the object is deleted, both as stack traces.

This commits introduces logging of object creation and destruction
under its own eina_log_domain and controlled by EO_LIFECYCLE_DEBUG and
EO_LIFECYCLE_NO_DEBUG envvars. These will only be available if
compiled with EO_DEBUG, thus shouldn't cause any performance hits on
production code.

Running a bogus app with invalid efl_class_name_get() and double
efl_del() will report as below:

```sh
$ export EO_LIFECYCLE_NO_DEBUG=Efl_Loop_Timer,Efl_Promise,Efl_Future
$ export EO_LIFECYCLE_DEBUG=1
$ export EINA_LOG_LEVELS=eo_lifecycle:4
$ /tmp/bogus_app
DBG:eo_lifecycle lib/eo/eo.c:2712 _eo_log_obj_init() will log all object allocation and free
DBG:eo_lifecycle lib/eo/eo.c:2788 _eo_log_obj_init() will NOT log class 'Efl_Future'
DBG:eo_lifecycle lib/eo/eo.c:2788 _eo_log_obj_init() will NOT log class 'Efl_Promise'
DBG:eo_lifecycle lib/eo/eo.c:2788 _eo_log_obj_init() will NOT log class 'Efl_Loop_Timer'
DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35a1aa0 obj_id=0x4000000002cf38ef class=0x563fa35a1450 (Efl_Vpath_Core) [0.0004]
DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35af8d0 obj_id=0x4000000006cf38f0 class=0x563fa35aecf0 (Efl_Loop) [0.0005]
DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35d61a0 obj_id=0x400000007ecf390e class=0x563fa35d48f0 (Efl_Net_Dialer_Simple) [0.0054]
DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35d6470 obj_id=0x4000000082cf390f class=0x563fa35d0d60 (Efl_Net_Dialer_Tcp) [0.0055]
DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35d75b0 obj_id=0x4000000086cf3910 class=0x563fa35d66b0 (Efl_Io_Queue) [0.0056]
DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35d8f70 obj_id=0x400000008acf3911 class=0x563fa35d7860 (Efl_Io_Copier) [0.0057]
DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35df980 obj_id=0x40000000a6cf3918 class=0x563fa35d66b0 (Efl_Io_Queue) [0.0058]
DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35dfc30 obj_id=0x40000000aacf3919 class=0x563fa35d7860 (Efl_Io_Copier) [0.0058]

will efl_class_name_get() with invalid handle:

ERR:eo lib/eo/eo.c:1013 efl_class_name_get() Class (0x2000000000000029) is an invalid ref.
ERR:eo_lifecycle lib/eo/eo.c:1013 efl_class_name_get() obj_id=0x2000000000000029 was neither created or deleted (EO_LIFECYCLE_NO_DEBUG='Efl_Loop_Timer,Efl_Promise,Efl_Future').
DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35df980 obj_id=0x40000000a6cf3918 class=0x563fa35d66b0 (Efl_Io_Queue) [0.0061]
DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35dfc30 obj_id=0x40000000aacf3919 class=0x563fa35d7860 (Efl_Io_Copier) [0.0061]
DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35d75b0 obj_id=0x4000000086cf3910 class=0x563fa35d66b0 (Efl_Io_Queue) [0.0061]
DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35d8f70 obj_id=0x400000008acf3911 class=0x563fa35d7860 (Efl_Io_Copier) [0.0061]
DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35d6470 obj_id=0x4000000082cf390f class=0x563fa35d0d60 (Efl_Net_Dialer_Tcp) [0.0063]
DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35d61a0 obj_id=0x400000007ecf390e class=0x563fa35d48f0 (Efl_Net_Dialer_Simple) [0.0063]

will double free:

ERR:eo ../src/lib/eo/efl_object.eo.c:78 efl_del() EOID 0x400000007ecf390e is not a valid object. EOID domain=0, current_domain=0, local_domain=0. EOID generation=2cf390e, id=1f, ref=1, super=0. Thread self=main. Available domains [0 1    ]. Maybe it has been deleted or does not belong to your thread?
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() obj_id=0x400000007ecf390e created obj=0x563fa35d61a0, class=0x563fa35d48f0 (Efl_Net_Dialer_Simple) [0.0054s, 0.0009 ago]:
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x007f2c0bc6d0ea: libeo_dbg.so+0x90ea (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x007f2c0bc6ca62: _efl_add_internal_start+0x1c2 (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x00563fa15dc95f: bogus_app+0x295f (in /tmp/bogus_app 0x563fa15da000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x007f2c0ace7291: __libc_start_main+0xf1 (in /usr/lib/libc.so.6 0x7f2c0acc7000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x00563fa15dc48a: _start+0x2a (in /tmp/bogus_app 0x563fa15da000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() obj_id=0x400000007ecf390e deleted obj=0x563fa35d61a0, class=0x563fa35d48f0 (Efl_Net_Dialer_Simple) [0.0063s, 0.0000 ago]:
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x007f2c0bc6d8ba: libeo_dbg.so+0x98ba (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x007f2c0bc6d711: libeo_dbg.so+0x9711 (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x007f2c0bc6beb8: libeo_dbg.so+0x7eb8 (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x007f2c0bc6c06e: _efl_object_call_end+0x4e (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x007f2c0bc75725: efl_del+0x105 (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x00563fa15dcd54: lt-efl_net_dialer_simple_example+0x2d54 (in /tmp/bogus_app 0x563fa15da000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x007f2c0ace7291: __libc_start_main+0xf1 (in /usr/lib/libc.so.6 0x7f2c0acc7000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del()    0x00563fa15dc48a: _start+0x2a (in /tmp/bogus_app 0x563fa15da000)
ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() obj_id=0x400000007ecf390e was already deleted 0.0000 seconds ago!
```
2016-12-02 21:15:17 -02:00
Gustavo Sverzut Barbieri fc48161910 eo: check for empty vtable and failed extensions.
if for some reason we fail to validate a class, then we should skip
that extension. This may result in an empty vtable, then check for
that and avoid a crash.

This is very unlike to happen in practice, but I've forced some
validation errors and could get to that.
2016-12-02 21:15:17 -02:00
Gustavo Sverzut Barbieri dfe3a4ad40 eo: improve logs by always showing event source, minor refactor.
Instead of 2 sets of macro, one for HAVE_EO_ID and another without,
use a single set of macros and have the implementation of
_eo_class_pointer_get() and _eo_obj_pointer_get() to do the actual

These functions now take the source information so the logs reflect
that and not always the same function.
2016-12-02 21:15:17 -02:00
Chris Michael 3214dad7c5 elementary: Don't set pointer surface to NULL
As we no longer destroy a window's wl_surface during hide requests, we
should not be setting pointer surface to NULL here.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Chris Michael 4c140180d1 ecore-wl2: Don't destroy surfaces on window hide
In order to hide a window (via wayland) we can actually assign a NULL
buffer to the surface, so there is no need to destroy the window's
wl_surface during a hide request.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Bruno Dilly 5d54c24a4e eo: fix oops on efl_replace() documentation 2016-12-02 15:41:48 -02:00
Guilherme Iscaro e0af7384a2 Efl.Input.Device: Do not ref/unref devices children devices.
When a mouse/keyboard is removed from its seat under the Wayland backend,
it was not immediately deleted from EFL, because its parent was keeping
a reference to it. Since the mouse/keyboard is no longer present in the system
there's no reason the keep them around. To prevent this delayed deletion do
not ref/unref them when the parent is set.
2016-12-02 15:12:56 -02:00
Guilherme Iscaro 345fec2747 Efl.Input: Properly unref the device if a new device is set.
The old device must be unrefed, otherwise it will leak.
2016-12-02 15:12:56 -02:00
Guilherme Iscaro 81782414df Eo: Add efl_replace() function.
This new function adds a new way to safely replace Eo pointer values.
2016-12-02 15:12:56 -02:00
Guilherme Iscaro 826cd7cb5e Efl.Input: Reset the Efl.Input object as soon as possible.
By doing this the pd->device reference is unrefed and deleted
if no one else is holding a reference to it.
2016-12-02 15:12:56 -02:00
Gustavo Sverzut Barbieri 04450c4ee0 eo: if EO_DEBUG, check if efl_super() object 'isa' the given class.
A common error is to copy & paste efl_super() calls and forget to fix
the class. If usin EO_DEBUG, then use efl_isa() to error.
2016-12-02 14:51:18 -02:00
Gustavo Sverzut Barbieri 216e6e51e4 eo: better error reporting, always provide caller/source when available.
_eo_pointer_error() was kinda a bitch to debug as it provided a nice
breakpoint location, but did not provide a good output since the file,
line and function were always the same.

Change that to be a thin wrapper on top of eina_log_vprint(), then we
keep the breakpoint location yet provide useful information.

In that sense, change other error messages so they carry as much
information as possible.
2016-12-02 14:50:45 -02:00
Gustavo Sverzut Barbieri cf5aeb9804 eo: use log domain as soon as it's available. 2016-12-02 14:50:45 -02:00
Chris Michael def6fe9a39 elementary: Remove useless #ifdef
This block is already wrapped around an #ifdef directly above, so this

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 11:15:57 -05:00
Stefan Schmidt 58e13c569b efl_ui_win: fix warning about unused parameter
If the ifdef is not hit this is never being used.
2016-12-02 16:28:31 +01:00
Stefan Schmidt 12fccd1d3c ecore_ipc: silence a maybe unitialized warning
I always got this during the build:
lib/ecore_ipc/ecore_ipc.c:537:6: warning: ‘old_mask’ may be used uninitialized in this function
[-Wmaybe-uninitialized]

Looking at the code it really is a false positive. Gettign the mask is behind
an if it is the same if condistion used before writing it. Anyway, silencing the
warning here.
2016-12-02 16:28:31 +01:00
Chris Michael 3a68e9554a elementary: Re-enable wayland_egl mouse pointers
It appears that the 'black square' issue when using wayland_egl canvas
for mouse pointers is gone now, so re-enable the usage of gl pointers
for elementary windows.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 09:50:48 -05:00
Carsten Haitzler a817d2f632 eo event callback frame make them single linked to save a bit of overhead
this makes the callback event frame single linked with a little less
inlist overhead asa result.
2016-12-02 21:28:15 +09:00
Guilherme Iscaro ad1d160bb6 Ecore Input Evas: Add ecore_event_evas_seat_modifier_lock_update().
This function will set the modifiers/lock per seat in Evas.
Some places will still use ecore_event_evas_modifier_lock_update(),
since multi-seat is not supported.
2016-12-02 09:57:50 -02:00
Guilherme Iscaro c3ed1d3154 Evas: Add support for per seat modifiers and locks.
This patch introduces possibility to enable key locks and modifers by seat.
It's very useful when the user has two keyboards attached to different seats.
2016-12-02 09:57:50 -02:00
Guilherme Iscaro 484dae76e6 Evas: Add support for per mouse pointer mode/properties.
This patch introduces the possibility to set the pointer mode and
query other properties like current position per pointer device.
The old API will still works, however it will only act on the default seat.
2016-12-02 09:57:50 -02:00
Guilherme Iscaro 5442e9c908 Ecore Input Evas: Ecore_Input_Last should contain the Evas device.
This struct should contain the Evas device that originated the event,
otherwise events from different devices may mix up and lead to undifined
behaviour.
2016-12-02 09:57:50 -02:00
Marcel Hollerbach 2ce2a65148 eo: adjust generation count
raster suggested a few optimizations
2016-12-02 12:27:37 +01:00
Marcel Hollerbach a2e90e522b eo: optimize generation increase
doing it by hand here saves a function call which showed up pretty happy
on perf.
2016-12-02 12:27:37 +01:00
Marcel Hollerbach 0f72c8a031 eo: use the event stack to define behaviour
subscriptions are only executed if they were already subscriped at the
start of the event emission.
2016-12-02 12:27:37 +01:00
Marcel Hollerbach a035bc1292 eo: fix event emission for subscription while emission
This fixes T4907

The problem was that in efl_event_callback_add the internal array was
changed. If this was happening while a efl_event_callback_call was
happening the for loop got confused and skipped one event subscription.
Which led to a bug in e where the idler ufnction was not executed
probebly and so the canvas stayed frozen.
2016-12-02 12:27:37 +01:00
Vyacheslav Reutskiy 299471991c ecore_exe_win32: fix ecore_exe_send
Write to the child pipe corect data size.
@fix
2016-12-02 11:50:39 +02:00
Jean-Philippe Andre b6fae524ff eo: Improve debug for efl_isa errors from threads 2016-12-02 17:21:47 +09:00
Jean-Philippe Andre dcaa66812e win: Fix layout issue in E internal windows (WL)
This is an attempt at fixing internal windows in E Wayland,
where the framespace geometry was not taken into account at
render time. Tested in a VM.

Thanks @derekf for the report.

See https://www.enlightenment.org/ss/e-584083fb03f617.08713956.jpg
2016-12-02 17:21:47 +09:00
WooHyun Jung 8c870848b0 elm_toolbar: remove wrong focus highlight checking
Because of this focus_highlight checking, focus never goes
to the first item when toolbar gets focus at the first time.

@fix
2016-12-02 16:56:43 +09:00
Lukasz Stanislawski 9c82b3475f elm: use eina_rectangle to check intersection
Summary:
Some conditions seems redundant if assume that height and width
can never be < 0.

Change-Id: I63c297cc8cabbb69fbf7e014596f354e811b8d8e

Reviewers: cedric, kimcinoo, jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4441
2016-12-02 10:06:04 +09:00
Daniel Kolesa 66b48f8f5d eolian: remove handling of short refs in tokenizer
Already expanded in the main lexer.
2016-12-01 17:22:19 +01:00
Daniel Kolesa d2105f99d4 eolian: add documentation tokenizer
This provides an API to tokenize Eolian docstrings. It does not
yet switch the rest of the infra to it, but it does have tests.
It doesn't verify correctness of references, as that's Eolian's
job. Therefore it's also your job to provide it with strings that
do not contain invalid references. Lua bindings are to come and
a complete switch will be done later.

@feature
2016-12-01 16:37:28 +01:00
Hermet Park 7d7c17c22a evas common: disable thread_queue feature on win32.
We have an issue that eina_thread_queue msg isn't delivered properly on win32.
That occurs broken image drawing in case of non-smooth scaling.

I disabled this feature on win32 because scale_sample_draw is gonna be rarely used
since async rendering introduced.
2016-12-01 20:04:58 +09:00
Jean-Philippe Andre 0891466d5f evas: Fix infinite recursion on smart object resize
In some situations smart object resize could fall in an
infinite loop even though the size was stable.

Thanks @vtorri for the report!
2016-12-01 17:56:18 +09:00
Jean-Philippe Andre da7281f2ae win: Update min & max size hints simultaneously
Avoid calling the engine's size_min_set/size_max_set functions
while setting the hints on the window object itself (it would
cause min != max even though we intended min == max).
2016-12-01 17:56:18 +09:00
Jean-Philippe Andre 1ed589f8c1 win: Fix main menu visibility with non-default themes 2016-12-01 17:56:18 +09:00
Hermet Park c7620cf83c evas common: fix a typo. 2016-12-01 17:12:42 +09:00
Jean-Philippe Andre af85217c62 menu: Remove extra debug log
See 1f9dfe2ed3
Note that this patch causes problems on some systems...
2016-12-01 15:42:34 +09:00
Jean-Philippe Andre 3cb321bf5d win: Improve bug compatibility for E
E has a habit of creating windows with a single content
that has no weight and/or no min size, but still expecting
those windows to size properly and be resizable. This amends
a previous sizing hack (but really it's the same) for logout
dialogs, and adds another hack for EFM windows (single edje
object with no weight, but window should be resizable).
2016-12-01 14:41:06 +09:00
Jean-Philippe Andre a2a28a5658 win: Force opaque region updates on alpha change
What happens is that ecore_wl2 ignores calls to opaque_region_set
if the window has alpha. As a consequence the opaque_region is not
updated server-side and the previous window geometry is kept as
opaque region, even though the window should have alpha.

Thanks @raster for the report.
2016-12-01 13:21:49 +09:00
Jean-Philippe Andre 70f39cf3f0 ctxpopup: Fix shadow variable warning 2016-12-01 11:32:19 +09:00
Artem Popov e0827a6a90 Eet: add EINA_ARG_NONNULL for eet_data_text_undump* @fix
Summary: Eet_data_text_undump/undump_cipher: add EINA_ARG_NONNULL for mandatory pointer on size(int)

Reviewers: cedric, NikaWhite, myoungwoon, jpeg

Reviewed By: jpeg

Subscribers: jpeg, t.naumenko

Differential Revision: https://phab.enlightenment.org/D4440
2016-12-01 11:05:50 +09:00
Woochan Lee 40364b4985 elm_calendar: Changed the calendar focus highlight concept.
Summary:
The highlight image enable when calendar got a focus.

We enable the highlight image when the user sent a key event to calendar before.
The above concept seems to be incorrect when focus highlight activated already.

Test Plan:
elementary_test
calendar sample.

Reviewers: woohyun, cedric, jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4438
2016-12-01 10:41:48 +09:00
Jean-Philippe Andre cc4e835f81 conform: Remove getpid() from debug
The PID is already printed out by default with eina_log.
2016-12-01 10:33:36 +09:00
Jean-Philippe Andre 6d7395a7db menu: Fix visibility flag of menu (missing efl_super) 2016-12-01 10:06:31 +09:00
Jean-Philippe Andre 5bdd9f6e39 menu: Keep opening submenus when hovering over main bar
The previous situation was that you could hover over a main
menu bar item, and see it become hilighted. Click to open the
submenu. Classic. Now move over to a second main menu item
and the submenu would close, but the second submenu would not
open.

This behaviour was contrary to pretty much every desktop UI
I've used, and really annoyed me. Should we get an elm_config
option for that?

This is a UI behaviour change.
2016-12-01 10:06:31 +09:00
Carsten Haitzler b3361f1aad ecore exe - handle scope data get null returns when ppl do bad things
peolpe using ecore_exe in threads... for example.
2016-12-01 08:49:25 +09:00
Bruno Dilly adb95630ef eina: remove tests, examples and docs for eina_model
Summary:
Since eina_model was dropped some years ago.
Also a few other points where related stuff is just commented out.

Reviewers: iscaro, barbieri

Reviewed By: barbieri

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4442
2016-11-30 18:37:34 -02:00
Bruno Dilly 8051fa1c35 efl_input_focus: fix typo and code style 2016-11-30 16:49:25 -02:00
Chris Michael 80df180157 ecore-wl2: Add warning if a wl_surface_frame callback failes to get created
There could be situations where wl_surface_frame fails to create a
callback. In those cases, we should not be trying to add a wl_callback
listener for a non-existant callback.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-30 12:12:38 -05:00
Amitesh Singh 1f3f66b662 elm: fix compliation warnings in dbus menu & toolbar
These warnings were serious problems.
Thanks to stefan for reporting.
2016-11-30 18:33:59 +05:30
Vyacheslav Reutskiy 67d228230a Revert "ecore_file: use win api for delete folder"
It was mistake, rmdir work correct, problem was fixed in commit
56c202614b

This reverts commit 5e25b8037c.
2016-11-30 14:03:00 +02:00
Stefan Schmidt 33f5074206 docs: efl_ui: fill gaps in newly introduced eo files
These two eo files have been introduced by commit
a58e2e1a79

Sadly three items have been left undocumented. With this patch we are back to
100% doc coverage.
2016-11-30 11:01:39 +01:00
Jean-Philippe Andre ad250d0ffb menu: Fix crash in main menu and eo files
This amends the previous commit to avoid a crash in the main
menu, and adjust the eo files formatting.
2016-11-30 17:59:56 +09:00
Amitesh Singh a58e2e1a79 Menu,Item Interface: Common interface for menu, toolbar and ctxpopup
Summary:
efl_ui_menu interface provides common functions of menu, toolbar and ctxpopup.
efl_ui_item interface provides common functions of menu_item, toolbar_item and ctxpopup_item.
Also implemented some missing functions like selected_item set/get in ctxpopup.
efl_ui_item interface should be used for other widget items as well.

Test Plan: elementary_test

Reviewers: jpeg, felipealmeida, raster, SanghyeonLee, cedric, yashu21985

Subscribers: bu5hm4n

Differential Revision: https://phab.enlightenment.org/D3897
2016-11-30 17:59:56 +09:00
Carsten Haitzler 496f2ed427 Revert "evas render - evas_object_clip_recalc - dont call uselessly"
This reverts commit bba368cf79.

if this is causing test suite fails ( i saw no actual visual problems
tho in apps or e etc.)... then revert. sadness. :(
2016-11-30 17:36:42 +09:00
Jean-Philippe Andre 0dde22488a theme: Add bevel around background (window)
This should fix (some) issues with exactness.
2016-11-30 15:15:02 +09:00
Jean-Philippe Andre 8a40c063ce win: Implement max size hint support
evas_object_size_hint_max() would not work on a window, unless
it somehow managed to not size itself (which would be another
issue). This patch allows apps to call size_hint_max_set() on
a window. A test case is provided in elm_test (Dialog).

@feature
2016-11-30 15:15:02 +09:00
Jean-Philippe Andre a3d2960270 win: Add a little hack to fix E's logout/shutdown dialogs
E creates an edje object, sets it as resize_object, calls
restricted_calc and sets the resulting min size to the window.
But the window min size isn't taken into account when sizing
it, as the window sizes itself. I have no idea how this could
work before my changes.

E never actually requested the edje object to update its size
hints, so the window is left with an object of min size 0x0.

This patch is clearly a hack, but I can't really figure out
what would be the best or proper solution. Other elementary
widgets and containers seem to force edje object's update_hints.

Reproduction case: In E, menu, system, logout.
2016-11-30 15:15:02 +09:00
Jean-Philippe Andre 2102ed9b7c win: Fix opaque regions for Wayland
In Wayland, an opaque window can still have shadow borders, and
only needs to set the opaque_region appropriately. In X on the
other hand, a window needs to be flagged as alpha in order to be
properly blended (otherwise you'd get black borders).

Thanks Derek for the report!

This fixes c91360fcbd
2016-11-30 15:15:02 +09:00
Jaehwan Kim 7cce8ae40d edje_calc: round the scaled value when it is casted to int type.
It rounds the value for the more precious calculation when the scaled
value is casted to int type.
2016-11-30 14:00:11 +09:00
Woochan Lee 7b97d55004 elm_calendar: Use the flag already declared.
Summary: Oops, i missed use it in previous commit(6c04755a92)

Reviewers: cedric, jpeg, woohyun, Hermet

Reviewed By: Hermet

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4437
2016-11-30 13:24:37 +09:00
Jaehyun Cho 3277ffa712 naviframe: Fix to show hidden previous view when pop transition begins.
Previously, previous view became visible before pop transition begins by
"elm,state,prev,popped" signal.
Now, previous view become visible when pop transition begins by
"elm,state,prev,popped" signal.
2016-11-30 10:54:03 +09:00
Jaehyun Cho 7b71f5dd6e Revert "naviframe: Fix to show hidden previous view when pop transition begins."
This reverts commit 29a7d08454.
2016-11-30 10:50:28 +09:00
Andy Williams 2935b0b4a3 elm_code: Add really simple indentation for braces handling
That's about as far as we can push it without proper scope handling
2016-11-30 00:27:58 +00:00
Cedric Bail ccc1552380 evas: make sure that we initialize module correctly in all case. 2016-11-29 12:06:45 -08:00
Cedric Bail b6eb284c68 evas: remove useless code.
Since we disable the possibility to shutdown evas module, this code
has been useless. Let's remove it.
2016-11-29 12:06:07 -08:00
Gustavo Sverzut Barbieri 2cb3466ddf ecore_con_url: now on top of efl_net_dialer_http.
Rewrite Ecore_Con_Url as a non-Eo (since it's just legacy) that is
built on top of Efl_Net_Dialer_Http.

Since there are some legacy behavior we do not want to expose in the
new classes, hack around and manipulate the curl_easy_setopt()
directly in those cases.

This includes the cookies: there is no reason why we should expose
independent files for read (COOKIEFILE) and write (COOKIEJAR), real
world applications can manipulate the files directly, like copying
from a template to a RDWR before using, etc.
2016-11-29 16:03:14 -02:00
Gustavo Sverzut Barbieri da143edd8c efl_net_dialer_http: POST also allows resizing.
resizing the dialer results in changing the request content length,
which is useful when uploading files AND posting data.
2016-11-29 16:03:13 -02:00
Gustavo Sverzut Barbieri 4aca800bde efl_net_dialer_http: export SSL controls.
verify peer, hostname and set CA/CRL files.
2016-11-29 16:02:25 -02:00
Gustavo Sverzut Barbieri 3cf20ea8e8 efl_net_dialer_http: special headers and date parse/serialize.
CURL needs some special curl_easy_setopt() calls to enable automatic
gzip deflate (CURLOPT_ENCODING) and
If-Modified-Since/If-Unmodified-Since logic.

As If-Modified-Since/If-Unmodified-Since requires a timestamp string,
let's expose class methods to handle those.
2016-11-29 16:02:25 -02:00
Gustavo Sverzut Barbieri 5c7b984746 efl_net_dialer_http: only close if not closed yet.
since eos_set() emits an event the user may have closed from there.
2016-11-29 16:02:25 -02:00
Gustavo Sverzut Barbieri b4ed72518d efl_net_dialer_http: export read size.
In the legacy wrapper I'll need that.
2016-11-29 16:02:25 -02:00
Chris Michael 6b350fc696 ecore-drm2: Add API function to allow setting gamma of a given output
Small patch to add an API function which will allow setting the gamma
level of a given output.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-29 09:15:07 -05:00
Chris Michael 4b4201584f ecore-drm2: Add symlink to gamma setting function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-29 09:14:31 -05:00
Chris Michael 2c7bedc622 elementary: Fix coverity detected resource leak
As elm_code_line_indent_get will malloc space for the returned string,
that space should be freed after usage. This fixes a resource leak
detected by Coverity.

CID1366468

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-29 08:35:52 -05:00
Andrii Kroitor 03f20efaf0 ecore_con: fix work on Windows
Per aspera ad astra.
One little missing star was breaking all EFL UI applications.
2016-11-29 15:15:26 +02:00
WooHyun Jung bf21eceb48 elm_spinner: fix wrong focus logic when spinner is unfocused
When unfocusing spinner, entry's UNFOCUSED callback is called.
In the callback function, entry is hidden and spinner gets focus
from focus_revert logic.
This gave lots of meaningless focused/unfocused state changes.

@fix
2016-11-29 21:06:25 +09:00
Jaehyun Cho 29a7d08454 naviframe: Fix to show hidden previous view when pop transition begins.
Previously, previous view became visible before pop transition begins by
"elm,state,prev,popped,deferred" signal.
Now, previous view become visible when pop transition begins by
"elm,state,prev,popped,deferred" signal.
2016-11-29 20:59:50 +09:00
Jean-Philippe Andre 1f9dfe2ed3 win: Move main menu to the framespace
After reverting 8a21384759, I figured out how to move
the main menu back to the border group. This time the menu is in the
framespace and its layout algos have been adapted to allow non-zero
root coordinates.
2016-11-29 16:36:29 +09:00
Jean-Philippe Andre c7f2308e6c Revert "win: Move main menu back to win.edc (fix sizing)"
This reverts commit 8a21384759.
The following commit will reintroduce the menu slot inside the
border edc.
2016-11-29 16:36:05 +09:00
Jean-Philippe Andre f927169a10 elm: Fix build break 2016-11-29 15:41:56 +09:00
Youngbok Shin 29ec0aa194 edje entry: fix crash issue due to improper callback handling
Summary:
If there were multiple elm_entry objects and some of them were deleted,
the callback function would cause crash problem.
The callback function only for specific data should be deleted when
a entry object is deleted.
@fix

Test Plan: N/A

Reviewers: raster, cedric, herdsman, woohyun, subodh6129

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4435
2016-11-29 14:39:01 +09:00
YeongJong Lee 6584c6cc27 elm_toolbar: refactor _elm_toolbar_item_icon_obj_set function
Summary:
In order to natural animation in horizontal item theme,
remove duplicated operation in elm_toolbar_item_icon_obj_set function.

Test Plan:
Change to other icon using elm_toolbar_item_icon_obj_set function in horizontal item theme.
or in edi, click Logs/Console/Tests button on bottom toolbar

Reviewers: raster, ajwillia.ms

Reviewed By: ajwillia.ms

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-28 11:35:27 -08:00
Jee-Yong Um e037f30be4 efl.io.manager: fix eo types and indent
Reviewers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-28 11:35:27 -08:00
Woochan Lee 6c04755a92 elm/calendar: apply focus UI feature.
Summary:
elm_calendar is not subject to current automated focus policies due to internal implementation issues.
(Each date in the calendar is an edje part. )

For the above reasons, I have implemented the focus policy support manually.

Test Plan: elementary_test - calendar sample.

Reviewers: bu5hm4n, woohyun

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-28 11:35:27 -08:00
Artem Popov 05246782dc eina/log: add ARG_NONNULL to eina_log* APIs for Eina_Log_Domain * parameter
@fix

Summary: add ARG_NONNULL to eina_log* APIs for Eina_Log_Domain * parameter that is always in use, can not be NULL.

Reviewers: cedric, Hermet, myoungwoon, NikaWhite

Reviewed By: NikaWhite

Subscribers: t.naumenko, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-28 11:35:27 -08:00
Jee-Yong Um 0e2a2cbacf eolian: remove all duplicated affix
Summary:
Currently eolian abbreviates when only the last word of class name and
the first word of method name are same, but this patch abbreviates
generated c name of function to remove all duplicated affix.
For example, "efl_io_closer_fd_closer_fd_set" will be "efl_io_closer_fd_set".

Reviewers: jpeg

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-28 11:35:27 -08:00
Artem Popov 30693b8487 eet: add checking on null to eet_data_write_cipher and EINA_ARG_NONNULL to dump API @fix
Summary:
add checking on null to eet_data_write_cipher and EINA_ARG_NONNULL to eet_data_dump*
and eet_data_test_dump* API

Reviewers: NikaWhite, myoungwoon, cedric

Reviewed By: cedric

Subscribers: jpeg, t.naumenko

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-28 11:35:27 -08:00
Guilherme Iscaro 75619fc290 Ecore Evas: Add multi seat support for mouse in/out. 2016-11-28 13:57:55 -02:00
Guilherme Iscaro 1d0c0d5024 Evas: Change evas_canvas_seat_focus_get to property. 2016-11-28 13:57:55 -02:00
Guilherme Iscaro be609118c6 Ecore_Evas: Add support for per-seat focus. 2016-11-28 13:57:55 -02:00
Guilherme Iscaro 6b95c4c2ec Ecore Wl2 Input: Canvas focus IN/OUT events should contain the seat.
This provides the information about which seat originated the event.
2016-11-28 13:57:55 -02:00
Guilherme Iscaro c5f14a61e3 Evas: Add per seat Evas focus state. 2016-11-28 13:57:55 -02:00
Chris Michael e0b61a35c5 ecore-drm2: Add API function to return screen dpi
This patch adds a new API function which will be called from
Ecore_Evas to return the screen dpi

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-28 10:09:41 -05:00
Stefan Schmidt e2d087aba2 docs: efl_input: add property doc for newly added item 2016-11-28 14:26:01 +01:00
Woochan Lee 61f7865f95 elm_multibuttonentry: Using current w,h value for item size calc when box resized.
Summary:
Support in case that If the expand mode is set to false
and the item is added using the item_append API.

Checking focus, entry visible is not needed to change mode in shrink when box resized.

If the view type is shrink when the MBE is in focus and the box is resized, it should be in shrink mode.

Test Plan:
elementary_test
MBE sample

Reviewers: woohyun, Hermet

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4429
2016-11-28 21:33:43 +09:00
Jean-Philippe Andre 8a21384759 win: Move main menu back to win.edc (fix sizing)
As Andy reported, the main menu geometry is not correct after
my recent changes, as the application contents slide underneath
the menu bar. In fact the menu bar is just floating above
everything else.

So I've tried to move the menu to the framespace (as it should
belong to the frame), but the sizing algos for both the window
and the menu make some assumptions that render this task quite
difficult. Eventually I would like to be able to swallow the
menu somewhere else inside the border... but not right now.
2016-11-28 15:52:09 +09:00
Jean-Philippe Andre 51ba193bda win: Remove unused variable 2016-11-28 13:51:44 +09:00
Jean-Philippe Andre f1418dbb20 win: Avoid calling need_frame_adjust all the time
This function was meant to be called only before
finalize. This avoids getenv and string compares.
2016-11-28 10:57:15 +09:00
Andy Williams c5181470c1 eo: safety in string comparison
Avoid potential for Eo to crash if app manages to unset key
@fix
2016-11-28 00:10:30 +00:00
Andy Williams 3febd6a563 elm_code: A better colour for comments 2016-11-28 00:08:43 +00:00
Andy Williams 46882cc2da tooltip: Don't warn when clearing tooltip if none set
This behaviour was already agreed, I just didn't notice the warnings created
2016-11-27 23:15:46 +00:00
Andy Williams f6486473ed elm_code: Slightly smarter indent logic
Continue comment blocks where appropriate...
A bunch of refactoring of text/indent code to expand further
2016-11-27 23:15:46 +00:00
Carsten Haitzler 892f4abe37 efl ui win - stop trying to get data of non-image icons
x11 updates trying to update x properties from image data when icon is
not an image is causing lots of error spam. fix this to check type
first before getting data.
2016-11-27 22:50:03 +09:00
Carsten Haitzler 81242af6f9 ecore animator - timer based ticker - add epoll support if available
the ecore time based animator that ticked away used select for
timeouts to listen to either a timeout OR the control fd that would
tell it to tick or not tick. my profiles show this as consuming 1.03%
of my profile sample time - just  the select call in the time based
animator. this adds the option of epoll + timerfd + having kernel
repeat the timer fd interval (since epoll timeouts at best can do 1ms
resolution). my profiling shows this to use 0.62% of profile time vs
1.03% for select, so it's a tiny win. this only compiles if epoll and
timerfd support have already been detected at compile time. it also
runtime falls back to select if epoll and timerfd setup fail.

@optimize
2016-11-27 17:21:51 +09:00
Carsten Haitzler 6a462f925f evas render - don't do extra if checks or loops if not needed
remove some extra looping and if checkign that is taken care of
already and just is pointless extra checks in the code creating
overhead. tiny amounts, but the amount of meaty speedups lef it
running low, so profiling, reading, working and repeating.

@optimize
2016-11-27 16:58:56 +09:00
Carsten Haitzler bba368cf79 evas render - evas_object_clip_recalc - dont call uselessly
evas_object_clip_recalc was already called ... multiple times in
pending and phase1 on all objects, so there is no value in calling it
again and again in later evbas render phases when it's already been
done.

this and moving this to a real func sees evas_object_clip_recalc usage
in perf drop from 1.8% to 1.4% or so of total perf sample time. tiny
win, but we're at the point where i can't find big meaty wins, so i'm
looking for a string of small wins to add up.

@optimize
2016-11-27 13:05:18 +09:00
Carsten Haitzler d7c6fca6c0 evas render and clip calc - move evas_object_clip_recalc out of inline
evas_object_clip_recalc is big. it's fat. it shouldnt be inline. so
make it a real function. being inline just hurts performance by making
our code bigger, hurting l1 instruction prefetch and cache
performance. this function isn't small. it's huge and should not be
inline basically because of that reason.

also throw in some likely/unlikely hints etc.

@optimize
2016-11-27 12:10:12 +09:00
Carsten Haitzler e3489d5f89 evas_render - store active obj geom in array to be able to filter faster
part of rendering is figuring if obj is inside current geometry.
before we had to actuall poke around inside the object. this moves the
geometry into the active object array so the data is fecthed fast and
already there for filtering as this is the most likely thing to filter
out an object.

unfortunately this seems to have some bugsd and i'm baffled why, so
leave it there and ifdefed out for now for suture hunting.
2016-11-27 12:09:25 +09:00
Carsten Haitzler 4a1dd9e0d9 evas render - remove unsed eo obj handle in pending object smart change
unused eo obj id, so dont have the line of code. - clean up code
2016-11-26 18:33:56 +09:00
Carsten Haitzler f10638cd98 evas render - remove another scope data get when we already have it
we already have the obj protected data so why scope data get it again?
fix and optiomize.

@optimize
2016-11-26 18:33:56 +09:00
Carsten Haitzler 26189dc9a4 evas render - get scope data less in phase 1 where obj data passed
in much of phase1 we already know the evas object protected data ptr,
so dont scope data get it or even pass the eo obj id around as we can
get it from obj->object
2016-11-26 18:33:56 +09:00
Carsten Haitzler a4aac60a67 evas render - remove excess scope data get when we already have the ptr
_evas_render_is_relevant() needs the obj protected data, so it gets
scrop data, but the only place it is called already has this pointer,
so avoid an extra lookup.

@optimize
2016-11-26 18:33:56 +09:00
Carsten Haitzler 69cb85aaca evas render - cache object arrays rto avoid processing them in phase1
evas render in phase1 in order to generate update rects, active,
render etc. object arrays has to walk every object in our tree. this
is a waste of time if we already have walked objects in a previous
frame if they havent changed, so cache this data in render cache in
smart objects to avoid re-walking and now just dumbly "memcpy" these
cached arrays into the master array. i have seen cpu usage by e drop
like about 15% in the sencarios i'm looking at "enlightenment
compositor with some window updating animation all the time, but most
other stuff being static).

@optimize
2016-11-26 18:33:56 +09:00
Carsten Haitzler 1bba6d5759 evas phase 1 process - shortcut objects that are pure static clips only
these objects don't actually produce - or should produce update
regions etc. etc. as the objects that are clipped should produce those.
they are not active objects. so skip them very early after just
ensuring they are in delete objects if needed.
2016-11-26 18:33:56 +09:00
Carsten Haitzler ad985e73f3 eo base class - clean up some formatting around callback add/del code
just formatting changes really.
2016-11-26 18:33:56 +09:00
Gustavo Sverzut Barbieri 48049a4ce2 efl_net_server_unix: add leading_directories_create property.
This allows us to crete any parent directories that are missing.
2016-11-25 18:01:29 -02:00
Gustavo Sverzut Barbieri 167ff29ea0 efl_net_{socket,dialer,server}_simple: easy to use, buffered network sockets.
The low level I/O primitives are powerful but adds some complexity to
use, for bi-directional streaming communication one ends creating two
Efl.Io.Queue and two Efl.Io.Copier to pipe data to socket when it can
operate.

Then encapsulate the socket using the new Efl.Io.Buffered_Stream, this
will allow the socket, be a dialer or a server client, to be operated
as a single handle that internally carries about the buffering for
you.

As one can see in the examples, compared to their "manual"
alternatives they are very easy to use, ressembling
Ecore_Con_Server/Ecore_Con_Client, but also offers line-based
delimiters and the possibility to let the socket to handle queueing
for you in case you received partial messages (just do not
read/clear/discard the received data).
2016-11-25 17:27:32 -02:00
Gustavo Sverzut Barbieri 46341b329d efl_io_buffered_stream: wraps an I/O object and make it easy to use.
Since all other efl.io objects are low-level, the recommended approach
is to use an efl.io.copier. However when dealing with in-memory,
bi-directional comms like talking to a socket, we always end with 2
queues, 2 copiers and the annoying setup that is being replicated in
ecore_ipc, efl_debug and so on.

This class is the base to make it simpler. Other classes such as
Efl.Net.Socket.Simple, Efl.Net.Dialer.Simple and Efl.Net.Server.Simple
will use it to provide simpler code to users.

I guess we can call EFL+EO Java now?
2016-11-25 17:27:32 -02:00
Gustavo Sverzut Barbieri 16be61c7e1 efl_io_copier_flush: add may_block and ignore_line_delimiter parameters.
The may_block parameter is useful to force a flush without blocking on
read/write, sometimes particularly useful if ignore_line_delimiter is
true, then you get the data events without blocking -- as if a server
sending some content misses a trailing line delimiter, you do not want
to block on recv() but still want to flush data to user.

The ignore_line_delimiter parameter is useful if we're going to close
the copier and want to flush pending data which may exist due missing
trailing terminator. The close method will also force that if
destination can take more data.
2016-11-25 17:25:18 -02:00
Gustavo Sverzut Barbieri d9dafab785 efl_io_copier: expose 'done' property.
This property has a protected setter and will simplify both internal
implementation as well as usage.
2016-11-25 17:25:18 -02:00
Gustavo Sverzut Barbieri 410d65900c efl_net_server: add 'client_announce', share logic and fix a bug.
I just realized that if a client is not referenced it would leak in
the 'ssl' server as we must del it.

However, if we del the SSL socket, we're going to close the underlying
TCP. But we're from the TCP "client,add" callback and this causes
issues since "closed" will be emitted, our close callback will
unparent the client, which lead to it being deleted.

The proper solution is to only monitor "closed" if the client is
accepted. Otherwise we just check if it was closed, if we're the
parent, etc...

Fixing this in all servers were painful, we could share since most
inherit from Efl.Net.Server.Fd. Then add the "client_announce"
protected method to do it, and document how it should work.
2016-11-25 17:25:18 -02:00
Gustavo Sverzut Barbieri c534d79124 efl_net_socket_fd: stop monitoring fd on EOS.
There was a bug that if the remote peer closed the connection, it
would trigger 'read' event, which would read 0 bytes, flagging as
EOS... but then marking as "can_read", which was wrong.

Just stop monitoring the events and fix that.
2016-11-25 17:25:18 -02:00
Gustavo Sverzut Barbieri a9d9936a08 eina_slice: fix eina_slice_endswith() for same-sized slices. 2016-11-25 17:25:18 -02:00
Vitalii Vorobiov 1a9a3e701d Edje_Edit: use specific function to get file's name correctly on Win and Linux
Because '\' is dir path for linux, but '/' is dir path for Window,
so better use specific function for getting file's name depending on specific
system
2016-11-25 15:00:49 +02:00
Hermet Park 7171dd09c6 elementary flip: skip unnecessary sizing.
Sizing in the constructor is wrong.
It's just a waste of function call.
2016-11-25 20:18:28 +09:00
Guilherme Iscaro 6572ad9e02 Efl.Canvas.Object: Remove focus,in/out events.
Since this object already inherist Efl.Input.Interface there's no need
to have those events reimplemented.
2016-11-24 19:18:47 -02:00
Guilherme Iscaro b77f0086f5 Efl.Canvas: Use Efl.Input.Focus as event info for object,focus.in/out. 2016-11-24 19:18:47 -02:00
Guilherme Iscaro fd6f6c14c1 Evas: Use events to set canvas focus in/out. 2016-11-24 19:18:47 -02:00
Guilherme Iscaro ded24d80ed Evas: Use events to flag canvas focus in/out. 2016-11-24 19:18:47 -02:00
Guilherme Iscaro ed9c635152 Evas: Add Focus event type. 2016-11-24 19:18:47 -02:00
Gustavo Sverzut Barbieri d0b7d876a7 efl_io_queue: add discard method, useful in real life.
While using efl_io_queue + slice_get I found that we need to discard
data and the only way was to read to an actual buffer, kinda annoying.

Then introduce a discard method to do that.
2016-11-24 18:55:43 -02:00
Jean Guyomarc'h 2a75a47b19 efl_ui_win: fix build with no support for X 2016-11-24 20:24:19 +01:00
Gustavo Sverzut Barbieri 4b28d5a989 docs: enhance efl_io_copier.
This is the core component of our new I/O subsystem, heavily used by
efl.net and the likes. Then make sure the documentation is good :-)
2016-11-24 15:22:45 -02:00
Stefan Schmidt d859d693be docs: efl_io_copier: fill gaps in eo file documentation 2016-11-24 15:33:10 +01:00
Stefan Schmidt 3f0f1b68f0 docs: efl_pack_grid: fill gaps in eo file documentation 2016-11-24 15:33:10 +01:00
Stefan Schmidt 0d930b3c7d docs: elm: fill gaps in separator, view_form and view_list eo file documentation 2016-11-24 15:33:10 +01:00
Stefan Schmidt a7b2b6fdc0 docs: elm: fill gaps in button, color, combobox and conformant eo file documentation 2016-11-24 15:33:10 +01:00
Stefan Schmidt f9272570c5 docs: elm: fill gaps in config, efl_ui_win and actionslider eo file documentation 2016-11-24 15:33:10 +01:00
Stefan Schmidt 98e50b0751 docs: elm: fill gaps in diskselector, entry and gesture_layer eo file documentation 2016-11-24 15:33:10 +01:00
Stefan Schmidt f8494aafd4 docs: elm: fill gaps in segment_control and slideshow eo file documentation 2016-11-24 15:33:09 +01:00