Mike Blumenkrantz
a010138dcc
apply already-committed wayland subsurface positioning after parent surface move
2015-12-10 10:32:31 -05:00
Mike Blumenkrantz
1b240c5b63
enforce wayland subsurface stacking order when parent surface is restacked
2015-12-10 10:32:31 -05:00
Chris Michael
f5741f1cb4
Fix using global ewd variable by making it part of e_comp_wl
...
ref T2919
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-09 13:16:48 -05:00
Chris Michael
36b6a402c6
Try to init (and error check the init) of ecore_wl2 library before we
...
create a compositor
ref T2919
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-09 13:16:48 -05:00
Mike Blumenkrantz
f005ac9bff
create wl client connection during compositor init, use in shot module
...
fixes shot module
ref T2919
2015-12-09 13:16:48 -05:00
Mike Blumenkrantz
c22ddd6039
call ecore_wl2_init() during compositor init
...
ref T2919
2015-12-09 13:16:48 -05:00
Chris Michael
7870721cab
port wayland compositor to use Ecore_Wl2
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-09 13:16:48 -05:00
Derek Foreman
81ff082e0d
Stop using MIN macros when choosing versions for wayland resources
...
Summary:
libwayland-server.so will post an error if the requested version
is higher than the supported one anyway, so there's no point in
doing this.
Using MIN() to pick versions is a client side idiom.
#kansas
Reviewers: zmike, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3385
2015-11-26 20:12:47 -05:00
Mike Blumenkrantz
e8f4f30f40
adjust for SSD geometry during wayland client resize
...
client moveinfo includes the frame geometry, so this must be taken
into account when resizing a client which has a frame
fix T2863
2015-11-24 17:29:53 -05:00
Mike Blumenkrantz
d32392760a
always set wayland E_Client->redirected during client creation
...
fix T2846
2015-11-19 15:58:52 -05:00
Mike Blumenkrantz
4250a14861
set e_comp->gl for wayland compositors based on gl display bind success
2015-11-07 12:23:04 -05:00
Mike Blumenkrantz
fc01d6a24c
check for wayland egl extensions before starting a gl compositor
...
when running in software mode, evasgl performs no checking to determine
whether gl is available, leading to a crash due to missing extensions
2015-11-04 12:23:05 -05:00
Nicolas Aguirre
a8bf439f88
Revert "Adds eglfs to Enlightenment"
...
This reverts commit ff1e7b5083
.
2015-11-03 08:01:58 +01:00
Nicolas Aguirre
31ce65a2c4
Revert "Don't load xwayland if it isn't compiled"
...
This reverts commit 496ae3746f
.
2015-11-03 07:57:56 +01:00
Florent Revest
496ae3746f
Don't load xwayland if it isn't compiled
2015-11-03 07:50:21 +01:00
Florent Revest
ff1e7b5083
Adds eglfs to Enlightenment
2015-11-03 07:37:41 +01:00
Mike Blumenkrantz
ae6416c27c
add wayland egl client support
...
definitely not a feature, I promise™
2015-11-02 16:25:02 -05:00
Mike Blumenkrantz
e8bcf1016f
use correct param ordering for setting wayland client frame geometry
...
function uses l,r,t,b and not x,y,xx,yy
fix T2624
2015-10-13 13:31:47 -04:00
Mike Blumenkrantz
60a1dfaf4f
remove duplicate surface size update for wayland clients during commit
...
this has already happened in e_comp_wl_surface_attach()
2015-10-13 13:25:15 -04:00
Mike Blumenkrantz
be49b11bd3
do not set frame geometry on frame-possessing wayland clients
2015-10-05 15:56:04 -04:00
Seunghun Lee
1ce8b362de
clear the tiler for input region after setting to comp object.
...
Summary:
there is no need to set repeatedly input region even if it's already applied.
and this patch remove the code to clear tiler from client's unmapped case.
this fixes that tiler for input region is removed before applying it to comp object in case client is unmmaped yet.
Reviewers: devilhorns, zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3076
2015-10-05 12:47:29 -04:00
Boram Park
b9b650806f
should remove a frame resource from pending.frames list also
...
Summary: Signed-off-by: Boram Park <boram1288.park@samsung.com>
Reviewers: stefan_schmidt, gwanglim, raster, zmike, devilhorns
Reviewed By: zmike, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3079
2015-10-02 12:38:30 -04:00
Mike Blumenkrantz
cdf6650a11
redo wayland client buffer referencing
...
the previous methodology was effectively:
attach -> ref(new buffer) x2 / unref(old buffer) x2
...
...
attach -> ref(new buffer) x2 / unref(old buffer) x2
this resulted in buffer management failures and crashing. now the
buffer gets 1x ref before render and 1x unref after render, ensuring
that the lifetime is accurate (assuming evas doesn't lie to us)
now we still have random crashing during resize, but not as much as
before
2015-09-29 18:53:15 -04:00
Mike Blumenkrantz
89a789fe3d
redo CSD for wayland clients to use comp object frame geometry
...
this fixes issues with client placement and is a more native solution
than the previous hacks
2015-09-29 18:53:03 -04:00
Mike Blumenkrantz
ba92337882
never mark wl client pixmaps as dirty or refresh them
...
this has no meaning for a wl pixmap in the current implementation
2015-09-29 16:35:30 -04:00
Boram Park
6d2572efc0
Creating wl_shm global object before creating other global objects
...
Summary:
It's more useful for client to bind wl_shm before receiving other global
object's events. Then, App can quickly prepare some buffers. i.e. cursor,
etc.
Signed-off-by: Boram Park <boram1288.park@samsung.com>
Reviewers: stefan_schmidt, gwanglim, raster, zmike, devilhorns
Reviewed By: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3080
2015-09-23 09:15:53 -04:00
Chris Michael
7c595f7ea1
enlightenment: Fix formatting of Wayland compositor code so it is easily readable in 80 columns
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-09-03 11:16:07 -04:00
Stefan Schmidt
714b84308d
e_comp_wl: create global and bind session_recovery interface
...
Before we can use the session_recovery protocol extension we need to register
its global and bind the interface to our implementation.
The callback for the provide_uuid call from the client is just a stub for now.
2015-08-26 16:09:25 +02:00
Mike Blumenkrantz
91ed3995f0
remove some local aliasing of e_comp_wl global
2015-08-13 16:08:55 -04:00
Mike Blumenkrantz
3f13b6889d
replace existing usage of x/wl_comp_data with corresponding globals
2015-08-13 16:05:57 -04:00
Mike Blumenkrantz
32adc0e901
add e_comp_x and e_comp_wl globals
...
constantly typing e_comp->x/wl_comp_data-> is tiring
2015-08-13 16:01:08 -04:00
Mike Blumenkrantz
97f131582e
add local event for wl_wl output to use when a global has been received
2015-08-12 20:18:43 -04:00
Mike Blumenkrantz
48be7016ad
make wl client mouse button handler fn external
2015-08-12 15:12:03 -04:00
Mike Blumenkrantz
5bc8376fb5
break out wl client motion sending, force motion events during x11 drags
...
weird, but fixes xwl drag positioning
2015-08-12 15:11:59 -04:00
Mike Blumenkrantz
edc2de32c1
use unmodified client geometry for new xwl clients during first surface commit
...
fixes a race condition where a configure request occurring before the xwl
client swap could fail to take effect due to xwayland bug where buffer size
is reported incorrectly
2015-08-12 13:45:19 -04:00
Mike Blumenkrantz
263794f42f
only update wl dnd surface client if a wl drag is active
2015-08-10 18:59:02 -04:00
Mike Blumenkrantz
c696fa7088
do not send wl dnd positioning updates to xwl clients
2015-08-07 21:07:34 -04:00
Derek Foreman
f124f1bf6e
wayland: force wl surface frame callbacks on commit for undamaged surfaces
...
Summary:
Doing it just for bufferless surfaces wasn't quite enough, sometimes
we get a sequence like: attach, commit, frame, commit
And we need to respond to the frame.
#Kansas
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2934
2015-08-07 17:20:05 -04:00
Derek Foreman
15d13dad16
wayland: Always add frame callbacks to current state on commit
...
Summary: Previously we ignored it for unmapped surfaces.
Reviewers: devilhorns, zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2932
2015-08-07 14:52:33 -04:00
Mike Blumenkrantz
cae58cea9f
force wl surface frame callbacks on commit for bufferless surfaces
...
#Kansas
2015-08-07 13:48:21 -04:00
Mike Blumenkrantz
a579c2ec36
force render update on wayland clients during commit
...
an unmapped wayland client must still run post-render code to execute
frame callbacks
fixes terminology initial render with efl from git
2015-08-06 19:40:10 -04:00
Mike Blumenkrantz
106dfe4e21
only attempt to provide wayland drag motion data if drag exists
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz
3dca058dfa
block wayland mouse button propagation to clients while drag is active
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz
1beecb72d7
add server-side wl dnd
...
weston-dnd seems to work as expected
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz
965d089c8a
add more wl data device debug infos
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz
616ca6583e
apply wayland data device focus after focus has been set
...
the focus_set client hook is for setting focus, not for doing things which
must occur after focus has been set
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz
e5678549da
track the current pointer focus client in wayland compositor
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz
acf5d09796
reject deleted clients from wl show callback
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz
04fe354592
notidle the screensaver in wl compositor mouse move cb
...
fixes screen blanking while user is active
2015-07-30 16:35:51 -04:00
Mike Blumenkrantz
de1d24021b
set ELM_DISPLAY appropriately for wayland compositors
2015-07-30 16:29:25 -04:00
Mike Blumenkrantz
1496b3db7b
don't reset wayland surface geometry for overrides
2015-07-29 15:38:17 -04:00
Mike Blumenkrantz
e5d367292f
return immediately on wayland focus-in key timer when no focused kbds exist
2015-07-28 17:36:13 -04:00
Mike Blumenkrantz
c9e35cc0f9
do not call ecore_time_unix_get() on each key sending loop for wayland clients
2015-07-28 17:34:58 -04:00
Mike Blumenkrantz
db41479414
fix x11 detection for wayland compositor setup
...
ref T2609
2015-07-28 12:32:50 -04:00
Mike Blumenkrantz
0d19a5914b
apply csd sizing transform for wayland configure events
...
when not resizing, the sizes passed to configure should be based on the
window size and not the surface size. in order to calculate this, it's
necessary to keep track of the last-known window geometry for non-maximized
states and create offsets with which to calculate new sizes
this fixes directional maximizes as well as unmaximizing
2015-07-24 16:35:21 -04:00
Mike Blumenkrantz
9e4fe82fbc
always send geometry to configure method for wayland clients when not resizing
...
failure to set this would lead to clients changing geometry when maximized while
focus state was removed
2015-07-24 16:34:18 -04:00
Mike Blumenkrantz
0321fd690e
do not send duplicate configures for wayland clients during maximize
...
this seems to not have caused any real issues, but it made debugging
more of a pain and is unnecessary connection noise
2015-07-24 16:33:33 -04:00
Mike Blumenkrantz
5cbbe261d7
add a timer for wl client focus to delay held key input
...
this prevents keys from immediately being sent to newly-focused clients
and avoids the case of reverting focus from one app to another on keybind
close, only to have the second app also close immediately using the same keybind
2015-07-22 17:55:30 -04:00
Mike Blumenkrantz
d38b2eb6b3
create/manage list of focused wl keyboard resources for reuse in kbd operations
...
this simplifies kbd code all over
2015-07-22 17:40:28 -04:00
Mike Blumenkrantz
43ed8dbdb5
set shell-less wl surface mapped state regardless of visibility during commit
...
new_client flag here will defer show operations, but the operations will complete
2015-07-22 17:09:14 -04:00
Mike Blumenkrantz
6dfc6da02c
update wl keyboard resource key presses on focus in/out of surfaces
2015-07-22 16:59:23 -04:00
Mike Blumenkrantz
5c5fb11187
allow wl client focus-out callback to execute on deleted E_Clients
2015-07-22 16:28:48 -04:00
Mike Blumenkrantz
435bd8794a
don't update wl keyboard state on client focus events
...
this is always up-to-date
2015-07-22 16:28:08 -04:00
Mike Blumenkrantz
9c1fca5a16
fix wl build
2015-07-22 12:24:35 -04:00
Mike Blumenkrantz
5c00c1009b
redo wl compositor key eventing
...
* break out key callbacks into EINTERNs
* remove extraneous/unused mouse event handlers
* enforce wl modifier updating in all cases
* ensure keybinds are activated before wl clients receive input
- block wl client input during grabs
fixes T2565
2015-07-21 14:27:29 -04:00
Mike Blumenkrantz
2ce5dfa33f
add wl compositor desklock hooks to add grabs during lock
2015-07-21 14:25:16 -04:00
Mike Blumenkrantz
612a61ce0e
don't mangle wl client opaque region tiler during commit clip
2015-07-20 14:38:31 -04:00
Mike Blumenkrantz
4acce00428
improve wl compositor tiler usage
...
pixman <-> tiler api naming seems similar but functionality is totally
different
2015-07-20 14:10:55 -04:00
Mike Blumenkrantz
552f065c09
zero out wl surface opaque region on commit in all cases
...
it's possible that the opaque ptr may exist but have no regions,
which will result in the previous frame's opaque region being used
2015-07-17 15:58:14 -04:00
Mike Blumenkrantz
6471ba0a05
do not update client list hint when creating a new wayland client
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz
fbe55d20f1
always set new wayland E_Clients to be ignored during client hook
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz
d5e25a8449
add wl_wl wl output module
...
it is now possible to create a xephyr window in a drm-enlightenment session,
launch wl-x11 enlightenment in xephyr, and then launch wl-wl enlightenment
inside that enlightenment
the primary limitation on this output module is that all internal windows will
appear in the outer compositor due to the current restriction of ecore-wayland
with regard to only having a single global display server connection
#Inception
2015-07-17 15:30:30 -04:00
Chris Michael
bf993c6eee
e-comp-wl: Fix region_add and region_subtract functions to make sure we have accurate opaque regions
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-17 14:58:34 -04:00
Mike Blumenkrantz
7859787f73
wl clients should not use edges during keyboard resize
...
ref T2452
2015-07-15 18:08:32 -04:00
Mike Blumenkrantz
17e878eca3
simulate netwm sync for xwl clients
...
blocks execution of resizes until the surface commit arrives. reduces
the race condition between resize and render and eliminates frame drops
during slow resizes
2015-07-15 13:58:03 -04:00
Chris Michael
9e2512eb98
e-comp-wl: Fix T2570: stuck key when closing efm windows
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 15:26:38 -04:00
Chris Michael
e46c0812fc
e-comp-wl: Fix getting end key during key down/up events
...
NB: This is actually an Oopsie from a previous commit that should not
have gotten in.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 15:10:38 -04:00
Chris Michael
116af14649
e-comp-wl: Update keyboard and modifier state AFTER we send them to clients
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 14:18:21 -04:00
Chris Michael
74e96f3826
e-comp-wl: Update keyboard key state regardless of client focus or not
...
Key state updates need to be consistent. As we update the key state on
key up regardless of client focus, then we should be doing the same in
the key_down event handler so that key state remains consistent.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 13:29:02 -04:00
Chris Michael
5052bd9266
e-comp-wl: Don't call keyboard_modifiers_update twice
...
e_comp_wl_input_keyboard_state_update already makes a call to
e_comp_wl_input_keyboard_modifeirs_update so there is no need to call
it twice on key up/down events.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 13:29:02 -04:00
Mike Blumenkrantz
697e1beda3
add wayland client post-render references in the render loop
2015-07-10 13:22:15 -04:00
Chris Michael
f214d9d73b
e-comp-wl: Create compositor screenshooter global and add function to actually handle taking shots
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:08:35 -04:00
Mike Blumenkrantz
53ff8b764f
properly calculate client+frame sizes during wl surface commit
2015-07-08 14:46:12 -04:00
Derek Foreman
528d8b31fc
Init some vars to NULL in compositor create
...
Summary: In some cases these end up uninitialized and we crash.
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2788
2015-07-02 17:54:40 -04:00
Mike Blumenkrantz
c054506d4e
block wl key events from reaching clients during client actions or key grabs
2015-07-02 14:30:54 -04:00
Mike Blumenkrantz
0a5e00488d
set initial surface attrs for internal wl clients
2015-07-02 14:26:02 -04:00
Chris Michael
899899e35a
e-comp-wl: Update modifiers on key down/key up events
...
NB: Fixes Ctrl+D problem here.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 14:50:28 -04:00
Mike Blumenkrantz
52fd0581fa
temporarily toggle ignored flag during wl surface commit
...
ensures canvas operations succeed during commit in cases where
subsequent commits do not occur (eg. menus, popups, ...)
2015-06-30 18:34:16 -04:00
Mike Blumenkrantz
8644c88b39
fix typo in iterating pending xwl clients on wl surface creation
2015-06-30 18:33:38 -04:00
Mike Blumenkrantz
f1f4489822
free all ec->comp_data ptrs in _e_client_del
...
need this to live through multiple del hooks, so simplify all code by
freeing in one place
2015-06-30 18:33:00 -04:00
Mike Blumenkrantz
629f07e510
only reject ec->ignored clients from wl mouse events
...
fixes input on overrides
2015-06-30 18:31:43 -04:00
Chris Michael
7cd07acad7
e-comp-wl: Release keys on key_up regardless if client has focus
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-30 15:58:41 -04:00
Chris Michael
9d2e1fbc85
e-comp-wl: Fix formatting
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-28 11:09:56 -04:00
Mike Blumenkrantz
2bf57d79af
set shm engine for wl internal windows
...
this seems to be necessary for now to prevent crashing
2015-06-25 20:25:41 -04:00
Mike Blumenkrantz
2b38147c43
add hooking for WL_SURFACE_ID atom on XWayland windows and composite them
...
in order to maximize the amount of reused code the following details the current
process for xwayland compositing:
* get map request from window
* force reparenting
* show window
* await WL_SURFACE_ID x11 message
* move x11 client data + pixmap onto corresponding wayland client
* business as usual with wayland compositing
this is pretty similar to the method of the reference code in weston,
except that there's no x11 compositor in weston
2015-06-25 20:25:36 -04:00
Mike Blumenkrantz
fab0b8122f
don't call wl comp delete function twice on shutdown
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz
5b63ce91dc
comment out grabinput focus calls in wayland compositor
...
these did nothing, remove for now
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz
412595dc60
set client visibility for shell-less wayland clients appropriately during commit
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz
01a4273c38
use ctrl+alt+backspace hotkey in wayland compositor for all non-release builds
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz
05a0602f6e
unused variable--
2015-06-25 20:04:31 -04:00