Commit Graph

690 Commits

Author SHA1 Message Date
Mike Blumenkrantz 0f216c7e95 handle more mouse buttons under wayland
this was incorrectly referenced from weston's x11 compositor, which directly
uses xcb events and sends them as wl_pointer events. efl translates all input
events to use the same button scheme numbering, coincidentally enabling the use
of this code for all backends
2017-10-30 10:51:20 -04:00
Mike Blumenkrantz 47df20207d block wl modal window destructor from intercepting xwl modal windows
failing to pass these to the xwl destructor breaks the xserver

ref T5593
2017-10-30 10:29:39 -04:00
Mike Blumenkrantz 3d701839b6 send wl pointer leave for deleted clients if viable 2017-10-27 13:21:03 -04:00
Mike Blumenkrantz 5cab9486f3 ignore set_input_region requests for wl surfaces which are cursors or drags
according to spec this is correct behavior
2017-10-20 13:40:20 -04:00
Mike Blumenkrantz 8121f20a03 handle x11 shaped input under xwayland 2017-10-03 14:59:47 -04:00
Mike Blumenkrantz b686f3871d add max size input rects for wl clients on creation
according to spec, surfaces begin with infinite input area
2017-10-03 14:40:36 -04:00
Mike Blumenkrantz 42d707909e simplify focus on commit block for wl clients
none of this applies to popups
2017-10-03 12:39:03 -04:00
Mike Blumenkrantz 001085f349 do not set E_Client->take_focus for popup wl clients 2017-10-03 12:39:03 -04:00
Mike Blumenkrantz 129bb14d2d don't show xwayland clients unconditionally on commit
ensure that the client's desk is visible

fix T6024
2017-10-03 12:39:03 -04:00
Derek Foreman 077ae06955 Fix wayland frame callback failure
Turns out ecore_animator_add() can randomly pick the wrong canvas to use as
a tick source.  Using EFL_EVENT_ANIMATOR_TICK on the compositor evas instead
will ensure we don't accidentally pick an internal window for a tick source.

Fix T6070
2017-09-22 17:00:25 -05:00
Mike Blumenkrantz 5da5418873 add a client parameter to wl key down/up event processing functions
if passed, send the event to the specified client
2017-09-21 13:31:01 -04:00
Derek Foreman cc5eec5cc3 Remove bogus EINA_UNUSED
move along, nothing to see here.
2017-09-01 15:13:41 -05:00
Derek Foreman 42d3e30f5c Handle wayland frame commits with no surface damage better
Previously we immediately kicked back the frame callback when a client
sent a surface frame without damage.  This let clients that use frames
for timing proceed, but they generally just send another frame right
away and spin in this way until they reach their intended render time.

Now we use animators so the frame callbacks will be limited to the
animator tick source's frequency.

ref T5850
2017-08-31 14:44:58 -05:00
Mike Blumenkrantz db264cca49 simplify placed flag setting during wl surface commit
this should result in fewer cases of windows randomly warping around...

...

maybe
2017-08-25 14:47:10 -04:00
Mike Blumenkrantz 7402dc8eda only update wl client window size on commit if no pending resize exists
this breaks pending resizes

fix T4189
2017-08-18 15:52:50 -04:00
Mike Blumenkrantz d07408e76c do not center xwl clients on their parent during first commit
xwl clients are placed differently

ref b817db7f09

fix T5845
2017-08-18 15:52:50 -04:00
Mike Blumenkrantz b80f0fce56 don't set focus attrs in wl surface commit for xwl clients
these should be getting set in other places...I think...
2017-08-18 15:52:50 -04:00
Mike Blumenkrantz ff8964a1c6 don't force xwl drag client motion for override drag clients
this should improve dnd visuals a bit

ref T5593
2017-08-18 15:52:50 -04:00
Mike Blumenkrantz 2047ca3bfe handle case where eglBindWaylandDisplay fails during wl init 2017-08-11 18:48:49 -04:00
Mike Blumenkrantz 31994d4876 don't center wl popups on their parents
ref b817db7f09
2017-08-11 18:48:49 -04:00
Mike Blumenkrantz 0bea40f4dd do not defer wl gl init 2017-08-07 10:29:00 -04:00
Mike Blumenkrantz b817db7f09 center wl clients on their parent when doing first commit
this resolves some bizarro pointer warping
2017-08-04 16:05:15 -04:00
Mike Blumenkrantz 1814080164 do not add delete/kill request smart callbacks for non-internal wl clients
this is not functional for other windows
2017-08-04 16:05:15 -04:00
Mike Blumenkrantz ab328c6512 implement support for wl aux hints
this is a direct copy of a feature from tizen git with no modifications other
than what was required for compilation and functionality

https://git.tizen.org/cgit/platform/upstream/enlightenment/commit/?id=8ea090222cee86b57e54f1444c5b63252380fba5
https://git.tizen.org/cgit/platform/upstream/enlightenment/commit/?id=2c5593325c3f32efa92da3c371a780e434a30efd

fix T5780
2017-07-28 15:45:01 -04:00
Mike Blumenkrantz d33351e653 remove wl focus check function
idk what this was for but it was wrong
2017-07-28 15:44:55 -04:00
Mike Blumenkrantz 2b50b69448 Revert "only do configure for wl clients in commit when a buffer is attached"
This reverts commit 9dcc4f632f.

this breaks some corner cases, must investigate further...
2017-07-24 13:24:56 -04:00
Mike Blumenkrantz 9dcc4f632f only do configure for wl clients in commit when a buffer is attached
a null attach does not require a resize, only a hide
2017-07-24 08:26:59 -04:00
Mike Blumenkrantz b472a11f84 ignore wl client ssd mouse events for windows without ssd
ref T5770
2017-07-24 08:12:54 -04:00
Mike Blumenkrantz 66e95311ff only map wl pointer clients if they are the active cursor
ensure cursors which are randomly committed when not being used as
a cursor (e.g., all efl wayland cursors) are not shown

 #TheDisappointer
2017-07-20 17:18:33 -04:00
Mike Blumenkrantz a1d62d01e8 handle multiple input regions for csd clients 2017-07-17 08:14:24 -04:00
Mike Blumenkrantz 0912906ea1 Revert "handle multiple input regions for csd clients"
This reverts commit 950bee7ce4.

accidentally pushed wrong ref, multiple incomplete broken commits were
merged

:(

fix T5739
2017-07-17 08:14:24 -04:00
Mike Blumenkrantz 950bee7ce4 handle multiple input regions for csd clients 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz ac8a9fc2f0 don't set E_Client->want_focus for wl overrides with parents
all input for these goes to the xwl resource anyway, let parent get focus

ref 69c85fc1aa
2017-07-07 16:26:28 -04:00
Mike Blumenkrantz a142a7eb80 focus comp canvas's client when no real client is focused 2017-07-07 16:26:28 -04:00
Mike Blumenkrantz 1b6ccd5aa8 add handler to catch (new) fake elm win wl2 window client
now the compositor canvas has a wl2 window
2017-07-07 16:26:28 -04:00
Mike Blumenkrantz 5df53cec7b process screen events in wl when using fake screens 2017-06-30 10:25:18 -04:00
Mike Blumenkrantz 43dea93969 handle rotations with fake xinerama screens 2017-06-30 10:25:18 -04:00
Mike Blumenkrantz 69c85fc1aa only set E_Client->want_focus for wl override clients if not popup client
do not attempt to focus popups as they are already child windows and thus
do not require keyboard focus
2017-06-30 10:25:17 -04:00
Mike Blumenkrantz 42523d27f0 multiply pointer axis values by 10 for wl clients
wayland clients expect this multiplier, so now scrolling speed should be
back to normal
2017-06-30 10:25:17 -04:00
Derek Foreman 18fbd1da32 Don't delete busy E_Comp_Wl_Buffers
Hardware planes are going to make E_Comp_Wl_Buffer lifetimes harder to
manage, so we need to let the E_Comp_Wl_Buffer object outlive the
resource attached to it.

We already track a busy count, so we just have to use it to prevent
deleting a busy buffer.
2017-06-23 11:52:04 -05:00
Mike Blumenkrantz 773122db66 store output subpixel value to randr2 screen data during drm init 2017-06-16 15:00:12 -04:00
Mike Blumenkrantz d9c03f1059 use fake xinerama screens when initializing wl outputs
always ignore physical screens if fake ones are present
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz 4933569bc1 don't null pointer after deleting internal win during wl delete request
this is invalid during a logout
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz bf157e03dc another fix for e_comp_wl->ptr.x/y coords being wl_fixed instead of ints
ref 2c7e91d38f
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz 9df31011c8 unset wl selection target client if that client is deleted
the frame deletion callback would trigger far too late, allowing
crashes to occur if the selection target client exited between the
time of the drop event and the selection send event
2017-05-12 12:08:37 -04:00
Mike Blumenkrantz b75f0d2be2 unset wl button mask when beginning a move/resize operation
ensure that clients do not receive a release event for any pressed
buttons
2017-05-12 12:08:37 -04:00
Mike Blumenkrantz 6a28856086 remove duplicated client stacking code from wl restack callback
this would always have resulted in double restacking since the client callback
already handles restacks
2017-04-07 16:08:37 -04:00
Mike Blumenkrantz 2ca599b317 apply transient stacking to wl clients when restack would not otherwise occur
ensure that transients are stacked consistently every time
2017-04-07 16:08:37 -04:00
Mike Blumenkrantz c196ef110e re-place transient wl clients when parent is first sized
this should ensure more reliable centering using a nonzero geometry
2017-04-07 16:08:37 -04:00
Mike Blumenkrantz 7fe67cf187 slightly optimize maximize -> fullscreen protocol comms for wl clients
this is a no-op since a configure will be sent later
2017-03-24 13:17:24 -04:00