Commit Graph

614 Commits

Author SHA1 Message Date
Jean Guyomarc'h 84bbe500c5 ecore_cocoa: replace Ecore_Cocoa_Window_Id by Ecore_Cocoa_Object
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:56:16 -08:00
Carsten Haitzler 59d32121d6 ecore evas: remove printfs
forgot i still had them (wa stestign wayland with no printfs in it)
2016-02-20 23:12:17 +09:00
Carsten Haitzler ab31424ea6 ecore evas: fix configure request queue count to only count changes
we counted more requests outstanding than actually existed for x11 as
we sometimes sized to the SAME size or position. this keeps that
number more correct only incremeting outstanding count if we change.

@fix
2016-02-20 23:09:03 +09:00
Derek Foreman d53e1d6748 ecore_evas_drm: enable pointer warping
Use ecore_drm_device_pointer_warp() to warp the pointer
2016-02-18 15:50:16 -05:00
Jean-Philippe Andre 2405c93f2c Evas engines: Add missing initializers in Ecore_Evas_Engine_Func 2016-02-03 14:51:57 +09: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
Jean-Philippe Andre 4d4e6fd4b1 ecore_evas_extn: Add safety checks, fixing a crash in elm_test
See T2835 (my crash was different from the one reported).

The buffer may be initialized after the first render_pre, due to
whatever timing issue. Check in elm_test "Window Socket" and then
open several "Window Plug".

@fix
2016-01-25 16:02:49 +09:00
Chris Michael 479bf37aec ecore-evas-drm: Cleanup drm outputs during shutdown
As we no longer cleanup outputs inside the ecore_drm_device_free
function (see previous commit), we should be cleaning up outputs here
as they are created during the _ecore_evas_drm_init function.

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-01-21 09:24:06 -05:00
Derek Foreman 943f2df006 ecore_drm/ecore_wl2: logging: remove errant usage of %m
Summary:
printf %m stringifies and prints errno.  I've tried to remove its use
anywhere that the immediately preceding function might not set errno
or is a complicated function for which knowing errno doesn't really
give any useful information.

I've left a few of the drmMode calls because they're just wrappers
around ioctl, which legitimately sets errno.

@fix

Reviewers: zmike, devilhorns

Reviewed By: zmike, devilhorns

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3572
2016-01-14 13:06:02 -05: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
Jaehyun Cho 91d9e7f83c Revert "ecore_cocoa: add support for system cursors"
This reverts commit 4623d57762.
This commit is duplicated with 2c93c73cbd.
2015-12-11 14:28:33 +09: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
Vincent Torri 0497b9685c efl: add binary mode to open() calls
This allows better compatibility with Windows

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-05 21:06:04 +01: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
Jean Guyomarc'h 4623d57762 ecore_cocoa: add support for system cursors
- Ecore_Cocoa_Cursor enum which references system cursors;
- API to show/hide cursor: ecore_cocoa_window_cursor_show();
- API to set system cursor: ecore_cocoa_window_cursor_set();
- Ecore_Evas interface to get Ecore_Cocoa_Window from Ecore_Evas.

@feature

Signed-off-by: Cedric BAIL <cedric@osg.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
jiin.moon 91ba12fed9 ecore_evas: fix disappearing socket image
Summary:
In case there is connection between a server and some client,
show/hide does not work properly.

If there are clients need to show,
this patch make it hide operation will not work even if get the hide signal

@fix

Reviewers: jypark, Hermet, cedric

Subscribers: Hermet, cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-02 14:22:38 -08:00
Jean Guyomarc'h 2de19485ac ecore_evas_cocoa: factorize code
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:32 -08:00
Jean Guyomarc'h eba4ff041a ecore_evas_cocoa: remove dead code
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:32 -08:00
Jean Guyomarc'h 1ab2b14cfb ecore_cocoa: remove ECORE_COCOA_EVENT_EXPOSE
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:32 -08:00
Jean Guyomarc'h e8fe721cd5 ecore_evas_cocoa: focus: handle ignore_events
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:31 -08:00
Jean Guyomarc'h 566184078a ecore_evas_cocoa: don't reset the init count if negative
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:31 -08:00
Jean Guyomarc'h 09d6dc2775 ecore_evas_cocoa: use Eina macro to determine the size of a static array
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:31 -08:00
Jean Guyomarc'h cbc989a0cb ecore_evas_cocoa: don't shutdown ecore_event_evas() twice
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:31 -08:00
Jean Guyomarc'h dccec92ecb ecore_evas_cocoa: EAPI cannot be set for WIN32
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:31 -08:00
Jean Guyomarc'h ca171d59ec ecore_evas_cocoa: remove dead code
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:31 -08:00
Jean Guyomarc'h 2c93c73cbd ecore_cocoa: add support for system cursors
- Ecore_Cocoa_Cursor enum which references system cursors;
- API to show/hide cursor: ecore_cocoa_window_cursor_show();
- API to set system cursor: ecore_cocoa_window_cursor_set();
- Ecore_Evas interface to get Ecore_Cocoa_Window from Ecore_Evas.

@feature

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:31 -08: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 85b04c188a ecore-evas-drm: Send fake mouse_move event after registering
This fixes an issue where ecore_drm was sending an initial mouse_move
event too early in the startup process. Instead, we will send the
event from Ecore_Evas after it has been registered with Ecore_Input.
This is done here to address and Fix T2854.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-11-17 15:55:41 -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 2a7d4d62db ecore-evas drm: null global device pointer after free
ref T2844

@fix
2015-11-16 14:11:18 -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
Stefan Schmidt eb78bb2d24 ecore_evas x engine: use Eina_Bool for one-bit bitfield
Make sure we are using a unsigned var here. Best go with a Eina_Bool directly.
2015-11-13 13:31:34 +01:00
Nicolas Aguirre aab530e347 ecore_cocoa/evas_gl_cocoa: fix indent, remove printf, and add DBG messages
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 10:42:34 -08:00
Chris Michael b8ebd5b356 ecore-evas-gl-drm: Don't create software dumb buffers when using gl
Summary: If we are rendering using gl_drm, then we don't need to be
creating extra software dumb buffers.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-11-04 09:43:35 -05:00
Chris Michael 444926923f ecore-evas-drm: Use GBM_FORMAT_XRGB8888 when creating new canvas
Summary: With linux kernels >= 4.2.x, we need to use
GBM_FORMAT_XRGB8888 when creating a new canvas else we end up with a
format mismatch when trying to add the framebuffer

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-11-02 09:30:19 -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
Nicolas Aguirre e9c2d07696 ecore_evas_cocoa: use the same render function as ecore_evas_x
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-13 15:40:00 -07: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
Carsten Haitzler 6a90df70bf ecore-evas x - solve internal window size flickrs in e
so there is an issue that e brings out where configure events get
queued and deferred AND e ends up requesting a new size, but new size
is wrong as its read from an old event (requested size is updated) and
in the end ecore-evas doesnt request the actual new size because
current w/h is "the same" even though it isn't... bah - it's complex
and a self-feeding event issue. just doing the move/resize solves it.

@fix
2015-10-09 13:06:20 +09: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 49442d5615 ecore-evas-gl-drm: Disable async rendering for EGL
Summary: Disable async rendering for EGL engine as EGL is sync only.
This fixes gl_drm engine to work (in my tests) using ecore_evas
example apps.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-06 09:39:36 -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
Tom Hacohen f48a420886 Ecore win32: Fix compilation.
Broke in commit 015040d13f.
Please compile check before pushing.
2015-09-30 13:22:53 +01:00
ChunEon Park 015040d13f ecore_win32: fix the mouse out behavior.
Current win32 let the mouse out regardless of mouse down status.
This is not quitely same with the x system so widget behaviors were not properly working.
Make the widget behaviors about mouse-out same to x window system
to keep the same behaviors on all window system always.

@fix
2015-09-30 20:31:30 +09:00
ChunEon Park 882e29b9ae ecore_win32: code refactoring.
replace to ECORE_CALLBACK_PASS_ON from 1 for readability.
2015-09-30 20:28:45 +09:00
Mike Blumenkrantz b209100870 ecore_evas-x11: unset withdrawn flag when showing the ecore evas
while the window map event seemed like a reasonable place to unset
the withdrawn state at the time, studies and further tests have proven
that the direct show callback is even more reasonable and effective

ref T2745
2015-09-25 22:21:25 -04:00
Mike Blumenkrantz e31c703661 ecore_evas-x11: unset withdrawn state when window is mapped
according to ICCCM 4.1.4:
Newly created top-level windows are in the Withdrawn state.
Once the window has been provided with suitable properties,
the client is free to change its state...
...
Only the client can effect a transition into or out of the Withdrawn state

given that no external force can (according to spec) transition a
window out of the withdrawn state, this must be done at a reasonable
point. mapping the window seems like a reasonable point to me.

fix T2745
ref 5954289c6c

@fix
2015-09-25 21:57:37 -04:00
Ji-Youn Park f823d9c2cc ecore_evas_extn: remove old buffer in evas render post function.
Before, ipc_server_data(fd handler callback) is not runned between
evas_render_pre callback and evas_render_post callback.
but after async mode, hd handler can be called between render_pre and render_post.
we should remove buffer which can be used render thread, after render finished
2015-09-23 15:04:02 +08:30
Shinwoo Kim e97d5973e5 ecore_evas_extn: Fix server rendering after restart
Summary:
The server can render, only after the server get the OP_SHOW from the client.
However, if the server relaunches while client is running, the server cannot get the OP_SHOW.
In this case, the client should send the OP_SHOW, when the server is added.

Test Plan: Relaunch a server especially the indicator, while client is running.

Reviewers: raster, cedric, Hermet, woohyun, jaehwan, jypark, jpeg

Subscribers: cedric, seoz

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-09-08 13:50:31 +09: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
jiin.moon 94abb3a422 ecore_evas: Fix crash in async render
Summary:
The root cause of the crash is freed memory.
The evas_object_image_data_set api called with extn buffer in _ipc_server_data.
But there is no inform to render when free this buffer.
@fix

Reviewers: Hermet, jpeg, jypark

Subscribers: stefan_schmidt, cedric

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-08-04 11:59:24 +09:00
Nicolas Aguirre d54ef1d593 Revert "[HACK] ecore_evas_fb: Comments ecore_fb_ts calls that aren't resolved at runtime"
This reverts commit ff5f8a0412.
2015-08-03 14:34:59 +02:00
Nicolas Aguirre 3594b230af Revert "ecore_evas: Adds an eglfs module"
This reverts commit a254725d6d.
2015-08-03 14:34:54 +02:00
Florent Revest ff5f8a0412 [HACK] ecore_evas_fb: Comments ecore_fb_ts calls that aren't resolved at runtime 2015-08-03 14:16:35 +02:00
Florent Revest a254725d6d ecore_evas: Adds an eglfs module 2015-08-03 14:16:35 +02: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
Seunghun Lee b38b349262 ecore-evas-x: resize window when it is rotated by window manager.
Summary:
window manager can send arguments and its meaning as follows.

1) resize:0
it means client window doesn't need to resize its window by rotation.
this case is a ELM_WIN_BASIC window in mobile profile.

2) resize:1, ee->w != w, ee->h != h (deprecated)
it means client window should be resized by rotation, and wm already resize its window.
so, client don't need to resize its window.
it's just for backward compatibility.

3) resize:1, ee->w == w, ee->h == h (addition)
it means client window should be resized by rotation, and wm don't resize it.
so, client should resize its window.

Test Plan: N/A

Reviewers: gwanglim, raster, jypark, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2831
2015-07-29 11:14:11 -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
Seunghun Lee 3adb6127ff ecore-evas-x: fix typo
Test Plan: N/A

Reviewers: gwanglim, raster, jypark, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-07-28 03:05:37 +02:00
Vincent Torri 0ccd43615f Ecore_Evas GDI engine: free module data 2015-07-23 14:05:33 +01:00
Ji-Youn Park 8c66b70aa9 ecore_evas: fix iconified state set bug
if app set iconified state false, ecore evas call activate instead of show.
2015-06-26 19:18:09 +09:00
Carsten Haitzler e90d60f8f5 ecore-evas-extn : map shm for sharing render pixels conservatively
@fix

before we mapped these segmentsa read+write for the user or read+write
for EVERYONE if system. this now creates the file as r+w for the user
and +ro for everyone only IF system, and clients voluntarily map
read-only to avoid possible memory corrupting of pixels from the
client side. not more secure for clients, but nicer. defintiely more
secure for system services.
2015-06-26 17:37:24 +09:00
Chris Michael 7d6b142ca7 ecore-evas-drm: Default to GBM_FORMAT_ARGB8888
Summary: Seems some platforms (my setup here at least) don't have EGL
configs which suppose GBM_FORMAT_XRGB8888, so default to ARGB

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-17 10:19:29 -04:00
Carsten Haitzler 25983dcedd evas render2 work - begin to make rectangles deal with render 2 basic
infra
2015-06-09 17:34:39 +09:00
Chris Michael 35e7d36489 ecore-evas-drm: We don't need to feed mouse events here
@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-05 10:00:45 -04:00
Chris Michael 493e751882 ecore-evas-drm: Use XRGB format for gl_drm canvas
@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-05 10:00:44 -04:00
Chris Michael 39c28cbe8e ecore-evas-drm: Update ecore_evas_drm for recent evas gl_drm changes
Summary: Previous Ecore_Evas drm code would create the gbm device and
surface inside the gl_drm function. As these are now handled inside
the evas-gl-drm engine itself, this code is not needed here.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-05 10:00:44 -04:00
Shinwoo Kim f372eb4b92 [ecore_evas_extn] add function to block mouse event.
Summary: add ecore_evas_extn_socket_events_block_set/get

Test Plan: add mouse event callback, and check whether it could get event or not

Reviewers: raster, woohyun, jaehwan, Sergeant_Whitespace

Reviewed By: Sergeant_Whitespace

Subscribers: Sergeant_Whitespace, seoz, cedric

Differential Revision: https://phab.enlightenment.org/D2268
2015-05-15 16:46:22 +09: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 92fc46cc16 ecore-evas-drm: Fix issue of fullscreen surfaces not getting focus on show
Summary: This fixed T2349 where elm apps would not get initial focus
on show when running via drm. This also addresses the issue of always
sending the state_change event even when not an override.

NB: Thanks to bu5hm4n for reporting ... and even providing a potential fix ;)

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-21 13:44:36 -04:00
Carsten Haitzler 39bbfc3030 ecore_evas extn module - fix coverity complaint
coverity is right. CID 1295139 fixed here. tmpstr_free on sometimes
uninitialized local var.
2015-04-21 10:19:28 +09:00
Chris Michael ea77578ad6 ecore-evas-extn: Use eina_mkstemp in place of mkstemp
Summary: This fixes Coverity CID1039610 'calling mkstemp without
securely setting umask first'. Since we have eina_mkstemp which
already handles creating temporary files in the proper directory,
let's use it.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-20 13:23:47 -04:00
Chris Michael c66275c99b ecore-evas-x: Fix issue of wrong interface function pointer being set
Summary: This fixes Coverity CID1267461 where the pointer to the
interface shape_input_reset function was being assigned multiple
times. It looks like this is just a copy/paste error.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-20 12:58:42 -04:00
Chris Michael f6c5550946 ecore-evas-drm: Use new Ecore_Drm functions to get properties of the output
Summary: This makes use of the newly added Ecore_Drm API functions to
get information about the output so we can setup the Evas engine
properly

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-10 11:09:51 +02:00
Chris Michael 6257127d0c ecore-evas-drm: Setup Ecore_Drm_Device for software rendering
Summary: If we are using the software version of ecore_evas_drm, then
make API call to setup the Ecore_Drm_Device for software rendering.
This creates the dumb buffers on the Ecore_Drm_Device.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-10 11:09:50 +02: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
pierre lamot 59532c7d96 ecore_cocoa: add missing window state functions
implement missing window state functions:

  * raise
  * lower
  * activate
  * iconified_set
  * withdrawn_set
  * move

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-17 10:42:51 +01:00
pierre lamot ca3bd69485 ecore_cocoa: add functions to allow min/max window size
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-17 10:42:51 +01:00
pierre lamot c80f527dbc ecore_evas: rewrite render loop to conform with other engines.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-17 10:42:51 +01:00
pierre lamot 6ea9b476ad ecore_cocoa: release resources on window close event
@fix this patch:

catch the window close event from cocoa and send an ecore event
this event is catched by a handler in ecore_evas wich will
call the registered fn_delete_request (from elementary for instance)

/!\ this patch is currently incomplete and leads to a segv when
closing the last window

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-17 10:42:51 +01:00
Wonsik Jung 25502e37f8 evas_gl: Add feature to set depth/stencil/msaa bit to window surface.
Summary:
When Evas GL runs with direct rendering, it can not set depth, stencil and msaa to Window surface.
This patch is possible to use "option" input paramater of ecore_evas_gl_x11_options_new.
So, new API is not needed.

The other patch is in elementary. The elementary patch will be used this patch.

Test Plan: Test elm gl veiw in elementary_test and JP's test app.

Reviewers: spacegrapher, cedric, raster, jpeg

Reviewed By: jpeg

Subscribers: cedric, mer.kim

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
Note: jpeg changed the original patch a bit (fix style and depth value)
2015-03-16 14:50:56 +09:00
Romain Perier 422178b216 ecore_evas: add support for multiple windows to cocoa backend.
Each new Ecore_Evas was already stored into the evases container, however only
the first one was returned and used from events handler, which is not correct if
the application uses multiple windows. This commit adds support to handle
Ecore_Event_Cocoa_Window event type from event handlers and modify
_ecore_evas_cocoa_match() to find the right Ecore_Evas associated with the window
indentifier passed throught Ecore_Event_Cocoa_Window.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:58 +01: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
Chris Michael da80ee8cc2 ecore-evas-drm: Fix function call to ecore_evas_pointer_xy_get for drm
engine

Summary: This changes the ecore_evas_pointer_xy_get function call (on
drm engine) to use the new ecore_drm_device_pointer_xy_get so we can
center mouse pointer on an output at startup.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-04 11:49:44 -05:00
Mike Blumenkrantz 38f1f9c5f2 ee-win32 probably might compile now
<vtorri> bad Mike !
<vtorri> the name of the function is not good, so compilation fails on Windows
<vtorri> remove 'object' in the name of the definition of the function :)

@fix
2015-02-12 16:21:52 -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
Carsten Haitzler e483d25082 ecore-x - undo api/abi break with input selecting before release 2015-02-04 18:58:48 +09:00
Chris Michael b53e125640 ecore-evas-drm: Fix improper shutdown sequence
Summary: As the launcher code now uses some fields from the
Ecore_Drm_Device, we need to free the device After the launcher has
been disconnected.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:09 -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
Mike Blumenkrantz 836650e364 ecore-evas-x should check itself before it wrecks itself when re-setting the same name/class 2015-01-15 01:30:27 -05:00
Chris Michael bb8b00b956 ecore-evas-drm: Init outputs before inputs so that input devices can
have a pointer to outputs

Summary: In order to limit pointer motion, we need to assign an Output
to each Input device. In order to accomplish that, we need to
initialize Outputs first

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-13 10:35:52 -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
Myoungwoon Kim 10582235c5 ecore_evas_x: Free XCounter values leak.
Summary:
Whenever creating a window via elm_win_add(), save netwm_sync_counter values to edata->netwm_sync_counter
by ecore_x_sync_counter_new().
However, never free the values when a window has been destroyed.
So this patch is for free the values in _ecore_evas_x_free().

@fix

Reviewers: cedric, raster, Hermet, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D1855
2015-01-08 08:35:55 -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 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