Mike Blumenkrantz
a364dbb0c8
force xwl client to retain original x11 client's placed flag during swap
...
fixes race condition where xwl clients would sometimes erroneously place
at 0,0
2015-08-13 17:10:54 -04:00
Mike Blumenkrantz
76fb106129
enable shape cutting for xwl clients during flip
...
fixes xwl<->xwl dnd
2015-08-13 16:20:39 -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
a08a1434c1
move x11 ee resize callback to comp_canvas, simplify x11 randr event handler
...
this should ensure that all compositors accurately perform resize-related
canvas operations
2015-08-12 19:26:19 -04:00
Mike Blumenkrantz
ba1077fb42
fix xwl pixmap unaliasing during client deletion
...
no more crashing, hooray!
2015-08-12 14:32:21 -04:00
Mike Blumenkrantz
262598a126
print DBG infos for unhandled x11 client messages
2015-08-07 13:48:21 -04:00
Mike Blumenkrantz
3c722ac7f2
alias xwl client pixmaps -> wl surface pixmaps
...
it's now possible to retrieve the xwl client using the xwl xwindow
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz
e37f5d8c28
set pass events on DND type windows
...
these are the actual drag windows from external apps and will be stuck
under the cursor, ideally not blocking/intercepting all motion events
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz
b7cc0e07b8
enable x11 dnd in wayland compositors
...
maximize footgun potential since this currently crashes immediately
2015-08-05 16:07:10 -04:00
Mike Blumenkrantz
2607ad2339
only return xwayland pixmap from e_comp_x_client_pixmap_get() for xwl clients
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz
7848947ea0
Revert "remove unnecessary geometry setting during xwl client swap"
...
This reverts commit ae1fc10d06
.
not unnecessary if the client has already been shown. fixes xwl menus
randomly showing up at 0,0
2015-07-29 15:40:02 -04:00
Mike Blumenkrantz
cd0e11c8c3
fix new_client setting on xwl clients during swap
2015-07-29 15:39:39 -04:00
Mike Blumenkrantz
f7ca0b5791
disable x11 mouse eventing in wayland compositor mode
...
these events are delegated directly by the compositor. anything that
is told to us by x11 may or may not be the case and we shouldn't care
either way
2015-07-28 15:59:19 -04:00
Mike Blumenkrantz
4543e26ca6
remove e_screensaver_force_update()
...
this was just used to set up x11 screensaver stuff, which has now been
relocated to the related comp_init function
2015-07-27 15:54:15 -04:00
Mike Blumenkrantz
7f638d98bf
add functioning wayland screensaver support
...
block xscreensaver events, manage input<->activation eventing
fix T2525
2015-07-27 15:46:57 -04:00
Mike Blumenkrantz
c2ecadae14
reject x11 NotifyVirtual and NotifyInferior mouse in events
...
these are triggered "in passing" when mouse in events occur and do
not necessarily indicate that the mouse has entered this specific window
failing to reject such events can cause mouse-based focus policies to
attempt to set focus onto windows which are not visible, resulting in
an infinite loop where no window is actually focused
2015-07-27 13:25:01 -04:00
Mike Blumenkrantz
0a8ee7b5ad
allow x11 mouse wheel events to check ev->event_window for possible client match
...
in the event that these windows are different, event_window is the parent of window
which may or may not be explicitly tracked by an E_Client, so the wheel events here
should be sent to the parent as is done in mouse button events
fix T2604
2015-07-27 13:23:13 -04:00
Mike Blumenkrantz
0b66c2d841
set new_client flag on xwl clients during swap
...
this forces another run of client placement so that xwl clients do
not always appear at 0,0
2015-07-22 17:10:49 -04:00
Mike Blumenkrantz
ae1fc10d06
remove unnecessary geometry setting during xwl client swap
...
this geometry will be applied during show
2015-07-22 17:10:11 -04:00
Mike Blumenkrantz
a9db84f94e
simulate modal windows for badly behaved x11 clients
...
it seems that some clients, eg. libreoffice, don't set the modal window
property on child dialogs. instead of fighting for focus, set up the child
as a modal on the parent and then avoid the whole issue
fix T2594
2015-07-21 18:24:39 -04:00
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
d2fce4ce27
do not add x11 compositor desklock hooks in non-x11 compositor
2015-07-21 14:25:41 -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
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
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
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
Mike Blumenkrantz
f3f29a0cf8
delete render updates for xwayland clients upon triggering a client resize
...
fixes frame dropping during resize
2015-07-10 16:59:47 -04:00
Mike Blumenkrantz
bec06b8703
add function to fill in x11 cursor image on creation
...
xwayland compositing requires that we set up a root window cursor image
immediately since we'll be getting that cursor surface to display as soon
as the pointer goes out of an x11 client's window
2015-07-10 13:04:12 -04:00
Mike Blumenkrantz
5d9cefd9e2
always set x11 override client geometry on startup
...
this geometry isn't something we can change later, so apply it now.
also fixes an ACK when trying to show input_only clients early
2015-07-10 12:07:29 -04:00
Mike Blumenkrantz
c9d5053998
disable netwm sync on x11 clients in wayland compositors
...
this has no effect
2015-07-09 19:32:51 -04:00
Mike Blumenkrantz
20d281d9d3
redo e_pointer to support xwayland cursors
...
this requires that both canvas cursors and window cursors be present for the same
E_Pointer object, even though only the canvas cursor is actually visible
#kansas
2015-07-09 14:45:04 -04:00
Mike Blumenkrantz
c4c18ed30b
return to using standard client util fns for getting client wins in x11
2015-07-08 17:16:25 -04:00
Mike Blumenkrantz
9f51bffd1e
make e_client_util_.?win_get() fns return xwayland windows when available
...
fixes setting x11 hints in xwayland clients
2015-07-08 14:48:19 -04:00
Mike Blumenkrantz
af15bf11eb
set xwayland clients in x11 compositor client hash using parent window on flip
2015-07-08 14:47:24 -04:00
Mike Blumenkrantz
17f0ce3713
move grabinput focus fix timer to x11 compositor and fix it to Work Better
...
see inline comments about x11 focus eventing for details
fix T2547
2015-07-06 15:46:02 -04:00
Mike Blumenkrantz
6323d0fb51
only apply xwl client deletion to xwl clients in x11 compositor
2015-07-02 16:49:19 -04:00
Mike Blumenkrantz
8b6b7b1f56
reorder xwayland client swap attribute setting
2015-07-02 14:58:10 -04:00
Mike Blumenkrantz
e9060ce771
unset x11 focus grabs on clients only if there is an xwindow present
...
fix T2539
2015-07-02 14:57:42 -04:00
Mike Blumenkrantz
db92edccf6
do not apply x11 focus grabs to internal elm clients
...
due to recent changes in ecore-input-evas, mouse events are propagated
differently; specifically, there are now "more" events than there previously were.
as a result, grabs on internal wins are no longer necessary, though they probably
never were necessary after the elm conversion
see 5cb6cdbc5e1a13ea0262e155983b494e6519abde in efl
2015-07-01 17:14:27 -04:00
Mike Blumenkrantz
9eb3abd45a
reject x11 replay clicks when event window != client window
2015-07-01 17:01:54 -04:00
Mike Blumenkrantz
fa684556d9
only ungrab x11 windows when appropriate focus options are set
2015-07-01 16:48:26 -04:00
Mike Blumenkrantz
99ddeb6d69
replace comp_x usage of internal xwindow detection function with new util fn
2015-07-01 16:41:26 -04:00
Mike Blumenkrantz
235980159f
ensure x11 focus grabs are applied on client init when needed
2015-07-01 15:51:46 -04:00
Mike Blumenkrantz
393772a72f
straggler ungrab of x11 parent window from previous commit
2015-07-01 15:32:25 -04:00
Mike Blumenkrantz
33ec963be2
redo all x11 client mouse grabbing for focus
...
I did an audit of this and it seemed that it no longer served the purpose
for which it was originally intended. specifically, this is for enforcing
click: raise/focus options, and so grabs must be in play on client windows
only when they are not focused to ensure that we get mouse events and can
then focus them. the grabs must then be removed once the window has focus
to avoid spurious mouse eventing
2015-07-01 15:26:28 -04:00
Mike Blumenkrantz
c9a444c85d
use client window for x11 button ungrabbing
...
ref afb62b4989
2015-06-30 18:46:33 -04:00
Mike Blumenkrantz
b0bf0379dc
copy more attributes from x11 -> wl on xwayland client swap
...
xwayland sets a wrong size on some (eg. menus) clients and wayland
cannot provide geometry or stacking information, so ensure that all
of this is copied over
also remove overrides from focus stack
2015-06-30 18:38:36 -04:00
Mike Blumenkrantz
cca2363c7c
clean up xwl data on client deletion
...
remove the extra comp_data, the pending client list entry, and the pixmap ref
2015-06-30 18:38:01 -04:00