Commit Graph

157 Commits

Author SHA1 Message Date
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 b678382b8a ecore-wl2: Add API to support deleting auxiliary window hints
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-13 12:57:17 -04:00
Chris Michael 8b311aa27f ecore-wl2: Add API function to change auxiliary window hint
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-13 12:57:17 -04:00
Chris Michael daddaac7ec ecore-wl2: Add API to support adding auxiliary window hints
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-13 12:57:17 -04:00
Chris Michael e0454373f8 ecore-wl2: Add API function to get list of supported auxiliary hints
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-13 12:57:17 -04:00
Chris Michael d47538dc0e ecore-wl2: Fix window rotation event structure and various typos
As these events will be raised to ecore_evas_wl and the handlers there
do not pass along the Ecore_Evas as 'data', we need to change the type
of variable passed along in the event struture so that
ecore_event_window_match can be called to find the Ecore_Evas.

This patch also fixes some typos discovered during compile

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:30:42 -04:00
Chris Michael b897780189 ecore-wl2: Add API and Event for window rotation change done
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:30:42 -04:00
Chris Michael 1eaaab93b1 ecore-wl2: Add API and Event for window rotation change request
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:30:42 -04:00
Chris Michael 3087f02ef2 ecore-wl2: Add API and Event for window rotation change prepare done
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:30:42 -04:00
Chris Michael 92d214d8f9 ecore-wl2: Add API and event for window rotation change prepare
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:30:42 -04:00
Chris Michael 9930929dbb ecore-wl2: Add API to return window available rotations
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:30:41 -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 fa7f8d25b2 ecore-wl2: Add API to return a windows preferred rotation
@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 258c75e641 ecore-wl2: Add API to get if an application has set window 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 e12077adfa ecore-wl2: Add API to get if window manager rotation is supported
This patch adds an API function which can be called to determine if
window manager rotation is supported.

@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
Chris Michael 5ee913426d ecore-wl2: Add API function to set surface buffer transform
Small patch to add an API function which can be called to set a buffer
transformation on a given window.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-07 11:09:58 -04:00
Chris Michael 70a345005b ecore-wl2: Add API function to find an output for given window
Small patch which adds an API function that can be used to find the
output where a given window resides.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-07 11:09:58 -04:00
Mike Blumenkrantz f61e2636a5 ecore-wl2: change safety null check to regular null check on surface create
this is a normal case during async init
2017-06-02 18:23: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 13cf5a1d43 ecore-wl2: do not attempt to call zxdg_surface_v6.get_popup without a parent
this is a protocol error so ensure that it can never occur

@fix
2017-05-19 13:17:15 -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 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 704a22d1c9 ecore-wl2: add ecore_wl2_window_activated_get()
this is specifically for returning the shell surface's activation state
which is NOT equivalent to the window having input focus

@feature
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 eb9a5165f4 ecore-wl2: move ecore_wl2_display_inputs_get() into ecore_wl2_display.c 2017-04-21 16:16:12 -04:00
Mike Blumenkrantz fc0c66675e ecore-wl2: create window surfaces immediately when windows are created 2017-04-07 16:06:41 -04:00
Mike Blumenkrantz bc7fb14a9c ecore-wl2: stop setting all windows as toplevels on creation
this is not a valid assumption since toplevel is a shell-specific concept and
it's possible to run a shell which does not implement such windows

@fix
2017-04-07 16:06:40 -04:00
Mike Blumenkrantz cb58baf400 ecore-wl2: CRI when attempting to create a window from a server display object 2017-04-07 16:06:40 -04:00
Derek Foreman 5e7456a315 ecore_wl2: Fix up xdgv6 ack_configures
We've been immediately acking configure with the correct serial number, then
later at commit time sending an incorrect serial (generating a new one).

Remove the extra ack, and save that serial for later, and don't overwrite
it with a current serial when we get a toplevel configure.

Oddly, compositors were letting us get away with this behaviour, so this
probably looks functionally the same as before.
2017-03-09 16:11:56 -06:00
Derek Foreman 4f1c858928 ecore_wl2: Fix initial maximized/fullscreen state
This defers the fullscreen/maximized states if we don't have a shell
surface, and sets them in the first shell surface commit.

ref T5044
2017-03-09 12:21:09 -06:00
Derek Foreman aedf55073a ecore_wl2: Rename badly named API
Oops, I broke naming convention with this, but it's unreleased and beta so
I hope nobody notices as long as I change it now...
2017-03-09 12:21:09 -06: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 927dc167ec ecore-wl2: Remove some debugging printouts
These prints were left over from
5b9374583e and should not have been pushed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-03-07 08:19:26 -05:00
Chris Michael cb39bd158e Revert "ecore-wl2: Send surface_commit after ack_configure"
Reverting this as apparently one source says to send a commit after
ack_configure, and another source says its wrong...

This reverts commit 1187035fe6.
2017-03-01 13:14:50 -05:00
Chris Michael 1187035fe6 ecore-wl2: Send surface_commit after ack_configure
Small patch to ensure we send a surface commit after sending the
ack_configure. This fixes an issue where E-WL internal windows would
not maximize.

Fixes T5192

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-03-01 10:25:35 -05:00
Chris Michael 5b9374583e ecore-wl2: Actually update input/opaque regions
Previous commit f8f71d05cd to avoid resetting
opaque & input regions was not totally complete as it did not update
the actual values...small patch to fix that.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-28 10:12:31 -05:00
Chris Michael f8f71d05cd ecore-wl2: Avoid resetting opaque & input regions if they match
Small patch to avoid setting the same opaque/input regions if they
already match what is being requested.

ref T5226

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-28 08:51:21 -05:00
Chris Michael 515c2d0374 ecore-wl2: Fix setting input region on a window
Previous code here would store incorrect values into the
window->input rectangle. These values should be what is actually
getting set in the wl_region. This code also fixes an issue when
setting input region for transparent/alpha windows by clearing out
any pending input region (wl_surface_set_input_region(surface, null)).

Reviewed-By: Derek Foreman <derekf@osg.samsung.com>

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-14 13:36:13 -05:00
Chris Michael 559490d756 ecore-wl2: Fix setting opaque region on a window
Previous code here would store incorrect values into the
window->opaque rectangle. These values should be what is actually
getting set in the wl_region. This code also fixes an issue when
setting opaque region for transparent/alpha windows by clearing out
any pending opaque region (wl_surface_set_opaque_region(surface, null)).

Reviewed-By: Derek Foreman <derekf@osg.samsung.com>

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-14 13:36:03 -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
Chris Michael a306cba6c3 ecore-wl2: Don't set opaque or input regions if already set
If the window opaque/input regions already match what is being
requested (to be set), then no need for the compositor to create
regions and set them.

@optimize
@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-25 12:02:35 -05:00
Derek Foreman 0669ca31ff wayland: Try not to draw into surfaces without roles
xdg v6 will barf if we attach a buffer to the surface before
we receive a configure - even if we attach before trying to
make a shell surface.

So we need to prevent any drawing into surfaces until we've
decided what kind of surface they'll ultimately be.

Fix T5090
2017-01-19 15:25:17 -06:00
Mike Blumenkrantz de1a6d6f42 ecore-wl2: make session recovery listener global
global proxies have a single instance and do not work with
multiple listeners

@fix
2017-01-13 11:33:59 -05:00
Chris Michael 83defff028 ecore-wl2: Use input serial for move and resize functions
This is a partial revert of 2bd880c6c7 which changed to use
wl_display_get_serial function. When can do that for most things,
however things like window move/resize need to use the input serial
which started the move/resize.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-13 09:53:52 -05:00
Chris Michael 755c50a84e ecore-wl2: Add event to raise when window configure is completed.
Small patch to create and raise a new event letting ecore_evas know
when the window has been configured. With the addition of xdg_shell v6
support, we cannot commit a surface with an existing buffer until the
surface has been configured. This patch allows us to raise an event to
ecore_evas when the surface has been configured, so we can then attach
a buffer to it.

ref T5090

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-11 12:36:33 -05:00