Commit Graph

11183 Commits

Author SHA1 Message Date
Derek Foreman c22c140c2f Fix zone setup for wayland compositor on X
Both the X and WL code try to set up the output pointer for the
zone.  Make the WL output take precedence, since it's actually
used for events.
2016-06-24 14:19:36 -05:00
Mike Blumenkrantz cefcc5248f add some hacks to route mouse events to wl popups correctly while mouse is down
in a choice between fixing a corner case popup behavior and breaking dnd
or having functional dnd and adding hacks to fix corner case popup behavior,
adding more hacks was the obvious correct solution

ref 03a4ecbdb0
2016-06-24 11:31:02 -04:00
Mike Blumenkrantz 4852a6903b remove unused event info from _e_comp_wl_mouse_out() 2016-06-24 11:31:02 -04:00
Derek Foreman eb94710146 Don't try to send surface presence events for zones with no wayland output
Avoid that NULL pointer deref.
2016-06-24 10:05:18 -05:00
Mike Blumenkrantz 191e5180b5 Revert "set NOGRAB pointer mode on comp object event objects"
This reverts commit 03a4ecbdb0.

this should be correct, and yet it crashes xwayland and breaks dnd
2016-06-23 18:06:22 -04:00
Mike Blumenkrantz 03a4ecbdb0 set NOGRAB pointer mode on comp object event objects
fixes dragging off surfaces in wayland
2016-06-23 17:16:03 -04:00
Mike Blumenkrantz 22aa63c4a3 Revert "do not change E_Client->saved values during maximize if need_maximize is set"
This reverts commit 9a9c09f514.

a better solution should be found at some point since this is broken in x11 too
2016-06-22 13:31:50 -04:00
Mike Blumenkrantz 99e4f8452b don't set need_maximize during wl commit maximize
this breaks the maximize!

partially reverts b5576dbb8c
2016-06-22 12:30:01 -04:00
Mike Blumenkrantz da7e7d19fb freeze events on comp object input rects during deletion
prevents some event propagation which would cause flickering
2016-06-22 12:28:48 -04:00
Derek Foreman 326d638ba2 Always clear the mirror image data pointer
Under wayland evas will sometimes use the old one, I have no idea why.
Fixes a crash bug when mousing out of menus in a GTK app under wayland.

fix T3576
2016-06-21 17:53:16 -05:00
Marcel Hollerbach a45bbe3d35 e_xkb: init the keyboard on init
we need to flush in the first group here. For wayland currently each
keyboard configuration needs to be flushed each time.
2016-06-21 21:43:57 +02:00
Derek Foreman 19817b47de Send wayland surface enter and leave events
These events are supposed to be sent to clients that have bound wl_output
and manipulate surfaces.
2016-06-21 12:33:49 -05:00
Derek Foreman 11cb74a288 Track X outputs for zones
We needed this for wayland, so we add the same tracking for X to be
consistent - though we have no users yet.
2016-06-21 12:33:49 -05:00
Derek Foreman 3ff5e8dff4 Track wayland outputs for zones 2016-06-21 12:33:49 -05:00
Derek Foreman fc37423c2e Add new API for finding a zone by its id string 2016-06-21 12:33:49 -05:00
Mike Blumenkrantz 36c486906d apply client size for session recovery remember
fixes maximize restoring
2016-06-20 16:04:11 -04:00
Mike Blumenkrantz b5576dbb8c use separate flag for pending wl client unmaximize
also set flag to prevent saved geometry from being overwritten
2016-06-20 16:04:10 -04:00
Mike Blumenkrantz 9a9c09f514 do not change E_Client->saved values during maximize if need_maximize is set
this is indicative of a deferred maximize, so don't re-set it and screw up
previously-set values
2016-06-20 16:04:10 -04:00
Mike Blumenkrantz b5ef8766f4 store maximize property from E_Remember to disk 2016-06-20 16:04:10 -04:00
Mike Blumenkrantz c5266515ba set need_maximize flag on remembered client when applying maximize
causes maximize to be applied
2016-06-20 16:04:10 -04:00
Mike Blumenkrantz 12bcf7ecea match deskmirror client opacity with original object
fix T3911
2016-06-20 16:04:10 -04:00
Mike Blumenkrantz 10eb06b377 update secondary remembers when a session recovery remember is updated
the session recovery remember may block updates for the user-created
remember, creating continuity issues when a new instance is launched
2016-06-20 16:04:10 -04:00
Mike Blumenkrantz e8e6ada2e1 prevent E_Remember->used_count from going negative 2016-06-20 16:04:10 -04:00
Mike Blumenkrantz 890008cdf2 prevent editing of session recovery remembers
find/create new ones in this case
2016-06-20 16:04:10 -04:00
Mike Blumenkrantz aa1768a9d9 enforce mouse grabs and block client/compositor event propagation while active
fixes cases where mouse events could filter to objects and cause unwanted effects,
such as evry hiding randomly under wayland
2016-06-18 10:56:14 -04:00
Mike Blumenkrantz 6b081d1d44 do not mouse-out of clients on focus out when focusing a popup
popups are transient in nature and do not interfere with mouse-based focus
policies

ref 3e6d6b348f
2016-06-16 14:48:51 -04:00
Mike Blumenkrantz 771f71e6a9 add separate mouse in/out handlers for internal wins
internal wayland windows are windows with ssd, meaning they can only receive
pointer events on the contents of the window and not the entire window including
decoration regions

ref T3819
2016-06-13 12:00:09 -04:00
Mike Blumenkrantz a6bed1841a use focused client for window actions if passed object is not a client object
in the case where an action is triggered from the compositor or manager contexts
the passed object will not be a client, causing actions to fail when they should
succeed

fix T3854
2016-06-09 11:26:17 -04:00
Mike Blumenkrantz 0e416648df optimize e_client_res_change_geometry_restore()
performing the entire unfullscreen/unmaximize routine causes a significant
amount of overhead, and it also breaks window geometries in wayland due to
synchronization
2016-06-07 11:24:27 -04:00
Derek Foreman 573df39c17 Allow pixmap argb state to override window state for wayland clients
Wayland argb state depends entirely on the attached buffer, so we
should use that for determining object argb state on wayland.

ref 6d397e313b
ref 60da58d8ad
2016-06-06 14:06:00 -05:00
Mike Blumenkrantz 07ed7a1433 force mouse-in again during comp ungrab if client previously had mouse-in
unfocus performs a mouse-out, so this is necessary in order to allow events
to reach the client again after a grab ends
2016-06-01 13:11:20 -04:00
Mike Blumenkrantz 492f9bcf4e unset comp_grabbed flag before action client compositor ungrab
this flag was blocking accurate event propagation in some cases
2016-06-01 13:11:20 -04:00
Mike Blumenkrantz 48ee824c63 only block mouse-out callback for wl action clients if the mouse is grabbed 2016-06-01 13:11:20 -04:00
Mike Blumenkrantz 3c9013eeb0 protect against crash when deleting wl session recovery remember 2016-06-01 13:11:19 -04:00
Mike Blumenkrantz 859b1b989f handle shaded state when receiving x11 configure requests
previously this would resize the window without unshading it, leading to
a confusing state for the window and the user
2016-05-31 12:31:50 -04:00
Mike Blumenkrantz 68c93a1adf use current zone when activating a client's menu with the mouse
the mouse defines position of a mouse-activated menu

fix T3701
2016-05-31 12:23:50 -04:00
Mike Blumenkrantz 1fef7d04dc delete x11 mouse-in job when hiding the job's client
spurious x11 mouse events will be received when activating a mouse binding which
flips the active desk

fix T3716
2016-05-31 12:21:09 -04:00
Mike Blumenkrantz 3e7f8284cd set x11 maximized window hint correctly on resize end
fix T3702
2016-05-27 12:15:26 -04:00
Chris Michael 0d2b6b047c port enlightenment to use drm2
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-05-27 09:53:41 -04:00
Chris Michael c21bced4f8 change 'if' clause to make gcc-6 happy
Gcc 6 was spitting a nasty little compiler warning here:

src/bin/e_fm.c: In function ‘e_fm2_icon_geometry_get’:
src/bin/e_fm.c:2354:4: warning: this ‘if’ clause does not guard...
[-Wmisleading-indentation]
if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0;
^~
src/bin/e_fm.c:2354:19: note: ...this statement, but the
latter is misleadingly indented as if it is guarded by the ‘if’
if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0;

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-05-24 15:48:18 -04:00
Mike Blumenkrantz c58a3919e9 update client remember on opacity change
fix T3681
2016-05-24 11:52:31 -04:00
Davide Andreoli 107872af91 enlightenment_open: correctly return the exist status code of the executed command
@fix and close T3555
2016-05-20 19:25:42 +02:00
Derek Foreman e5e875ded8 Fix dmabuf breakage of non wayland builds.
#IWearTheHatOfShame
2016-05-19 10:23:22 -05:00
Chris Michael bd1847162e remove unused variables in _dmabuf_add function
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-05-19 08:57:43 -04:00
Mike Blumenkrantz c53a6efc8d add client util function for detecting popups, block popups in ibar/tasks
mainly a wayland issue where popup menus would cause the tasks gadget to
grow and shrink uncontrollably
2016-05-18 14:43:21 -04:00
Derek Foreman 402c56e1f2 clean up warnings in dmabuf code 2016-05-18 12:34:23 -05:00
Derek Foreman 2d1802375d Add DMABuf support for wayland
This adds compositor handling of DMABuf buffers.  DMAbuf capabilities
are advertised for the drm back-ends, and DMAbuf buffers are handled
as native surfaces.
2016-05-18 12:05:34 -05:00
Derek Foreman 6b0c55dd96 Track parent compositor dmabuf capabilities on wayland on wayland
When running as a wayland compositor connected to another wayland
compositor, we don't want to advertise dmabuf capabilities if the
parent compositor doesn't support them.

If it does, we'll want to proxy dmabuf requests to it instead of handling
them ourselves.

Expose this as new bools in e_comp_wl.
2016-05-18 12:05:34 -05:00
Derek Foreman f6d99980ba Remove GL presence test from native surface set on dirty objects
This test has been pushed into e_comp_object_native_surface_set() and
will be done as appropriate.

Upcoming wayland DMAbuf buffers need native surfaces even if GL isn't
present.
2016-05-18 12:05:34 -05:00
Derek Foreman 50a3f84191 Move the test for resetting no native surface to after caps checks
This is supposed to be functionally equivalent, but is a little tricky to
prove.

The benefit of this is a simplification to the callers, which no longer
have to consider gl capabilities in the call, as that is now tested for
internally.
2016-05-18 12:05:33 -05:00