Carsten Haitzler
1a982fd72a
e - fix dnd problems coming from getting top object in comp canvas
...
so getting top object was broken. it didnt account for repeat event
objects that would be included. so get the full l,ist and walk them
top to bottom for the first one thats a client. THAT is the correct
thing to do. this would affect both x11 and wayland.
@fix
2016-07-21 17:01:21 +09:00
Chris Michael
3c8ab9f175
add missing EINA_UNUSED for unused function params
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-07-19 13:57:34 -04:00
Mike Blumenkrantz
5f9cbb1446
set/unset smart parent as e_widget when adding sub-objects
...
in the case where there is no smart parent, this fixes the object tree
and resolves some stacking issues. if there is a parent or a parent is added
later, nothing is changed
fixes eg. screenshot preview visibility in wayland
2016-07-19 13:43:59 -04:00
Cedric Bail
3e74bcb3d3
filepreview: avoid race condition when destroying txt file preview with slow hard drive.
...
@fix T4119
2016-07-18 16:45:49 -07:00
Derek Foreman
248fa6d1e6
Fix xdg_shell focus logic
...
Moves and resizes tripped up the new xdg focus logic, so test if the
focus is leaving the client entirely before trying to determine if it's
leaving into a parent surface.
2016-07-13 16:03:55 -05:00
Derek Foreman
e32db0e7e3
Make sure the same keyboard resource doesn't end up on the focus list twice
...
This stops recent xdg_popup focus tracking changes from causing multiple
key events to be sent to the focused client.
2016-07-13 16:01:51 -05:00
Marcel Hollerbach
fde72ce193
e_comp_data: NULL out source once it is freed
...
Otherwise the pointer is removed when the next drag starts, so this
makes debugging dnd problems easier.
2016-07-13 18:09:34 +02:00
Mike Blumenkrantz
08aaeffade
handle e_comp_x init failure more effectively and perform cleanups
...
fixes autodetection for x11 wayland output without setting E_WL_FORCE
2016-07-12 12:51:00 -04:00
Chris Michael
f3371ff04c
'cur_group' variable is unused here if we are not building for wayland
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-07-11 12:11:00 -04:00
Derek Foreman
963afc8fea
Properly send kbd focus to xdg_shell popups
...
Oops, a client can have multiple top level windows.
ref f391a0fb67
2016-07-08 16:12:43 -05:00
Andy Williams
67463782a8
Fix compiling with WL off
2016-06-30 23:27:14 +01:00
Marcel Hollerbach
30b22f30af
e_xkb: use the new e_comp_wl_input_index_set api
...
For now the setting of a new layout does not mean the complete file
needs to be recompiled.
2016-06-30 20:35:58 +02:00
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