Commit Graph

320 Commits

Author SHA1 Message Date
Jean-Philippe Andre 19fb35d657 evas/cserve2: Close scaled images after drawing 2013-06-14 16:38:18 +09:00
Rafael Antognolli d44a69f911 evas/map: Add FIXME comment to remember that it's just a workaround. 2013-06-13 19:16:23 -03:00
Jiyoun Park f488cf2b4d Evas: Fix bs if app call image object update add after call api like
fileset.
2013-06-13 14:09:28 +09:00
Carsten Haitzler c979a52553 fix bug introduced by: f1ba71147e
max ascent/descent are not the same as ascent and descent... get them
specifically.
2013-06-09 17:30:34 +09:00
Tom Hacohen f2317ac875 Evas font: Fix initialization of ascent/descent for empty objects. 2013-06-07 18:09:51 +01:00
Tom Hacohen e1cffeecef Evas text: Removed unused variables. 2013-06-07 18:09:50 +01:00
Rafael Antognolli 4b5d52fca1 evas/callbacks: Prevent post_event_callback_call recursion.
If this function is called recursively, it will free the list of post
callbacks before the list stops being used, which will cause a segfault.

The only place where this seems to happen is on
https://phab.enlightenment.org/T124, probably due to the extensive mouse
events which are launched in an unexpected way.

This bug started happening after commit
164cc07237395f8fe6efa465e4f0c0c4863f78ed, where the
_elm_scroll_page_x_get() started being called by a post_event callback,
and forcing an edje recalc. This recalc triggered another post_event
callback, thus causing the mentioned segfault.

If there's a better way to prevent this from happening, please change
the mentioned code.
2013-06-06 18:42:16 -03:00
Tom Hacohen f1ba71147e Evas font: Fixed line size calculation using multiple fonts.
Additional fixes to cc4cf77865.
There were two problems:
1. Usage of max_ascent instead of ascent.
2. Initialization of the ascent value according to the first font,
   instead of 0 (as the first font might not even be used).
2013-06-06 15:42:41 +01:00
Tom Hacohen e81edab826 Evas font: Remove useless multiplication and division.
Does nothing, just looks ugly.
2013-06-06 15:42:41 +01:00
Rafael Antognolli 383bb37e61 evas/wayland_egl: Workaround for map perspective issues.
Account for the framespace offset on perspective fx and fy of each map
point.

This is just a workaround because I could not understand exactly why it
is needed. When no perspective is used, the viewport is set to the size
of the surface, and each map point seems to be used as is, with no
adjustment being needed.

However, when the map is not flat (perspective is used), a more complex
math is used to find the glViewport size. It ends up being bigger, but
there are some offsets used to compensate that, gc->shared->ax/y, which
are added to each vertex before pushing them. Thus, it seems to me that
the framespace offset should not be added to them, but things are weird
if this is not done.

Anyway, I just added those offsets, and it should not impact on gl_x11
since it's not using framespace, and software engines don't seem to
implement perspective anyway, so it all should be fine.

If anyone understands better what's going on here, please make a proper
fix or at least contact me to explain the problem, and maybe I can fix
it by myself.
2013-06-04 14:52:26 -03:00
Cedric Bail 229d9f1efd evas: make it usable from modules. 2013-06-04 15:04:19 +09:00
Cedric Bail 4d15a0f50f evas: add infra to block the main loop from evas.
PS: later on, I think we should just move evas to use Ecore infra
directly to create jobs and sync with the main loop.
2013-06-04 11:20:25 +09:00
ChunEon Park 11b43dad4b evas - fixed source clip. If the source object is a evas primitive object, then proxy won't clipped by proxy clipper itself. 2013-05-31 20:29:18 +09:00
ChunEon Park fd7d1f9f98 evas/render - this is insane to me since nowhere it release the render_pre_done FALSE pairly.
This causes the textblock layouting problem.

It should be checked when does it really render_pre() called.

If someone knows the reason of this, please ping me.
2013-05-30 14:50:47 +09:00
ChunEon Park 1f558c6cde evas/textblock - revert the textblock pre_render_done.
Fundamentally, this is not a point of the problem.

somewhere pre_render caller is inccorrect without releasing the flag.
2013-05-30 14:43:41 +09:00
Jihoon Kim 4a90649f48 Fix typo in Evas headers 2013-05-29 10:27:10 +09:00
ChunEon Park b7ff5a737f evas/textblock - fix the textblock to render pre again if it needs to be relayouting 2013-05-28 23:07:24 +09:00
ChunEon Park 7003b7fd0b evas/textblock - fix indent 2013-05-28 23:00:31 +09:00
Stefan Schmidt 0a20c045b2 evas/textgrid: Fix memory leak.
Free allocated color before we return in the failure case.
2013-05-28 13:47:52 +01:00
Tom Hacohen 25f79697af Revert "Evas eo compat: Freeze object events when deleting."
This reverts commit 3c53b824d8.

This is a bad idea for now, as we need to mark some more events as hot
(including compat generated ones) before doing it.
2013-05-21 16:32:09 +01:00
Tom Hacohen 3c53b824d8 Evas eo compat: Freeze object events when deleting.
In the past events wouldn't be called for deleted objects, retain that
behaviour.
2013-05-21 15:07:41 +01:00
Daniel Juyung Seo b2dd73e841 evas_object_textblock.c: fixed a typo in the documentation. 2013-05-21 19:21:47 +09:00
Cedric Bail f13a35909b evas: always set degre to zero before using it. 2013-05-21 09:58:24 +09:00
Chris Michael 5da4fce18a With antognolli's framespace changes, we no longer need to subtract
framespace from the output/canvas to get proper x/y coordinates.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-20 18:19:03 +01:00
Cedric Bail be153f92b6 evas: make canvas event to hot to be frozen. 2013-05-20 18:17:29 +09:00
Tom Hacohen 97acb71175 Evas textblock: Removed double ;. 2013-05-16 10:38:56 +01:00
Sung W. Park 97806103eb evas: fix evas flushing its command queue to wrong gl context in gl-backends
For native surface rendering (glX, egl) in gl-backend,  if pixel get callback
function is called for native rendering, there is a case where evas will
try to call evas_gl_common_context_flush() to flush its remaining commands
in its command queue while the context is set current to the native surface/
context that is called within the pixel get callback.  So, I've added an
engine function that forces a flush before it enters the pixel get callback
function.
2013-05-13 14:12:36 +09:00
Tom Hacohen cc4cf77865 Evas font/text: Fixed an issue with asc/desc calculation in text object.
Added font_int asc/desc getters in order to achieve that.

Thanks to MinSu Seo for reporting.
2013-05-10 17:48:26 +01:00
Chris Michael 6cdbca59d4 Fix proxy object check to compare against proper object.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-09 08:06:05 +01:00
Rafael Antognolli cf9d3c90f5 Ecore/Evas: Add evas_event_input_multi_down/up().
These events (from multi-touch) also have information about the mouse
pointer position, so they must be translated by the framespace too.
2013-05-08 16:50:15 -03:00
Carsten Haitzler 0632415e9c don't try free a NULL image handle in proxy_unset. 2013-05-08 23:41:39 +09:00
Cedric Bail d833244100 evas: add infrastructure to open from Eina_File. 2013-05-08 18:17:00 +09:00
Cedric Bail ba46068c09 evas: agressively destroy proxy surface when nobody use the proxy anymore. 2013-05-08 18:16:59 +09:00
ChunEon Park b10be8fb4c evas/render - Fixed proxy clipping if the source object is clipped by output area.
Before this patch, the proxy will be clipped if the source is clipped by output area even if the soure_clip is disabled,

Additionally, src_clip/src_event/src_visible options must be supported in edje.
2013-05-08 01:16:49 +09:00
ChunEon Park 6a6f827e20 evas/render - there was a my fault. proxy clip should be a default. 2013-05-06 22:18:08 +09:00
Daniel Zaoui f30370fe52 efl: rename the Eo events for Evas objects and evas canvas. 2013-05-06 13:18:50 +03:00
ChunEon Park 49e88118d5 evas/render - and you don't need to check change for the map render if the change is already determined. 2013-05-06 11:03:11 +09:00
ChunEon Park 95b0f469b6 evas/render - clean code. 2013-05-06 00:56:10 +09:00
ChunEon Park 3ba5135135 evas - update map smart members when really it needs to render. 2013-05-06 00:48:56 +09:00
Daniel Zaoui 1a0282691c Efl: adapt legacy Evas Smart callbacks to Eo callbacks mechanism. 2013-05-05 14:33:16 +03:00
Daniel Zaoui 3d5136e4cc Efl: adapt legacy Evas callbacks to Eo callbacks mechanism. 2013-05-05 14:32:24 +03:00
Rafael Antognolli f490c4e5aa evas/events: Add evas_event_input_multi_move().
Same as evas_event_input_mouse_move, but for multi_move.
2013-05-03 17:19:13 -03:00
Rafael Antognolli 4b9a80a063 ecore/evas events: Use evas_event_input_mouse_move to report events.
Ecore_Evas_Input should use this function to report mouse move events.
The previous used function should be used to refeed events, or to
artificially feed mouse move events to the canvas. Basically every other
feed_mouse_move use case that is not an event from the input system.
2013-05-03 16:45:33 -03:00
Rafael Antognolli f09e493bc2 evas/events: Add evas_event_input_mouse_move().
This function should be used internally by the input system
(Ecore_Evas_Input) to feed Evas with move events. The x,y event info is
relative to the base of the window/surface, instead of the 0,0 of the
canvas.

This case only happens for now under Wayland, where the 0,0 of the
canvas is translated due to the window decorations that are drawn by the
client.
2013-05-03 16:45:33 -03:00
Carsten Haitzler c8def7a756 SCREW YOU GIT!... here is my fix for jack daniels leak! 2013-05-02 16:48:43 +09:00
Carsten Haitzler f8c9a8d167 revert the revert... damn you git!
Revert "Revert "Efl: replace eo_data_get for objects data referencing.""

This reverts commit b64a2994b3.
2013-05-02 16:47:16 +09:00
Carsten Haitzler b64a2994b3 Revert "Efl: replace eo_data_get for objects data referencing."
This reverts commit 654a3f5f94.
2013-05-02 14:17:19 +09:00
Daniel Zaoui 654a3f5f94 Efl: replace eo_data_get for objects data referencing. 2013-05-01 10:37:08 +03:00
ChunEon Park 29ef0f71ba evas - fix the wrong compare. thanks JackDanielZ for spotting it. 2013-04-30 19:51:24 +09:00
Rafael Antognolli de0d0dce2e evas/smart: Directly access object geometry to improve performance.
There's no need to get the object geometry through
evas_object_geometry_get(), since it is not converted anymore (there's
no offset).
2013-04-29 12:52:50 -03:00
Rafael Antognolli a1914368a7 evas/framespace: Use more framespace offset on evas events.
The framespace offset must be taken into account when searching the list
of objects which received events, since the objects now have their
original position.
2013-04-29 11:29:43 -03:00
Rafael Antognolli 59c37d1c7b evas/framespace: Add support for framespace offset rendering translation.
Instead of moving the objects by adding the framespace offset to them,
use this offset when rendering them. This way there's no change in the
object's geometry/position, it works correctly with map, and will be
automatically updated in case that the framespace values change (for
instance if one sets a window to borderless).

There are 2 main places where changes were needed:
 - output redraws, when they come from an object being changed, must be
   add the framespace offset to their damaged area;
 - checks to see if the object is inside a given rendering area, must
   also add this offset, since the object is actually being rendered on
   a different position;
2013-04-29 11:29:43 -03:00
Rafael Antognolli 550bc6ca48 evas/framespace: Remove framespace offset from position set/get.
Objects won't be moved by the framespace offset anymore.
2013-04-29 11:29:43 -03:00
Rafael Antognolli 4268bf9961 Revert "evas/map: Consider framespace offset when populating map points."
This reverts commit 3e43ad338d.
2013-04-29 11:29:43 -03:00
ChunEon Park 2e699fbab9 evas - and apply proxy_src_clip only when object and proxy is same in render_mapped 2013-04-29 21:05:33 +09:00
ChunEon Park 9fc2835cf4 evas - add evas_object_image_source_clip_set()/get() 2013-04-29 15:30:37 +09:00
ChunEon Park 911790b236 evas - fixed logic fault in proxy clipping. 2013-04-26 20:05:46 +09:00
ChunEon Park 188c345b27 evas - For compatibility, Make proxy's source clip to be optional. Im checking partal code for zmike. 2013-04-26 17:19:50 +09:00
ChunEon Park 39a864d2f7 evas - fix the proxy object to not be clipped by source clipper 2013-04-26 14:45:41 +09:00
Tom Hacohen 455d8790b9 Evas textblock: Fixed line size calculation when using multiple fonts.
Thanks to MinSu Seo for reporting.
2013-04-25 15:16:20 +01:00
Rafael Antognolli d05c58ff2c evas/wayland: Remove framespace clipper.
This clipper caused several bugs already, and there are some bugs still
not fixed. Let's remove it and try to fix any remaining with some other
kind of solution that does not depend on adding or clipping objects
during the evas render phase, which causes unexpected behavior.
2013-04-23 18:52:35 -03:00
Mike Blumenkrantz 715c77adb9 fix recursive proxy rendering to just show a black rectangle 2013-04-22 16:41:24 +01:00
Rafael Antognolli e937f1f5a3 evas/wayland: Unclip objects from the framespace after rendering.
These objects should be clipped only during rendering, since keeping
them clipped after that allows for unexpected behavior on the
application side. For instance, an application could check if objects
have clippers before doing something to them, assuming that some objects
should have no clipper, but under wayland, after the first render
iteration, there will be no objects without a clipper.

This commit fixes this behavior by unclipping objects that had no
clipper prior to the render iteration.

Additionally, it fixes a bug where a maximized/fullscreen window could
have not all of its content rendered immediately. This was occuring
because some objects could be clipped to the framespace clipper, but
considered invisible in the beginning of the render phase, where they
are evaluated. They were considered invisible because the framespace
clipper object was not resized at that phase yet, and thus these objects
were being clipped out from the viewport.
2013-04-18 16:38:16 -03:00
Tom Hacohen 171eebc21b Evas object dbg_info: Fixed cast of pointer to int.
Also fixed additional unneeded cast.
2013-04-18 12:20:46 +01:00
Daniel Juyung Seo 4497815caf evas_object_main.c: added Clipper information for debug info.
Eina value type does not support pointer so I used int as of now.
This needs to be converted into hexa later.
By using Clouseau, one can see this Clipper information.
2013-04-17 16:58:30 +09:00
ChunEon Park 4163b2f509 Evas: If an object goes to be hidden without replacing the cur/prev state info, the object context can be corrupted at the next show time. Now it replaces the cur/prev in that rare case. 2013-04-16 03:05:16 +09:00
Tom Hacohen 3f3ad67616 Evas textblock: Fixed a bug with deletion of ranges.
Fixed a bug with deletion of ranges that end just before a visual format.
Thanks to WooHyun Jung for reporting.
2013-04-15 17:15:22 +01:00
Tom Hacohen d77a7bb39b Evas polygon: Cleaned up the way we clean the points. 2013-04-15 10:48:42 +01:00
ChunEon Park 59bd729ca9 evas/image - actually, no need to check both. one is enough. 2013-04-14 05:36:28 +09:00
ChunEon Park 6b9a895c59 evas/image - don't update evas render area by a clipper if the image object visible is changed. 2013-04-14 05:18:31 +09:00
ChunEon Park b660465410 evas - Don't be crashed even if the map image size is 0. 2013-04-13 18:58:08 +09:00
Tom Hacohen 882b7a72eb Evas dev: Fixed usage of uninitialized variable. 2013-04-12 15:17:19 +01:00
Carsten Haitzler 9b0e7626f4 Add subclasses for evas device api (new in 1.8) and document the evas
device api... :)
2013-04-12 20:05:16 +09:00
Cedric Bail d1c502fe26 evas: remove warning, no need for double (). 2013-04-12 11:24:14 +09:00
ChunEon Park fbec2b33db evas - removed unused 2013-04-12 11:06:03 +09:00
Cedric Bail 61dbbbb451 evas: let's do less useless marshalling. 2013-04-11 18:56:52 +09:00
Cedric Bail 36c3cf0733 evas: don't call eo_data_get when it is really not necessary. 2013-04-11 18:07:09 +09:00
Cedric Bail e0f2ddadde evas: use eo_data_get less. Use clipees_has if you want to know the number of child now. 2013-04-11 18:07:09 +09:00
Cedric Bail bf07af3e7b evas: remove useless initialization. 2013-04-11 18:07:09 +09:00
Yakov Goldberg 7016872619 Efl textblock/entry: additions to split BiDi cursor
- handling multiple runs, multiple lines, last char of line/par
   - tests added

Signed-off-by: Yakov Goldberg <yakov.g@samsung.com>
2013-04-10 14:59:48 +03:00
Tom 'TAsn' Hacohen a70abbb381 Efl textblock/entry: Added support for split BiDi cursor.
If logical cursor is between LTR/RTL text two cursors will be shown.
  Upper cursor is shown for the text of the same direction as
  paragraph, lower cursor - for opposite.

  NOT DONE YET

Signed-off-by: Tom 'TAsn' Hacohen <tom@stosb.com>
2013-04-10 14:58:32 +03:00
Carsten Haitzler a1e0190725 add a little code to alloc engine info in outs.. but we need a new
engine api for this... i guess we have no choice... it's time for a new
engine api anyway...
2013-04-09 16:52:49 +09:00
Carsten Haitzler 2364f4514b evas device new/free -> add/del (new 1.8 api so no log). 2013-04-08 20:10:06 +09:00
Carsten Haitzler 21c2209de8 clean up outputs list on evas free. 2013-04-08 20:10:06 +09:00
Carsten Haitzler 93dc78216c Add multiple output api support to evas... just "eo infra stubs" right
now.
2013-04-08 20:10:06 +09:00
Cedric Bail 131936b640 evas: correctly define bounding box in all case. 2013-04-08 15:05:58 +09:00
Cedric Bail 70f0f9c6b5 evas: get the bounding box from the right object and always update it. 2013-04-07 23:45:23 +09:00
Cedric Bail 4151f89e2d evas: correctly initialize and get the bounding box at the right time. 2013-04-07 23:45:23 +09:00
Cedric Bail 244cca7503 evas: revert useless change. 2013-04-07 23:45:23 +09:00
Cedric Bail d27bdb4726 evas: small reorder for a little bit of memory win. 2013-04-07 15:33:58 +09:00
Cedric Bail 7739267d8b evas: bounding box is only relevant to smart object. 2013-04-07 15:11:56 +09:00
Cedric Bail f1dfbc4e0e evas: remove one useless pointer (-30KB). 2013-04-07 14:00:10 +09:00
Cedric BAIL f5b01e32ac evas: stop over redraw of Evas_Map content with Smart Object.
Clip object would always stay in a changed state. Nobody was walking them
to reset. Now we do reset there state as soon as we do render them.
2013-04-05 15:19:48 +09:00
Tom Hacohen d26f78813f Evas clouseau: Cleaned up and added more clouseau map info. 2013-04-04 13:32:06 +01:00
Cedric BAIL 54b9b19b66 evas: let's not force an allocation and write for nothing. 2013-04-04 12:36:03 +09:00
Daniel Willmann 1cb5a8f63a evas_textblock: Avoid dereferencing out-of-bounds element
Address sanitizer found this. Not really a serious error as text[i] will
be 0 in that case (I believe) and the loop is aborted in any case.

Still, better safe than sorry.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-04-02 18:57:43 +01:00
Rafael Antognolli 3e43ad338d evas/map: Consider framespace offset when populating map points.
Since the objects are moved by the framespace offset, it must be
considered when populating map points. This is done when the map is
applied to an object (the map points are updated with the framespace
offset of the canvas that is parent of that object.

Additionally, a flag is set on the map struct to indicate that it had
its points updated already to avoid re-adding the offset.
2013-04-02 14:40:00 -03:00
Rafael Antognolli c7cdcf4e0e evas/wayland: Take framespace offsets into account on pointer_xy_get().
Applications using these functions should not know of any offset. This
patch makes the canvas pointer position to be returned exactly the same
as on X11 backends.
2013-04-02 14:40:00 -03:00
Rafael Antognolli 41d00df3d7 evas/wayland: Remove wrong check from framespace position_get.
This check makes no sense, since objects can be on outside of the
screen, with negative position, but they still need to be adjusted by
the framespace offset.
2013-04-02 14:40:00 -03:00
Rafael Antognolli 8d88a73f68 evas/events: Fix evas_events framespace offset.
Framespace offset adjustment should be applied to every object not
marked with "is_frame".

Additionally, it should be applied only once. Since it is already being
applied on the *_feed_mouse_* functions, there's no need to apply it
again on the _evas_event_source_mouse_* functions, which are called by
the former ones.

Also add the missing adjustment to the feed_mouse_move one.
2013-04-02 14:40:00 -03:00