Commit Graph

409 Commits

Author SHA1 Message Date
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