Commit Graph

20427 Commits

Author SHA1 Message Date
Mike Blumenkrantz b51e5fa0b2 ensure clients possess comp_data before dereferencing it during x11 stacking
ref T2566
2015-07-21 14:34:11 -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 d2fce4ce27 do not add x11 compositor desklock hooks in non-x11 compositor 2015-07-21 14:25:41 -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 21b8016c5b add clients to focus stack as necessary in e_client_unignore() 2015-07-21 14:21:36 -04:00
Mike Blumenkrantz 2eabf1142f always stop passing key events on once they reach the lokker callback 2015-07-21 14:21:07 -04:00
Mike Blumenkrantz 7aea28a86b do not attempt to remove wl xdg popup clients from focus stack
these have never been added to the focus stack, so removing them is useless
2015-07-21 14:19:39 -04:00
Mike Blumenkrantz 269d589cd1 do not block winlist activity based on event window in non-x11 compositors
fixes winlist interaction in wayland
2015-07-21 14:13:55 -04:00
Derek Foreman aae280bfcd shot: Skip the wayland setup bits when running under X
fix T2592

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2851
2015-07-21 12:23:55 -04:00
Chris Michael e78abc23c1 desklock: Fix T2589: Screen Lock crashes in E
Don't call ecore_x functions unless we are using an X11 compositor.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-21 09:03:59 -04:00
Mike Blumenkrantz 3c3f0845f3 fix typo in comp object opaque region render
#DerekWasRight
2015-07-20 17:26:13 -04:00
Mike Blumenkrantz f6725c53a4 move opaque region (image border) apply to render fn
this seems to provide a more accurate region for rendering in my tests,
as various weston-apps no longer show black rects during resize
2015-07-20 14:38:44 -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 4d76741533 only perform keybind grabs on root window for x11 compositors 2015-07-20 13:32:06 -04:00
Mike Blumenkrantz f2d71ad903 block compositor keybinds using more accurate x11 detection
blocking based on event window here is only valid for true x11 compositors
and not just compositors with root windows

fixes keybind activation when running xwayland clients
2015-07-20 13:29:13 -04:00
Derek Foreman 35938839bd wayland: Also link with libwayland-client.so
Summary:
E is both a client and a server, so it should be linking
both libraries.

 #Kansas

Reviewers: zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2843
2015-07-20 11:17:40 -04:00
Carsten Haitzler ee16a11455 e - randr allow you to turn off screens and keep them off if config says so 2015-07-19 22:41:48 +09:00
Carsten Haitzler 94a15856bd e - unbreak client pixmaps when native surf is used
this unbreaks disappearing client content introduced by
5a001b1759.
2015-07-18 23:39:46 +09:00
Mike Blumenkrantz 6b7ce91373 do not set opaque regions on comp object mirrors
based on testing, this breaks all rendering of related objects. I
suspect that the image border needs to be manually scaled based on
image::mirror proportions in order for this to work as expected, but
adding the required code seems like too much complexity for nearly zero
gain
2015-07-17 16:09:52 -04:00
Mike Blumenkrantz 1d4d906361 render surface opaque regions as opaque when image border is set
it seems that just setting the opaque region is not enough for evas;
we must also inform it that the opaque region is opaque and should not
be blended
2015-07-17 16:07:01 -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 bd776b157f add e_client_unignore() for triggering events when unignoring a client
mainly for use in wayland compositing since all surfaces are ignored
until they get a shell surface or a commit
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz 51c74889cf fix wl_fb define name in comp init 2015-07-17 15:30:30 -04:00
Mike Blumenkrantz 5a001b1759 enforce image border/size/pixels_dirty setting on comp mirrors during create
this should provide a more accurate first-render for mirrors as they are added
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz 62792ce662 ensure wayland parts of shot module use the correct wayland display objects
the ecore-wl global objects used here will be wrong for the case of nested
compositors
2015-07-17 15:30:30 -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
Seunghun Lee faacad29dc remove a kind of typo in E_ZONE_GEOMETRY atom string.
Test Plan: N/A

Reviewers: devilhorns, zmike

Reviewed By: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2833
2015-07-17 15:04:39 -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 32c48f9a40 ...and also ungrab the compositor when internal drags end 2015-07-16 12:59:04 -04:00
Mike Blumenkrantz 2e5ab5a947 only use input xwindows for internal drags in x11 compositor
this fixes input region detection for dnd operations

fix T1831
2015-07-16 12:52:00 -04:00
Derek Foreman 41cb2fa161 screenshooting: Avoid void pointer arithmetic
Summary:
If we use unsigned char pointers instead of void pointers we actually
conform to the C standard.

This patch removes a reliance on a gcc extension and, as an added bonus,
also quiets a warning in the default build.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2820
2015-07-15 18:09:15 -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 ecb5f4ca41 add E_Client->keyboard_resizing flag
there is no other indication of whether a client is resizing using the
keyboard, so this should serve as an adequate hint
2015-07-15 18:07:12 -04:00
Mike Blumenkrantz 73c03565b3 never use new clients for stacking part 2: the secret of the stacking
a client with this flag set here is unreliable to use as a stacking
reference since it has yet to be stacked and can be located anywhere
in the window stack.

fixes internal window stacking on startup
2015-07-15 16:22:02 -04:00
Mike Blumenkrantz 953b80f8ef ensure that focus is set and focus stack is managed on winlist hide
if pointer warping is disabled, attempting to pointer warp with mouse-based
focus policies will fail here, preventing focus from being applied as expected

ref T2566
2015-07-15 14:47:35 -04:00
Mike Blumenkrantz 008a0658ec only trigger client mouse-in from x11 mouse move event if client+desk are visible
ref T2566
2015-07-15 14:27:19 -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
Mike Blumenkrantz 1c0a0ab00f move xwayland socket connection to its own thread
this operation performs a synchronous socket connection inside xlib which can
block for an infinite amount of time. in order to avoid having a potentially
unlimited amount of time where the ui is frozen and polling on the socket connection,
move it to a thread where it can hang for as long as it wants and then use the
resulting display object for the ecore-x connection
2015-07-15 13:58:03 -04:00
Chris Michael 321a421208 e-comp-wl: Remove unused variable
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-15 13:46:51 -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 147bc3d71a e-comp-wl: don't send keyboard modifiers twice.
NB: e_comp_wl_input_keyboard_modifiers_update already sends keyboard
modifiers to all keyboard resources, so no need to call this twice.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 14:46:13 -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 46997706ea e-comp-wl: Add support for wl_keyboard_send_repeat_info to allow for configurable keyboard repeat rates
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 13:29:02 -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 161b67a53d Revert "delete render updates for xwayland clients upon triggering a client resize"
This reverts commit f3f29a0cf8.

upon further review, this was not at all helpful and breaks resizing eventually
2015-07-14 13:12:06 -04:00