Commit Graph

51048 Commits

Author SHA1 Message Date
Stefan Schmidt 246c6dc447 docs: efl_ui_text: fill gaps in efl ui text eo file documentation 2016-11-18 12:53:26 +01:00
Stefan Schmidt 78aa2dc625 docs: elm_entry: fill gaps in elm entry eo file documentation 2016-11-18 12:53:25 +01:00
Tom Hacohen 79d76fb25e Eo gdb: add a way to resolve Eo ids from GDB without a running process
Normally when debugging Eo with gdb you can just use any of the internal
eo functions to resolve the id to its internal pointer. However, when
loading a coredump you can't execute any code, not even the id resolve
code.

This change adds a gdb function that resolves the id to its pointer form
without executing any code in the process space. This plugin is
essentially the id resolve code written in python as a gdb function.

Usage:
 Print the pointer:
 (gdb) print $eo_resolve(obj)
 $1 = (_Eo_Object *) 0x5555559bbe70

 Use it directly (e.g. to print the class name):
 (gdb) $eo_resolve(obj)->klass->desc.name

This plugin requires that the coredump would be loaded with the exact
same libeo.so binary (or at least one that hasn't changed eo internals),
and that the debug symbols for libeo.so would be available for gdb to
use.

Note:
This feature is incomplete and only resolves IDs that are owned by the
main thread and in the main domain. This is not a big issue at the
moment, because almost all of our IDs are like that.

@feature
2016-11-18 11:48:07 +00:00
Tom Hacohen 3dd51bf53d Eo gdb: remove old and broken gdb macro. 2016-11-18 11:48:07 +00:00
Taehyub Kim 3a98ee3796 ecore_wayland: fix over writing file descriptor bug for reading
Summary:
fix over writing file descriptor bug for reading.
when we paste data to entry very fast, source->fd is over wrote by latest fd.
It cause blocking of read function since the read function use invalid fd.
so I make memorizing valid fd and using it in read function.

@fix

Reviewers: Hermet, jpeg, cedric, devilhorns, ManMower, raster

Differential Revision: https://phab.enlightenment.org/D4410
2016-11-18 19:53:15 +09:00
Carsten Haitzler 470478030b evas map redraw update handling - dont trigger full redraw in e menus
this fixes T4904

dif e pops up menus it uses zoomap to zoom an existing object in and
out by forcing it to be mapped and controlling the map geom based on
smart obj geom. this will do a minimum update region for the case
where a map just got turned on or off for an obj since last frame and
cut this out.

@optimize
2016-11-18 18:59:03 +09:00
Cedric Bail e79406b5db elm/calendar: we do require explicit ptr now. 2016-11-17 17:40:12 -08:00
JEONGHYUN YUN 3f76638b37 elm/calendar: add APIs for minimum and maximum values for the date
Summary:
elm_calendar already have minimum and maximum year set/get APIs.
I've added new APIs that exapanded from the year to the date.
These APIs help us not only set min/max month but also set min/max day.
If you set the minimum date, changing the displayed month or year if needed.
Displayed day also to be disabled if it is smaller than minimum date.

Reviewers: woohyun, Hermet, jpeg, CHAN, cedric

Reviewed By: CHAN, cedric

Subscribers: CHAN, cedric, jpeg

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-11-17 17:40:12 -08:00
Shuhrat Dehkanov ec12506a88 elm/datetime: default case for default value
Summary:
This will eliminate unnecessary initialization of local variable in case the type is not EFL_UI_CLOCK_TYPE_YEAR.
Also, ELM_DATETIME_YEAR case is merged with the default case.

Reviewers: singh.amitesh, cedric

Subscribers: minkyu, jpeg

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-11-17 17:40:12 -08:00
Derek Foreman 38788e7787 ecore_evas: Unbreak all the engines that don't have evas_changed callbacks
repairs damage from d2b8495576

Move along, nothing to see here.
2016-11-17 11:39:25 -06:00
Derek Foreman d2b8495576 ecore_evas: send evas_changed callback when manual render is set
If manual render is set there's obviously no change.

This fixes E's wake from blank/wake to lockscreen behaviour on the drm
backends.
2016-11-17 11:23:36 -06:00
Andrii Kroitor ef55640d2a elm_spinner: apply value after pressing enter key
This was broken previously by a659fe3484

@fix
2016-11-17 15:56:14 +02:00
Stefan Schmidt b5919ae9ed elm_fileselector: fix property value name when showing hidden files
The vlaue name multi does not make any sense here and looks like a copy and
paste oversight from the multiselection property.
2016-11-17 13:50:12 +01:00
Stefan Schmidt a2d48a5df3 efl_net_ser_udp: fix vlaue name for time to live property
The loopback value name here was really just a copy and paste mistake.
2016-11-17 13:45:49 +01:00
Stefan Schmidt 242edea752 docs: ecore: add missing property doc for efl_io_file 2016-11-17 13:08:41 +01:00
Stefan Schmidt a1b46e872d docs: elm_interface: fill gaps in elm interfaces eo file documentation 2016-11-17 13:02:03 +01:00
Stefan Schmidt 17cf8dd846 docs: elm_widget: fill gaps in elm_widget eo file documentation 2016-11-17 12:54:29 +01:00
Stefan Schmidt d603ea1de0 docs: efl_ui: fill gaps in efl_ui eo file documentation 2016-11-17 12:52:44 +01:00
Stefan Schmidt 67f03b7d04 docs: atspi_interfaces: fill gaps in elm atspi interfaces eo file documentation 2016-11-17 12:19:50 +01:00
Stefan Schmidt 85ed25c682 docs: efl_interfaces: fill gaps in efl interfaces eo file documentation 2016-11-17 12:16:01 +01:00
Carsten Haitzler ce8e085d6d efl object events - track del, cb add and cb del callback counts
so hunting another callback issue i noticed some of THE most popular
callbacks are:

     1411  tick
     1961  move
     4157  pointer,move
     7524  dirty
     8090  damage
    13052  render,flush,post
    13052  render,flush,pre
    13205  render,post
    13205  render,pre
    21706  recalc
    21875  idle
    27224  resize
    27779  del
    31011  idle,enter
    31011  idle,exit
    60461  callback,del
   104546  callback,add
   126400  animator,tick

as you can see callback del, add and the general obj del cb's are
right up there... so it is very likely a good idea to CHECK to see if
anyone is listening before calling the callback for these very very
very common calls.

this is ifdef'd and turned on for now. it can be turned off. it
shouldnt use more memory due to the way memory alignment works (likely
all allocations will be multiples of 8 bytes anyway) so we're using
spare unused space. the only q is - is management of the counts AND
checking them worth it in general? it's really hard to tell given we
dont have a lot of benchmarks that cover a lot of use cases... it
doesnt seem to slow or speed anything up much in the genlist bounce
test... so i think i need something more specific.

@optimize
2016-11-17 18:41:32 +09:00
Carsten Haitzler 200490a850 eo src formatting - line up struct member 2016-11-17 18:41:32 +09:00
Carsten Haitzler 036cfc32e4 event callback call - move 0 check early before any var init
a LOT of callback calls call on objects with no cb's at all so the
earlier we check for 0 the better before we do ANYTHING.

@optimize
2016-11-17 18:41:32 +09:00
Carsten Haitzler 1ac86bb878 eo - fix ever growing callback list by actually flagging waiting dels
i found a massive slowdown that over time ended up with 10000's of
cb's in objects like the ecore loop object. this fixes that by
ACTUALLY flagging event deletions waiting to be true rather than false.
2016-11-17 18:41:32 +09:00
Carsten Haitzler f504950597 image prepares - put in some disabled code to show how to possibly use
this is how you would possibly use prepare stages for objects like
image objects by pre-rendering them to a buffer. this is not complete
and it's actually disabled right now, but it's to show how it might be
done. some more exploring is needed, but this is to share how it
might/should work.
2016-11-17 18:41:32 +09:00
Carsten Haitzler 3eb0df1022 evas engines - add more support for noscale pixel buffers esp in gl
for gl noscale buffers are texture atlases that are fbo's. the point
is never to scale or transofmr them but to render them pixel for pixel
and just store pre-rendered data where its cheaper to do this than
rebuild every time. this is the enigne infra for sw and gl with the gl
code... it SHOULD work... in theory...
2016-11-17 18:41:32 +09:00
Carsten Haitzler f7b2ec8bff eina_btlog - add spaces at start so when cnp'd into a wiki it formats
without spaces at the start of every line this ends up trying to deal
with this poorly, ensure at least 4 spaces at the start of every line
and wikis tend to format with fixed width monospace layout as a "code
sample blob" which is much more correct. at least this is a simple
always-on feature we can have so copy & paste turns out nicely in bug
reports. we could have multilpe formatting options like maybe -phab
which might output this as a wiki markdown "table". maybe -html so it
prodices raw html? either way... this is a basic improvement out of
the box.
2016-11-17 18:41:32 +09:00
Carsten Haitzler 6a3a4a4124 eina log - explain how to humanify the output for bts when printed 2016-11-17 18:41:32 +09:00
Carsten Haitzler 56fd30f6f3 Revert "efl: disable backtrace for release too."
This reverts commit dc7806e685.

NO. python does it out6 of the box by default. fix the error if you
have one and stop just "turning off the noise". the point of
having this is so that a REAL "why" can be provided by a user by
putting it through eina_btlog and you can see HOW the error happened
at least as a backtrace. turning it off "unless you sety environment
vars" is STUPID. especially for users of e who will likely be unable
to do this a they jusr use a display manager to launch e and cant just
"change environment vars" because they dont know how. you have just
made things worse for getting information fromt he people LEAST
capable of providing information which is where we need automated ways
of doing this "the most".

i use this backtrace all the time. every week or so i identify an
issue just by this built in trace so i know HOW we called that func
because the err complaint was utterly useless as it didnt tell me the
caller etc. which i needed to know "why". this also solves a valid
complain that if you are developibng with efl and e.g. use a legacy
func and pass in an invalid ob you need to know what CALLED the legacy
func. often the issue is several levels up. its the silent masses who
appreciate the feature and use it or then DONT complain. this allows
them to know what the SOURCE of the error is and notjust where it ends
up and this should be done by default out of the box regardless of it
being long because providing more informations is always better than
less. do you propose that kernel oopses should cease dumping all
registers and half a screen worth of junk because "well just set a
kernel boot param to turn it on next time". no. go propose that python
turn off their backtraces by default unless you set and env var. get
these groups to agree to do this, then i'll believe you that this is
TRULYU annoying and not useful and should be off.

you do this just because a few peolpe complain about an error happening
that "SHOULD NOT BE THERE". then FIX THE ERROR. the bt if provided should
nicely provde complete info on how you got there. just making the
error a 1 liner (and those lines are super long and for me 90% of the
time wrap 2 or 3 lines in a terminal) is just sticking your head in
the sand. if its not an error then dont use an eina ERROR use debug or
warn or something else...
2016-11-17 18:41:32 +09:00
Carsten Haitzler 622277c82a evas - add engine api to get a specific fbo/surf that wont be scaled
this is to allow gl to specifically use an fbo as an atlas for these
kinds of buffers
2016-11-17 18:41:31 +09:00
Carsten Haitzler a479745e4f evas - add a prepare stage for objects before render
preparing an object is a good idea. especially with gl. you want to do
texture uploads BEFORE using textures all in one batch. otherwise this
may mean the gl implementation has to make a copy of your data in a
tmp location then copy it in later when texture becomes "unused" as it
may be in use at the moment, or it may have to stall and wait.

i have seen somewhere around 7-10% speedups on nvidia and intel
drivers with this on given a very special test case i brewed up (1000
32x32 images where i change 1 pixel every frame). this should have
impact really when we are modifying textures a lot. this is all i've
implemented for now, but this should/would/could do much more like
re-order map, proxy renders to render FIRST in a pre-render list
instead of inline and to pre-render fbo/buffer content for complex
objects like text or textblock etc.
2016-11-17 18:41:31 +09:00
Carsten Haitzler dbebf2835f evas surface/buffer wl support - define missing egl ifdefs if missing
this will define EGL_WAYLAND_PLANE_WL and EGL_WAYLAND_BUFFER_WL if
missing as SOME older egl public headers dont expose them and yet we
still wans to compile and support the feature should the egl BINARY
etc. actually support this (or be upgraded to support it after efl
compilation).

@fix
2016-11-17 18:41:31 +09:00
Carsten Haitzler 35cbdbb08f evas gl engines - buffer age - remove 'if age changes go to full' code
this technically isn't needed. it does help in some cases hide driver
or other buffer swap bugs, but in and of itself is not needed, so
remove. at least the drm egl bugs still happen on my pi3 so its
something else...
2016-11-17 18:41:31 +09:00
Carsten Haitzler 5b0d56313a elm - genlist - bounce test - add code for giving cpu time over a run 2016-11-17 18:41:31 +09:00
Carsten Haitzler e146371ed9 evas modules - only unregister log domain if its registered
some modules did check, some didnt... but this makes them consistent
and silences and eina err log. :)
2016-11-17 18:41:31 +09:00
Carsten Haitzler a5489d322b ecore imf - xim module - fix domain check to be be gteq 0
minor correctness fix.
2016-11-17 18:41:31 +09:00
Daniel Zaoui 7d127c1d07 Win: fix modal feature during window closing
During window deletion, decreasing modality depends on
the window visibility.
Because the visibility was set to false before treating the
modality, it was never decreased, leading to never have still
existing windows being reachable.
Now, we check window visibility before it is modified.

@fix
2016-11-17 08:00:23 +02:00
Cedric BAIL 53dd596f43 evas: reduce usage of __thread directive.
Moved rects caching into draw context to avoid the use of __thread
slot. Draw context are defined per thread anyway and should be just
fine. This doesn't really change the picture regarding glibc problem
when to many __thread are needed, but slightly improve the global
picture. Also this patch doesn't affect our performance in expedite
benchmark as far as I can tell.
2016-11-16 16:05:56 -08:00
Artem Popov 0b6e04d94f eet: add NULL-check to eet_connection_empty API to avoid segfault
@fix

Summary:
Only eet_connection_empty hasn't checking on NULL and try to read from field of object.
Add NULL-check for connection and return result of empty connection.

Reviewers: jpeg, cedric, myoungwoon

Subscribers: t.naumenko, NikaWhite

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-16 15:30:44 -08:00
Umesh Tanwar 417871e19b elmentary_test: test_entry4
Summary:
If entry is set into layout, entry does not need to
be explicitly shown as layout is already show.

Though it does not lead any error, but it is not
necessary too.

@fix

Signed-off-by: Umesh Tanwar <umesh.tanwar@samsung.com>

Test Plan: elementary_test->entry4

Reviewers: singh.amitesh

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-16 13:46:40 -08:00
Jaehyun Cho e64fa28284 efl_ui_image: guarantee user's mouse up event callback is called.
Summary:
Without propagating event by hit_rect, user's mouse up event
callback may not be called if image file is replaced in user's mouse
down event callback.

Test Plan:
1. Register mouse up event callback for elm_image by calling
evas_object_event_callback_add() with EVAS_CALLBACK_MOUSE_UP.
2. Register mouse down event callback for elm_image by calling
evas_object_event_callback_add() with EVAS_CALLBACK_MOUSE_DOWN.
3. Replace image file of elm_image by calling elm_image_file_set() in
mouse down event callback.
4. Mouse down on elm_image.
5. Mouse up on elm_image.
6. Since image file object is newly created in mouse down event
callback, mouse up event is not triggered for the newly created image
file object. As a result, mouse up event is not propagated to elm_image
and user's mouse up callback for elm_image is not called.

Reviewers: cedric, woohyun, eunue, jpeg

Reviewed By: jpeg

Subscribers: jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-16 13:46:40 -08:00
Subhransu Mohanty 16cb5f7af9 evas/gl: Added support for stencil buffer creation while creating gl Surface.
Reviewers: jpeg, cedric

Reviewed By: jpeg, cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-16 13:46:40 -08:00
Derek Foreman 168a127c8c ecore_drm2: Make sure something's on screen after dpms wake
Flip to the previous buffer on dpms wake to make sure we show something
2016-11-16 15:05:40 -06:00
Derek Foreman 24608d9950 ecore_evas_drm: Stop errant page from flip handler
This was required due to bugs elsewhere, and could potentially cause
stutters in display.  Now that we don't need it we're better off without.
2016-11-16 14:26:58 -06:00
Derek Foreman 8611aa83bc ecore_evas_drm: Don't do a flip if we know a frame is coming
If the async renderer is running then something's going to trigger a
pageflip naturally, and if we do one now we'll block it.
2016-11-16 14:26:58 -06:00
Guilherme Iscaro 9f8e2e0d9c Ecore Wayland: Remove ECORE_WL2_SEAT_CAPABILITIES_NO_SEAT.
Summary:
It's not possible to have an Ecore_Wl2_Input without a seat.

Ecore Evas Wayland: Remove seat existence check.

At this point every seat advertised is considered new, therefore
it will not be in the devices list.

Reviewers: barbieri, jpeg, cedric, bdilly

Reviewed By: bdilly

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4408
2016-11-16 17:50:32 -02:00
Cedric BAIL 55ab71bd67 evas: make sync and async work in the same way and not trigger empty flush/clear. 2016-11-16 11:31:04 -08:00
Bruno Dilly 6f66c6e676 ecore_wl2: ref / unref evas devices on ecore events
Summary:
It should avoid issues when device is removed after the ecore
event addition but before listeners are called (so pointer
would be invalid).

Reviewers: iscaro

Reviewed By: iscaro

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4407
2016-11-16 17:01:24 -02:00
Jean-Philippe Andre f50b0fed13 elm/evas: Fix disappearance of window icons with CSD
After a few patches trying to fix clipping of frame or
non-frame objects the icon finally ended up invisible. Even
if the elm_icon was marked as is_frame, its internal evas
object image would not have the flag set, thus it would be
clipped out.

Solution: Propagate the is_frame flag to all smart children,
not only when setting it but also when adding new members.
A hack with the API indicates that the frame edje is a very
special object that does not propagate the flag.

See also:
7ce79be1a1
0f6c33eff1
9c9c8809a7
ac5ca9281c
2016-11-16 20:48:58 +09:00
Jean-Philippe Andre ac5ca9281c evas: Try to fix bad clipping of non-frame objects
Test cases (in WL or X with client-side decorations on):

1. elementary_test -to Animation
  Resize the window to a small size (eg, 100x100) and observe the
  balls overflowing outside the window content part. This tests
  unclipped normal objects.

2. elementary_test "Window Plug" (requires also Window Socket)
  Drag the handles outside the window, observe overflow in the
  framespace area. This tests mapped images ('can_map').

3. elementary_test -to "Gesture Layer"
  Drag a photo around. This tests non-image mapped objects.
  NOTE: This test is badly broken!

This patch fixes both of those issues. I'm not sure what I'm
breaking, though.
2016-11-16 20:48:37 +09:00