Commit Graph

443 Commits

Author SHA1 Message Date
Guilherme Iscaro 044219226c Ecore Evas: Add support for multiple mouse positions.
Since it's possible to have more than one mouse, Ecore Evas
must take into account the position of all mouses and update them
correctly.
2016-12-20 18:34:39 -02:00
Guilherme Iscaro e5acc5604a Ecore Evas: Add support to set cursor icon per mouse device.
Since Ecore Evas now supports multiple mouses new APIs were added
in order to be able to set the cursor image to any device.
2016-12-20 18:34:39 -02:00
Guilherme Iscaro 133b4fa65b Ecore Wl2: Add ecore_wl2_window_pointer_device_xy_get() API.
This commit adds a Wayland specific function to fetch a mouse
position.
2016-12-20 18:34:39 -02:00
Guilherme Iscaro 64986bccac Ecore Evas: Add API to set/get the pointer position per device.
Since Ecore Evas now support multiple mouse devices new APIs were
added in order to fetch the mouse position.
2016-12-20 18:34:39 -02:00
Chris Michael fa05393d02 ecore-evas-wayland: remove float comparison warning from wayland backend
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-20 08:53:16 -05:00
Chris Michael dc43017906 ecore-evas-wayland: Remove unused includes
As most of the "hard work" has been moved into
ecore_evas_wayland_common file, these includes are no longer needed
here.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Chris Michael d33e0d34e0 ecore-evas-wayland: Minor formatting fix
NB: No functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Chris Michael f449fca9d6 ecore-evas-wayland: Set all evas engine info fields before updating
Small patch to set all fields of the Evas Engine Info structure before
calling evas_engine_info_set function

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Chris Michael 0ecaf00d97 ecore-evas-wayland: Use engine 'hidden' field for ecore_evas_hide operations
This patch allows us to set a 'hidden' flag in the Evas Engine
information structure instead of setting a NULL surface. Setting this
flag allows us to hide/show a canvas without having to
destroy/recreate a wl_surface every time.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Guilherme Iscaro ad1d160bb6 Ecore Input Evas: Add ecore_event_evas_seat_modifier_lock_update().
This function will set the modifiers/lock per seat in Evas.
Some places will still use ecore_event_evas_modifier_lock_update(),
since multi-seat is not supported.
2016-12-02 09:57:50 -02:00
Guilherme Iscaro 75619fc290 Ecore Evas: Add multi seat support for mouse in/out. 2016-11-28 13:57:55 -02:00
Guilherme Iscaro be609118c6 Ecore_Evas: Add support for per-seat focus. 2016-11-28 13:57:55 -02:00
Bruno Dilly 1e62cd562e ecore_wl2: avoid adding repeated devices
Summary:
After changes done on commit 9f8e2e0d9c
it was possible to have multiple devices with the same
id added throught the function
_ecore_evas_wl_common_cb_global_added().

To avoid such issue, let's check if the device was already
created first.

Reviewers: iscaro

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4428
2016-11-24 18:31:23 -02:00
Guilherme Iscaro 9f8e2e0d9c Ecore Wayland: Remove ECORE_WL2_SEAT_CAPABILITIES_NO_SEAT.
Summary:
It's not possible to have an Ecore_Wl2_Input without a seat.

Ecore Evas Wayland: Remove seat existence check.

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

Reviewers: barbieri, jpeg, cedric, bdilly

Reviewed By: bdilly

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4408
2016-11-16 17:50:32 -02:00
Guilherme Iscaro 9ba11c5cd0 Ecore Evas Wayland: Create the devices during Ecore_Evas setup.
Summary:
When launching an Elementary App using Wayland the elm_config will
automatically connect to the Wayland's display server and all events
regarding seats are lost, since by the time that Ecore_Evas is created
the global events were already dispatched. To fix this problem,
everytime an Ecore_Evas is created, the code must check if there
are any seat capabilities available, if so, the devices will be created.

Reviewers: bdilly, barbieri, cedric, jpeg

Subscribers: devilhorns, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4390
2016-11-16 18:26:25 +09:00
Derek Foreman 9ad35a6fa2 ecore_evas_wayland: Re-kill double disconnect bug on fallback
Jpeg caught this one a while back and it got re-introduced recently.
2016-11-09 16:33:49 -06:00
Chris Michael 11ef74c962 ecore-evas-wayland: Fix case of potential double-free
This patch addresses the case where we failed to allocate 'wdata' and
were calling free(ee) before going to an error handler. For the fix,
just don't free(ee) here and let the error handling do it's job.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-08 12:16:06 -05:00
Chris Michael 7a74a2e176 ecore-evas-wayland: Fix typo
Fix small typo which lead to undefined error statement.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-08 11:22:23 -05:00
Chris Michael b7406df4cf ecore-evas-wayland: Add warning if we fail to set engine info
Coverity reports an error handling issue here as we are not checking
the return value of evas_engine_info_set, so check that return and
issue a warning if it fails.

Fixes Coverity CID1365651

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-08 11:13:07 -05:00
Chris Michael 781a5089e5 ecore-evas-wayland: Fix NULL pointer dereference
Coverity reports that accessing 'einfo' here is a NULL pointer
dereference. evas_engine_info_get can return NULL, so we should be
checking for a valid return before trying to use it.

Fixes Coverity CID1365654

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-08 11:10:53 -05:00
Chris Michael 8a24d64030 ecore_evas_wayland: Fix null pointer dereference
Coverity reports a null pointer dereference here because
evas_engine_info_get can return NULL. Check for a valid return before
trying to use it.

Fixes Coverity CID1365655

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-08 11:09:00 -05:00
Chris Michael 90dabc831f ecore-evas-wayland: Fix use after free
Coverity reports illegal access here as we are trying to pass a freed
pointer to ecore_evas_free. Rework error handling to avoid this.

Fixes Coverity CID1365657

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-08 11:06:36 -05:00
Jean-Philippe Andre eb8d9387c1 wayland: Remove support for "draw_frame"
draw_frame is a legacy feature that draws a very ugly window border
with a white rect and a black text as title bar. This could be
used in wayland when using only the ecore_evas APIs, rather than
elm_win.

Note that the API ecore_evas_draw_frame_set() can not possibly work
as the flag is checked when the ecore_evas is created, so changing
the flag has no effect on existing windows.
2016-11-03 17:22:14 +09:00
Derek Foreman c425140a67 ecore_evas_wayland: Minimize differences between shm and egl
Finally bring these together as much as possible to avoid future
diversions when bugs are only fixed in one or the other.

There are functional changes - state tracking for client side effects is
now added to the shm engine, some bug fixes for the egl engine have been
brought to the shm engine.
2016-11-02 13:37:02 -05:00
Derek Foreman 4260d5d3a2 ecore_evas_wayland: Make resize code common
Brings resize code into the common implementation - there is a functional
change.  There appears to have been a bug in the egl resize where it
used the same w, h order for portrait evases as for landscape.  This was
fixed in shm.  I've used the shm variant for the common code.
2016-11-02 13:37:02 -05:00
Derek Foreman b23797c55a ecore_evas_wayland: Make rotation_set common
Rotation set can be moved into common now - should be no functional
change.
2016-11-02 13:37:01 -05:00
Derek Foreman 5d2a25a01d ecore_evas_wayland: Make transparent_set common
Moves transparent set into the common implementation - there is a
functional change here - the egl engine now calls transparent_set in
render_updates like the shm engine.

It is probable the this was the intended behaviour all along.
2016-11-02 13:37:01 -05:00
Derek Foreman 9ca6e274a4 ecore_evas_wayland: Make alpha set common
Moves alpha set into the common implementation - there is a functional
change here - the egl engine now calls alpha_do in render_updates like
the shm engine.

It is probable that this was the intended behaviour all along.
2016-11-02 13:37:01 -05:00
Derek Foreman 82277ae6b3 ecore_evas_wayland: Move more functions into the common implementation
Show and hide can be made common with almost no functional changes.
2016-11-02 13:37:01 -05:00
Derek Foreman af4a71bcf0 wayland evas engines: share engine info structure
These engines are incredibly similar - by sharing the same engine info
structure we'll be able to simplify the wayland ecore_evas bits and
make them much more maintainable.
2016-11-02 13:37:01 -05:00
Derek Foreman 55de5c61cd ecore_evas_wayland: Don't include Evas_Engine_Wayland_Egl.h
There doesn't seem to be any need for this.
2016-11-02 13:37:01 -05:00
Derek Foreman 0b9f77ac96 wayland_egl: Remove unused wl_egl_window variables 2016-11-02 13:37:01 -05:00
Derek Foreman 54cf6dac4a wayland evas engines: rename wayland display to wl_display
Continuing to make the shm and egl engines closer to eachother.
2016-11-02 13:37:00 -05:00
Derek Foreman 3f75c45122 wayland_egl: Rename surface to wl_surface
Making this code more closely match the wayland_shm engine
2016-11-02 13:37:00 -05:00
Derek Foreman 9e43a15526 wayland_egl: Remove pre_post_swap_callback_set
This stuff seems copied from gl_x11 which actually has API to use it.

In this engine nothing can actually set it, so it's just all dead code.
2016-11-02 13:37:00 -05:00
Derek Foreman b898d3f929 wayland ecore evas: move move_resize to common
It's identical in both shm and egl variants, share it.
2016-11-02 13:37:00 -05:00
Derek Foreman d960adee72 wayland_egl: Remove some leftovers from www
The render post callback and "wobbling" variable were only required for
the client side effect.
2016-11-02 13:37:00 -05:00
Bruno Dilly 8bf74da7bc ecore_wl2: associate evas devices to input ecore events
So users would be able to differentiate between source
seats.
2016-11-01 16:06:19 -02:00
Bruno Dilly 7aab35961f ecore_wl2: add ecore event for seat capabilities change
So when mouse / keyboard are present or not it will
generate events.

ecore_evas/wayland will handle that creating or
deleting evas devices for each one (seat device
will be used as parent).
2016-11-01 16:06:19 -02:00
Bruno Dilly d7b1a5dfeb ecore_wl2: add ecore event for seat name change
And handle it on ecore_evas/wayland, properly
setting the evas device names.
2016-11-01 16:06:19 -02:00
Bruno Dilly 44fc1c6ecc ecore_evas/wayland: handle added / removed seats
Create or delete evas_devices with class EVAS_DEVICE_CLASS_SEAT
for seats on each ecore_evas created so far.

Initially it's named considering its Wayland id.
2016-11-01 16:06:19 -02:00
Bruno Dilly 26c1a564d9 ecore_evas/wayland: remove unnecessary NULL attributions
When freeing wdata there is no reason to set each
freed field to NULL.
2016-11-01 16:06:19 -02:00
Derek Foreman 54582858d8 ecore_evas_wayland: Don't use frame callbacks on windows with no shell surface
If we set a frame callback on a window with no shell surface (ie: and unmapped
window), the frame callback will never fire.  This was preventing some
applications like rage from ever posting a frame.
2016-10-14 16:07:08 -05:00
Youngbok Shin ceb0eab402 ecore_evas_wayland: Add NULL checking for surface
Summary: Need to NULL check before using surface like other cases.

Test Plan: N/A

Reviewers: jpeg, raster, ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4301
2016-09-27 08:50:05 -04:00
Derek Foreman 398771bf8a evas_engines: Add fn_evas_changed callback
To allow using the pageflip completion event to drive timing in the DRM
engine we need to know as soon as possible that a render has been after
a render has been considered if it will cause a page flip or not.

The fn_evas_changed callback sends this information.
2016-09-08 13:55:23 -05:00
Jean-Philippe Andre b29847e0da wayland_egl: Fix double free in case of failure
When trying to create a window, the WL EGL engine creates
an ecore_evas and connects to the wayland display. But if
EGL is not supported (in weston with nvidia for instance),
the egl initialization fails and the window must be detroyed
in order to fallback to wayland_shm.

This led to a double disconnect from the wayland display
as both the ecore_evas del and the error handling code
were trying to disconnect.

Also, use ref == 0 in two places rather than ref <= 0, as
it can prevent double frees in bad situations (ref < 0).
And reset a global variable to NULL on shutdown.
2016-08-11 11:37:41 +09:00
Chris Michael 0da58a8d78 ecore-evas-wayland: Fix issue of passing wrong values to resize
Coverity detected that the same code was being passed to resize
regardless of canvas orientation. This patch fixes the issue by
passing the proper values to window_resize.

Fixes Coverity CID1357150

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-06-30 11:03:07 -04:00
Chris Michael 1fb3c33286 ecore-evas: Fix error handling issues in wayland_shm engine
This patch fixes 2 Coverity issues where engine_info_set was being
called, but the return was never being checked.

Fixes Coverity CID1357141 and CID1357142

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-06-30 10:51:29 -04:00
Chris Michael c163e51dd3 ecore-evas-wayland: Minor formatting fixes
NB: no functional changes

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-06-13 16:19:46 -04:00
Jean-Philippe Andre 5aa00004a5 ecore_evas: Register direct input cb from modules
If the ecore_evas modules were using
ecore_event_window_register() then they can also redirect
everything though the direct callback instead.
2016-05-31 19:03:04 +09:00
Mike Blumenkrantz 7510e42c1b elm_win: implement v2 of teamwork api using window-based display protocol
this adds support for wayland and makes teamwork integration trivial for any
application

@feature
2016-05-20 14:54:06 -04:00
Mike Blumenkrantz 9d5caf00b6 wayland: implement session recovery
add support for reconnecting wayland applications if the compositor dies

disconnect -> destroy gl ctx + image textures -> block rendering ->
reconnect -> create gl ctx -> create image textures -> unblock rendering ->
sprinkle special seasoning on top -> just like ma used to make

 #SamsungFeatures

@feature
2016-05-05 10:49:31 -04:00
Chris Michael eefee97c2a ecore-evas-wayland: Remove include for old Ecore_Wayland library
This include is leftover from the porting to Ecore_Wl2. Remove
unused include for old Ecore_Wayland library

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-05-03 11:21:31 -04:00
Derek Foreman 34e539a3c1 wayland_shm: Add dmabuf to engine info
Get the dmabuf protocol object from ecore_wl2 and store it in engine info
2016-04-19 15:11:09 -04:00
Mike Blumenkrantz 0712218537 wayland: hook engine data from elm_win and update rect with evas size
the only way to accurately calculate the "evas" size in the engine from
window geometry is to have the size of the frame available to subtract from
window geometry

window geometry is NOT framespace--framespace is the entire csd region, possibly
containing a shadow, and window geometry is explicitly the region occupied by the
window, ie. not the shadowed part.

not my ideal solution to the synchronization issue here, but I guess this is a
benefit of the unified tree

fix T3396
2016-04-07 14:19:25 -04:00
Mike Blumenkrantz 5292b3de05 ecore-wl2: redo Ecore_Wl2_Event_Window_Configure entirely
this is an event representing the "new" state of the surface after a
configure event. it must contain the exact states which could potentially
have changed in the configure in order to ensure synchronization between
csd states and window size.

ecore events for xdg-shell configures must be sent only upon receiving a
configure event since states are set by the compositor and not by the client

@fix

 #hoorayforbeta
2016-04-07 14:19:25 -04:00
Mike Blumenkrantz 17bb2d60ca ecore_evas wayland: store relevant www data in engine info
this accumulates all data relevant to client-side www into
the Evas_Engine_Info_Wayland_Egl struct so the client can react to it.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2016-04-01 06:49:49 -04:00
Mike Blumenkrantz afd083788b ecore-evas wayland: use www protocol when available
handle www protocol events and store the provided data into engine data

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2016-04-01 06:49:49 -04:00
Mike Blumenkrantz a6924ced9d wayland: add comment for ref T3396 2016-03-30 16:00:10 -04:00
Mike Blumenkrantz f70649a13d wayland: ignore resize from no-op surface configure events, send events always
this fixes the case where a configure event with the current window geometry
would cause (inaccurate) resizes

@fix
2016-03-30 15:42:21 -04:00
Cedric BAIL bb1a1eef65 ecore_evas: introduce support for per window animator trigger.
This code is currently only using the older fallback code and not any
new event source, so all animator on all window are still triggered
whatever the case are.
2016-02-02 10:47:25 -08:00
Chris Michael 99ac0763ab ecore-evas: Rename ecore_evas_wayland_window_get2 function
This renames the ecore_evas_wayland_window_get2 function to be
ecore_evas_wayland2_window_get before the 1.17 roll out.

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-01-07 15:02:13 -05:00
Derek Foreman ddae80af1d wayland: use wl_surface.damage_buffer if available
Summary:
wl_surface.damage_buffer() takes surface damage in buffer co-ordinates.

Right now since we don't use wayland's scaling, transforms, or viewports
it's exactly the same as wl_surface.damage().  In the future if we start
using those features it's much easier to do so with damage_buffer().

Reviewers: zmike, devilhorns

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3457
2015-12-28 09:09:04 -05:00
Mike Blumenkrantz 54df1d9c6a ecore-evas wayland: move frame sending to pre-flush callback
it was possible to deadlock rendering if a pre-render occurred but
the resulting render had no updated regions

@fix
2015-12-15 17:24:52 -05:00
Chris Michael 0848792204 ecore-evas-wl: Fix copy/paste errors
This fixes fat-finger copy/paste errors when copying functions from
ecore_evas_wayland_shm to ecore_evas_wayland_egl

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-11 11:34:42 -05:00
Chris Michael 757f530af9 ecore-evas-wl: Defer creating surfaces for wayland canvas
This code adds support for deferring of surface creation and showing
inside Ecore_Evas Wayland. This is needed for Enlightenment so that it
does not try to create or show surfaces until the compositor has had a
chance to sync globals. This fixes an issue where early surface
creation would cause a crash in the compositor due to globals not
being syncd.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-11 11:26:24 -05:00
Mike Blumenkrantz 3760377e15 ee-wayland: do not send configure ack if no configure serial exists
also unset serial to ensure subsequent renders don't trigger the same ack
2015-12-10 16:00:45 -05:00
Chris Michael b5f8966fbe ecore-evas-wayland: Fix issue of starting resizing causing size jumps
Previously, when we started to resize an efl app, the size would
"jump" due to framespace being adjusted. This patch fixes that issue
and resize now works as expected.

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2015-12-09 12:08:15 -05:00
Chris Michael abbfde9d68 ecore-evas-wayland: Move configure acknowledge to render_flush_pre
If we acknowledge a configure from xdg during post render, we end up
breaking maximize of EFL clients inside Weston (and perhaps other
compositors). In order to fix that, we will now send the configure ack
post render but pre flush.

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2015-12-09 12:08:15 -05:00
Chris Michael 32eb2d32c4 ecore-evas-wayland: Don't set window geometry in ecore_evas
As we do not have the proper values for window geometry to be setting
it here, remove calls to set window geometry. We can more accurately
determine the window geometry from inside Elementary as it handles the
theme for the window borders.

@fix

ref T2919

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-07 15:36:42 -05:00
Chris Michael 3a8cfeb6d6 ecore-evas-wayland: Acknowledge configure event post render
This fixes a potential issue where we may have been sending the
configure acknowledgement before applying the actual new configuration
to the surface. Sending the ack_configure during post-render ensures
that we have already rendered according to the new configure
(addresses deferred rendering issue).

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2015-12-04 14:15:19 -05:00
Chris Michael 49e645d695 ecore-evas-wayland: Properly cleanup ecore_wl2 during error
If we fail to connect to an existing wayland display, then we should
properly cleanup (call ecore_wl2_shutdown) before exiting

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2015-12-04 11:40:54 -05:00
Chris Michael 04a4b599ab ecore-evas-wl: Cleanup creating a wayland canvas
Unsure where all these extra display_connect calls came from, but
remove them.

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2015-12-04 11:36:15 -05:00
Chris Michael 9f1eb3e021 ecore-evas-wayland: Use proper Ecore_Wl2 window functions
To get the proper maximized and fullscreen states, we should be using
the ecore_wl2_window functions, not the ecore_wl_window functions

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2015-12-03 14:55:42 -05:00
Mike Blumenkrantz 9c26f9311c ecore-evas wayland: enforce frame/state change triggering before move/resize
if a state change occurs on the ee, related callbacks must be run prior to
performing any resizes in order to ensure that the correct csd sizes are
calculated

@fix

ref T2841
2015-12-03 12:07:45 -05:00
Chris Michael 64a65f42a3 ecore-evas-wl: Fix issue of resize jumping
Summary: When an initial client application was shown and we tried to
resize it, the resize would jump by the amount of framespace. This was
because the xdg_surface@configure event would be sending window
geometry as the width/height params in the event. We need to account
for that in the callback of window configure and adjust size
accordingly.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:07:45 -05:00
Chris Michael caa1b4323b ecore-wl2: Port Ecore_Evas engines to use Ecore_Wl2 code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:07:20 -05:00
Chris Michael 116a0abf93 ecore-evas-wl: Fix issue of improper window geometry
This fixes an issue where maximizing a window would set improper xdg
surface window geometry. We receive window configure sizes based on
xdg surface window geometry, so we need to subtract framespace there
or else window size grows when maximizing/unmaximizing multiple times.
This also adjusts the call to xdg_surface_set_window_geometry to
account for framespace (Fixes T2842).

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:05:49 -05:00
Mike Blumenkrantz d4dcd026f4 ecore-evas wayland: use correct values when updating wayland window size
by using the geometry from after the request size has been updated,
scenarios such as the following can be avoided:

[4208305.332] xdg_surface@46.set_window_geometry(0, 0, 1778, 1)
[4208305.370] xdg_surface@46.set_window_geometry(0, 0, 1778, 250)

@fix
2015-12-03 12:05:49 -05:00
Chris Michael 50411563aa ecore-wl2: Fix calling wl_surface_frame with proper Ecore_Wl2 window
frame

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:05:49 -05:00
Chris Michael 5ab650bf27 ecore-evas-wl: Fix ecore-evas wl common code due to botched rebase
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:05:01 -05:00
Chris Michael 7ae6c7d11d ecore-wl2: Port Ecore_Evas engines to use Ecore_Wl2 code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:05:01 -05:00
Mike Blumenkrantz 28a782283a ecore-evas wayland: enforce frame/state change triggering before move/resize
if a state change occurs on the ee, related callbacks must be run prior to
performing any resizes in order to ensure that the correct csd sizes are
calculated

@fix

ref T2841
2015-12-03 12:05:01 -05:00
Chris Michael 1b156a4b08 ecore-evas-wl: Fix issue of improper window geometry
This fixes an issue where maximizing a window would set improper xdg
surface window geometry. We receive window configure sizes based on
xdg surface window geometry, so we need to subtract framespace there
or else window size grows when maximizing/unmaximizing multiple times.
This also adjusts the call to xdg_surface_set_window_geometry to
account for framespace (Fixes T2842).

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:05:01 -05:00
Mike Blumenkrantz 5b755a95c5 ecore-evas wayland: use correct values when updating wayland window size
by using the geometry from after the request size has been updated,
scenarios such as the following can be avoided:

[4208305.332] xdg_surface@46.set_window_geometry(0, 0, 1778, 1)
[4208305.370] xdg_surface@46.set_window_geometry(0, 0, 1778, 250)

@fix
2015-12-03 12:05:01 -05:00
Chris Michael ebc629375d ecore-evas-wl: Fix bad merge
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:05:01 -05:00
Chris Michael 123ac16eb7 ecore-wl2: Fix calling wl_surface_frame with proper Ecore_Wl2 window frame
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:05:01 -05:00
Chris Michael adf555660c ecore-evas-wl: Fix ecore-evas wl common code due to botched rebase
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:05:01 -05:00
Chris Michael 9e83ddbc48 ecore-wl2: Port Ecore_Evas engines to use Ecore_Wl2 code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:05:01 -05:00
Mike Blumenkrantz 787beec627 ecore-evas wayland: enforce frame/state change triggering before move/resize
if a state change occurs on the ee, related callbacks must be run prior to
performing any resizes in order to ensure that the correct csd sizes are
calculated

@fix

ref T2841
2015-12-03 12:05:01 -05:00
Mike Blumenkrantz 4aba5758f9 ecore-evas wayland: use correct values when updating wayland window size
by using the geometry from after the request size has been updated,
scenarios such as the following can be avoided:

[4208305.332] xdg_surface@46.set_window_geometry(0, 0, 1778, 1)
[4208305.370] xdg_surface@46.set_window_geometry(0, 0, 1778, 250)

@fix
2015-12-03 12:03:57 -05:00
Chris Michael 684429099e ecore-wl2: Change name of ecore_wl2_window_class_name_set function
It makes more sense to have this function be called
ecore_wl2_window_class_set.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael 0dd9ae831c ecore-evas-wl: Fix issue of resize jumping
Summary: When an initial client application was shown and we tried to
resize it, the resize would jump by the amount of framespace. This was
because the xdg_surface@configure event would be sending window
geometry as the width/height params in the event. We need to account
for that in the callback of window configure and adjust size
accordingly.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael ea371c88fc ecore-evas-wl: Update frame callbacks to use Ecore_Wl2
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael 7f8b269c3e ecore-evas-wayland: Fix error message for connect failures
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael 232dfd355d ecore-wl2: Fix calling wl_surface_frame with proper Ecore_Wl2 window
frame

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael c092941be8 ecore-evas-wl: Use ecore_wl2_display_window_find function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael f444bf45f5 ecore-evas-wl: Fix ecore-evas wl common code due to botched rebase
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael da2990b414 ecore-evas-wl: Fix calls to ecore_wl2_window_resize (due to botched
rebase)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael def834380b ecore-evas-wayland: Comment out calls to set custom animator
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 2b19919c90 ecore-evas-wayland: Fix issue of using wrong structure for mouse
events, and bring back function to listen for window configure events

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 0a9861c6aa ecore-evas-wayland: Re-enable interface functions for window get and
type set

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael cd1d9ec196 ecore-wl2: Port Ecore_Evas engines to use Ecore_Wl2 code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Mike Blumenkrantz 3b139fe0f1 ecore-evas wayland: enforce frame/state change triggering before move/resize
if a state change occurs on the ee, related callbacks must be run prior to
performing any resizes in order to ensure that the correct csd sizes are
calculated

@fix

ref T2841
2015-11-17 18:21:11 -05:00
Chris Michael d34ad18f30 ecore-evas-wl: Fix issue of improper window geometry
This fixes an issue where maximizing a window would set improper xdg
surface window geometry. We receive window configure sizes based on
xdg surface window geometry, so we need to subtract framespace there
or else window size grows when maximizing/unmaximizing multiple times.
This also adjusts the call to xdg_surface_set_window_geometry to
account for framespace (Fixes T2842).

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-11-17 13:51:19 -05:00
Mike Blumenkrantz 69a8de59b0 ecore-evas wayland: use correct values when updating wayland window size
by using the geometry from after the request size has been updated,
scenarios such as the following can be avoided:

[4208305.332] xdg_surface@46.set_window_geometry(0, 0, 1778, 1)
[4208305.370] xdg_surface@46.set_window_geometry(0, 0, 1778, 250)

@fix
2015-11-13 15:11:22 -05:00
Chris Michael 60f5b43deb ecore-evas-wl: Ignore step size when maximizing
Summary; This fixes an issue where maximizing efl/elm apps in Weston
and in Enlightenment would cause extra space to be left around the
window.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-30 15:12:41 -04:00
Chris Michael 329832bb80 ecore-evas-wayland: Fix formatting
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-30 09:28:10 -04:00
Mike Blumenkrantz b6af7f9b82 ee-wayland: remove attempt to optimize canvas resizing
in the case of operations which change framespace, rejecting resizes
at this point will cause the canvas to fail at resizing and result in a
partially-rendered canvas; the real canvas geometry must be calculated by
running the entire function in order to determine whether the resize is valid

fixes toggling borderless state of windows
2015-10-21 14:11:00 -04:00
Mike Blumenkrantz a347a47e75 ee-wayland: use frame callbacks exclusively to determine render timing
when running in a wayland compositor, the ideal mode of operation is to
only prepare/send frames when the compositor has finished with the previous
frame

to achieve this, manual rendering can be toggled upon creating and completing
a frame callback, ensuring that a canvas never has multiple pending buffers at
any given time

fix T2784
2015-10-20 16:57:05 -04:00
Mike Blumenkrantz ef89bfbbed ecore-evas-wayland: add frame callback listener during render
when a render occurs, frame callbacks must be managed in order to ensure
successful rendering for future frames. the best place to do this is in the
engine here, since this is the lowest-level place which has access to both
the wl_surface as well as the evas rendering state

ref T2784
2015-10-16 15:55:40 -04:00
Chris Michael e7211c1517 ecore-evas-wayland: Don't use custom animators for frame callbacks
Summary: As we now have per-window timer-based animators in
ecore_wayland for frame callbacks, we no longer should be using Custom
animators to handle surface frame callbacks

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 14:56:17 -04:00
Chris Michael febae611a7 ecore-evas-wayland-egl: Fix clang warning about extra parentheses
@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 09:39:52 -04:00
Chris Michael b71410972e ecore-evas-wayland: Trap for subsequent resize events
Summary: If we have already resized this ecore_evas to be what we
want, then there is no point in running the below resize code as we
should already be at the requested size. Add a test at the beginning
to see if we have already set these values

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-12 14:08:12 -04:00
Chris Michael dbebfc505a ecore-evas-wayland: Fix common window configure callback to not adjust
for framespace

Summary: As we have already adjusted for framespace in various code
leading up to a configure callback, don't adjust for it here. This
fixes an issue where xdg surface window geometry would get incorrect
values which were including framespace. The values of the
xdg_surface_set_window_geometry should be Just the geometry of the
visible window.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-12 10:59:33 -04:00
Chris Michael 6b943ffa70 ecore-evas-wayland: Don't resize ecore_wl window to include frame size
Summary: ecore_wl_window_resize adjusts the internal representation of
the window size so this should not include the "framespace" also. This
fixes an issue where xdg surface would be getting an incorrect window
geometry which included framespace.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-12 10:58:00 -04:00
Chris Michael 210c6b9b7c ecore-evas-wayland: Set ee->draw_ok appropriately based on visibility
Summary: A previous code change to the common code which processes
updates is relying on having the ecore_evas->draw_ok flag set in order
to process updates. This change makes sure that ee->draw_ok is in sync
with canvas visibility.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-08 16:10:53 -04:00
Chris Michael 295bfd7df6 ecore-evas-wayland-shm: Check for fullscreen and override windows when
processing updates

Summary: When processing render updates, we should be checking if the
Ecore_Evas "should be visible" property is set.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-08 13:37:30 -04:00
Chris Michael bce8a82268 ecore-evas-wayland-egl: Add support for custom Ecore_Wl animator
Summary: This adds support for ecore_wl to handle ecore animators and
thus the egl engine can receive frame callbacks now.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-05 13:53:36 -04:00
Chris Michael 65578034ef Add experimental implementation of custom animator ticks
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-08-20 14:21:02 -04:00
Chris Michael 9c432ca590 ecore-evas-wayland: Remove unused variable
Summary: As we no longer need the wdata here (see previous commit), we
can remove the usage of this variable

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-30 15:30:36 -04:00
Chris Michael 82de5a66d7 ecore-evas-wayland: Remove call to ecore_wl_window_update_location
Summary: This function should really not be called here as it triggers
an xdg_surface_set_window_geometry call which (in turn) should only be
getting called when the window geometry (meaning visible region)
itself has changed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-30 15:17:57 -04:00
Chris Michael 5f8f87df3d ecore-evas-wayland: Set wl_display in the evas engine structure
Summary: This sets the wl_display field of the Evas engine info
structure so that the wl_display can later be used for dispatching
queue while we await a free buffer

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-30 14:42:14 -04:00
Chris Michael 7745189b0a ecore-evas-wayland-shm: Remove duplicated code on configure event
Summary: As we end up calling ecore_evas_wl_common_resize anyway,
there is no need for all these size calculations in the configure
callback. The resize function will deal with this anyway.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-28 15:28:17 -04:00
MinJeong Kim 2cf0ed49ce ecore_evas_wayland: prevent duplicated shutdown of ecore_wl
Summary:
When the ecore_evas of wayland_egl/shm is freed with ecore_evas_free(),
ecore_wl_shutdown() is called by _ecore_evas_wl_common_free().
so ecore_wl_shutdown() after ecore_evas_free() has to be skipped.
@fix

Reviewers: devilhorns, raster, zmike, gwanglim

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2503
2015-05-14 07:55:24 -04:00
Cedric BAIL ce5ccfb5be ecore: remove the need to order the header correctly for Windows. 2015-05-07 09:53:10 +02:00
Chris Michael 5754e8ccc5 ecore-evas-wayland: Fix issue of setting NULL cursor object
Summary: If we are calling ecore_evas_object_cursor_set with a NULL
object, then we need to inform the ecore_wayland window that we no
longer have a cursor surface.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-04 12:38:56 -04:00
MinJeong Kim f485d5ffdd ecore-evas-wayland: remove duplicated shutdown of ecore_evas_wl_common
Summary:
 After a creation for ecore_evas_wayland_shm or ecore_evas_wayland_egl is
failed, _ecore_evas_wl_common_shutdown() gets called 'twice'.

 First shutdown is from _ecore_evas_wl_common_free() which is set as fn_free()
of ecore_evas engine, and this fn_free() is called by ecore_evas_free().
 Second is from direct call inside ecore_evas_wayland_shm_new_internal()
(or ecore_evas_wayland_egl_new_internal()).
 This duplicated shutdown causes block of first next _ecore_evas_wl_common_init
because init count is not zero but -1.

 So second shutdown should be removed so that it makes enable fall back to
another wayland engine correctly when one is failed to create ecore_evas_wayland.

@fix

Reviewers: gwanglim, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2451
2015-04-30 11:31:19 -04:00
Tom Hacohen 5b5b7113b7 Ecore_evas wayland: remove double parenthesis around comparison.
Double praenthesis should be used around assignments, not comparisons.
Doing this correctly all aronud lets the compiler warn us about potential
mistakes.
2015-04-22 13:13:21 +01:00
Chris Michael b55a24727a ecore-evas-wayland: Remove frame callbacks from Ecore_Evas wayland
engine

Summary: Frame callbacks are now handled inside the engine itself and
are thus not needed here anymore

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-17 15:50:56 -04:00
Mike Blumenkrantz 07a6d138a9 ee-wl should probably clamp configure event resize to output size for fs wins
fs configures are 0x0, so reuse existing output size here to get accurate sizes
2015-03-04 16:49:19 -05:00
Mike Blumenkrantz 7171135792 ecore evas should not crash when unsetting pointer
ref D812

disappointed.jpg
2015-02-06 17:54:08 -05:00
Mike Blumenkrantz 6a934f703c ee engines should not crash when re-setting the same title/name_class
@fix
2015-01-22 14:39:10 -05:00
kabeer khan 9bf76ddc8a ecore_evas/wayland_egl: Set alpha of ecore_evas object if parent alpha is set
Summary:
Resolved FIXME ecore_evas_wayland_egl_new_internal to set alpha if parent alpha is set

@fix

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

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1861
2015-01-09 13:24:03 -05:00
Chris Michael 9e485439d7 ecore-evas-wayland: Port fix of min/max size calculations to the
configure event handler

Summary: This patch ports the fix for windows without a min/max size
being set over to the configure event handler (which was also not
taking into account the fact that Some windows may Not have a min/max
property set on them.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-09 09:42:43 -05:00
Chris Michael bf9c5873fb ecore-evas-wayland: Fix min/max size calculations
Summary: This fixes an issue for windows which do not set a min or max
size in the properties. This was discovered when running Enlightenment
in a Wayland-Only scenario, and trying to bring up the settings panel
which would cause an endless loop in calculating the proper window
size due to min/max not being set.

@fix

NB: Thanks to Mike for the help in tracing this ! :)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-07 14:50:00 -05:00
Chris Michael d136391108 ecore-evas-wayland: Fix formatting
Summary: no functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-07 14:50:00 -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 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
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
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
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
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
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
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 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 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
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
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
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
ChunEon Park f111c8da6d ecore - clean up code.
fix indentation and use Eina_Bool instead of char.
2014-01-11 18:19:43 +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
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
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 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
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