Marcel Hollerbach
d1e700cb68
e_comp_wl: introduce api to set index of keymap
...
this commit introduces the setting of the index. Setting the index here
means that the layout with the id 0..n, out of the compiled keymap file
will be used. After a new index is set the modifiers are updated, that
the client are aware of the new resulting group.
If the api is called before the compositor is inited (this can happen
in e_xkb, so the drm can use the keymap at startup) then the index is
saved in between and will be flushed once the compositor does the init.
2016-06-30 20:19:33 +02:00
Derek Foreman
f391a0fb67
Fix xdg_shell keyboard enter/leave events
...
On xdg_shell we should only ever send enter/leave to top level surfaces
or GTK becomes sad.
2016-06-29 16:23:41 -05:00
Derek Foreman
ada8e2deac
Don't send keyboard leaves to unmapped wayland surfaces
...
There are actually toolkits that create surfaces, do nothing with them,
and destroy them. Sending keyboard leave events for this causes problems.
Fixes a bug in handling of some GTK popups.
2016-06-29 16:21:49 -05:00
Derek Foreman
1f44a593c2
Track whether a surface is an xdg one
2016-06-29 16:19:20 -05:00
Derek Foreman
27e9845abd
Only unignore a client on the first commit with a buffer
...
Otherwise, if a wayland client does its first commit without a buffer
attached it will confuse our focus logic.
2016-06-29 13:20:37 -05:00
Derek Foreman
124e59df6f
Add a pixel get callback for mirrors
...
Mirrors can be rendered independently of what they're mirroring,
which (at least under wayland) can result in a situation where the
mirror is rendered before the parent sets up their image pointers
properly.
We give mirrors their own callback to prevent that from causing a
crash.
2016-06-28 15:44:00 -05:00
Derek Foreman
a04ee8e253
Revert "Always clear the mirror image data pointer"
...
This reverts commit 326d638ba2
.
This, for some reason, resulted in client surfaces being blacked out,
despite only ever changing mirror surfaces.
2016-06-28 15:43:54 -05:00
Derek Foreman
ab5879b926
Fix wayland pixmap ids again
...
Wayland pixmap ids are a different data type for internal and
external windows. cast them both to 64-bits so they're the same
size regardless of arch.
ref d3ba524a62
2016-06-28 15:43:45 -05:00
Marcel Hollerbach
afeb588632
e_comp: silence warning, this time really
...
as said on the ML
2016-06-25 16:00:30 +02:00
Marcel Hollerbach
a80bc13336
e_comp: silence warning
...
after talking to zmike, this is by intend.
2016-06-25 15:29:45 +02:00
Marcel Hollerbach
9c8b6a1c5d
e_xkb: eval group before setted to wl
...
otherwise we are going to set 0 as default group.
This commit refactors out _eval_cur_group from the init timer, since wl
does not need a init timer.
2016-06-25 15:01:44 +02:00
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