Commit Graph

682 Commits

Author SHA1 Message Date
Mike Blumenkrantz 337f3796d6 ecore-evas-wayland: destroy frame callback on hide
ensure cursor surfaces can render again after being hidden

 #TheDisappointer

@fix
2017-07-21 16:17:54 -04:00
Mike Blumenkrantz 93bac8ce4a wayland: stop creating 1x1 surfaces on init
fix T5226

 #IGot99TicketsBut1x1AintOne
2017-07-21 16:17:54 -04:00
Derek Foreman e53b0c262a ecore_evas_drm: Provide a last_tick_get callback
Allow the drm engine to provide a tick timestamp for the previous vblank
interval.

ref T5462
2017-07-13 18:07:42 -05:00
Derek Foreman aa8d9c1829 ecore_evas: Add a function pointer for last_tick_get
Engines that provide their own tickers may need to be able to provide the
time of the last tick even if they weren't sending ticks to EFL at the
time.

This is a feature added during freeze as it's necessary to resolve a bug.

ref T5462
2017-07-13 18:07:42 -05:00
Derek Foreman e69cc0f552 ecore_evas engines: Add some nulls to the func arrays
Purely cosmetic, but gets the comments back in sync with reality.
2017-07-13 18:07:41 -05:00
Derek Foreman d3c10fb1eb ecore_evas_drm: Partially revert "Refuse to start a ticker for a manually rendered canvas"
BAILing here can break animators permanently, so best to just log the
issue and move on (and potentially allow the ticker to wake us from DPMS).

ref T5462

Partially reverts a795629e8c
2017-07-11 16:50:23 -05:00
Derek Foreman a795629e8c ecore_evas_drm: Refuse to start a ticker for a manually rendered canvas
With atomic mode setting this has the hilarious side effect of waking
up the display from dpms.

Attempting to tick when manual render is set is likely a bug, so
log an ERR.

fix T5462
2017-07-10 16:25:59 -05:00
Vincent Torri 937a0d6411 Ecore_Evas win32 module: fix memory leak 2017-07-09 13:34:19 +02:00
Vincent Torri bdb62b6bbe Add ecore_win32_cursor_show() API and ecore_evas_win32_cursor_(un)set() functions
This fixes double mouse cursor in elm entries on Windows (for example)

@feature
@fix
2017-07-09 13:34:09 +02:00
Jean-Philippe Andre 76a668f022 ecore_evas_x: Track changes in framespace size
If the framespace size has changed and by accident (or in fact, by
design) the evas size + framespace size is equal to the size sent
by the X server, ecore_evas_x was skipping the resize event. This
patch adds a tracking of the framespace size so that we redraw the
canvas if it changed.

This will fix issues with the main menu (since it's in the framespace,
23 pixels tall with the default theme & scale).

Note that all this is partly because the ecore evas size is the size
without the framespace, so weird calculations are made during resize...

Ref T5482
2017-07-05 17:43:59 +09:00
Chris Michael 09375bf5b5 Revert "ecore-evas-wayland: Add support for setting window stack mode"
This commit reverts support for setting window stacking mode from
ecore_evas_wayland as per IRC dicussion with cedric

This reverts commit a3cf0d3a54.
2017-06-15 13:08:39 -04:00
Chris Michael a3cf0d3a54 ecore-evas-wayland: Add support for setting window stack mode
This patch adds support for updating ecore_wl2_window stack mode when
the ecore_evas_layer_set is called.

"#divergence"

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-15 11:39:27 -04:00
Chris Michael 8b29ae7609 ecore-evas-wayland: Add support for focus_skip_set
This patch adds support for ecore_evas_focus_skip_set in the wayland
engine.

"#divergence"

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-15 10:42:28 -04:00
Chris Michael 522ee10b45 ecore-evas-wayland: Add support for setting auxiliary hints
This patch adds function pointers to the Wayland Interface that can be
used for supporting auxiliary hints on a given window

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-13 12:57:29 -04:00
Jean-Philippe Andre e8f9f109a6 evas: Rename device Class to Type, remove Sub_Class
1. The word "class" is a pain point with many languages where
   it's a keyword. Type is a little better. Also, the property
   was already named "device_type" and not "device_class".

2. Remove Efl.Input.Device.Sub_Class
   It's not used inside EFL upstream codebase, and unlikely to
   be used anywhere else (even in Tizen).

Hopefully no one used the Efl_ enum types. So far only the Evas_
types should be in used.

Ref T5540
2017-06-12 15:21:55 +09:00
Chris Michael 53bfe00351 ecore-evas-drm: Remove borrowed fourcc_code from source file
As we will now use static_libs/libdrm for building ecore_evas_drm, we
no longer need to include this bit of borrowed four_cc code from libdrm

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 13:47:47 -04:00
Chris Michael cb94befb9d ecore-evas-wl: Add support for Window Manager rotations
This patch adds support to Ecore_Evas_Wayland for Window Manager
Rotations so that window managers which do support rotations are able
to rotate an EFL wayland application.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:30:42 -04:00
Chris Michael d57bdb5fbc ecore-evas-x: Remove blank line
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-08 14:29:02 -04:00
Chris Michael c0458aae38 ecore-evas-wayland: Fix potential null dereference
Quick patch to fix a potential null derefence in render_flush_pre
callback.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-08 10:01:52 -04:00
Chris Michael 0a77b4e922 ecore-evas-wl: Don't check window visibility on raising
As we won't get a request from a server to raise a window which is not
visible anyway, this check is useless.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-07 11:08:48 -04:00
Cedric BAIL f3370549d2 ecore_evas: reuse code by relying on switch case statement fallthrough for key offset case. 2017-06-05 12:07:57 -07:00
Bryce Harrington 2f025184f7 evas: document the wayland ecore_evas constructors
Reviewers: cedric

Subscribers: jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-06-05 12:07:56 -07:00
Bryce Harrington aa9bda8b83 ecore_evas: correct error message reporting incorrect engine name
Summary:
_ecore_evas_wl_common_new_internal() creates both wayland_egl and
wayland_shm backed windows, so reporting that the failure was in looking
up "Wayland_Shm" could be misleading.

Also, this routine can be called with any arbitrary string as
engine_name, so including what was received in the error message might
be helpful for diagnosing bugs.

Reviewers: cedric

Reviewed By: cedric

Subscribers: jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-06-05 12:07:56 -07:00
Mike Blumenkrantz cb18ce4a90 ee drm: null elput device pointer when deleting device 2017-06-02 18:23:42 -04:00
Mike Blumenkrantz 1e6e5047be ee engines: update engines for per-seat cursor objects
ref 5856d3b52f6124ad5b4cfe47b21f28ab6f380002
2017-06-02 18:23:42 -04:00
Mike Blumenkrantz cde843438d ee wayland: only handle events for ee with matching display object
ensure apps with multiple client connections don't mix events from different
connections

@fix
2017-06-02 18:23:42 -04:00
Derek Foreman cc70806497 ecore_evas_drm: Send a spurious pageflip when showing a canvas
This is a quick and harmless hack to make sure we don't come back to a
dead compositor on a vc switch.

A proper fix will follow eventually, I promise.

Really.  Would I lie?
2017-06-02 15:50:09 -05:00
Jean-Philippe Andre 07da746194 drm: Fix build warning (invalid enum type) 2017-05-31 17:48:26 +09:00
Mike Blumenkrantz ed4e54ebe2 wayland/drm: create evas_devices and add device pointer to input events
this is still semi-broken if a seat has many pointer-ish type devices since
pointer devices in ecore-evas were never correctly implemented to be 1:1 with
seat:cursor relationships

@feature
2017-05-26 16:27:43 -04:00
Mike Blumenkrantz 2fe7878235 wayland: move pointer-related functions to ecore_wl2_input namespace
windows do not have pointers or cursors under wayland, seats do. due to
lack of multiseat support, most components simply use the "default" seat
with these functions, but this should make the corresponding code more
easily adaptable
2017-05-19 12:41:17 -04:00
Mike Blumenkrantz 5ebdf8f341 wayland: use shell activated state to indicate focus in csd
the current (v6) xdg-shell spec reads as follows:

	  Client window decorations should be painted as if the window is
	  active. Do not assume this means that the window actually has
	  keyboard or pointer focus.

so this is not equivalent to receiving/losing input focus and should not
be propagated as such

@fix
2017-05-19 12:41:16 -04:00
Mike Blumenkrantz 1bc837c3de ecore-wl2: redo ecore_wl2_window_move() to take a seat instead of coords
this triggers a move operation and is seat-dependent
2017-05-19 12:41:16 -04:00
Mike Blumenkrantz d7d3c9adab ecore-wl2: redo ecore_wl2_window_resize() to take a seat instead of size
this triggers a resize operation and is seat-dependent
2017-05-19 12:41:16 -04:00
Mike Blumenkrantz d0f707ef91 ecore-evas-wayland: do not trigger resize operation when performing rotation
@fix
2017-05-19 12:41:16 -04:00
Mike Blumenkrantz 2c291f5bb8 ee wl engines: set seat id when creating seats 2017-05-19 12:41:16 -04:00
Mike Blumenkrantz 535ceaafd8 ee vnc thingy: set seat id for vnc seat 2017-05-19 12:41:16 -04:00
Chris Michael f160d41539 ecore-evas-wayland: Remove unused variable
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-05-09 11:47:04 -04:00
Vincent Torri 94509a3d86 Ecore_Evas (Win32): add geometry_get() method and fix dpi_get(), using the new API in Ecore_Win32.
This fixes fullscreen feature in Elm on Windows as the geometry of the desktop
was not known.

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

@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-08 15:09:11 -07:00
Cedric BAIL 122c34b2ce ecore_evas: refactor win32 backend to use generic render infrastructure. 2017-05-08 15:04:09 -07:00
Cedric BAIL e541c4f500 ecore_evas: refactor wayland backend to use generic render infrastructure. 2017-05-08 15:03:51 -07:00
Cedric BAIL db1e8e2d92 ecore_evas: refactor sdl backend to use generic render infrastructure. 2017-05-08 15:03:31 -07:00
Cedric BAIL 83513f0933 ecore_evas: refactor psl1ght backend to use generic render infrastructure. 2017-05-08 15:03:10 -07:00
Cedric BAIL 3a5de3c4eb ecore_evas: refactor fb backend to reuse generic render infrastructure. 2017-05-08 15:02:50 -07:00
Cedric BAIL 727b61218b ecore_evas: refactor extn backend to use generic rendering infrastructure. 2017-05-08 15:02:15 -07:00
Cedric BAIL 3fd01561ae ecore_evas: refactor drm backend to use generic render infrastructure. 2017-05-08 15:01:49 -07:00
Cedric BAIL c24d077b6a cocoa: refactor cocoa backend to use generic render infrastructure. 2017-05-08 15:01:30 -07:00
Cedric Bail 73592d4e72 ecore_evas: first step into refactoring x backend. 2017-05-05 17:55:06 -07:00
Cedric Bail 103dfc5ba4 ecore_evas: first step into refactoring wayland backend. 2017-05-05 17:55:06 -07:00
Cedric Bail 11cf280cfa ecore_evas: first step into refactoring win32 backend. 2017-05-05 17:55:06 -07:00
Cedric Bail cc139b70f8 ecore_evas: first step into refactoring sdl backend. 2017-05-05 17:55:06 -07:00