Commit Graph

19120 Commits

Author SHA1 Message Date
Chris Michael 7a3c658759 ecore-drm2: Fix atomic dpms setting (round 2)
As it turns out, we still need to enable/disable the output crtc when
we enable/disable dpms in order for the screen itself to turn off, so
this patch "should" finally fix atomic dpms setting.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-19 11:29:47 -04:00
Jean-Philippe Andre b8336030ea doc: Fix filters documentation in edcref
Thanks @rimmed for the report!

@fix
2017-05-19 14:52:50 +09:00
Jean-Philippe Andre 55b529cebc evas/elm: Make group_add/group_del internal functions
This hides those two legacy functions from the EO API.
2017-05-19 14:07:00 +09:00
Jean-Philippe Andre 2cdc02b03c evas: Make beta events from Evas.Canvas internal
This includes 4 events:
 - render,flush,pre
 - render,flush,post
 - axis,update
 - viewport,resize

Those were not accessible from the EO API since Evas.Canvas
isn't part of the public EO API.
2017-05-19 14:07:00 +09:00
Jean-Philippe Andre 4310e641cd evas: Make Efl.Canvas.Object.type internal 2017-05-19 14:07:00 +09:00
Jean-Philippe Andre 781594088e evas: Make Efl.Canvas.Object.legacy_ctor internal
Continuing...
2017-05-19 14:07:00 +09:00
Jean-Philippe Andre de4627030a evas: Make Efl.Input.Event.instance_get internal
Same as the previous patch. This removes the definition from
the EO file, implementing the feature in C.
2017-05-19 14:06:59 +09:00
Jean-Philippe Andre 60444d681e evas: Make Efl.Input.Event.legacy_info.get internal
This removes the function from the EO file by using EXTRA_OPS
as introduced in 53fef30db0.
2017-05-19 14:06:59 +09:00
Jean-Philippe Andre 7007c3314d elm: Remove Elm_Glob_Match_Flags from EO
This is used by legacy gengrid & genlist only.

Ref T5329
2017-05-19 14:06:59 +09:00
Cedric BAIL 26d401351d eina: fix reproductible build.
This make eina hamster depend on when configure was generated. This
should only happen really when we make a new tarball for release.

@fix

T5495
2017-05-18 16:20:06 -07:00
Andy Williams 7510a2a9ee elm_code: Fix crash on tabs in long lines
@fix
2017-05-19 00:01:23 +01:00
Chris Michael 76806fda80 ecore-drm2: Update connector state dpms value if setting works
If we successfully set dpms via atomic state, we should also update
the connector state dpms value

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-18 12:22:27 -04:00
Chris Michael 892b58fbf2 ecore-drm2: Fix setting dpms level using atomic state
The property we need to change during an atomic dpms change is
actually from the output connector state (not crtc state). This fix
should make dpms work when using atomic

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-18 12:14:01 -04:00
Amitesh Singh 1a025edd62 check: fix efl_ui_check_selected_set() API
send the theme signal after changing state.
Thanks to JP for pointing out this.

@fix

Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-05-18 18:22:49 +09:00
Amitesh Singh fd2111d9d0 nstate: correct the legacy class name
@fix
2017-05-18 17:15:39 +09:00
Andy Williams 67f4b98ddb Revert "elm_code: Add a save_as API call for writing buffers to a new file"
The implementation is flawed and was not noticed due to
the tests not having run unexpectedly.

This reverts commit ac076be75d.
2017-05-18 08:40:43 +01:00
Amitesh Singh 5ed8ed5ba2 photocam: fix make distcheck
Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-05-18 15:30:41 +09:00
Amitesh Singh 5e1711aac1 rename Efl.Ui.Zoomable to Efl.Ui.Zoom
Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-05-18 14:56:49 +09:00
Amitesh Singh c124534a5e photocam: move zoom related APIs to Efl.Ui.Zoomable
Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-05-18 12:56:14 +09:00
Derek Foreman 12260dabb9 ecore_drm2: Better handle flip failure round 2
If the buffer being flipped to is the one already on screen then
releasing it on flip failure will leave it on scanout with no
references.  The next time a buffer is queued it will be removed
from scanout and deleted.

Not good.

Fix T5462
2017-05-17 17:31:13 -05:00
Derek Foreman 2c58d77ba9 ecore_drm2: Better handle flip failure
We need to release the buffer we couldn't flip to when a flip fails.

This makes whatever bug is causing a page flip to happen right after
dpms blanks the screen, which was leading to a failure to ever wake
from dpms because the flip left a pending buffer that never completed.

Fix T5462
2017-05-17 15:01:54 -05:00
Amitesh Singh a9de4a7216 photocam: rename 'paused' API to 'zoom_animation'
and mark paused_set/get as legacy APIs.

Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-05-17 16:40:50 +09:00
Amitesh Singh a61e53fe34 photocam: implement Efl.Gfx.View.view_size.get
replace elm_photocam_image_size_get with Efl.Gfx.View.view_size.get
and mark elm_photocam_image_size_get as legacy API.

Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-05-17 16:40:50 +09:00
Amitesh Singh bf31dcd2d0 photocam: merge image_region_show() into image_region
and mark this API as legacy

Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-05-17 16:40:50 +09:00
Amitesh Singh ef4cae6c7f photocam: remove internal_image_get as eo api
and mark it as legacy API instead.

Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-05-17 16:40:50 +09:00
Andy Williams 47660f28dd elm_code: Fix off by 1 in selection refactor 2017-05-17 08:33:52 +01:00
Jean-Philippe Andre 7c5808f451 c++: Fix examples as Win.Standard was removed 2017-05-17 15:43:58 +09:00
Jean-Philippe Andre a9d11ab9e8 elm: Remove some of Gen_Item types from EO
Those belong to legacy only, EO interfaces will use models
and objects, not function pointers and item classes.

Ref T5329
2017-05-17 15:32:04 +09:00
Jean-Philippe Andre afbdaf514a efl model: Fix invalid type in EO
Efl.Canvas refers to a canvas, like Evas or Window. Efl.Gfx is
the base visual object type in libefl.so
2017-05-17 15:32:04 +09:00
Jean-Philippe Andre ba8db108cb evas map: Fix uninitialized fields
This fixes a "jump on uninitialized value" as reported by valgrind.
See evas_map.c:85:
  if (obj->map->cur.map->normal_geometry.x != x1) ch = 1;
2017-05-17 15:32:04 +09:00
Jean-Philippe Andre dab7c4d6e0 prefs: Remove some elm_prefs types from EO
Ref T5329
2017-05-17 15:32:03 +09:00
Jean-Philippe Andre f0d0686096 widget: Remove widget_callback_add/del from EO
Those APIs are not bindable with EO since they pass in a function
pointer. Luckily they are barely used.

Ref T5329
2017-05-17 15:32:03 +09:00
Jean-Philippe Andre daabd44520 elm_code: Fix invalid read of 1 byte
After end of string...
2017-05-17 15:32:03 +09:00
Jean-Philippe Andre 90de99eea6 elm_code: Fix use after free 2017-05-17 15:32:03 +09:00
Carsten Haitzler 0feb34927b edje_cc - use mem_alloc to fail and exit if alloc fails and fix err out
PVS sudio thought this was odd and it was a bit. not a real issue as a
mem alloc failure herw would still be fatal and simply a crash... as
opposed to a clean "out of mem" and fatal exit then...

error out eally was not finding originally allocated color and the
malloc should have been a mem_alloc() that guarantees a valid memory
return (or termintion of the process).

@fix
2017-05-17 15:04:01 +09:00
Carsten Haitzler 58a40d6f8a elm glview -> fix pvs studio caught typo in stencil bit mappings
this fixes CWE-570 on https://www.viva64.com/en/b/0508/

@fix
2017-05-17 15:04:01 +09:00
Carsten Haitzler d6d8d84b80 edje_cc docs - fix docs for vector images as it is wrong
it's images { vector: "x.svg"; } not vector { vector: "x.svg"; } ...

@fix
2017-05-17 15:04:01 +09:00
Carsten Haitzler 1d0b37a9e6 eo - eoid - finally rtemove option to not have eoid. it doesn't work
we use too many bits for metadata now so eoid is broken... remove it
as an option so people dont break out the foot guns
2017-05-17 15:04:01 +09:00
Sung-Jin Park f603001367 ecore_input: add ECORE_AXIS_LABEL_TOUCH_PALM enum
Summary:
Some of latest touchscreen devices can report if the tool in contact
is the palm of your hand and there is no axis label for this palm flag.
This adds ECORE_AXIS_LABEL_TOUCH_PALM enum as Ecore_Axis_Label type.

Test Plan: N/A

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

Reviewed By: jpeg

Subscribers: JHyun

Differential Revision: https://phab.enlightenment.org/D4848
2017-05-17 10:39:43 +09:00
Jean-Philippe Andre 093938e5d9 win: Remove special class Efl.Ui.Win.Standard
All windows should be standard, really. Except when using legacy
elm_win_add() or if type_set() was called with a specific type.

I dislike type_set...

Ref T5322
2017-05-17 10:39:43 +09:00
Amitesh Singh 11a674ad7d Efl.Ui.Autorepeat: add 'autorepeat' prefix to methods.
Thanks to Dave for pointing out this.

Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-05-17 10:31:25 +09:00
Andy Williams ac076be75d elm_code: Add a save_as API call for writing buffers to a new file 2017-05-16 23:19:34 +01:00
Andy Williams eb04ab591c elm_code: Fix insertion of multiline content in widget
A small refactoring to reduce code duplication as well :)
2017-05-16 22:13:43 +01:00
Stefan Schmidt 75727592df examples: evas: fix else block by adding needed parenthesis
This was broken since over a year. Happened during the automatic eo4
migration in f21ade6123.

Thanks goes to the gcc warning misleading-indentation:

evas-3d-shadows.c:163:4: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
    else
    ^~~~
evas-3d-shadows.c:165:6: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘else’
      evas_canvas3d_node_look_at_set(scene->mediator, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 3.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 5.0, 0.0);
2017-05-16 21:58:35 +02:00
Jean-Philippe Andre a96b7edb41 evas: Rename evas_types to evas_canvas3d_types
Now evas_types has nothing but canvas3d definitions.

Fixes T5312
2017-05-16 20:47:49 +09:00
Jean-Philippe Andre d974e708c2 evas: Remove unnecessary imports of evas_types
Ref T5312
2017-05-16 20:47:49 +09:00
Jean-Philippe Andre 9c494489e8 evas: Remove Efl.Canvas.Text.Annotation from evas_types.eot
This moves it to efl/interfaces which may not be the best...
@herdsman should know where to place this opaque definition.

Ref T5312
2017-05-16 20:47:49 +09:00
Jean-Philippe Andre 01d4886328 evas: Add seat arg to modifier/lock EO APIs
This now matches the new seat-related set of APIs present as EAPI.
2017-05-16 20:47:49 +09:00
Jean-Philippe Andre 4c81e0c5b9 evas: Remove Evas.Modifier from EO
Similar to the previous patch with Evas.Lock

Ref T5312
2017-05-16 20:47:48 +09:00
Jean-Philippe Andre 054aa012c4 evas: Use enum instead of string in Efl.Input.State
Ref T5312
2017-05-16 20:47:48 +09:00
Jean-Philippe Andre 64b90fd22e ecore_x: Fix build warning (invalid enum used) 2017-05-16 20:47:48 +09:00
Jean-Philippe Andre 83d1162171 evas: Remove Evas.Lock from EO
This is a step towards the removal of the modifier & lock API
as it is and use enums exclusively.

Ref T5312
2017-05-16 20:47:48 +09:00
Jean-Philippe Andre fe7f07615b evas: Move Efl_Gfx_Fill_Spread to legacy
This was never implemented and was translated to EO without
any implementation.
2017-05-16 20:47:48 +09:00
Jean-Philippe Andre c64f9ee235 evas: Move evas event info types to Evas_Legacy.h
This moves the following definitions from Common to Legacy:
 - Evas_Event_Mouse_Down
 - Evas_Event_Mouse_Up
 - Evas_Event_Mouse_In
 - Evas_Event_Mouse_Out
 - Evas_Event_Mouse_Move
 - Evas_Event_Mouse_Wheel
 - Evas_Event_Multi_Down
 - Evas_Event_Multi_Up
 - Evas_Event_Multi_Move
 - Evas_Event_Key_Down
 - Evas_Event_Key_Up
 - Evas_Event_Hold
 - Evas_Event_Axis_Update
2017-05-16 20:47:48 +09:00
Jean-Philippe Andre d682c3dfbb evas: Move Evas_Engine_Info to Evas_Legacy.h 2017-05-16 20:47:48 +09:00
Jean-Philippe Andre 1f13696b84 gesture: Use new EO API to grab Ctrl key
See previous commit
2017-05-16 20:47:48 +09:00
Jean-Philippe Andre 2d6f53f2b9 evas: Replace Evas.Modifier_Mask with Efl.Input enums
This removes Evas.Modifier_Mask from EO.

This introduces two new types instead:
 - Efl.Input.Modifier
 - Efl.Input.Lock

Those are enums, not strings, containing all the known and
currently supported lock and modifier keys. The enums are
bit masks.

This effectively removes the ability for an application to
create and handle specific modifier or lock keys - with EO
API (legacy compatibility is unchanged, of course). I wonder
who ever required this?
2017-05-16 20:47:48 +09:00
Jean-Philippe Andre fd35532d9e evas: Remove evas_key_modifier_mask_get from EO
Such an ugly API. This is an API to match a string to a number,
build a bitmask from it, and then use that. The supported
strings are well known (should be enum) and would need a
recompilation (ABI update) to support anything new anyway.
2017-05-16 20:47:47 +09:00
Jean-Philippe Andre 2fb5747fc9 elm: Add missing eo.c file for elm_button
This fixes a recently introduced crash in elm.
2017-05-16 20:47:47 +09:00
Amitesh Singh 68119700bb Efl.Ui.Autorepeat: Add efl autorepeat interface
Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-05-16 20:01:13 +09:00
Derek Foreman 88f328efd2 ecore_drm2: Clear next fb if we use it
Fixes a race that's either really hard to hit if you're a developer
or really easy to hit if you're a user.

Thanks to ApB for the debug assistance.

Fix T5484
2017-05-15 16:22:12 -05:00
Bryce Harrington ddfc6f0632 evas: Improve linespacing consistency
Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4879
2017-05-15 11:07:48 +02:00
Bryce Harrington cf30397737 ecore_evas: Omit redundant return info in doxygen
Summary:
These routines all already have a @return line that states the return
values appropriately; it's unnecessary to restate the return values in
the documentation text.

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

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4878
2017-05-15 11:07:07 +02:00
Jean-Philippe Andre be98868245 photocam: Fix invalid type in legacy header
Sorry, this temporarily broke the build of external apps.
2017-05-15 17:27:43 +09:00
Jean-Philippe Andre af3cb10185 evas: Remove Evas.Coord from EO
This may be a bit more controversial...
But Evas_Coord really is just an int and all the internals
of EFL assume that the base coordinate type is a 32-bit int.
So this type is a bit redondant and can't easily be changed
to, say, a float or int64.

Ref T5312
2017-05-15 17:26:42 +09:00
Jean-Philippe Andre a1abc129ec evas: Remove font_hinting from EO
We only need it in elm_config.
This removes the type Evas_Font_Hinting_Flags from EO,
as well as the functions font_hinting_set/get and
font_hinting_can_hint.

Ref T5312
2017-05-15 17:12:15 +09:00
Jean-Philippe Andre da229e34aa evas: Remove evas touch_point from EO
Note: it seems the EAPI evas_touch_point_list_xy_get() was
lst at some point, as it doesn't appear in the headers anymore.
It looks like we fail to catch an ABI break! abi_checker didn't
catch this!?

Ref T5312
2017-05-15 16:21:20 +09:00
Jean-Philippe Andre 9a251d6d5d evas: Remove Evas_Border_Fill_Mode from EO
Ref T5312
2017-05-15 15:07:43 +09:00
Jean-Philippe Andre f8473a2d19 evas: Remove Evas_Image_Orient from EO
Ref T5312
2017-05-15 15:05:14 +09:00
Jean-Philippe Andre f9ba9fa554 photocam: Move image_orient to legacy
This makes photocam implement Efl.Flipable and Efl.Orientation
in order to use the proper API.

image_orient is now split into two function calls.

Ref T5312
2017-05-15 15:05:14 +09:00
Jean-Philippe Andre e0ed9bb8b8 evas: Remove some types from EO
Those are legacy only.

Ref T5312
2017-05-15 15:05:10 +09:00
Jean-Philippe Andre 47b6db15c5 evas: Remove Evas_Callback_Type from EO
This moves the enum to legacy only, but in Evas_Common.h and not
Evas_Legacy.h because some other legacy things are in Evas_Common.h

Ref T5312
2017-05-15 10:29:23 +09:00
Jean-Philippe Andre cc82c48b73 elm_widget: Remove widget_event_propagate from EO
It is an internal only API.

Ref T5312 (one less use of a legacy type)
2017-05-15 10:29:23 +09:00
Jean-Philippe Andre 07263e881c evas: Remove Evas_Text_Style_Type from EO
It belongs to legacy only... Evas.Text is not part of EO.

Ref T5312
2017-05-15 10:29:23 +09:00
Jean-Philippe Andre 3df12eb690 evas: Remove Evas_Font_Size from EO
Ref T5312
2017-05-15 10:29:23 +09:00
Derek Foreman 51f5f43d43 ecore_drm2: Fix use after free
In trying to clean up some code and fix a hypothetical buffer leak, I added
a use after free error that can break rendering on the drm and gl_drm
evas engines.

Coverity did the heavy lifting for me on this one.

Fix Coverity CID 1375047
Fix T5484
2017-05-14 13:13:34 -05:00
Derek Foreman 1c60ac3bc9 ee_drm: Remove some commented out code
I think this was intended as a reminder to do something that's already
been done.  Or something.
2017-05-12 17:51:34 -05:00
Derek Foreman 44b57b5dfa ecore_drm2: Add some safety checks for accessing dead fbs
Accessing an fb after discarding it is bad karma, so we should log something
if it ever happens.
2017-05-12 17:51:34 -05:00
Derek Foreman edcbff59b7 ecore_drm2: refcount fbs
Removes the previous "busy" flag, as now we might have an fb attached to
multiple outputs at once, and need to be careful to destroy them only
after they've been removed from all outputs.

Removed the old "busy_set" API which nothing used, and renames fb_destroy
to fb_discard to make it more clear that it's not immediately destroyed.

It's all beta api, so I can do this.
2017-05-12 17:51:34 -05:00
Cedric BAIL 69b941f018 evas: simplify fb engine. 2017-05-12 15:24:45 -07:00
Cedric BAIL a660ee9e19 evas: simplify buffer engine. 2017-05-12 15:24:45 -07:00
Cedric BAIL 35e54acc46 evas: stat introducing a concept of engine and output in the backend. 2017-05-12 15:24:45 -07:00
Mike Blumenkrantz 68a3f43d1e ecore-wl2: add functions for proxying a selection receive externally
in some cases (e.g,, x11 bridged selections) it is necessary to use
alternate means when transferring a selection, and so performing the
entire piped receive is not necessary. instead, extend the lifetime
of the data offer until the proxied receive has completed

@feature
2017-05-12 12:08:26 -04:00
Mike Blumenkrantz 8afdbaba48 ecore-wl2: add function for setting a drag source's actions without a drag
in some cases it may be desired to have a drag data source without ever
initiating a drag, so ensure that it's possible to set the actions of the
source which will be passed for drag operations in this case

@feature
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz f6964f50e3 ecore-wl2: add function for accepting a single mime type
@feature
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 9f69882211 ecore-wl2: do not offer a null mime first in ecore_wl2_offer_mimes_set()
this seems to have been done to account for the case where no mimes were
passed, but sending null in this way is bad behavior for a client. the
spec indicates that null should be sent only when no mimes are accepted

@fix
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 2e5251b364 ecore-wl2: add events for changes in keymap, selection, and kbd repeat rate
@feature
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz d119fdded9 ecore-wl2: add 'cancelled' to Ecore_Wl2_Event_Data_Source_End
it's impossible to know the result of a drag operation without this
member
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 05fd3771e7 ecore-wl2: add display object to all events
this is required in order to determine which connection an event originated
from
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 1a7279f72e ecore-wl2: add const to internal function param 2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 4f2a8b8679 ecore-wl2: add seat id to most events
seat id is required in order to handle multiseat environments
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 31f98a6d81 elm_cnp: only attempt to manage wl selections which are created by elm_cnp
use serials of the selections and events to avoid mangling external selections
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 37ff7b43f1 ecore-wl2: emit serials in selection-related events
these allow apps to match the serial of their selection to the related
event in order to avoid mangling selections from other components
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz d51252a69e ecore-wl2: change selection setting apis to return the serial of the request
in the case where multiple places in an app may be handling selections, this
is necessary in order to manage the selections accurately

@feature
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 5869767355 ecore-wl2: remove ERR when trying to find the focused window id
this can trigger in the case where a selection transfer occurs and
no input resource has received an enter (e.g., the window is not focused)

@fix
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 00da1a771a ecore-wl2: correctly refcount display objects during events
ensure lifetime of display object is longer than events in which
the object is passed

@fix
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 8b6526eb7a ecore-wl2: add safety check in ecore_wl2_display_inputs_get()
ensure this is not called on server displays
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz ba2a76d7ab ecore-wl2: handle case where session recovery listener triggers on dead surface
@fix
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz f32cb9ea00 ecore-wl2: add function for checking if a client connection sync is done
@feature
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 7c9e3d2dbd ecore-wl2: add some accessors for useful Ecore_Wl2_Input struct members
@feature
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 44f22a250e ecore-wl2: split data offers into selection and drag
these are distinct objects and can coexist simultaneously; a drag
source should not overwrite an existing selection source

@fix
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 8afe0a7a6c ecore-wl2: store names for inputs and add api for retrieving name
@feature
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 6fc8ea3c4b ecore-wl2: add checks for a valid display object in ecore_wl2_input fns
no display = invalid object, so this needs checking
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 0d9a7a6d98 ecore-evas: account for framespace when processing mouse movement
in some cases (e.g., the mouse-out emission from the ee wl engine),
this was calculating wrong coordinates, which would lead to a broken
chain of events like:
  object mouse out -> object mouse in -> object mouse out
which would severely break some apps

@fix
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 2fabed3255 ecore-evas: add function for unsetting a specific seat's cursor
@feature
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 34999448c2 ecore: allow creation of fd handlers with no flags
it's possible to set flags to 0 with another function, so allowing
creation with 0 makes the api more consistent without breaking the
documented behavior
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 0eaa1a3fc2 elm_entry: request both text and markup when pasting
setting this to only markup means that it's impossible to paste into
an elm_entry from a plaintext app under wayland

@fix
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 3b51b3047f elm_cnp: don't explicitly set wl window type when starting drag
this is no longer necessary
2017-05-12 12:08:24 -04:00
Mike Blumenkrantz ef471e4eca evas: ensure even no-op renders emit RENDER_PRE
ref 67fae7aa0fdc9d778e8db88fc49bc149576994d2
2017-05-12 12:08:24 -04:00
Stefan Schmidt a3bd46d99f tests: win_dialog: remove unused variable 2017-05-12 13:21:24 +02:00
Carsten Haitzler 3a60246297 efl ui win -> add test for centering + fix center of window before show
we haven't gotten replies yet on what our position or size should be,
so we should store them so centering works before show but after
resizing is evaluated (that also fixed by forcing an eval).

@fix
2017-05-12 19:21:48 +09:00
Bryce Harrington a7c1edc44f efreet: Fix failure to save list data to output
Summary:
This fixes a typo in the fix 55676b33, which introduced an invalid early
return from the save_list function, preventing it from outputing the
list data to the file.

@fix CID1375005, CID1375004

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: stefan_schmidt, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4873
2017-05-12 11:08:30 +02:00
Jean-Philippe Andre 7e2e6e8aa4 evas gl: Fix typo and revert hack (GLES 3.1)
Omg... Thanks Daekwang Ryu for pointing me to my error. I remember
struggling a lot with this OpenGL API and libGLdispatch (glvnd) when
in fact this was all just a typo in the code.

GLES 3.1 and the upcoming 3.2 support need a proper test case...

See c68a409874

@fix
2017-05-12 16:34:38 +09:00
Shilpa Singh 442ab2bc67 elm_entry: Cursor disappears on calling select function in an empty entry.
Summary:
Issue: Selection cannot happen on an empty entry, if selection functions
are called on empty entry, cursor is hidden, even if entry is focused.
Soln: Check for whether entry is empty or not before proceeding with selection.

Test Plan:
1. Call select_all, select_region_set on a focused entry
2. You can observe cursor cannot be seen.

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4862
2017-05-12 15:10:37 +09:00
JinYong Park ef2f37cad1 popup: move "visible_set(FALSE)" before calling dismissed callback
Summary:
 After hiding animation is finished, "dismissed" callback will be called.
 It means popup's visible state is FALSE.
 But if evas_object_show(popup) is called in it's custom dimssed callback function,
 popup's visible state is TRUE, so evas_object_show is canceled.
 So visible_set(FALSE) is must done before call dimissed callback.

@fix

Reviewers: Hermet, herb, jpeg, cedric, singh.amitesh, raster

Reviewed By: jpeg

Subscribers: woohyun

Differential Revision: https://phab.enlightenment.org/D4869
2017-05-12 14:59:32 +09:00
JinYong Park 9df3685884 popup: enable to set last_button_number to 0
Summary:
If last added button is removed, any statements to set last_button_number in for loop doesn't be executed.
So last button number has previous value, not 0.
Because of that, action area is not removed, but that area has zero height, so it doesn't be shown.

@fix

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

Reviewed By: jpeg

Subscribers: woohyun

Differential Revision: https://phab.enlightenment.org/D4870
2017-05-12 14:57:01 +09:00
Bryce Harrington 226c1cff82 evas: Revise documentation for evas_async_events*()
Summary:
Straightens up grammar and simplifies phrasing to make the functions
purposes clearer.

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4874
2017-05-12 14:46:55 +09:00
Bryce Harrington 9f9d2177bf examples/evas: Fix weird use of word synchrony in comment
Summary: 'keep in sync' is more familiar programmer jargon.

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4876
2017-05-12 14:42:29 +09:00
Bryce Harrington 34d28a93ae efl_ui_focus_manager: Fix misspellings in comments
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4877
2017-05-12 14:42:04 +09:00
Bryce Harrington 6c2826db03 evas: Fix two whitespace errors
Summary:
Removes extraneous newline, and fixes the indentation of the while
statement's sub-clause (which looked like a code error at first
glance).

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

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4875
2017-05-12 14:41:49 +09:00
Youngbok Shin f97920816d evas textblock: fix dereferenced memory after free issue for ellipsis
Summary:
_layout_ellipsis_item_new() function deallocates "ellip_ti" and
allocates memory for new one. The local "ellip_ti" pointer should be
updated.
@fix

Test Plan: N/A

Reviewers: raster, cedric, herdsman, jpeg, woohyun

Differential Revision: https://phab.enlightenment.org/D4854
2017-05-12 14:34:13 +09:00
Jean-Philippe Andre c6d6e13060 evas map: Rename raw_coord to coord_absolute
This is more in line with the other "absolute" APIs.
2017-05-12 12:02:24 +09:00
Jean-Philippe Andre f1bb8c7ad9 elm_test: Add EO version of "Flip Page" test
This is a copy of the "Flip Page" map usage example that relies
on the new set of APIs for EO. This was used to test the API
and show its usage.

The calculation being done in absolute values, this does not
really exploit the new API, but instead proves that it is on
par feature-wise.

The performance is worse than with legacy, because of extra list
walkings, map calculations, small struct allocations and eo calls.
This fixes the shadow of the page which was broken with the legacy
API (as color_get did not recalc the map).

A better implementation can probably be done without having
to rely so much on absolute coordinates.
2017-05-12 11:59:16 +09:00
Jean-Philippe Andre 290f1893cd evas map: Reach feature parity with legacy API
I've done this by translating "Flip Page" to this new set of
EO APIs. In particular, absolute coordinates need to be used
in some calls, and the map needs to be calculated between
get and set operations.

This required an adjustment of the raw_coord API as the flip_page
code does some math after reading and then writing to the map.
Same for color. Those two properties now act like commands (ie.
like the other gfx map functions).

This also introduces a duplicate set of APIs to handle absolute
coordinates. Other solutions included:

 - Use an enum to specify the type of coordinates (but then the
   unit of cx,cy varies between non-unit relative position and
   pixel position. Also this adds an extra argument to all those
   function calls.

 - Pass a special value (an empty eo object) as the argument for
   pivot. Same remark about the unit as above. This way was
   deemed too confusing because of the weird object.

Those two options have been discarded after asking the opinion
of a few developers I could reach.

@feature
2017-05-11 18:02:31 +09:00
Jean-Philippe Andre 0a224da86f evas map: Introduce new API for maps (Efl.Gfx.Map)
This implements an entirely new API model for Evas Map by relying
on high-level transformations on the object rather than an external
Evas_Map structure that needs to be constantly updated manually.

The implementation relies on Evas_Map.

To rotate an object all you need to do now is
  efl_gfx_map_rotate(obj, 45.0, NULL, 0.5, 0.5);

Or with a C++ syntax:
  obj.rotate(45.0, NULL, 0.5, 0.5);

Or even simply (with default arguments):
  obj.rotate(45.0);

The map transformation functions are:
 - rotate
 - rotate_3d
 - rotate_quat
 - zoom
 - translate (new!)
 - perspective_3d
 - lightning_3d

@feature
2017-05-11 17:54:00 +09:00
Jean-Philippe Andre d111c6e1dd evas map: Replace EO APIs for populate with reset
Manual points population will eventually be useless as the
map API will become more like a transformation API, where
the current object geometry doesn't matter as much as which
transformation is applied to it.
2017-05-11 17:53:57 +09:00
Jean-Philippe Andre 81dd06a6ed evas map: Move Efl.Gfx.Map mixin to its own C file 2017-05-11 17:53:51 +09:00
Jean-Philippe Andre 5b4bb7f341 ecore_evas: Use proper enum values in axis events
Somehow the evas enum values were used instead of the ecore ones.
But I believe this is just a cosmetic change as their integral
values was the same.
2017-05-11 17:53:51 +09:00
Jean-Philippe Andre 70821182ff evas examples: Fix invalid assumption about proxy
In the map examples, the map image UV size was based on the image
source geometry, rather than the image geometry itself.

In the example, this affects how the glass is mirrored. Before this
patch, the reflection is a single line stretched. EFL 1.18 and 1.19
seem to have the same issue, while 1.17 simply fails to show any
reflection. 1.16 fails miserably and the entire window is black.

If the original code was correct, then I believe that map and/or
proxy rendering have been modified in a way that affects the meaning
of those image UV parameters. But this seems like the regression (if
it is one) is in fact quite old.

@fix
2017-05-11 17:53:51 +09:00
Jean-Philippe Andre a8ba44b708 edje: Fix shadow variable warning 2017-05-11 17:53:51 +09:00
Jean-Philippe Andre 83f243f51e mapbuf: Make point_color a property 2017-05-11 17:53:51 +09:00
Jean-Philippe Andre 6cd8811fe9 container: Remove method part_name_get
Remove this for now, as it may not apply to all contents.
Note that this was a new API in EO.
2017-05-11 17:53:50 +09:00
Stefan Schmidt 55676b335c efreet: free the allocated buffer before returning
This fixes the commit 169a08c03a (efreetd:
BSD optimizations). Coverity rightly pointed out six different leaks of
various buffers on error paths.

CID: 1374949 1374950 1374951 1374952 1374953 1374954
2017-05-11 09:34:53 +02:00
Derek Foreman 2653fd3fda gl_drm: Fix rendering problems with dmabuf
Somehow this long standing bug wasn't obvious until wayland 1.13.0 made
some additions to an opaque structure.

This changed the frequency that new buffers came to us with the exact
same pointer value of a buffer that had just been freed.

This shortcut in eng_image_native_set has always been wrong - we need to
proceed to the end to make sure we pick up new dmabuf attributes.
2017-05-10 16:24:11 -05:00
Al Poole 169a08c03a efreetd: BSD optimizations.
Summary: Related to ticket T5475.

Reviewers: raster, cedric

Subscribers: jpeg, cedric, raster

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-10 12:26:08 -07:00
Bryce Harrington c6212e6e67 examples/evas: Improve linespacing consistency
Summary:
Also fixes a handful of obvious indentation irregularities,
including some reformatting of some printf() multi-line indents that
commit a71b770b did not properly adjust.

No functional code changes.

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4864
2017-05-10 11:03:38 +02:00
Bryce Harrington 0f5ab72ed0 ecore_evas: Improve linespacing consistency
Summary:
Adds a line between each function so it's more obvious what doc goes
with what API routine.  Reorganize the doxygen elements so they're
consistently ordered and spaced.

No code or documentation changes; mostly just whitespace.

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4866
2017-05-10 10:49:17 +02:00
Cedric BAIL 4baeb17dba evas: adjust pointer mode set to work in headless scenario.
With the wayland backend, it is posible to have no seat connected
until later. This would lead to calling evas_object_pointer_mode_set
and fail without returning a boolean it was impossible to detect it
did fail. This patch correct it.
2017-05-09 15:54:45 -07:00
Cedric BAIL 688cbeae97 evas: make sure that even when nothing is rendered there is a pair of RENDER_PRE and RENDER_POST events generated. 2017-05-09 15:40:14 -07:00
Jean Guyomarc'h d340d85a1f ecore_evas: fix link issue on macOS
696ed3e2e8 introduced a build failure on
macOS. _ecore_evas_subregister is being used in a foreign code module,
but it was not exported. Enforcing EAPI gives this symbol enough
visibility to be used outside of ecore_evas.
2017-05-09 21:29:11 +02:00
Jean Guyomarc'h 9ac6ad4943 ecore_input: suppress warning (unused parameter) 2017-05-09 21:29:11 +02:00
Prasoon Singh 9c62ab525b eina: fix for escapable charachters not getting escaped if it comes after '\t' or '\n'
Summary:
Escaping is not happening whenever any escapable characters is coming after
'\t' or '\n'. It will also fix invalid read of 1 byte which happens for string where
last charachter is '\t' or '\n' like "eina\t".

Test Plan:
Take a string like "eina\t ". Observe space which is followed by tab is not getting
escaped.

Signed-off-by: Prasoon Singh <prasoon.16@samsung.com>

Reviewers: shilpasingh, rajeshps, govi, cedric

Reviewed By: shilpasingh

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-09 10:37:16 -07:00
thierry E 07024ab6c8 ecore_x: add function to show and hide X cursor.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-09 10:15:02 -07:00
thierry E 71c8f1de27 ecore_x: handle DPMS state for a more accurate idling evaluation.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-09 10:15:01 -07:00
Chris Michael f160d41539 ecore-evas-wayland: Remove unused variable
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-09 11:47:04 -04:00
Chris Michael af587c01cb ecore-drm2: Add start of refcounting for FB objects
Small patch which starts to implement refcounting on framebuffer
objects. This will be needed so that we do not free FB objects while
they are on the screen.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-09 11:47:04 -04:00
Derek Foreman 544cffaa19 ecore_drm2: Move test for atomic_req into atomic flip path
We ended up doing an occasional atomic ioctl when we shouldn't.
This should be a harmless failure, but it's also a pointless one.
2017-05-09 10:34:33 -05:00
Derek Foreman 8067b0146a ecore_drm2: Fix dmabuf fb destroy
I missed the fact that it'd run through the existing non-gbm path on
destroy, resulting in a (probably harmless) bad ioctl
2017-05-09 10:34:33 -05:00
Bryce Harrington cee4d928cf examples/evas: streamline the intro description statement for examples
Summary:
For people browing through the examples, having the opening statement be
concise and consistent will help them more quickly find what they're
looking for.

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

Test Plan:
Some of the examples had identical opening statements (e.g. the image
object examples).  I've tried to give each a unique description defining
what they are demonstrating, but you may want to doublecheck I got these
correct.  Of particular note, to me evas-images5.c looks like just a
fixup to evas-images4.c, so I'm not sure what makes these two distinct.

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-08 15:26:07 -07:00
Bryce Harrington 06425007f7 evas: fix typos in Evas Text docco
Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-08 15:23:23 -07:00
Bryce Harrington 9c04a046a6 ecore_evas: doc experimental comp_sync API
Summary: (And indicate it's likely to be made private in EFL 2)

Reviewers: stefan_schmidt

Subscribers: stefan_schmidt, cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-08 15:17:48 -07:00
Prasoon Singh 7c368923a1 elm_theme: check whether object is valid before calling edje_object_mmap_set
Summary:
In Issue scenario when _elm_theme_set was called,object was already deleted by app causing
unnecessary addition of the style in style_not_found list.
Check for object validity, if object is NULL return theme apply failed.

Test Plan: Make object pointer NULL before _elm_theme_set is called.

Reviewers: cedric, shilpasingh

Subscribers: rajeshps, govi, cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-08 15:15:19 -07:00
Bryce Harrington 77e19c7194 examples: use printf instead of fprintf(stdout, ...)
Summary:
Applies same change as e8355c93 for evas, to the remaining examples.
This uses the shell command-line:

    src/examples/evas$ grep -sr 'fprintf(stdout' . | cut -d: -f1 \
        | uniq | xargs sed -i "s/fprintf(stdout/printf(/"

Note that use of the "fprintf(stdout" construct can generate warnings
when -Wformat-security is enabled, if the fprintf statement has no
format arguments, so in addition to the stylistic simplification this
also helps quell those spurious warnings.

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-08 15:14:29 -07:00
Vincent Torri 94509a3d86 Ecore_Evas (Win32): add geometry_get() method and fix dpi_get(), using the new API in Ecore_Win32.
This fixes fullscreen feature in Elm on Windows as the geometry of the desktop
was not known.

In case of multiple displays, the desktop, where the window is displayed, is used for fullscreen.

@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-08 15:09:11 -07:00
Vincent Torri 449b2a4bf3 Ecore_Win32: add API to retrieve the geometry and dpi of plugged displays
@feature

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-08 15:09:00 -07:00
Cedric BAIL 122c34b2ce ecore_evas: refactor win32 backend to use generic render infrastructure. 2017-05-08 15:04:09 -07:00
Cedric BAIL e541c4f500 ecore_evas: refactor wayland backend to use generic render infrastructure. 2017-05-08 15:03:51 -07:00
Cedric BAIL db1e8e2d92 ecore_evas: refactor sdl backend to use generic render infrastructure. 2017-05-08 15:03:31 -07:00
Cedric BAIL 83513f0933 ecore_evas: refactor psl1ght backend to use generic render infrastructure. 2017-05-08 15:03:10 -07:00
Cedric BAIL 3a5de3c4eb ecore_evas: refactor fb backend to reuse generic render infrastructure. 2017-05-08 15:02:50 -07:00
Cedric BAIL 727b61218b ecore_evas: refactor extn backend to use generic rendering infrastructure. 2017-05-08 15:02:15 -07:00
Cedric BAIL 3fd01561ae ecore_evas: refactor drm backend to use generic render infrastructure. 2017-05-08 15:01:49 -07:00
Cedric BAIL c24d077b6a cocoa: refactor cocoa backend to use generic render infrastructure. 2017-05-08 15:01:30 -07:00
Cedric BAIL 69d4555116 ecore_evas: refactor ews backend to use generic infrastructure for rendering. 2017-05-08 15:00:54 -07:00
Cedric BAIL 688013e669 ecore_evas: first step into refactoring ews backend. 2017-05-08 11:00:38 -07:00
Bryce Harrington 13a9a508ce elm_cnp: Fix typo
Summary:
Removes extraneous 'or' in debug message due to change from commit
27375735.

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: bu5hm4n, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4859
2017-05-08 19:04:47 +02:00
Minchul Lee 82f0be9a32 edje: null checking the return value of a function eina_mempool_malloc
Summary:
The return value of the function eina_mempool_malloc was dereferenced without checking. I added the checking code similar to the other codes.
@fix

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

Subscribers: stefan_schmidt

Differential Revision: https://phab.enlightenment.org/D4855
2017-05-08 15:39:21 +02:00
jiin.moon c89bf7b2d8 evas: Fix can't open tiff file on loader
Summary:
Evas can't open tiff file because of no implement in client read api.
I wrote codes simply for open.

Test Plan: self

Reviewers: jpeg, cedric, jypark

Subscribers: stefan_schmidt

Differential Revision: https://phab.enlightenment.org/D4857
2017-05-08 15:20:01 +02:00
Andy Williams 94afabf216 elm_code: Move the 'default' font name and size into the theme.
This can still be overridden by the standard method calls
2017-05-06 22:02:17 +01:00
Jean Guyomarc'h b67c13810b eolian: help and version shall not cause an error exit status
eolian_gen called with --help or --version is a valid action. It shall
terminates with the 0 exit status.
2017-05-06 21:15:40 +02:00
Cedric Bail 73592d4e72 ecore_evas: first step into refactoring x backend. 2017-05-05 17:55:06 -07:00
Cedric Bail 103dfc5ba4 ecore_evas: first step into refactoring wayland backend. 2017-05-05 17:55:06 -07:00
Cedric Bail 11cf280cfa ecore_evas: first step into refactoring win32 backend. 2017-05-05 17:55:06 -07:00
Cedric Bail cc139b70f8 ecore_evas: first step into refactoring sdl backend. 2017-05-05 17:55:06 -07:00
Cedric Bail 081a134449 ecore_evas: first step into refactoring psl1ght backend. 2017-05-05 17:55:06 -07:00
Cedric Bail d1dc3b0dc5 ecore_evas: first step into refactoring fb backend. 2017-05-05 17:55:06 -07:00
Cedric Bail 042fd1dda8 ecore_evas: first step into refactoring extn backend. 2017-05-05 17:55:06 -07:00
Cedric Bail 9129adc993 ecore_evas: first step into refactoring drm backend. 2017-05-05 17:55:06 -07:00
Cedric Bail fe316636fd ecore_evas: first step into refactoring cocoa backend. 2017-05-05 17:55:06 -07:00
Cedric Bail 37f3d5095c ecore_evas: use generic function for rendering ecore_evas buffer backend. 2017-05-05 17:55:06 -07:00
Cedric Bail 696ed3e2e8 ecore_evas: add infrastructure to properly track sub ecore_evas. 2017-05-05 17:55:06 -07:00
Cedric Bail 7b4b7b6696 ecore_evas: add logic to allow partial refactoring of backends. 2017-05-05 17:55:06 -07:00
Cedric Bail 385acef7f9 ecore_evas: introduce a generic rendering function. 2017-05-05 17:55:06 -07:00
Cedric Bail d7a27363bd ecore_evas: adjust buffer engine with nicer behavior from evas. 2017-05-05 17:55:06 -07:00
Cedric Bail dc841ed9b2 evas: always pair RENDER_PRE and RENDER_POST. 2017-05-05 17:55:06 -07:00
Cedric Bail 689e1c8ded evas: don't double check if the canvas has changed. 2017-05-05 17:55:06 -07:00
Marcel Hollerbach 2737573501 elm_cnp: fixup behaviour
On touch devices there is the normal gesture to touch on the screen and
hold until the drag operation started.

For users of a mouse there is the gesture of just click and drag the
mouse away.

This commit changes the behaviour of the start based on the device that
sent the event
2017-05-05 20:53:06 +02:00
Derek Foreman 18af247ab2 ecore_drm2: Add checks for using a plane after death
We keep planes on the plane list to ensure a released plane is removed
from display - however this means that if a caller starts messing with
a plane after release, that it could potentially reposition a plane it
doesn't own anymore.

Use EINA_SAFETY macros to prevent this.
2017-05-05 12:53:25 -05:00
Derek Foreman c722466a60 ecore_drm2: Replace plane state release flag with plane dead flag
The release flag is actually less useful than the existing in_use flag
for determining if a plane is unused.  If a new plane is assigned before
the next flip cleans up released planes, then it can point to a released
plane state, and both it and the previous user will be freed on the next
commit, leaking a plane.

Putting the flag in the plane structure fixes this while still allowing us
to keep released planes around to ensure a recently released plane is
cleared from atomic state.
2017-05-05 12:53:25 -05:00
Derek Foreman 1071c9f3a8 ecore_drm2: Call flip test in plane release
If we don't do a flip test, the atomic state isn't updated.  This fixes
a potential problem where the last operation in state preparation is
a release - the following commit wouldn't include state from the release.
2017-05-05 12:53:25 -05:00
Derek Foreman 7628977fbf ecore_drm2: Fix flip test error handling
We need to free the atomic req if commit fails, so let's merge these
failure paths and simplify code a bit.
2017-05-05 12:53:25 -05:00
Derek Foreman 699ed066ea ecore_drm2: Require x and y value in plane assign
Saves us a flip test, and gaurantees that we're always testing with a
reasonable x, y and not something leftover from a previous assignment.
2017-05-05 12:53:25 -05:00
Chris Michael 1d3ad70888 ecore-drm2: Release any marked planes during atomic commit
This patch fixes plane_state values during atomic flip test for any
planes marked for release. When the fb_flip actually completes, we
will remove the marked plane(s) from the output.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:24 -05:00
Chris Michael 0c0f525d9a ecore-drm2: Add 'release' flag for planes
As we cannot immediately remove a plane from an output, due to needing
an atomic commit to actually remove the plane from screen, we can use
a 'release' flag to indicate that a given plane needs removal from the
screen during our next atomic commit.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:24 -05:00
Chris Michael bd4ccfa0f5 ecore-drm2: Don't remove plane from output list on release
As we need to be able to commit a new plane state for any released
planes, we should not be removing them from the output list just yet.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:24 -05:00
Chris Michael 7a50010536 ecore-drm2: Fix formatting
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:24 -05:00
Chris Michael 373e4b0684 ecore-drm2: Don't assign plane to output list if test fails
There is little point in assigning a plane to the output list if the
atomic flip test fails.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:24 -05:00
Derek Foreman 0aac2db93a ecore_drm2: Use stricter cursor plane size check
Unfortunately the plane sized returned from the cursor plane query isn't
a limit, it's an exact size.  Sometimes you can use a different size,
but that's completely hardware dependent - so stick to the advertised
size.
2017-05-05 12:53:24 -05:00
Derek Foreman 769271a66a drm-ee: Use a plane for the evas
Assign a plane at startup and update it in flip.
2017-05-05 12:53:24 -05:00
Derek Foreman 27fc7d5f83 gl_drm: Support atomic updates
Grab a plane and lock it down for displaying the canvas, update it on
page flip.
2017-05-05 12:53:24 -05:00
Derek Foreman ab8ec5ed5f ecore_drm2: Add API to update the fb for a plane 2017-05-05 12:53:23 -05:00
Derek Foreman c98a9b06c6 ecore_drm2: Rebuild atomic state from plane_destination_set
Call a test commit to rebuild the atomic_req
2017-05-05 12:53:23 -05:00
Derek Foreman 6b9a6a8bed ecore_drm2: Fix atomic flip with no new buffer
We don't have an atomic state, so we need to create one before the flip
2017-05-05 12:53:23 -05:00
Derek Foreman 9223b0d535 ecore_drm2: Pass user data to atomic flip
We need the user_data to come back to us in the flip handler like it does
in the non atomic flip.
2017-05-05 12:53:23 -05:00
Derek Foreman b6f67124e4 ecore_drm2: Add some atomic state tracking
I think we're now at the point where the two paths are merged.

Still no atomic functionality because nothing assigned the primary plane,
so we have no atomic state to commit.  The machinery should be in place
though.
2017-05-05 12:53:23 -05:00
Derek Foreman ba4d41ff63 ecore_drm2: Handle atomic state in _release_buffer
Further merging of atomic and non-atomic paths
2017-05-05 12:53:23 -05:00
Derek Foreman b902ef7c69 ecore_drm2: Make _release_buffer take a state struct instead of fb
Lets us push the NULL set into _release_buffer for some clean up
2017-05-05 12:53:23 -05:00
Derek Foreman 89630ddeb1 ecore_drm2: Refactor common code from non-atomic path
We'll need to perform all this for atomic operations as well.
2017-05-05 12:53:23 -05:00
Derek Foreman 8d72a2cf46 ecore_drm2: Fix typo in comment 2017-05-05 12:53:23 -05:00
Derek Foreman e7a494ba87 ecore_drm2: treat atomic flip without a req as an error
We should use the safety macro here instead of silently continuing so we
can get something in the log if this happens.
2017-05-05 12:53:22 -05:00
Derek Foreman 9da0f52642 ecore_drm2: remove fb parameter from _fb_flip()
Time to start smashing the atomic and non-atomic paths together.
2017-05-05 12:53:22 -05:00
Derek Foreman 8143abff2c ecore_drm2: Replace output fbs with state structs
next, pending, and current are going to have to deal with atomic state
instead of just fbs soon
2017-05-05 12:53:22 -05:00
Derek Foreman 63dbf061a9 ecore_drm2: Move atomic state into an output state struct
This should make it easier to share code paths between atomic and non
atomic operations.
2017-05-05 12:53:22 -05:00
Derek Foreman 6482367aa2 ecore_drm2: Perform test flip during plane assignment
Make sure we can commit that plane at assign time so when we hook up to
the scene graph it knows when it can safely use a plane.
2017-05-05 12:53:22 -05:00
Derek Foreman 8d42d7d50a ecore_drm2: Drop static from _fb_atomic_flip_test()
We're going to need this one in plane assign to test commits
2017-05-05 12:53:22 -05:00
Derek Foreman f1d779da06 ecore_drm2: remove flip test from commit path
We'll be doing tests as we build up plane state assignment.  it's too late
to do anything about it if we fail here - failed tests will block plane
assignment in the first place so the scene graph knows it still has to
render those visual elements.
2017-05-05 12:53:22 -05:00
Derek Foreman ba2275b7ec ecore_drm2: Add ecore_drm2_plane_release to release planes
Opposite of plane assign.
2017-05-05 12:53:22 -05:00
Derek Foreman 014e84d8fa ecore_drm2: Store output in plane structure
This will simplify a bunch of API that would otherwise have to pass in
both output and plane - and in some cases we might not have the output
handy anyway.
2017-05-05 12:53:21 -05:00
Derek Foreman aae1c50dd3 ecore_drm2: Remove next, current, pending from plane state
These will be output state eventually
2017-05-05 12:53:21 -05:00
Derek Foreman 308a11cfd6 ecore_drm2: Assign planes in ecore_drm2_plane_assign
Don't just test, allocate the resource, and then prevent further
assignments from trying to use it as well.
2017-05-05 12:53:21 -05:00
Derek Foreman 7dd8d6d163 ecore_drm2: Don't use drmModeAtomicMerge
We're creating the entire state from scratch already - trying to merge
with the old state will likely bring in state we just tried to replace.
2017-05-05 12:53:21 -05:00
Derek Foreman eb305727d0 ecore_drm2: Remove extra #ifdef
It's the same as the previous one, so combine them.
2017-05-05 12:53:21 -05:00
Derek Foreman 63bc30dd5b ecore_drm2: Fix typo in error message
Stop printing "commit test failed" from non-test commits.
2017-05-05 12:53:21 -05:00
Derek Foreman 950df19c67 ecore_drm2: Add an env var to disable atomic pageflips
Allows testing non-atomic paths without a reboot or a rebuild.
2017-05-05 12:53:21 -05:00
Chris Michael 0595e70b22 ecore-drm2: Do atomic commits per-output
In cases where output monitors have different frequencies, we need to
be doing atomic commits on a per-output basis. This patch modifies the
ecore_drm2_fb_flip function to support doing atomic commits per output.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:21 -05:00
Chris Michael 2ba64a4c0a ecore-drm2: Free output atomic request on destruction
When we free an output, make sure we cleanup any existing atomic
commit requests

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:20 -05:00
Chris Michael 03cb02fa74 ecore-drm2: Remove newly added atomic API functions
As we need to do atomic commits on a per-output basis, these 2 newly
added API functions can go because these functions did one atomic
commit for all outputs

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:20 -05:00
Chris Michael e5de325e90 ecore-drm2: Remove #ifdef for HAVE_ATOMIC in plane_assign function
As there is nothing inside this function which requires any Atomic API
calls, this #ifdef can be removed and the function can then still be
used to assign Primary planes for non-atomic use cases.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:20 -05:00
Chris Michael b9f4641762 ecore-drm2: Minor formatting fix
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:20 -05:00
Chris Michael 86bd42884a ecore-drm2: Fill output states regardless if atomic
This commit fills in various output 'state' structures during creation
so that those state structures can be reused for pageflip handling
even if Atomic support is not enabled.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:20 -05:00
Chris Michael f07f2e6e4e ecore-drm2: Enable filling state structures without atomic support
This commit enables the ability to fill our state structures even if
atomic support is not enabled. This will allow us to reuse those state
structures for dealing with pageflip in both the atomic & non-atomic
use cases.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:20 -05:00
Chris Michael e1b26f6320 ecore-drm2: Enable reuse of existing state structures for non-atomic
As there is nothing 'atomic' specific in these structures, we can move
them outside the atomic ifdef and make use of them for handling
pageflip for both atomic and non-atomic use cases.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:20 -05:00
Chris Michael eb1ed0fc0a ecore-drm2: Minor formatting fix
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-05 12:53:20 -05:00
Marcel Hollerbach 5b8421c550 eo: fix missing event emission
There have been cases where the logic of _event_callback_call break'ed
too early in the event submission.
Reason for that was the line ((const unsigned char *) desc -
(const unsigned char *) it->desc) producing a overflow.

This means the if statement

if (!legacy_compare &&
   ((const unsigned char *) desc - (const unsigned char *) it->desc) < 0)

was true while the pointer desc was smaller than it->desc, which means
the event subscription got aborted, even if it should not.

This turned out on two 32 bit maschines. And led to not rendering apps
anymore.

It was introduced by commit in 605fec91ee.

@fix
2017-05-04 20:44:42 +02:00
Marcel Hollerbach 3633bb4f5e efl_ui_focus_object: that definition is not needed. 2017-05-04 20:44:42 +02:00
Marcel Hollerbach a02b519bf4 efl_ui_focus_manager_sub: replace a wrong comment 2017-05-04 20:44:42 +02:00
Marcel Hollerbach 178b363bac efl_ui_focus_manager: specify the event in the same way evas does 2017-05-04 20:44:42 +02:00
Marcel Hollerbach c9aeeef9a5 efl_ui_focus_manager: the caller gives away the ownership of this list 2017-05-04 20:44:41 +02:00
Marcel Hollerbach 00660723c8 efl_ui_focus_manager: elaborate on what the last object is 2017-05-04 20:44:41 +02:00
Marcel Hollerbach e7281ff67e efl_ui_focus_manager: make documentation clear
jpeg pointed out that the documentation here is missleading and unclear.
2017-05-04 20:44:41 +02:00
Marcel Hollerbach 059239a997 efl_ui_focus_manager: give feedback if setting root worked or not
so a potential caller can make sure if the set of root worked or not
2017-05-04 20:44:41 +02:00
Marcel Hollerbach 0ebe80fa0b efl_ui_focus_manager: rename api from geometry to focus_geometry
otherwise we would clash with efl.gfx.
2017-05-04 20:44:41 +02:00
Daniel Kolesa 802d544265 eolian: allow future<void> for value-less futures 2017-05-04 15:27:17 +02:00
Andy Williams cae34033ef elm_code: fix make check, sorry 2017-05-03 20:51:53 +01:00
Bryce Harrington 29b512b90e Evas_Common: Fix punctuation errors and typos
Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: devilhorns, stefan_schmidt, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4842
2017-05-03 15:07:44 -04:00
Bryce Harrington 910c316c17 evas: Rewrite Evas Eo documentation
Summary:
Cleans up grammar, simplifies wording, and elaborates on some details
for better clarity.  Assume the reader will already have a basic
understanding of reference counting and 3D graphics in order to avoid
overexplaining these concepts.

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4837
2017-05-03 12:38:41 +02:00
Bryce Harrington ccd78c7708 examples/evas: Fix missing space before -lm in compilation directions
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4835
2017-05-03 12:03:40 +02:00
Bryce Harrington 1e1a9df53d evas_canvas3d_mesh: Fix typo
Summary:  Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4838
2017-05-03 11:55:21 +02:00
Andy Williams 3b9e69e888 elm_code: Expose API for inserting text at cursor
widget operations use NULL terminated strings, backend does not.
Refactor some selection code so all selection deletions trigger
undo events (except where they should not).
2017-05-03 08:17:06 +01:00
Al Poole 9b8efc4811 elm_code : LINE_APPEND Render fix
Summary: @fix

Reviewers: ajwillia.ms

Reviewed By: ajwillia.ms

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4839
2017-05-02 20:58:14 +01:00