Commit Graph

614 Commits

Author SHA1 Message Date
Chris Michael 2cae004592 ecore-evas-drm: Fix formatting
Summary: No functional changes, just formatting cleanup

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-07 09:52:34 -05:00
kabeer khan 200a9f3421 ecore_evas_drm: Added support for initial rotation in ecore_evas_drm
Summary:
Resolved FIXME added support for initial rotation in ecore_evas_drm initialisation

@fix

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1837
2015-01-07 09:51:19 -05:00
Chris Michael 5eb11e1285 ecore-evas-drm: Perform shutdown in proper order
Summary: This fixes an incorrect order with shutdown of drm library.
Sprites are created (during init) before inputs, so they should be
shutdown After inputs are.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-06 11:10:44 -05:00
Chris Michael 7f82494459 ecore-evas: Fix compiler warnings about inproper returns
Summary: This fixes missing return values in functions that return
non-void

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-05 12:14:46 -05:00
kabeer khan c1d805d2b4 ecore_evas/wayland_shm: Set alpha of ecore_evas object if parent alpha is set
Summary:
Resolved FIXME ecore_evas_wayland_shm_new_internal to set alpha if parent alpha is set

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1842
2015-01-05 09:12:30 -05:00
vivek c5f6c3941c ecore_evas_wayland: Add null check conditions in ecore evas wayland module
Summary:
Added null check conditions to check ecore_evas pointer in various places
of ecore evas wayland common module

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1812
2015-01-05 09:09:03 -05:00
Chris Michael 68ede67850 ecore-evas-drm: Fix up error handling
Summary: Due to the change of order in creating outputs & inputs, we
need an additional goto error for destroying inputs if output_create
fails

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-10 12:01:59 -05:00
Chris Michael 61d03472a4 ecore-evas-drm: Create inputs before we create outputs
Summary: Call function to create drm input devices Before we create
outputs. This is done so that when outputs Do get created, it will
update the input's known size of output for device coordinate
transformation

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-10 12:01:59 -05:00
Seunghun Lee b10ab1a86f ecore-drm: added drm launcher that is allow to determine whether to launch with logind or root privilege.
Summary:
- allow to launch drm backend without systemd-logind with root privilege.
- allow to open drm device node via logind, not directly open it, in case exist systemd-logind.
- fixes issue that couldn't switch session, because ecore-drm couldn't drop master to drm device with no permission. (allow to switch session appropriate.)

Reviewers: gwanglim, devilhorns

Subscribers: torori, cedric

Differential Revision: https://phab.enlightenment.org/D1704
2014-12-09 09:36:42 -05:00
Chris Michael 9cd2d614e9 ecore-evas-wayland: Fix issue with ELM_PROFILE=mobile and windows not
showing up correctly.

Summary: If elm config profile is set to Mobile, then the
auto_norender_withdrawn is set to 1, which was causing Elm windows to
not draw properly due to the ee->withdrawn property not being updated.
It was not getting updated due to these checks for override.

NB: Tested this with all elm profiles, tested in weston, and tested in
Enlightenment (Wayland).

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-05 12:52:22 -05:00
Mun, Gwan-gyeong d1b8d52e0e evas/gl_drm: add native surface for wayland_egl_client.
Reviewers: zmike, devilhorns, cedric, gwanglim

Reviewed By: cedric, gwanglim

Subscribers: jpeg, torori, cedric

Differential Revision: https://phab.enlightenment.org/D1507
2014-12-04 17:59:30 +09:00
Hosang Kim cc89a541de ecore_evas_x: Fixed strange condition.
Summary:
To satisfy this condition, ee->visible will be EINA_FALSE. But when iconify is requested, ee->visible is usually EINA_TRUE.

@fix

Reviewers: raster, Hermet, seoz

Reviewed By: seoz

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1710
2014-11-29 01:10:39 +09:00
Jason Gerecke 26c943bac0 Expose device (e.g. pen) axis information to applications
Summary:
This patch set adds the necessary code to expose device axis state to applications. This was primarily written with graphics tablets in mind, which -- in addition to acting like a mouse -- also provide information about pen pressure, tilt, etc. Other devices could potentially benefit from this API as well: touchscreens, joysticks, knob controllers, "spaceballs", etc.

Whenever an update to the device state is recieved, an "Axis update" event is synthesized. This event contains the updated information, typically scaled and normalized to a particular logical range (e.g. zero to one for pressure, -pi to pi radians for angles, etc.). Information about the tool which generated the event is also stored so that applications can disambiguate events from multiple devices (or in the case of multitouch screens, individual fingers).

This API is only wired up for use with X11 at the moment. Support for other backends (e.g. Wayland) should be easy to add for those familiar them.

**Note**: The following is a list of changes from the "v2" patches originally sent to the mailinglist

//Define and implement new Ecore_Event_Axis_Update events//
 * Harcode axis labels instead of including xserver-properties.h
 * Use C89-style comments
 * Use doxygen comments
 * Update comment text to note axes with unbounded/undefined ranges/units
 * Create "Ecore_Axis" and "Ecore_Axis_Label" typedefs
 * Reference typedef'd instead of raw types
 * Adjust how we count through valuators to support tilt/az
 * Add support for tilt and azimuth
 * Tweak memory management in case number of valuators differ
 * Expand TWIST axis normalization to declared range
 * Only normalize TWIST axis if resolution == 1 (wacom bug)
 * Cache label atoms on first use to minimize round-trips

//Implement EVAS_CALLBACK_AXIS_UPDATE event and friends//
 * Update to doxygen comments
 * Update comment text to note axes with unbounded/undefined ranges/units
 * Typedef 'Evas_Axis_Label', 'Evas_Axis'
 * Move typedef for 'Evas_Event_Axis_Update'
 * Reference typedef'd instead of raw types

//Wire the Ecore and Evas implementations of axis update events together//
 * Expose ecore_event_evas_axis_update in Ecore_Input_Evas.h
 * Move ecore_event_evas_axis_update to more logical position

//DEBUG: Add axis update logging to evas-multi-touch.c//
 * Removed from patch set

//Make evas-multi-touch demo use new axis functionality//
 * Have pressure adjust rectangle brightness instead of size
 * Use more available axis data when rendering rectangle (azimuth, tilt, twist)

Test Plan: The evas-multi-touch demo was updated to support axis update events. A graphics tablet was then used to verify that the pressure, azimuth, tilt, and twist data was coming through correctly.

Reviewers: cedric, raster

Subscribers: cedric

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

Conflicts:
	src/lib/ecore_input/Ecore_Input.h

Carsten Haitzler -

** fixed forward enum typedefs (make things unhappy)
** fixed conflict above
** fixed wrong param type for _evas_canvas_event_feed_axis_update()
** fixed @sinces to be 1.13
** fixed formatting/indeting
** fixed order of operation reliance in if's with ()'s to be clear
** fixed functions to be static that should have been
2014-11-25 12:43:15 +09:00
Carsten Haitzler 516691de9b ecore-evas - fix focus skip flag to be one way
this fixes focus skip being set if someone else sets skip
pager/taskbar. it's a one-way prop. if focus skip is set THEN skip
pager/taskbar is set. not the other way.
2014-11-23 22:01:34 +09:00
Chris Michael ae00e44269 ecore-evas-wayland: Fix wayland windows not showing up after 5954289c6c
Summary: Wayland windows should follow X11 windows fairly closely,
thus only set withdrawn property if they are override windows. If not,
internal dialogs do not show up in Enlightenment (wayland-only).

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-29 14:55:17 -04:00
Carsten Haitzler 5954289c6c ecore_evas - ecore_evas's should start withdrawn then normal on show
this fixes initial state of an ee where you couldn't detect when the
window had been accepted by the wm (goes to normal state from
withdrawn).

@fix
2014-10-29 19:34:33 +09:00
Carsten Haitzler 696346c467 evas gl rgba visual/rendering fix try ... again
so this is a re-try at the evas gl destination alpha fix. this is what
cedric tried, but done RIGHT. it required adding an ecore_x call to
create a window with correct visual/colormap. it requires doing
visuals totally correctly all the way from ecore_evas to the evas
gl_x11 core. nvidia drivers are very picky about visuals. i also had
to vid the egl/gles code too to do the same thing. nvidia gles/egl
drivers are also picky, mesa is not. this all requires a lot of code
changes. it's far from trivial

this isn't backported for a few reasons:

1. verify this fix doesn't break for anyone.

i tested:

nvidia glx + egl/gles
intel glx + egl/gles
radeon glx

it needs wider testing. nouveau, fglrx for starters and maybe
some other gles/egl drivers.

2. have some review time
3. time to settle before blasting to stable branches

@fix
2014-10-26 00:34:40 +09:00
Chris Michael 15c6eab519 ecore-evas-drm: Fix formatting
NB: No functional changes, just cosmetic

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-08 11:35:17 -04:00
Chris Michael b31c66ab84 ecore-evas-drm: Set the ecore_drm_device reference in the engine data
Summary: Since we have a field inside the engine info structure to
store a reference to the Ecore_Drm_Device, then let's set it.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-08 11:33:04 -04:00
Chris Michael f224fb24e2 ecore-evas-wayland: Add support for minimizing xdg_shell surfaces
xdg_shell protocol supports minimizing surfaces. When elm apps request
iconification, they will call ecore_evas_iconified_set which in turn
will make use of the newly added ecore_wl_window_iconified_set function.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-01 16:15:37 -04:00
Cedric BAIL 08521b77ec ecore_evas: let's be consistent and always report an error. 2014-09-30 18:19:15 +02:00
Chris Michael 39db828aad ecore-evas-drm: Fix calling ecore_drm_device_find twice in some cases
Summary: If no device name was passed in to ecore_drm_device_find
function, then if we fail to find the default drm device on the first
call, there is No point in calling the same function again to get the
same result.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-23 15:09:47 -04:00
Chris Michael 11237fd858 ecore-evas-drm: Implement ecore_evas_pointer_xy_get for drm engine
This implements ecore_evas_pointer_xy_get for the drm engine, However
this is simply using evas_pointer_output_xy_get for the moment because
I need to add ecore_drm functions for getting pointer position.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-15 11:44:10 -04:00
Chris Michael bbd6822c7c ecore-evas-drm: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-15 11:23:03 -04:00
Stefan Schmidt dc7910a7ef ecore_evas/drm: Clarify error message if given device is not found.
While it is bad that the given device is not found we fall back here
to the default one. Still good to mention it in the error message as
it can be confusing when we read that the device could not be found
be it still works.
2014-09-08 16:21:24 +02:00
Stefan Schmidt bff3bee8a5 evas/drm: Remove now obsolete tty and own_tty struct members
We used these when expedite was using evas directly without ecore_evas.
That changed and we can now leave tty custody to ecore_evas and ecore_drm.
2014-09-05 15:55:08 +02:00
Chris Michael c3e2750408 ecore-evas-drm: Remove extra blank space in parameter
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-04 15:49:17 -04:00
Chris Michael f2bc4ff4b8 ecore-evas-drm: Remove dead comment
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-04 11:18:23 -04:00
Chris Michael e7707a859f ecore-evas-drm: Add function to return screen geometry
This adds the ecore_evas function pointer for
ecore_evas_screen_geometry_get. This will be used from the drm
compositor to return the current screen geometry.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-04 11:18:23 -04:00
Jean Guyomarc'h c03876d611 ecore_cocoa: NSRunLoop integration
Summary: Get rid of the old NSApplicationLoad() which was aimed to be use with Carbon. Unless the NSRunLoop is strictly integrated to the ecore_main_loop() (where cocoa events would be checked when entering the ecore_main_loop) I think the poller is the only option left.

Reviewers: raster, naguirre, raoulh, stefan_schmidt, cedric

@feature

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-09-03 20:34:57 +02:00
Chris Michael 8eb9ae418b ecore-evas-drm: Fix misplaced #ifdef from gl_drm patch
This #ifdef does not belong here. The interface_new functions Is Still
Used for normal drm ecore_evas.

Bad Gwanglim, no cookie ;)

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 16:01:28 -04:00
Gwanglim Lee 00382bb6a6 gl-drm: Fix missing link to gbm for ecore_evas_drm and clean up build script
@fix

Summary:
This fixes following build script problems for ecore_evas_drm engine module.

1. Missing link to gbm for ecore_evas_drm if '--enable-gl-drm' option is given.
ecore_evas_drm engine is using gbm function if it builds with that config option.
To be more exact, ecore_evas_gl_drm_new_internal function needs gbm.
Thus we need to add gbm library linking '-lgbm' to ecore_evas_drm engine module
if '--enable-gl-drm' option is given. I've added this build script to
m4/ecore_check_module.m4 file.

2. Wrong gbm dependency check code in configure.ac
EFL_OPTIONAL_INTERNAL_DEPEND_PKG m4 macro function is designed for checking
dependency of efl internal libraries. Thus we should remove gbm pkg name when
configuring ecore_evas_drm engine module. It would be better to move dependency
check for gbm to m4/ecore_check_module.m4 file. And one more thing want_drm
value has to be changed to want_gl_drm in ECORE_EVAS_MODULE([gl-drm]...).

3. BUILD_ECORE_EVAS_OPENGL_DRM macro is always defined in configure.ac.
This kind of macro, BUILD_EFL_MODULE_NAME, has to be defined only if given module
is enabled. But this macro value was just defined with no test.
And it is even useless, we can use BUILD_ECORE_EVAS_GL_DRM macro which is defined
by ECORE_EVAS_MODULE([gl-drm], [${want_gl_drm}],...) function.
So I've removed that from configure.ac.

Test Plan:
1. Configure with --enable-gl-drm:
  $ ./autogen.sh --enable-drm --enable-gl-drm
2. Build:
  $ make && make install
3. Check module.so of ecore_evas_drm engine whether it has a library dependency with gbm:
  $ readelf -a $EFL_GIT/src/modules/ecore_evas/engines/drm/.libs/module.so | grep NEEDED

Reviewers: raster, stefan_schmidt, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1379
2014-08-28 13:37:28 -04:00
Gwanglim Lee a9a7ed6c52 ecore_evas: Ecore_Evas_X - Fix broken rendering during rotation with resize
Summary:
When ee is trying to do rotation, ee should check whether given rotation value
is portrait or not. Then it sets output size of evas canvas according to rotation value.
But, ECORE_EVAS_PORTRAIT macro used in ee x engine only checks ee's rotation value, even
if ee's rotation value is not updated yet. Thus we should change the logic to compare with
given rotation value, not ee's rotation, before setting output size of evas.

This fixes T1371 problem.
@fix

Test Plan:
1. run elementary_test -to "window states"
2. check resize
3. rotation 0 ~ 270

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

Reviewed By: Hermet

Subscribers: cedric

Maniphest Tasks: T1371

Differential Revision: https://phab.enlightenment.org/D1351
2014-08-27 19:35:27 +09:00
Carsten Haitzler 8b654961f5 ecore-evas-extn - check engine info set return and complain
fix CID 1039682
2014-08-27 14:32:03 +09:00
Chris Michael 4aeee0de4c ecore-evas-wayland: Fix ecore_evas async rendering with wayland engines
Recent expedite changes have uncovered an issue where the ecore_evas
(under wayland) was not supporting async rendering correctly. This
fixes the issue so we can run expedite with -y and get redraws again.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-22 13:32:38 -04:00
Cedric BAIL 5747c6fcea ecore_evas: Ecore_Evas_X - make sure that ecore evas post render is always called.
This fix a case where when doing asynchronous rendering and no update was done,
the post render evas event would never be triggered and so no call to ecore evas
post render callback were made. Now the async X backend follow all other backend
behavior.

@fix
2014-08-21 12:33:37 +02:00
Mun, Gwan-gyeong f5b8109397 evas: add evas gl-drm engine
Summary: This is the first step to introduce a gl-drm backend.

Test Plan: "ecore evas" create with ecore_evas_gl_drm_new(). It creates "ecore evas" with gl_drm evas backend.
@feature

Reviewers: raster, Hermet, cedric, devilhorns

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-08-21 12:04:53 +02:00
Carsten Haitzler 8ea2356bcd fix coverity leak detection in ecore_evas_x hints...
this fixes CID 1188012
2014-08-13 16:15:42 +09:00
Thiep Ha e3f68561b3 ecore_evas_extn: fix wrong plug image display after connect
Summary:
Plug image is displayed incorrect after connect to socket.

Test case: Run ecore_evas_extn_socket_example -> run ecore_evas_extn_plug_example -> click Change bg to change bg color.
Run 2nd ecore_evas_extn_plug_example. The plug area image of 2nd plug is incorrect display (different with 1st plug image).
Reason: When a plug connects to socket, socket sends incorrect buffer information.
Fix: Change buffer information.

@fix

Reviewers: Hermet, huchi

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1232
2014-07-31 05:28:42 +02:00
Cedric BAIL ca2e2af522 ecore_evas_extn: do not double close fd in case of memory starvation.
In case eina_stringshare_add was failing it could lead to a double close
on lockfd. This was reported by coverity: CID1039885

@fix
2014-07-30 03:47:31 +02:00
Cedric BAIL 3c179cdb87 evas: move to SDL2 and use GL_Generic infrastructure. 2014-07-25 20:24:29 +02:00
Carsten Haitzler 2da95771d4 ecore-evas - enable attempting to turn on dri2 vsync
this enables the x11 dri2 vsync enabling code for x11 ecore-evas
2014-07-25 14:45:50 +09:00
Jean Guyomarc'h be077f079d ecore_cocoa: Introduce canvas resizing + warning fixes
Summary: Add support for canvas resizing: the window was resizable but its content was not resized.

Reviewers: raster, raoulh, naguirre, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1163
2014-07-10 20:04:24 +02:00
Thiep Ha d732e52f32 ecore_evas_extn: remove redundant message sending
Summary:
When a client is added to socket server, socket server sends NBUF (2) times of OP_RESIZE, OP_UPDATE, OP_UPDATE_DONE messages to client. However, only one message of OP_RESIZE, OP_UPDATE, OP_UPDATE_DONE is enough.

This patch removes redundant OP_RESIZE, OP_UPDATE, OP_UPDATE_DONE sending.

Reviewers: raster, Hermet

Reviewed By: Hermet

CC: woohyun, huchi

Differential Revision: https://phab.enlightenment.org/D1141
2014-07-09 11:42:18 +09:00
Cedric BAIL 201d9b567d windows: make those warning explicit about what they imply. 2014-06-27 17:00:23 +02:00
Cedric BAIL 2d1431b8f9 ecore_evas: remove warning from Windows backend. 2014-06-27 13:24:12 +02:00
Chris Michael edb1202a84 ecore-evas: Fix formatting and remove whitespace
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-06-25 13:20:49 -04:00
Chris Michael 87af84c3e3 ecore-evas: Fix cursor position getting reset to 0,0 when using
ecore_evas_cursor_object_set

NB: Previously, if we mad calls to ecore_evas_cursor_object_set to update the
mouse cursor hotspot, the mouse cursor would be repositioned at 0,0 on
the canvas due to x & y being set to 0,0. We fix that here by fetching
the current mouse position Regardless if we are changing the object or
not (ie: perhaps we are just updating the hotspot and not the object)

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-06-25 13:20:49 -04:00
Chris Michael e4fd7c5924 ecore-evas-wayland: Remove useless variable.
NB: Don't recall what the initial point was here, but I don't see one
now lol. No real usage for checking the ecore_wl_init count anymore so
remove the variable as we don't need to do that.

@fix

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2014-06-18 21:08:48 -04:00
Raoul Hecky 0df6a85056 ecore_cocoa: make engine works again 2014-06-18 11:34:07 +02:00
Nicolas Aguirre 795f97e22a ecore_evas: fix warnings in Ecore_Evas Cocoa. 2014-06-18 11:34:06 +02:00
Nicolas Aguirre 5885bfcb2e ecore_evas: use Eina_List to store Ecore_Evases and return the first one when asked for a match. 2014-06-18 11:34:06 +02:00
Guillaume Friloux 5d053c7549 Fix unused var warning. 2014-05-30 14:34:13 +02:00
Guillaume Friloux 68e55258d1 Fix unused var warning 2014-05-30 14:26:55 +02:00
Guillaume Friloux e1c6438007 Fix unused var warning. 2014-05-30 14:24:42 +02:00
Jean-Philippe Andre c2f4e38cf1 Ecore evas: Fix crash after image_data_set
In some cases, the image has a format different from RGBA,
so image_data_set will be invalid as the new data is expected to
be RGBA. This happened with ETC2 images.
2014-05-12 14:44:54 +09:00
Jérémy Zurcher f8c2c57406 do not use EINA_FALSE instead of NULL 2014-05-07 17:45:11 +02:00
Cedric Bail 2401bb047d ecore_evas: avoid using non initialized value for cursor position in X backend.
CID 1195445.
2014-04-17 21:16:12 +02:00
Chris Michael c53053f2aa ecore-evas-wl: Ooops, Fix opaque & input regions being set to incorrect values
@fix: As it turns out, we cannot just blindly set the regions here
during resize. Elementary apps will set the opaque region to account
for any edj frames, and having the region_set calls Here was
causing issues....

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-04-15 10:41:54 +01:00
Wonguk Jeong 28fd36255b ecore_evas_extn: update plug image object after disconnection
Summary:
plug image object was not cleaned after server disconnection.
specifically, image data was cleaned (NULL), but it was not updated for real on screen

--> set dirty of plug image object

@fix

Test Plan: elementary_test -> open window socket -> open window plug -> close window socket -> plug should be cleaned up

Reviewers: raster, cedric

Reviewed By: raster

CC: seoz, cedric

Differential Revision: https://phab.enlightenment.org/D703
2014-04-09 19:45:30 +09:00
wonguk.jeong 6994f32351 ecore_evas_extn: initialize server handle on server deletion
Summary:
Since plug sends message by using deleted server handle (dangling pointer),
I could see glorious error message as below:

	*** ECORE ERROR: Ecore Magic Check Failed!!!
	*** IN FUNCTION: ecore_con_server_send()
	ERR<842>:ecore lib/ecore/ecore.c:729 _ecore_magic_fail()   Input handle pointer is NULL!
	ERR<842>:ecore lib/ecore/ecore.c:740 _ecore_magic_fail() *** NAUGHTY PROGRAMMER!!!
	*** SPANK SPANK SPANK!!!
	*** Now go fix your code. Tut tut tut!

Therefore, I initialized server handle on server deletion

@fix

Test Plan: create socket -> create plug -> destroy socket -> mouse move on plug area

Reviewers: raster, cedric

Reviewed By: raster

CC: seoz, cedric

Differential Revision: https://phab.enlightenment.org/D701
2014-04-09 19:21:30 +09:00
Chris Michael 99962a5893 ecore-evas-wl: Reduce useless compositor redraws during render update
and update input & opaque regions after resizing.

@bugfix: We do not need to call ecore_wl_window_damage & commit here.
The damages are already handled in the evas engine for both shm & egl.
Those damages are sent to the compositor Already from the evas engine,
so we don't need to send the same damages twice. This reduces more
useless compositor redraws as we are not constantly sending damages &
calling commit twice for every frame.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-04-09 09:56:41 +01:00
Carsten Haitzler 11937a3841 since event is for server, bdata->image is null anyway 2014-04-03 20:57:04 +09:00
wonguk.jeong 8208454781 ecore_evas_extn: give proper event data to callbacks
Summary:
extn send ecore event when plug is connected/disconnect
(ECORE_EVAS_EXTN_CLIENT_ADD/ECORE_EVAS_EXTN_CLIENT_ADD)
By the way, the event data is currently "Ecore_Evas_Engine_Buffer_Data" which should be hidden

Moreover, when I make multiple sockets,
I need a event data to distinguish which socket is connected by client.
Therefore, I recommend to use Ecore_Evas as event data.

@fix

Reviewers: raster, Hermet, woohyun, cedric, seoz

Reviewed By: raster

CC: seoz, cedric

Differential Revision: https://phab.enlightenment.org/D690
2014-04-03 20:55:38 +09:00
Carsten Haitzler 662fbe5ede it seems the if 0'd code was wrong and ecore win32 doesnt support nocursor 2014-04-03 19:57:07 +09:00
Carsten Haitzler 165efe2254 ecore-evas - fix object cursor to not delete the same cursor when set
this fixes a misbehavior with ecore evas object cursors when you set
one, the old one is deleted, but if the old is the same, the new one
you set gets deleted, rather than just updated.

@fix
2014-04-02 20:47:28 +09:00
Chris Michael 8db2db06cb ecore-evas-drm: Enable vsync by default for ecore_evas drm engine
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-04-01 07:09:49 +01:00
Chris Michael 86258cd165 ecore-evas-drm: Add better support for ecore_evas_fullscreen_set
@bugfix: This fixes ecore_evas_drm to function properly when
ecore_evas_fullsreen_set is called. This is needed for running
Elementary apps 'standalone' in drm.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-04-01 07:09:49 +01:00
Carsten Haitzler 4da1081c4d drm - shut up warnings (not actual bugs) 2014-03-22 19:12:07 +09:00
Chris Michael 6f66369710 ecore-evas-drm: Add support for setting aspect of ecore_evas
@feature: This adds support for ecore_evas_aspect_set to the drm engine

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 11:23:49 +00:00
Chris Michael bd13b46e25 ecore-evas-drm: Add support for alpha & transparent setting
@feature: This adds (preliminary) support for ecore_evas_alpha_set and
ecore_evas_transparent_set

NB: This is just the function placeholders and does not actually
implement transparency yet

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 11:21:02 +00:00
Chris Michael c0e3f73391 ecore-evas-drm: Add support for maximized, fullscreen, withdrawn, and
ignore_events settings

@feature: This adds support for: ecore_evas_maximized_set,
ecore_evas_fullscreen_set, ecore_evas_withdrawn_set, and
ecore_evas_ignore_events_set functions to the drm engine

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 11:11:23 +00:00
Chris Michael b95174b21d ecore-evas-drm: Add support for ecore_evas_borderless_set
@feature: This adds support for setting the ecore_evas to borderless

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 11:00:32 +00:00
Chris Michael a6bf2e3535 ecore-evas-drm: Add support for ecore_evas_iconified_set
@feature: This adds support for ecore_evas_iconified_set in ecore_evas
drm engine.

NB: This does not actually iconify the ecore_evas yet tho

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:52:10 +00:00
Chris Michael 11de8bfae1 ecore-evas-drm: Add support for ecore_evas_layer_set
@feature: This adds support for ecore_evas_layer_set function used to
set the layer of the ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:50:26 +00:00
Chris Michael 2ed6452286 ecore-evas-drm: Add support for ecore_evas_object_cursor_set
@feature: This adds support for setting an Evas_Object as the cursor
to use on the ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:48:16 +00:00
Chris Michael 467ad3119e ecore-evas-drm: Add support for setting size hints
@feature: This adds support for ecore_evas_size_min_set (and other
size hint functions).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:42:19 +00:00
Chris Michael de8b2e735a ecore-evas-drm: Add support for ecore_evas_name_class_set
@feature: This adds support for setting the name & class of the
ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:38:36 +00:00
Chris Michael 69adb7a44e ecore-evas-drm: Add support for setting the title of the ecore_evas
@feature: This adds support for setting the title of the ecore_evas
with ecore_evas_title_set

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:33:38 +00:00
Chris Michael d42f16a603 ecore-evas-drm: Add support for rotation set
@feature: This adds support for ecore_evas_rotation_set function and
updates the Evas rotation accordingly

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:30:44 +00:00
Chris Michael 5e8b33c1f3 ecore-evas-drm: Add support for ecore_evas_move_resize
@feature: This adds support for the ecore_evas_move_resize function
and calls the appropriate internal functions for this ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:27:02 +00:00
Chris Michael 34b6657b0e ecore-evas-drm: Add support for ecore_evas_move function
@feature: This adds support for updating the ecore_evas location when
ecore_evas_move is called, and also calling any "move" function of the
ecore_evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:23:55 +00:00
Chris Michael 2baf8c4d76 ecore-evas-drm: Add support for setting the mouse in & mouse out
callbacks of the ecore_evas

@feature: Add support for setting the callback functions to call when
the ecore_evas gets mouse in or mouse out events

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:20:43 +00:00
Chris Michael 2a5d168323 ecore-evas-drm: Add support for setting focus_in & focus_out callbacks
@feature: Add support for setting the focus in & focus out callbacks
of the ecore_evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:18:58 +00:00
Chris Michael d33d4c86a0 ecore-evas-drm: Add support for resize and move callbacks
@feature: Add support for setting the resize and move callbacks of the
ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 10:16:55 +00:00
Chris Michael 18c40befc0 ecore-evas-drm: Fix setting of the ecore_evas property window and
register the prop.window for events.

@fix: ecore_evas_window_get expects an Ecore_Window to be returned so
we cannot use a void pointer in ecore_drm_device_window_get.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 09:12:57 +00:00
Chris Michael 7d5600ffb4 ecore-evas-drm: Fix printing of device name error message
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:43:44 +00:00
Chris Michael 33b475c74c ecore-evas-drm: Remove FIXME comment
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:29:34 +00:00
Chris Michael ca701a5ff2 ecore-evas-drm: Try to find a drm device with the given name
If we are given a drm device name, tell ecore_drm to try and find That
device. If it is not found, we fallback to the default drm device.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:25:36 +00:00
Chris Michael baedf0223a ecore-evas-drm: If not device name is passed in, use the device name
from drm.

This assigns a name to the ecore_evas. If no device name was passed
in, we will get the device name from the drm card.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:17:00 +00:00
Chris Michael 7fe34af84b ecore-evas-wayland: Remove unused function & declaration
Remove unused function and it's declaration. This function is not
being called from anywhere anymore, so it's no longer needed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 13:58:20 +00:00
Chris Michael 456e6f20e0 ecore-evas-drm: Set window to receive input events
After we have setup ecore-drm, we need to tell it where to send any
input events, so call the ecore-drm API function to set the window.
Also feed mouse_in to the canvas after creation, so that it gets focus.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael c403035e1d ecore-evas-drm: Add initial code to make ecore_evas render using drm
NB: This is still a work-in-progress and not complete yet

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 46f6ef0ccc ecore-evas: Include Ecore_Drm header
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-06 12:38:06 +00:00
Chris Michael 58c5edd9af ecore-evas-x: Fix resource leak from eina_str_split_full usage
@bugfix: This fixes Coverity CID 1188012

Coverity reported resource leak from eina_str_split_full return which
was only being freed if the number was > 0. This is incorrect as
eina_str_split_full will still allocate the array and thus it should
be freed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-05 14:36:39 +00:00
Chris Michael 8e48e864ae ecore-evas-x: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-05 14:32:15 +00:00
Gustavo Sverzut Barbieri ecc5fa3379 ecore_evas/fb: implement screen_geometry_get()
Sometimes it is useful to query screen geometry (more often size) to
do some metrics as finding the proper theme in my case. As this call
works for X11 and others, let's make it work for framebuffer as well.
2014-03-05 10:20:27 -03:00
Chris Michael b184d140a2 evas-drm: Set Magic on the Ecore_Evas
@bugfix: Set magic on the ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-02-28 13:08:44 +00:00
Gwanglim Lee cbf6f94c80 ecore_evas: Added support for window auxiliary hint
Summary:
The window auxiliary hint is the value which is used to decide
which actions should be made available to the user by the WM. If you
want to set specific hint to your window, then you should check whether
it exists in the supported auxiliary hints that are registered in the
root window by the window manager.

Once you've added an auxiliary hint, you can get a new ID which is used
to change value and delete hint. The window manager sends the response
message to the application on receiving auxiliary hint change event.

A list of auxiliary hint within the Ecore_Evas has this format:

  ID:HINT:VALUE,ID:HINT:VALUE,...

Reviewers: raster, cedric, seoz, Hermet

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D543
2014-02-28 07:20:01 +09:00
Gustavo Sverzut Barbieri 9804bba503 ecore_evas_fb: allow to force tslib even if mouse was handled.
sometimes a device may have a mouse connected but the primary use is
via touchscreen, then we force ecore_fb_ts_init() with
ECORE_EVAS_FB_TS_ALWAYS=1
2014-02-20 20:12:22 -03:00
Carsten Haitzler 199fb20fe4 ecore-evas - sdl module - limit to 1 window at a time
this should fix T693 and only allow 1 sdl window at any one time iwht
the sdl ecore-evas engine/module. it's simply invalid to use more than
one window with it.
2014-02-18 17:52:16 +09:00
Gwanglim Lee 77092d94d4 ecore_evas: added window manager rotation to manage the rotation of windows by the WM.
Summary: The window manager rotation allows the WM to controls the rotation of application windows. It is designed to support synchronized rotation for the multiple application windows at same time.

Reviewers: raster, seoz, cedric, Hermet

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D529
2014-02-09 09:46:51 +09:00
Jérémy Zurcher 45340521f9 ecore_evas_wayland_common: fix compilation, missing bits of 892b1c5 2014-01-19 19:41:27 +01:00
ChunEon Park 892b1c5be3 ecore_evas - applied macro to check rotation state.
also, let the potrait compare on the higher priority.

if you can suggest better macro name, then please modify it.
2014-01-18 22:26:10 +09:00
ChunEon Park 8cd92c17e0 Revert "ecore_evas - use the macro orthogonal check."
This reverts commit 43acf1e82f.

some partial changes are incorrectly applied.
2014-01-18 22:04:25 +09:00
ChunEon Park 43acf1e82f ecore_evas - use the macro orthogonal check. 2014-01-18 21:53:56 +09:00
Stefan Schmidt 384783a896 ecore_evas_win32: Fix build regression in ecore evas win32 engine
Regression introduced with fb59ac34a1
Simple typo during Eina_Bool convertion.
2014-01-13 13:36:28 +01:00
Chris Michael 7b83985d7e Unbreak ecore_evas wayland engines:
Val variable is not declared here. Use the variable 'on' which was
passed in to this function.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2014-01-13 07:52:24 +00:00
ChunEon Park fb59ac34a1 ecore_evas - use eina_bool instead of the char for interal data. 2014-01-13 14:26:36 +09:00
Daniel Juyung Seo d4a3b9a233 ecore_evas_x: Call _ecore_evas_x_sync_clear() after
_ecore_evas_x_gl_window_new() to ensure eglDestroySurface is called
before XDestroyWindow call.

In case of gl engine, eglDestroySurface should be called before
XDestroyWindow.
Special thanks to Changwoo Kim <ce2010.kim@samsung.com> for the idea.
2014-01-12 17:22:40 +09:00
Daniel Juyung Seo 15b6bd99ef ecore_evas_x: Fix gl_sync_draw_done initialize routine to handle
exceptional case.

As ECORE_EVAS_GL_SYNC_DRAW_DONE is an environment variable, that could
have unexpected value like 2 or 3. So set gl_sync_draw_done to 1 only
when the env variable is 1.
2014-01-12 17:01:02 +09:00
Daniel Juyung Seo 881f4e9c75 ecore_evas_x: Refactor/flourish gl_dync_draw_done member from Ecore_Evas
structure.

- moved gl_sync_draw_done for a better structure packing.
- changed gl_sync_draw_done type from int to char which is enough.
- added more description to gl_sync_draw_done
2014-01-12 16:37:30 +09:00
ChunEon Park f111c8da6d ecore - clean up code.
fix indentation and use Eina_Bool instead of char.
2014-01-11 18:19:43 +09:00
Daniel Juyung Seo 7566c5bbb7 ecore_evas_x: Refactored by reducing cascaded if statements.
Just return the function. Do not create unnecessary cascaded if
statements it makes indentation depth deeper.
2014-01-08 23:32:43 +09:00
Daniel Juyung Seo 96fe10ba68 ecore_evas_x: Check 1 for gl_sync_draw_done instead of 0 before sending comp_sync_draw_size_done.
There was a corner case which gl_sync_draw_done is set to -1. So send
comp_sync_draw_size_done when the gl_sync_draw_done is not 1. It can be -1 or 0.

This is a manual cherry-pick from tizen.org.
Thanks to original author Jiyoun Park.

commit 4be6c821df4ccd418dbe44f7e6fecbcd7dd66d74
Author: Jiyoun Park <jy0703.park@samsung.com>
Date:   Thu Jul 4 18:04:11 2013 +0900

    fix lockup issue (N_SE-44214)
    because this sync draw done cannot be send

    Change-Id: Id05978e925d5b44d6ca9af0a1684bbb255b9ec5b
2014-01-08 23:32:43 +09:00
Daniel Juyung Seo e5bfbedfa2 ecore_evas_x: Fixed formatting and added an empty line for a better readability. 2014-01-08 23:32:43 +09:00
Carsten Haitzler e8c13118eb fix mingw build for setuid fix/checks 2014-01-08 22:06:41 +09:00
Carsten Haitzler b95ef3801f setuid safeness - ensure if an app that is setuid doesn't do bad things
this makes efl ignore certain env vars for thnigs and entirely removes
user modules (that no one ever used) etc. etc. to ensure that *IF* an
app is setuid, there isn't a priv escalation path that is easy.
2014-01-08 19:46:23 +09:00
Cedric Bail 3e302e7e61 ecore_evas: extn - restore missing symbol that resulted in a temporary ABI break.
Thanks to Albin and Debian tools to have spotted that.

- cherry-pick me -
2014-01-04 11:23:47 +09:00
Carsten Haitzler 7a46449191 ecore-evas - x11 - call resize callback if wm denies resize request
in SOME cases a wm may deny a resize request entirely and keep the
window size the same. it does so with a configurenotify of the SAME
size as before. problem is we never passed this onto the app with a
resize callback of the original size before request to the new size.
this does that now.

cherry-pick me!
2013-12-30 13:43:49 +09:00
Gustavo Sverzut Barbieri fc05567c8f extn: remove files.{w,h} that are not used. 2013-12-20 13:10:38 -02:00
Gustavo Sverzut Barbieri a2baca3270 extn: remove unused attribute am_server. 2013-12-20 13:09:52 -02:00
Gustavo Sverzut Barbieri 4f4f662a40 extn: complete with NULL newly added functions. 2013-12-20 13:08:51 -02:00
Gustavo Sverzut Barbieri c7fed5d879 extn: fix typo, alpha is SHM_REF2, not 1! 2013-12-20 12:59:13 -02:00
Daniel Juyung Seo c4b7f83ef6 ecore_evas: removed author's name from source code as the author requested it.
Git log should be enough for the credit :)

This code was merged into efl upstream by devilhorn's aggressive synchronization between efl upstream and tizen.
But that commit didn't have the author's credit.
However We will never forget the contribution of Gwanglim Lee <gl77.lee@samsung.com>.
2013-12-18 23:49:06 +09:00
ChunEon Park 0947bae126 ecore/ecore_x - show the window if the window should be visible.
when the window alpha mode is changed, the x window is re-created.
but if the window is going on the show state(not visible yet but waiting for visible from xserver) this window never be visible.
so here it make the window visible also if the window is going on the visible state.
2013-12-17 20:37:17 +09:00
Rafael Antognolli cb3fcca0e7 ecore_evas/wayland: Update withdrawn property, and inform state_changed. 2013-12-09 08:26:24 -02:00
Chris Michael 13caf63420 Fix opaque windows becoming transparent after hide() then show().
This fixes Phab #T611. Previously, windows which were opaque would
become transparent after being hidden and then shown. We fix that by a
call to ecore_wl_window_alpha_set when the window gets shown. This
patch also brings the wayland_egl hide code more inline with the shm
hide code by testing if the surface does not match the existing one.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-12-09 07:35:16 +00:00
Chris Michael 1ac5a89957 Add code to deal with min, max, step, aspect, and base sizes.
Properly fix efl wayland elm window resize problem.

This adds support for min, max, step, aspect, and base size properties
when resizing a canvas under EFL Wayland.

This Also Properly fixes raster's report for EFL Wayland elm windows not
resizing properly. Previously, when resizing an elm window in wayland,
a portion of the window would draw outside the frame.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-12-05 11:52:37 +00:00
Chris Michael 8f21dfe06b Set engine aspect function pointer
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-12-05 11:52:37 +00:00
Chris Michael a36b1641d9 Add common function prototype for setting ecore_evas aspect ratio
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-12-05 11:52:37 +00:00
Chris Michael ae7fd6fac0 Fix raster bug report about elm window resize issue (content drawing
outside the window).

Be sure that the EEs requested geometry gets updated in our
common_resize function After min/max have been taken into account.

Elm is using ecore_evas_request_geometry_get in it's resize_job code
(Why...I have no clue lol. Does not seem like a good thing to check).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-12-04 11:32:45 +00:00
Chris Michael 231790c7cb Update the engine resize edge before we call ecore_wl_window_resize
Ecore_wl_window_resize essentially tells the shell to start the resize
process. We should have the evas engine info's resize_edge updated
Before we start that process so that Evas knows where the resize is
occuring from

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-12-04 11:32:45 +00:00
Rafael Antognolli 615d5ab634 ecore_evas/wayland: Add a function to cleanup the frame callback.
This callback must be manually destroyed and removed on
ecore_evas_hide(), because it won't be delivered anymore after the
surface is destroyed. If the callback still exists, the engine will find
it and avoid doing a new redraw until it is finally called.

Maybe the correct thing to do is to keep this callback in the
Ecore_Wl_Window struct, and have some functions to set/unset it, so it
gets destroyed when the window is hidden. Or when the surface is
destroyed.
2013-12-02 17:54:29 -02:00
Rafael Antognolli 77a4654470 ecore_evas/wayland_egl: Unset the surface on window hide.
We must unset it, so the Evas engine knows that it has to do all the
setup to destroy the EGL surfaces associated with it. And in the case of
an ecore_evas_show, recreate everything again.
2013-12-02 17:52:00 -02:00
Rafael Antognolli ff5533b4e1 ecore_evas/wayland: Implement ecore_evas_withdrawn_set.
Just call ecore_evas_show/hide inside the function.
2013-12-02 17:51:55 -02:00
Rafael Antognolli 662d086837 ecore_evas/wayland: Update comments inside rotation code. 2013-11-26 14:10:15 -02:00
Rafael Antognolli dbb9cf9765 ecore_evas/wayland: Fix non-resize rotation.
Fix phab T392.

Notice that it should reopen T359, as it wasn't really fixed, but a
rotation with resize was being used when a non-resized rotation was
requested. The cause of the "protruding surfaces" is likely the fact
that Elementary is setting the opaque regions manually, instead of
leaving it to Ecore_Evas. This must be fixed either inside Elementary
itself, or adding the "surface extents" (shadow/non-visible surface
parts) info to Ecore_Evas too.
2013-11-26 14:01:35 -02:00
Sebastian Dransfeld 0223d0cee3 ecore_evas: No error if window creation fails
It is common that some types of ee's will fail as the underlying system
does not support it, just warn.
2013-11-21 10:51:25 +01:00
Chris Michael e28d54d3e4 Unify ecore_evas resize code across both shm and egl engines.
This reduces code duplication for ecore_evas resize routines inside
wayland engines by using a common _ecore_evas_wl_common_resize
function as the resize code for both engines was the same anyway.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-15 08:11:09 +00:00
Chris Michael bc6711b229 Add function prototype for _ecore_evas_wl_common_resize
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-15 08:10:15 +00:00
Chris Michael a55a8ed3fb Fix some formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-14 12:45:33 +00:00
Cedric BAIL aaae3830f0 ecore_evas: use portable infrastructure to detect page size. 2013-11-10 09:26:44 +01:00
Rafael Antognolli 8b852ad21e ecore/wayland: Set win->resizing flag inside ecore_wl_resize(). 2013-11-01 15:51:14 -02:00
Rafael Antognolli 6aa11cf89d ecore/wayland: Set win->moving from inside ecore_wayland.
We can set it from the ecore_wl_window_move() function, instead of
directly changing the attribute.
2013-11-01 15:07:53 -02:00
Rafael Antognolli 839a737a62 ecore(_evas)/wayland: Move frame callback to engine data.
It's something specific to the ecore_evas engine/module, so there's no
need to keep this info in the Ecore_Wl_Window.
2013-11-01 15:07:53 -02:00
Rafael Antognolli 1c33a1a57b ecore/wayland: Add title_set and class_name_set APIs.
These two APIs will save the title and class_name inside
Ecore_Wl_Window, so if they are called before the shell surface is
created, the stored names will be used later when the window is finally
shown (shell surface is created).

This way we are also hiding the shell surface from ecore_evas modules.
2013-11-01 15:07:48 -02:00
Rafael Antognolli a63c69cac5 ecore_evas/wayland: Do not update opaque region to the same value.
This should not be necessary, since it's setting exactly the same
current opaque region. Changing the opaque region might be needed, but
not here.
2013-11-01 10:43:53 -02:00
Rafael Antognolli 277a5915c1 ecore/wayland: Remove attributes that are not used anymore.
Some attributes might have been useful in the past, but not anymore.
Just remove since they are not been used anywhere.
2013-11-01 10:30:29 -02:00
Chris Michael 81a847a74d Fix compiler warning: Need to define _state_update function early as
it is used in various places later.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-01 08:41:30 +00:00
Rafael Antognolli 1deb107d56 ecore/wayland: Do not store "edges" in Ecore_Wl_Window.
This is a configure event info, so put it in the right place. Some
places adding edges info were also removed, which means that they were
redundant.

Tested with <Meta> + middle click resize, and with window border resize,
on all the edges. Apparently, nothing breaks.
2013-10-31 21:35:13 -02:00
Rafael Antognolli dd18206d86 ecore/wayland: Do not use win->id directly.
Use a getter for it instead, so we don't need to expose the
Ecore_Wl_Window struct just because of it.
2013-10-31 21:35:13 -02:00
Chris Michael 20f6676eb6 Ok, This actually fixes maximized state properly now :) Basically, we
still need to account for frame height, but not frame width when we
are maximizing.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-31 17:21:33 +00:00
Chris Michael c96cc485ab Fix ecore_evas_wayland maximized support to function properly
Previously, a "maximize" of an efl client would not actually resize to
the provided size as it would account for framespace width & height.
This fixes that so now "maximize" is Actually maximized.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-31 16:58:21 +00:00
Chris Michael 1a5bdb4088 Implement ability to call the ecore_evas state_change function if
needed.

NB: Currently, this will only work for fullscreen or maximized states
as other ones like sticky, withdrawn, iconic, etc, etc are not
supported via wayland protocol yet.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-31 11:48:59 +00:00
Chris Michael fd0c3f10f6 whitespace--
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-31 11:48:59 +00:00
Chris Michael 927358915a Call _ecore_evas_mouse_move_process function on mouse_in and mouse_out
events.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-31 11:48:59 +00:00
Chris Michael 40a2dfc870 On a focus_in event, if the ecore_evas already has focus, don't resend
a focus in. Similar change for focus_out also.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-29 08:41:48 +00:00
Chris Michael 49dfea5566 If mouse is already inside the ecore_evas, then we don't need to call
the mouse_in function of the ecore_evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-29 08:05:32 +00:00
Rafael Antognolli ccdeae7ce4 ecore/wayland: Use sync callback to report end of ecore_wl_init().
At the end of the ecore_wl_init() function, send a sync request to the
server, and add a callback listener to the "done" event. When this event
is received, we are sure that all the registry bind requests done so
far were processed already, and that the registry and globals are
available and can be used.

Now, on the functions that request interfaces or registry, we call
_ecore_wl_init_wait(), which will check if the callback was received
already (that means that all requests inside the init were processed).
If it was not yet, then we wait until receiving that callback, before
returning the requested data.
2013-10-28 14:47:33 -02:00
Rafael Antognolli ad731e8b21 Revert "change init done bindings."
This reverts commit b87afd1b94.

Wrong branch, wrong commit.
2013-10-28 14:46:40 -02:00
Rafael Antognolli b87afd1b94 change init done bindings. 2013-10-28 14:07:25 -02:00
Carsten Haitzler a3aa1ed7f0 ecore-evas - handle mouse out then in due to click-to-focus passive grabs 2013-10-19 02:46:25 +09:00
discomfitor 73bd605b7f cosmetic/logic move evas_sync call into same if block when applying alpha settings that might be deferred 2013-10-16 17:57:07 +01:00
Carsten Haitzler 06c3c0cd0c async render -> alpha set. if not visible dont WAIT. do it now. 2013-10-17 00:00:05 +09:00
Carsten Haitzler e309967384 Revert "ecore_evas: window does not go back to normal state if you set iconified to EINA_FALSE."
This reverts commit 9bfb730ff5.

wrong! on deiconify this will now FORCE a ACTIVATE request to the wm
(which asks the wm to focus the window/hilight it and make it active.
might switch desktops or whatever). this is wrong. de-icoifying a
windows does NOT mean ALSO activating it!. the log message also doesnt
say what "go back to normal state"... means.... do they expect/INSIST
windows MUSt be focused after de-iconification? that's wrong as it's a
window management FOCUS policy, not something to do in the lib.
2013-10-15 10:45:37 +09:00
Michal Jagiello 9bfb730ff5 ecore_evas: window does not go back to normal state if you set iconified to EINA_FALSE.
Reviewers: cedric, raster, Hermet

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

Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
2013-10-14 12:10:19 +09:00
Chris Michael 592076e319 Reset window opaque region on 180 degree flips also.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-17 08:27:15 +01:00
Chris Michael d8ec30d7cf Call common rotation code before setting engine info
NB: Part of Phab T359 fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-17 07:41:08 +01:00
Chris Michael 70db3bff95 Rework common rotation code to match X11 more closely.
NB: Part of Phab T359 fix.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-17 07:41:08 +01:00
Chris Michael ec76c76f74 Restore old functionality of ecore_evas_alpha_set.
NB: We will still create all new canvases as alpha by setting it in evas,
however this allows the 'state' of ecore_evas_alpha_set/get to retain
it's original functionality and thus accurately report what a client
application May have set alpha value too.

NB: Fixes Phab Ticket T350

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-10 14:37:17 +01:00
Chris Michael 609941e0fa Create any wayland canvases as Alpha by default now.
Remove calls to ecore_wl_window_update_size inside the alpha &
transparent_do functions (this call not needed here anymore).

NB: This is needed due to recent frame "fixes". Basically, even tho we
set the opaque region correctly on a surface now, if the canvas itself
is not alpha, then we will end up with a black "spacer" around the
window.

NNB: Tested Both engines with terminology (both translucent and not) and also the window state test in elementary.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-04 14:25:50 +01:00
Chris Michael 517f8fe2b1 Update ecore_evas wayland_egl for removal of server_allocation member.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 09:06:53 +01:00
Chris Michael 781b3844b1 Update ecore_evas wayland_shm routines for removal of
server_allocation member.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 09:06:53 +01:00
Chris Michael 69be933627 Update common routines for removal of server_allocation field.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 09:06:53 +01:00
Chris Michael 6f5f9d075d Reduce duplicated code for setting resize edges.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-21 08:31:29 +01:00
Chris Michael 5c2eadea98 Reduce duplicated code for setting engine resize edge
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-21 08:31:11 +01:00
Chris Michael 21f0ad4f0e Add function prototypes for resize_edge_set.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-21 08:30:52 +01:00
Chris Michael 2c9a19503f Add function for setting/resetting window resize edges to remove
duplicated code.
Resize the frame object before we update the window saved size.
Remove (again) call to _ecore_evas_wayland_resize and set the resize
edge of the window.

NB: The call to _ecore_evas_wayland_resize ends up sending duplicate
configure events here, hence whey it is removed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-21 08:28:48 +01:00
Rafael Antognolli ffa9d69180 Revert "Remove Call to _ecore_evas_wayland_resize on a configure event."
This reverts commit 5eeb820b0f.
2013-08-21 12:55:14 -03:00
Chris Michael 5eeb820b0f Remove Call to _ecore_evas_wayland_resize on a configure event.
NB: Not sure how/why this was here, but it's entirely Not needed and
leads to duplicate calls of wl_shell_surface_resize.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-16 11:31:53 +01:00
Stefan Schmidt 91426926c5 ecore_evas: Fix potential NULL dereference.
We don't want to execute any of the function below if t is NULL. Its not
only about strdup but alsa ecore_x_netwm_name_set which might dereference it.

CID 1039400
2013-08-07 15:38:35 +01:00
Mike Blumenkrantz 5d1dec17b3 ecore-evas-x no longer tries making x calls on deleted windows when trying to free its sync counter 2013-08-01 12:17:58 +01:00
Chris Michael d65c357b39 During a call to ecore_evas_show (using wayland_shm), we can avoid
erroneous calls to engine_setup code if we check surface validity.

NB: Short Version: Don't reassign surface if we don't need to.

NB: Prior to this, during a call to ecore_evas_show we would always
Reset the evas engine data (which was basically triggering code to
tear down and reconstruct all the engine internals including the
buffers and the swapper). By checking surface validity first, we can
potentially avoid all that teardown and reconstruction Thus resulting
in faster "show" speed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-25 15:48:40 +01:00
Mike Blumenkrantz 569b2fd86a ecore-evas-x no longer uses X windows after receiving a destroy event 2013-07-24 14:01:03 +01:00
Chris Michael cc596a3588 If the init count is >= 1, then we want to iterate (ecore_imf wayland
module adds an extra init).

Fix some formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-23 07:15:19 +01:00
Chris Michael 9a4fc9ad44 Add engine interface code for:
- ecore_evas_pixmap_visual_get
- ecore_evas_pixmap_colormap_get
- ecore_evas_pixmap_depth_get
Assign interface functions for above when creating the new interface.
When creating the pixmap, store the visual and colormap for later
retrieval.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-11 10:49:25 +01:00
Chris Michael fc9ee11462 Add visual and colormap to pixmap structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-11 10:49:25 +01:00
Chris Michael 4a40c8298b Remove prev_front pixmap from structure
Use a local variable to hold previous front pixmap while swapping

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-11 08:56:44 +01:00
Chris Michael 5e94e640c6 Fix function and protoype for pointer_xy_get (missing const).
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 14:09:02 +01:00
Chris Michael a8bb3ec5ce Add common wayland function to get the pointer xy from wayland
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 11:02:58 +01:00
Chris Michael 4d2de522fa Add pointer_xy_get function to engine functions
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 11:00:28 +01:00
Chris Michael f0e47a2219 Add pointer_xy_get function to engine functions
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 10:59:20 +01:00
Chris Michael fca4267ae4 Add functions to X engine for ecore_evas_pointer_xy_get and
ecore_evas_pointer_warp

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 10:57:00 +01:00
Chris Michael 6ea61e3e56 Fix formating ... Wow, how did this get sooo screwed ? :(
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 10:16:09 +01:00
Chris Michael 73a68f2f0d Add code for gl_pixmap_new and pixmap_get functions
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 07:21:51 +01:00
Chris Michael 7431e6a02a Check for valid ee->prop.window before trying to fetch window
attributes from it.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-05 11:09:25 +01:00
Chris Michael 2c322cc7b1 Add code for ecore_evas_<engine>_pixmap_new/get functions.
- Add "pixmap" structure to engine_data.
    - Free the front and back pixmaps when the ecore_evas gets freed.
    - On resize, drop the backing pixmap if size is different.
    - Before we render, check pixmap size vs EE size and create new
backing pixmap if needed.
    - After we have rendered into the backing pixmap, flip it to the
front so that any calls to "pixmap_get" will return the proper one.
    - Add pixmap_new_internal code (the actual guts for all this)

NB: These can be used to create an internally double-buffered
ecore_evas that renders to a pixmap (not a window).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-05 10:44:18 +01:00
Chris Michael 8fc3c9c8bc Revert "EFL formatting and 80 column wrap"
Revert this because I have better things to do than argue about commit
messages.

This reverts commit ee5483bee1.
2013-07-03 14:30:40 +01:00
Chris Michael ee5483bee1 EFL formatting and 80 column wrap
NB: Nothing functional (yet)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-03 13:54:35 +01:00
Christopher 1633d7f3bb Fix compiler warning about uninitialized variables
Signed-off-by: Christopher <devilhorns@comcast.net>
2013-06-23 12:53:53 +01:00
Sebastian Dransfeld 336f6ec328 efl: formatting 2013-06-20 13:28:18 +02:00
Chris Michael b9a6337b67 Egl Overhaul (ecore_evas part)
- Add code to allow Async Render with Wayland_Egl
  (NB: Currently disabled. Evas_Textgrid borks when this is enabled)
- Create ecore_wl_window first so we can get surface and pass to evas.
- During show, we no longer need to pass the surface to evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-07 15:42:53 +01:00
Chris Michael c2a2b36083 During shm engine creation, we can create the ecore_wl_window first
AND get the surface for it...so that we can pass the surface directly
to the evas engine.

NB: Works. nothing broken.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-07 15:42:53 +01:00
Chris Michael c4ee53a689 Egl Overhaul (ecore_evas part)
- In common_render_updates_process, calls to window_damage will
Accumulate the damage, so add a call After to push damages.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-07 15:42:53 +01:00
Chris Michael 9276cca32f Fix move_resize to call the proper function.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-07 15:42:53 +01:00
Chris Michael a4dea5a0cb Bunch of minor "consistency" changes to bring egl and shm code in-sync.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-07 15:42:52 +01:00
Chris Michael 0dd34d31e2 Add support for move_resize.
Bunch of minor "consistency" changes to bring egl and shm code in-sync.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-07 15:42:52 +01:00
Chris Michael e9757ad8eb Add async render support for ecore_evas_wayland_egl
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-07 15:42:52 +01:00
Chris Michael 31a98ebd77 Add wl_egl_window to private structure.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-07 15:42:52 +01:00
Chris Michael ec86e11eee Remove dead commented code and fix up formatting.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-07 15:42:52 +01:00
Chris Michael 6e54a050d8 Add pre_post_swap_callback_set to Wayland Interface for Ecore_Evas.
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-06 04:42:57 +01:00
Ryuan Choi 32b3132c84 ecore_evas/x: Fixed that cursor object was not disappear
When moved mouse among two objects having cursor set,
EVAS_CALLBACK_MOUSE_OUT and EVAS_CALLBACK_MOUSE_IN are fired.

I observed that evas_object_del in callback of EVAS_CALLBACK_MOUSE_OUT
calls EVAS_CALLBACK_MOUSE_IN
so that newly added cursor object was detached.
2013-05-21 09:38:20 +09:00
Chris Michael a4e30e597c Add missing NULL fields.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-16 13:22:35 +01:00
Chris Michael 9325929df3 Revert "ecore evas wayland: if(()) are used for assignments, add missing NULL fields"
This reverts commit ab505d5d23.
2013-05-16 13:20:21 +01:00
Jérémy Zurcher ab505d5d23 ecore evas wayland: if(()) are used for assignments, add missing NULL fields 2013-05-16 13:17:11 +02:00
Chris Michael d22a4c6ef9 Ooops, this should return the allocated Ecore_Evas.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-14 11:30:37 +01:00
Chris Michael dd364de99d Start on basic ecore_evas_drm code.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-14 10:49:14 +01:00
Chris Michael 817284fb96 Add start of ecore_evas_drm code.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-14 10:49:14 +01:00
Raoul Hecky f6bd3f695f ecore_evas: backport svn r83875.
Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
2013-05-10 10:48:33 +09:00
Rafael Antognolli b259d944ee ecore_evas/wayland: Implement borderless_set engine method.
It is needed to set the engine internal borderless property.

Also update the border (frame) object, showing/hiding it as needed, and
updating the framespace size when the frame object is handled by the
engine.
2013-05-08 19:22:33 -03:00
Rafael Antognolli 42788da2ea ecore_evas/wayland_egl: Remove wrong if.
It was left behind when fixing the borderless feature.
2013-05-08 18:18:23 -03:00
Rafael Antognolli 2a20ca4477 ecore_evas/wayland: Do not send additional mouse_in's.
If this Ecore_Evas already has a mouse inside it, there's no need to
send an additional mouse in event.

Additionally, always send a mouse_move event before a mouse_down, so the
Evas pointer position can be updated properly before the mouse down.
2013-05-08 16:56:12 -03:00
Rafael Antognolli b619b6bfd4 ecore_evas/wayland: Correctly use framespace size for ecore_evas_resize. 2013-05-06 20:10:06 -03:00
Rafael Antognolli 401265d57e ecore_evas/wayland_shm: Do not invert framespace size twice. 2013-05-06 17:14:09 -03:00
Rafael Antognolli 13c0e8f3f3 ecore/wayland: Fix alpha windows on EGL backend.
Now the opaque and input regions are updated on ecore_wl_window_resize,
there's no need to call ecore_wl_window_buffer_attach() for this
anymore.

The checks on alpha and transparent flags were also fixed.

ecore_wl_window_update_size() is now called by ecore_wl_window_resize(),
reducing duplicated code.
2013-05-06 16:46:20 -03:00
Rafael Antognolli 7a7a0b8297 ecore/wayland: Add ecore_wl_window_alpha_set().
Just sets the "alpha" flag on the window and use it when calculating
opaque regions.
2013-05-06 16:40:50 -03:00
Rafael Antognolli 67179b4a71 ecore_evas/wayland_egl: Call ecore_wl_window_transparent_set.
It must be called on EGL, otherwise it definitely won't work.
2013-05-06 16:16:14 -03:00
Rafael Antognolli aba3064184 ecore_evas/wayland_shm: Delay some operations when in_async_render. 2013-05-06 14:48:03 -03:00
Rafael Antognolli d5fe89b32d ecore_evas/wayland: Add missing frame width and height.
It must be used when calling the window new function too.
2013-05-02 07:32:14 -03:00
Rafael Antognolli 6fc19b8dc2 ecore_evas/wayland: Only set a default framespace if we have a frame.
If Ecore_Evas is requested to draw its own frame, then set the
framespace too. Otherwise, keep it at 0,0 + 0x0, which means not
framespace offset at all (and the window will have exactly the
requested size).
2013-05-02 07:32:14 -03:00
Chris Michael dee2262214 Remove hack for changed state.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-01 08:10:54 +01:00
Chris Michael 1c442867c4 Remove duplicated wdata variable.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-01 07:56:25 +01:00
Chris Michael 127bee584d Revert "Fix some formatting."
This reverts commit 809144780e.

Conflicts:

	src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-01 07:46:36 +01:00
Chris Michael 6f6a0951f2 Revert "Check for valid engine resize function before calling it."
This reverts commit 6e0075aa04.

This broke rotation (and some other things).
2013-05-01 07:32:54 +01:00
Rafael Antognolli 1f58a59a61 ecore_evas/wayland: Remove hack for changed state.
Since we don't have a changed state callback on Wayland, just call the
changed_state callback of Ecore_Evas from the configure callback.
There's no need to add the Ecore_Job that will send the event later.

This makes the code cleaner, simpler, and will call the callback when
the configure event is received, which is a good place to check for the
changes.
2013-04-30 16:31:43 -03:00
Chris Michael 809144780e Fix some formatting.
Reduce duplicated code in ecore_evas_wl_resize and just call the
_common_resize function
Fix segfault on elm app closing

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-30 14:55:55 +01:00
Chris Michael b9fa3b3089 We don't need evas_sync on resize here.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-30 14:55:54 +01:00
Chris Michael 6e0075aa04 Check for valid engine resize function before calling it.
In the window_configure callback, reduce duplicated/not needed code.
Account for rotation when getting new size during common_rotation_set.
Reduce duplicated code in ecore_evas_wl_resize function and just call
the _common_resize function (as that already has most of this code).

Fix issue of Segfault on elm app closing:
  - During hide we need to call evas_sync to make sure the async
    render has flushed out everything that is pending.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-30 14:55:54 +01: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
Chris Michael d3c79b813e Fix engine_info_get function call being in the wrong place.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-29 12:56:08 +01:00
Chris Michael 25f1706fa8 Fix variable usage in framespace get. Thanks Seb ;)
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-26 07:41:17 +01:00
Chris Michael 8235272ec0 Reenable ability for async render of shm engine.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-26 07:14:58 +01:00
Rafael Antognolli 6890a0e452 evas/wayland_shm: Fix resize to the left or top when rotated. 2013-04-25 19:58:05 -03:00
Rafael Antognolli 1ec6dd5fbc evas/wayland_egl: Fix resize to the left or top when rotated. 2013-04-25 19:58:03 -03:00
Rafael Antognolli f18174f302 ecore_evas/wayland: Fix rotation when going back to 0 or 180 degrees. 2013-04-24 17:43:10 -03:00
Rafael Antognolli 0745e46d12 ecore_evas/wayland: Add support for rotation on wayland_egl backend.
Also move the common code for rotation_set from the shm engine to
wayland_common.
2013-04-24 15:24:37 -03:00
Rafael Antognolli 8ef6568ea7 ecore/evas wayland_shm: Add support for window rotation. 2013-04-23 18:52:54 -03:00
Rafael Antognolli dba2fc5aa5 ecore_evas/wayland: Change the default frame smart object.
Add 4 rectangles to be used as border of the window, instead of a single
rectangle under the framespace. This allows to move the frame object to
the top layer, instead of staying on the lowest layer. With the frame
over the other objects, there's no need of framespace clipper object,
which causes several bugs.
2013-04-23 18:52:35 -03:00
Rafael Antognolli 34d4352055 ecore_evas/wayland: Actually, the frame object should be on LAYER_MIN.
Also set the layer on the wayland_egl backend.
2013-04-18 19:39:46 -03:00
Rafael Antognolli 89960340d7 ecore_evas/wayland: Put the default frame object in a lower layer.
The frame should not stay in the same layer as the other objects. If the
application wants to allow it to be on top of the content, then it must
provide a custom frame object and set it to that layer.

NOTE: Should we make Elementary's be on a lower layer too?
2013-04-18 19:04:07 -03:00
Rafael Antognolli b73786814c ecore_evas/wayland: Ecore_Evas geometry should report the client size.
The real canvas size contains enough space for rendering the frame, but
ecore_evas_geometry_get() should be consistent accross all the engines
and report only the client area.
2013-04-02 14:39:59 -03:00
Stefan Schmidt d0483d3dde evas_extn: Tag parameter as unused.
Maybe we should switch to use -Wno-unused-parameter in our default cflags?
I mean unused parameters are really common and I do not see their harm.

Using -Wno-unused-parameter would let us remove all the cluttered EINA_UNUSED
and __UNUSED__ and also be safe when a paramter gets is use later as the
compiler could optimize it out when tagged with unused. Still we would avoid
the warnings to find the important ones.
2013-03-26 09:36:09 +00:00
Cedric BAIL d583d08814 evas: no need for a callback per async call.
Let's not multiply our callback infrastructure without any serious need. We
already have to many of them.
2013-03-26 11:59:27 +09:00
Stefan Schmidt a9c543c73f evas_extn: Rename data variable to avoid local shadowing.
Jenkins as well as klocwork complained here as data is already used for
the parameter of the function and we shadow it here locally. Does not look
like it would really harm us here but better avoid it.
2013-03-25 09:40:36 +00:00
Carsten Haitzler 1117cb938a update po's ... :/ 2013-03-23 13:31:22 +09:00
Rafael Antognolli f9fbafae58 ecore_evas/wayland: Don't need to show and hide children of the frame.
The frame smart object inherits from clipped smart object now, so it
doesn't need to show and hide its children, as the clipper takes care of
that.
2013-03-22 15:31:21 -03:00
Jiyoun Park 8653a45cb1 * Ecore_x: fix alpha set function not clear sync counter 2013-03-22 18:49:46 +09:00
Rafael Antognolli 048c8f0b25 ecore_evas/wayland: Use clipped smart object for window decorations.
When creating windows directly with Ecore_Evas, instead of using
Elementary, a default smart object is provided for the frame (client
side window decorations).

Now this smart object inherits from the clipped smart object, which
means that all its member objects will be clipped to its main clipper,
being skipped when the framespace clipper checks for objects without a
clipper.

Fix a ticket, which I don't remember the number because trac doesn't
work.
2013-03-21 20:45:44 -03:00
Rafael Antognolli 7a01acd60d ecore_evas/wayland_shm: Check if the Ecore_Evas is visible on render.
Without this check, the code tries to access win->surface, which will be
NULL, causing a segfault.

Fix ticket #2304.
2013-03-20 18:06:26 -03:00
Cedric Bail ba4db2c241 ecore_evas: follow naming of other modules for Windows to. 2013-03-16 15:54:18 +09:00
Cedric Bail a4593c1cdf ecore_evas: killing Glew and Direct3d, because someone already killed Kenny. 2013-03-16 15:50:01 +09:00
Carsten Haitzler 5b201f9122 please... compile again thanks! 2013-03-12 23:17:00 +09:00
Chris Michael 873c18cc15 Force shm engine to do sync render for now.
There are stalling issues with async render that I need to look in to.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-03-12 12:52:25 +00:00
Christopher Michael 31ec0c4d7b Add Async support for Wayland Shm Engine.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-03-12 12:52:25 +00:00
Christopher Michael 91a83b8cda Add Async support for wayland_shm engine.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-03-12 12:52:25 +00:00
Cedric Bail 32661a5ac4 ecore_evas: re-order inclusion of header to fix compilation on Windows.
It is a very tricky things to get header order right on windows. Having that
order only in .c files simplify the work a lot. So let's try to do it with
Ecore_Evas after it rewrite and split into modules.
2013-03-12 15:58:43 +09:00
Jiyoun Park bcfc58f460 ecore_x: fix bug not check data value when get deiconify message 2013-03-12 11:53:21 +09:00
Cedric Bail 7da76cf25a ecore_evas: remove warning. 2013-03-10 20:32:21 +09:00
Jiyoun Park 9210db4dd5 Ecore_x: Add manual render code before deiconify 2013-03-07 16:33:59 +09:00
Rafael Antognolli e92bafb141 ecore_evas/wayland: Call _ecore_evas_wayland_resize on window configure.
This will update the edges info inside the Evas_Engine_Info, and make it
correctly resize to the top/left if needed.

Also call ecore_wl_window_buffer_attach() on the egl engine, since it's
needed after the ecore_wl_window_update_size().
2013-02-28 12:48:42 -03:00
Rafael Antognolli 5e507cf3d6 ecore_evas/wayland: Update window size when receiving compositor event.
This will force the window to correctly update its size when the event
is received by the compositor, rather than just after an
ecore_evas_resize().

It fixes the window resizing of non-elementary applications, since
the elementary window already deals with such resize by calling
ecore_evas_resize.
2013-02-28 12:48:42 -03:00
Rafael Antognolli dc0d88df9c ecore_evas/wayland_shm: Fixed window resize.
Using the server_allocation/allocation to determine the resize offset
was not completely precise, and causing the window to not always resize
correctly.

Additionally, calling evas_engine_info_set() on every resize step caused
the window content to blink and resize very slow, because the swap
buffer, swapper, and everything were being destroyed and recreated. Now
only the swapbuf_reconfigure is being called during the resize, which is
way faster.
2013-02-19 10:18:03 -03:00
Christopher Michael b717e948af Fix new shm engine to take resize edges into account.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael ef76f3caab Remove blank line.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael 886768b1e1 Remove old shm information from the private data structure.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael 9e6b41e629 Fix formatting.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael 5526a29417 Remove extra whitespace.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:01 -03:00
Jiyoun Park c5a8a6b5ff Add infrastructure to handle message between ecore and parent ecore in Ecore_Evas
I add new example related with this. (ecore_evas_extn_socket & plug example)
ecore extn use this infrasturcture, server app and client app can communicate each other
later, this can be used to contorl access message


SVN revision: 83942
2013-02-15 09:32:40 +00:00
Stefan Schmidt 62a20b6e95 efl/evas_w32/engine: Add interface name and version.
Again they are already used but nobody did bother to declare or define them.
I have choosen the name with what came into my head first and version seem
to be 1 in other engines, too. Evas engine gods please review.

SVN revision: 83826
2013-02-11 13:39:16 +00:00
Stefan Schmidt 4ae1c0d1cb efl/evas_w32/engine: Add and declare a variable.
iface is already be used in the code but not available as variable at all.

*spank, spank*

SVN revision: 83825
2013-02-11 13:27:20 +00:00
Stefan Schmidt 6ef1fc791a efl/evas_w32/engine: Fix typo to have a functional #endif
SVN revision: 83824
2013-02-11 13:18:23 +00:00
Rafael Antognolli 74cb944f25 ecore/wayland: Add window state changed callback to Ecore_Wl_Window.
This will allow it to report to Ecore_Evas that the window has changed
its state. Elementary uses this to update its maximized/fullscreen/other
window states internal information.

The code that uses this callback is also added to Ecore_Evas.

SVN revision: 83625
2013-02-05 12:19:40 +00:00
Rafael Antognolli cc2b953b65 ecore_evas/wayland_egl: Fix window resize when using meta+middle click.
It's needed to set the edge where the middle click is being done in
order to allow Evas know which direction the resize should take.

SVN revision: 83610
2013-02-04 18:40:14 +00:00
Rafael Antognolli c46b096c78 ecore_evas/wayland: Merge code from egl and shm engines into common.
Since the render code on both engines is using the frame callback, let's
merge it to avoid code duplication.

SVN revision: 83390
2013-01-28 20:28:19 +00:00
Rafael Antognolli f75b01b545 ecore_evas/wayland: Add _ecore_evas_wl_common_render_updates back.
It shouldn't be removed, since it's still being used.

SVN revision: 83388
2013-01-28 19:45:41 +00:00
Rafael Antognolli 1210067fbe ecore_evas/wayland_egl: Only render if last frame has been presented.
This avoids blocking in eglSwapBuffers and has the side effect of
avoiding doing unnecessary work - painting where a frame won't be
presented.

We do this by using the event that the wayland compositor will send us
to tell us that the frame has been presented. Due to the fact that
evas_render_updates() could do no work and not cause a eglSwapBuffers we
must always have a frame callback listener setup.

Original patch by: Rob Bradford <rob@linux.intel.com>

(I just adjusted the patch to the single efl tree)

SVN revision: 83387
2013-01-28 19:13:46 +00:00
Christopher Michael 40dec84b3e Set the engine's wl_shm reference during creation.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83278
2013-01-24 09:21:04 +00:00
Christopher Michael b5c4759f1d Rename 'time' parameter in function prototype.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83275
2013-01-24 09:20:55 +00:00
Christopher Michael 0d8e6279c5 Rename 'time' parameter.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83274
2013-01-24 09:20:45 +00:00
Christopher Michael 4203a3afbc Remove unused variable.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83273
2013-01-24 09:20:40 +00:00
Christopher Michael c329317711 Modify ecore_evas_wayland_shm to handle passing the wl_shm and
wl_surface to the new double-buffer engine.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83270
2013-01-24 09:20:29 +00:00
Christopher Michael 7ebc5523bb Remove old line which did a wl buffer attach.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83269
2013-01-24 09:19:51 +00:00
Christopher Michael 269ce8364f Remove all old code from ecore_evas that involved creating the wayland
buffer and shm pool.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83268
2013-01-24 09:18:34 +00:00
Rafael Antognolli 43894851a7 efl/ecore_evas/wayland: Report the requested window width x height.
Before this commit, when using any of the wayland backends, if the user
requested an ecore_evas window of width x height, the reported size of
the window would include the frames width and height.

Now the requested size is stored on the ecore_evas and reported when
ecore_evas_geometry_get() is used, although the ecore_evas is still
created with additional space for the frame area.

This is one of the reasons causing bug #1673.

SVN revision: 83042
2013-01-21 16:05:12 +00:00
Gustavo Sverzut Barbieri df701d8ca2 some clang warning cleanups i forgot to commit
SVN revision: 83024
2013-01-21 00:22:35 +00:00
Leandro Pereira f52f44e7a2 evas_render: Measure time spent while rendering in sync and async modes
SVN revision: 82936
2013-01-17 14:31:34 +00:00
Gustavo Sverzut Barbieri 4d310f96ff fix --enable-sdl compilation.
Patch by Arvind R.


SVN revision: 82896
2013-01-16 19:47:03 +00:00
Gustavo Sverzut Barbieri b1bc5aeb24 efl: simplify automake.
Instead of -I$(top_srcdir)... -I$(top_builddir)... and then do it for
the .la, use the EFL_ macros to generate the contents to be used in
automake files.

There is a nasty bit that libtool will parse Makefile*.am and will not
get _DEPENDENCIES from _LIBADD and _LDADD if these are in
@REPLACEMENT@. To solve this we must explicitly set _DEPENDENCIES. The
contents of this is almost the same as _LIBADD or _LDADD with the
"_INTERNAL_" replacement name.

I hope the code will be result will be shorter and consistent as there
is less places to change when we add/remove dependencies.

Statistics are quite impressive (diffstat):
{{{
37 files changed, 663 insertions(+), 1599 deletions(-)
}}}



SVN revision: 82785
2013-01-14 22:36:23 +00:00
Carsten Haitzler 006e73ec41 follow on from last week - ee state not quite being handled right in
x11 when being iconified. missed commenting it out. fix and handle
initial state too.



SVN revision: 82747
2013-01-14 09:45:05 +00:00
Gustavo Sverzut Barbieri 0f5bf5197f ecore_evas_x: add some debug to help find out e_border problems.
EDBG macro is at level 5 to avoid messing existing debugs, use it like:

export EINA_LOG_LEVELS=ecore_evas:5



SVN revision: 82656
2013-01-11 18:45:10 +00:00
Gustavo Sverzut Barbieri 85f8163c3e efl/ecore_evas: merge buffer into core, split extn apart.
buffer is lightweight and dependency for many engines, merge it back
into core.

extn is a module on its own, and it's the only one linking to
ecore_ipc, no need to add that to ecore_evas.

minor cosmetic changes to configure to make output consistent.



SVN revision: 82648
2013-01-11 16:57:21 +00:00
Carsten Haitzler ede2faa1aa oh and also fix up properties to not update until event comes back
from x telling us they did. :)



SVN revision: 82558
2013-01-10 11:53:07 +00:00
Carsten Haitzler e2243e6c55 elm win throttle/norender auto... eocre-evas got a few things wrong.
no - not planning a backport of this at this stage. small thing. maybe
backport (and chlog/news) if this doesnt cause any new issues?



SVN revision: 82549
2013-01-10 11:23:10 +00:00
Carsten Haitzler 478de3ec76 small change - not worth chglogging... make evas gl x11 header not
need xlib.h anymore... :)



SVN revision: 82378
2013-01-08 03:49:49 +00:00
Gustavo Sverzut Barbieri 4148218617 efl/ecore_evas_x: remove includes that are not required.
SVN revision: 82371
2013-01-07 23:14:08 +00:00
Gustavo Sverzut Barbieri b716ab72e9 efl: warnings--
SVN revision: 82273
2013-01-05 14:04:22 +00:00
Gustavo Sverzut Barbieri 0a2d116119 efl: eina_alloca.h to simplify alloca() usage.
having to replicate 18 lines per file just to access alloca() is
insane. Let's do that in Eina.h and avoid that crap :-/



SVN revision: 82082
2013-01-03 15:10:34 +00:00
Carsten Haitzler 87d15b8d20 how about we export symbols we intend to dlsym() ?
SVN revision: 81860
2012-12-29 03:56:54 +00:00
Gustavo Sverzut Barbieri 412c269b1c efl/ecore_evas_extn: don't leak bdata.
PS: I cannot backport this to 1.7.x, could someone do this for me?



SVN revision: 81305
2012-12-18 20:59:44 +00:00
Gustavo Sverzut Barbieri 57da05d406 efl/ecore_evas_extn: fix memory errors.
- EVAS_CALLBACK_FREE and EVAS_CALLBACK_DEL were doing the same thing
   at different stages, causing a segv due double free.

 - extn->file.updates and its Ipc_Data_Update were leaking.

PS: I can't backport this to 1.7, but the problem is still
there. Could someone look into those?



SVN revision: 81304
2012-12-18 20:51:50 +00:00
Leandro Pereira 613659b1d8 ecore-evas: Async render
SVN revision: 81283
2012-12-18 16:27:26 +00:00
Carsten Haitzler fd90f7b882 start some work on allowing ecore_extn to double-buffer. doesn't do
anything atm about it.. just sets up infra for 2 buffers to exist and
be locked. :)



SVN revision: 80931
2012-12-14 11:19:09 +00:00
Flavio Vinicius Alvares Ceolin ad7579c129 ecore_evas: Make the engines loadable modules
Implementing support for loadables modules. It makes the engines been
loaded when they are needed. It not breakes the api, so each engine
still has its own api.

The implementation basically is:

* Functions that creates Ecore_Evas, for example
  ecore_evas_software_x11_new, request to load its module and then get
  the module's function to create the Ecore_Evas.
* The other functions such as \(.*\)_window_get from the Ecore_Evas
  its interface and then call the appropriate method.
* As there is no unified interface to communicate with the engines
  (not break api problem), all interfaces were declared in
  ecore_evas_private.h
* Now the data necessary for each module is not declared in the
  Ecore_Evas_Engine structure, instead of this, the struct has a void
  pointer that is used by the modules.
* In this first moment engines as software_x11 and gl_x11 were put
  together in the same module, but obviously exporting all the things
  necessary.


SVN revision: 80280
2012-12-05 21:15:42 +00:00