Commit Graph

99 Commits

Author SHA1 Message Date
Chris Michael 9b76c284c9 ecore-wl2: Add API to set if a window should skip focus
Small patch to add an API function which can be called to set if a
window should skip focus.

"#divergence"

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-15 10:32:25 -04:00
Chris Michael 1d453eece4 ecore-wl2: Free auxiliary window hints when we destroy a window
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-13 12:57:24 -04:00
Chris Michael 3e1ad4d45a ecore-wl2: Add event and structure for auxiliary hints
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-13 12:57:17 -04:00
Chris Michael b1584c9054 ecore-wl2: Add API to set window available rotations
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:30:41 -04:00
Chris Michael 8b685a4d54 ecore-wl2: Add API to set window preferred rotation
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:30:41 -04:00
Chris Michael c23a0d080d ecore-wl2: Add API to set if an application has rotation a window
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:29:25 -04:00
Chris Michael 8f9163aaa1 ecore-wl2: Add API function to set if wm rotation is supported
Small patch to add an API function which can be called to set if
window manager rotation is supported.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:29:25 -04:00
Mike Blumenkrantz fbe5ff0104 ecore-wl2: implement compose keys
@feature

ref T5006
2017-05-26 16:27:42 -04:00
Mike Blumenkrantz f4ad162eef ecore-wl2: remove ecore_wl2_window_input_get()
this function does not make sense within the context of wayland and seats,
since a surface does not own and is not owned by a seat, nor is there a 1:1
association between surfaces and seats
2017-05-19 13:17:30 -04:00
Mike Blumenkrantz 7caf3b88ce ecore-wl2: add ecore_wl2_window_popup_input_set()
this is a function for explicitly setting the seat which will be used
for popup grabs

@feature
2017-05-19 12:41:17 -04:00
Mike Blumenkrantz 55cfc97455 wayland: send focus in/out events when receiving/losing keyboard focus
since this is typically what efl defines as "focus"

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

@fix
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 44f22a250e ecore-wl2: split data offers into selection and drag
these are distinct objects and can coexist simultaneously; a drag
source should not overwrite an existing selection source

@fix
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 8afe0a7a6c ecore-wl2: store names for inputs and add api for retrieving name
@feature
2017-05-12 12:08:25 -04:00
Derek Foreman e1ffb46a0e ecore_wl2: Remove wl_shell client support
We're never going to encounter a compositor without at least xdg v5
support, so remove wl_shell support.
2017-03-09 12:21:08 -06:00
Chris Michael dfb2af6974 ecore-wl2: Ensure we only bind one wayland shell
This patch adds prioritizing to our wayland shell binding code so that
we only bind One shell that the compositor advertises. During the
global_add callback, the shells get added to the 'globals' hash, and
when sync is done, we will search for shells to bind based on priority
so that we can ensure we always bind to the latest supported shell.

ref T5226

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-28 12:17:02 -05:00
Chris Michael 4b2188103d ecore-wl2: Don't send focus in/out events based on keyboard enter/leave
We should not be sending focus events based on keyboard behaviour, but
rather send them according to xdg shell activate status. This makes
our focus behaviour more "standards" compliant.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-08 11:54:07 -05:00
Derek Foreman f162f47297 ecore_wl2: Auto generate www protocol
Needed to copy the protocol file from Enlightenment.
2017-01-18 13:04:48 -06:00
Derek Foreman 2aa8b5acad ecore_wl2: Auto generate teamwork protocol
The name was non-standard and we didn't have the xml in tree,
xml has been copied from Enlightenment.
2017-01-18 13:04:48 -06:00
Derek Foreman 5b25ff3281 ecore_wl2: Auto generate xdg v6 protocol
Mostly trivial, needed to update private header as we'd used a
non-standard name for our generated copy.
2017-01-18 13:04:47 -06:00
Derek Foreman 50883f7a6f ecore_wl2: Auto generate xdg v5 protocol
Remove our generated copies, also rename the XDG_VERSION macro
so it's not quite so confusing now that we support v5 and v6.
2017-01-18 13:04:47 -06:00
Derek Foreman dc84374d45 ecore_wl2: Remove private copy of subsurface protocol
This became core wayland functionality a long time ago, and we
now depend on wayland new enough to have it, so we should never
need the stale copy we had in tree.
2017-01-18 13:04:47 -06:00
Derek Foreman 26ec54c169 ecore_wl2: Auto generate session-recovery protocol
Check in the latest session-recovery xml and remove the checked
in generated files.
2017-01-18 13:04:47 -06:00
Chris Michael 101c772412 ecore-wl2: Add flag to indicate pending configure
With the change to xdg_shell v6 we need to indicate that a window has
a pending configure event, and not show the window if a configure is
pending. In order to handle this, we add a flag to the window
structure and can check it inside ecore_evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-10 11:27:10 -05:00
Derek Foreman 8328d4db89 ecore_wl2: Remove the rest of the cursor frame callback
Oops, I made a clean spot, now I need to clean up the rest of this.

ref 641dfab516
2017-01-05 13:40:31 -06:00
Chris Michael d86b296813 ecore-wl2: Add support for xdg shell version 6
This patch adds support (client-side) for xdg_shell version 6.
Enlightenment is currently using this version as it's desktop shell,
so we need to support it client-side also.

fixes T4998

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-04 14:25:18 -05: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
Mike Blumenkrantz b4740389f9 ecore-wl2: restore previous session recovery behavior on hide
ref 9492ee21df
2016-12-14 11:44:13 -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 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
Chris Michael f5da8d2068 ecore-wl2: Remove erroneous cursor structure from Ecore_Wl2_Pointer
These fields in Ecore_Wl2_Pointer were never used, so remove them.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-10-26 11:01:13 -04:00
Chris Michael eeb4ce879d ecore-wl2: Remove usage of pointer update timer
As we are no longer using X pointer images, we no longer have the need
for an Ecore_Timer to update any animated X images so remove.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-10-26 11:01:13 -04:00
Chris Michael 2166ae6377 ecore-wl2: Remove cursor field from window structure
Remove the const char *cursor field from the window structure as this
is useless. It was never used for any real functional purpose.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-10-26 11:01:12 -04:00
Chris Michael a80d4ef5a5 ecore-wl2: Remove usage of libwayland-cursor
This commit removes usage of libwayland-cursor inside Ecore_Wl2
library. This is done so that EFL Wayland applications can use EFL
mouse pointers and not look ugly :)

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-10-25 14:22:07 -04:00
Chris Michael 3a44b0fd17 Revert "ecore-wl2: Remove all references to wl_cursor usage"
This reverts commit 173fda5c11.

Reverting this as we need to handle mouse pointers a different way.
2016-10-25 11:07:32 -04:00
Chris Michael 173fda5c11 ecore-wl2: Remove all references to wl_cursor usage
This commit essentially removes the ability to use wl_cursor for EFL
Wayland Client Applications. This is a request from "some old man" ;)
for efl wayland applications to use EFL pointers, not X/FDO pointers.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-10-21 15:32:47 -04:00
Mike Blumenkrantz ed743dddf0 ecore-wl2: add internal window flag for determining if opaque/input have been set 2016-10-07 11:00:08 -04:00
Marcel Hollerbach 5884bba096 ecore_wl2: introduce offer api
This commits adds api to deal with wayland offers.
It also ports elm_cnp to use the new api.

The selection_get and dnd_drag_get calls are replaced by simply receive
data from the offer.

The Offer object is now also emitted in every Enter,Motion,Drop and
Leave event, so a potential user can prefetch data and display it.
To finish a dnd operation positiv, the user has to call the finish call
before the offer is destroyed
2016-09-23 11:15:14 +02:00
Marcel Hollerbach 7d6fd10523 ecore_wl2: save action of data source in seperated field
the drag.source is only available if the drag is happing inside the same
client.

So for the case there are two efl apps (A,B) , where A started the dnd and
the B is currently entered by the dnd, then A has the data source, and B
has the offer, if B sets a action on the offer A tried to set it on a
field which does not exist there, this fixes that. It saves the action
to a undepended field.
2016-09-23 11:14:41 +02:00
Marcel Hollerbach 348f6b428a ecore_wl2: be compatible with x input
This commit introduces a new state per input, this state is just for the
keymap and no modifieres, the state is used to get the keysym from a
keycode. This is done to stay compatible with x since keyname in efl is
the characters which are describing the key which is pressed, without
the transformation of shift etc.

This also escapes keycodes from beeing a utf8 character, and passes out
a keyname instead of the utf8 symbol.

fix T3976
fix T4184
2016-07-21 22:10:54 +02:00
Marcel Hollerbach c300678391 ecore_wl2: buffer reading of the data
Otherwise callbacks can go out even if the selection data is not ready
to read.
2016-07-11 11:02:52 +02:00
Marcel Hollerbach cf5a79ea60 ecore_wl2: delay the destruction of the offer or do it in the read 2016-07-11 11:02:52 +02:00
Marcel Hollerbach 5ce3c4a049 ecore_wl2: Fix dnd breakage when focus leaves window
Summary:
If dnd in the same window is activated, the focus goes away from the
ecore_wl2 window to the dnd window, after that focus.pointer is NULL.
After focus.pointer is NULL ev->win of all the events will be 0 which
breaks dnd-motions, drop and end.

With prev_pointer beeing the last focused window, we can simply set this
window as event window. After that dnd with jesus works perfectly.

@fix

Reviewers: devilhorns

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4093
2016-06-27 11:32:18 -04:00
Derek Foreman a4f64d6fcb ecore_wl2: Fix keyboard repeat handling
Recent timer changes broke keyboard repeat under wayland - while that
will probably be fixed shortly, this should be more robust and
more accurate anyway.
2016-06-09 12:43:50 -05: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
Thiep Ha aa0ace21d7 ecore wayland: add selection type
We have copy & paste and drag & drop selection types, but we cannot
distinguish between these two types when requesters receive data
from data ready event.
This patch adds a new enum to help selection requesters distinguish
between two selection types and have suitable actions for each type.
2016-05-03 17:13:47 +00:00
Chris Michael 98e8183b1b ecore-wl2: Port session recovery protocol to work with Ecore_Wl2
This patch ports the existing session recovery protocol from
Ecore_Wayland so that it is used inside Ecore_Wl2.

@feature

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-04-22 09:32:45 -04:00
Mike Blumenkrantz 74ed3fbe74 ecore-wl2: use fd handler for receiving selection data
not sure what trac ticket was referenced here, but probably the issue was
not using ecore_main_fd_handler_file_add()
2016-04-21 13:58:45 -04:00
Mike Blumenkrantz 19239b9251 ecore-wl2: update wl dnd/clipboard support to v3 of protocol
this code is mostly copied from weston:
78d4bf9a3ec990dceee23fd53962a69891352a0e
9c93179023fe894e417ccd20533d72d672d976fc

credit to Carlos Garnacho <carlosg@gnome.org> as original author

fix T3455

@feature
2016-04-21 13:58:45 -04:00