Mike Blumenkrantz
005de524fb
add even more systray/dbusmenu hacks
...
mrw Qt systray devs take working (4.X) and then break it in 5.X to
be worse than steam: http://gfycat.com/CloudyPinkEmperorshrimp
fix T3139
2016-04-26 09:48:58 -04:00
Mike Blumenkrantz
a7e28b6e76
ignore x11 ConfigureRequest events when maximize_override is set
2016-04-26 09:48:52 -04:00
Mike Blumenkrantz
d1568b832f
redo wayland client unignore mechanism
...
wayland clients were previously set as ignored until they obtained
a shell surface in order to avoid early execution of things like placement.
this had no effect.
the ignore must last until the first commit, at which point surfaces have been
sized and can be placed accurately without needing to move the surface around
a lot of times due to resize/frame adjust/birthdays
2016-04-26 09:48:29 -04:00
Mike Blumenkrantz
56e96ce294
do not set initial changed state for new clients if they are ignored
...
this loops the client idler for no reason
2016-04-26 09:48:22 -04:00
Mike Blumenkrantz
39717a8a38
feed mouse-up events for all buttons on internal wins when activating a binding
...
bindings enforce compositor grabs, which will result in stuck canvas buttons and
break internal windows which have already received button presses
fix T3347
2016-04-26 09:48:06 -04:00
Mike Blumenkrantz
845cabf732
send resize edges to wl clients on resize start and end
2016-04-26 09:47:41 -04:00
Mike Blumenkrantz
8344b79020
use eina_streq for e_util_binding_match() comparisons
...
optimizes what is likely a stringshare comparison as well as avoiding
null derefs
CID 1191998
2016-04-26 09:46:35 -04:00
Mike Blumenkrantz
da00500c11
unset opaque region during comp object render if none exists
...
fixes case where opaque region has been unset after previously being set
2016-04-26 09:46:24 -04:00
Mike Blumenkrantz
fd2a30c767
cast eina_list_count() in flowlayout, not entire expression
...
CID 1267211
2016-04-26 09:46:20 -04:00
Mike Blumenkrantz
5e27e5f302
ignore xwayland clients in wl client delete request callback
...
this breaks the compositor!
2016-04-26 09:46:12 -04:00
Mike Blumenkrantz
d624b4f4e4
store (internal) elm win geometry when set prior to showing the win
...
this fixes the case where attempts to manipulate a window would fail
prior to showing the window
2016-04-26 09:45:57 -04:00
Mike Blumenkrantz
eb596299ad
remove wl selection hacks from f0ba92d39e
...
https://gfycat.com/ChiefDeafeningGull
2016-04-26 09:45:40 -04:00
Mike Blumenkrantz
d6e31b30fe
hide wl clients before deleting them when surface is destroyed
...
clients without hide animations will fail to run cleanup operations during
hide if they are not marked as deleted
2016-04-26 09:45:33 -04:00
Mike Blumenkrantz
02c1a2db71
ignore deleted clients when reapplying zone geometry policy in canvas update
...
this breaks the compositor!
2016-04-26 09:45:29 -04:00
Mike Blumenkrantz
57e60ac77b
do not update client coords on csd geom update if it would change the zone
...
in the case where a client is at 0,0 relative to a zone, changing the coords
in this case will result in the client moving out of the zone by the size of the
csd
2016-04-26 09:45:22 -04:00
Mike Blumenkrantz
af1fa7e6e1
always update saved coords for maximized/fullscreen clients on csd geom update
...
this was causing clients to position themselves wrongly in some cases after
removing the related states
2016-04-26 09:45:17 -04:00
Chris Michael
2e338e944c
destroy seat resource when we get a release request
...
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-04-26 09:44:26 -04:00
Mike Blumenkrantz
695a3a8d17
adjust wayland client coords by window_geometry during first surface commit
...
fixes first window positioning
2016-04-26 09:44:20 -04:00
Mike Blumenkrantz
b230940f4f
unset solid drawing of opaque regions during comp object animations
...
this makes animations with transparency not look like giant black rectangles
2016-04-26 09:44:13 -04:00
Mike Blumenkrantz
8d626e490b
do not attempt to resize clients to 0x0 during res restore
...
ACK--
2016-04-26 09:44:06 -04:00
Mike Blumenkrantz
d10a03fcb2
unify client post_updates management code into single function
2016-04-26 09:44:00 -04:00
Mike Blumenkrantz
3829f2c10c
add workaround for xwayland client bug
...
sighhhhhhhhhhhhhhhhh
2016-04-26 09:43:44 -04:00
Mike Blumenkrantz
47143ab35a
remove direct references to ec->comp_data in x11 compositor
...
this fixes a number of xwayland client issues
2016-04-26 09:43:39 -04:00
Mike Blumenkrantz
a30d043089
calling dirty() on a comp object for a deleted client should not print an error
2016-04-26 09:43:35 -04:00
Mike Blumenkrantz
5bfcd6dd98
always send wl key releases if surface still exists
...
fixes stuck keys for wl_clients with multiple surfaces
2016-04-26 09:43:29 -04:00
Mike Blumenkrantz
589c159831
remove maximize_pre flag from wl client comp_data
...
this breaks modification of maximized size for surfaces as well as animations
fix T3297
partially reverts 0321fd690e
2016-04-26 09:43:25 -04:00
Mike Blumenkrantz
5600aa605a
don't add render updates for deleted clients on failed resize
2016-04-26 09:42:52 -04:00
Mike Blumenkrantz
69655795b1
remove eldbus init/shutdown calls from the codebase
...
this is handled by e_msgbus
2016-04-26 09:42:52 -04:00
Derek Foreman
f6c71b781d
Free pixel data after taking a wayland screen shot
2016-04-26 09:42:52 -04:00
Derek Foreman
f56bbf6e1a
Fix internal window borders on 32-bit computers
...
Our wayland window ids are 64 bit integers, we need to be careful
about the data type on 32-bit machines where pointers are smaller
than this.
2016-04-26 09:42:51 -04:00
Mike Blumenkrantz
67153a06a2
make wayland client keyboard focus list pruning more robust
...
this should handle all possible cases where focused keyboard resources
need to be removed from the global list
2016-04-26 09:42:51 -04:00
Mike Blumenkrantz
e2cdc28ec0
reject attempts to focus deleted comp objects
2016-04-26 09:42:51 -04:00
Mike Blumenkrantz
5d64676bd0
run focus-out and mouse-out wayland client callbacks for deleted clients
...
this fixes a number of issues caused by clients not cleaning up on deletion
ref 3e9029ea08
#YouAlwaysRememberTheFirstTimeYouBorkedTheCompositor
2016-04-26 09:42:51 -04:00
Derek Foreman
ba88768344
Fix wayland hide for internal windows
...
We need to make sure we drop reference on all exit paths through the
hide callback - somehow this only seemed to break internal windows.
ref 65166c5a36
2016-04-26 09:42:51 -04:00
Mike Blumenkrantz
ec9776e5eb
check returned pixmap size before attempting to create updates tiler
...
CID 1349419
2016-04-26 09:42:51 -04:00
Mike Blumenkrantz
40ebd1d16e
don't add render update during ignored damage on deleted clients
...
ref 1507f815a5
2016-04-26 09:42:51 -04:00
Mike Blumenkrantz
af46fe8190
unify client e_hints window size setting in move/resize callbacks
2016-04-26 09:38:08 -04:00
Mike Blumenkrantz
4a408dfdbc
always run client res changes in e_comp_canvas_update()
...
this function is only called when screen geometry (or useful geometry) has
changed, and so all clients should have their geometries checked at this point
to ensure that they update for any new zone obstacle changes which have occurred
2016-03-09 12:14:59 -05:00
Mike Blumenkrantz
53941a7dc0
block re-unsetting of native surface for comp objects
...
due to recent evas internals changes, this breaks software compositing
2016-03-09 12:14:53 -05:00
Derek Foreman
0959e59413
Remove argb_convert for wayland buffers
...
Wayland buffers are currently either ARGB or XRGB - we don't need to
convert either of these, we just need to set alpha appropriately - which
we now do.
2016-03-09 12:14:47 -05:00
Derek Foreman
6f7ed23bc9
Don't use e_pixmap_image_data_argb_convert for wayland images
...
All we really need for wayland is to set alpha properly, so we can
save the conversion/copy when doing XRGB.
2016-03-09 12:14:41 -05:00
Derek Foreman
388ec769c0
Stop copying all wayland buffers
...
The new buffer management shouldn't require this anymore.
2016-03-09 12:14:37 -05:00
Derek Foreman
20303989de
Re-enable window close animations for wayland
...
These should work properly with the new buffer management code.
2016-03-09 12:14:34 -05:00
Derek Foreman
ee43c83c7d
Remove wayland buffer reference
...
This code is similar to code in weston, but doesn't really work properly
for us in E, since this can blow up buffers behind the async renderer's
back.
The rest of the reference code has been pushed into e_pixmap, so we can
kill this all now.
2016-03-09 12:14:29 -05:00
Derek Foreman
7aef5e74fd
Rework wayland buffer handling
...
We need to keep wayland buffers around even if they'll never be written
to again. This is part of Buffer_Reference's task in weston, but we
already have our pixmap abstraction which can serve mostly the same
purpose.
Remove the "buffer reference" stuff from e_pixmap and replace it with a
kept buffer for the last commit.
Add shared memory pool references to keep pools from going away on us.
2016-03-09 12:14:23 -05:00
Derek Foreman
71433691da
Track whether a render is in progress or not
...
We'll need this to protect certain wayland operations.
2016-03-09 12:14:17 -05:00
Derek Foreman
d44d334953
Don't allow deleted wayland clients to set the cursor
2016-03-09 12:14:13 -05:00
Derek Foreman
74ce8dd7be
Take an extra reference on wayland clients
...
We need to make sure wayland clients aren't deleted while the scene
graph has their data pointers, so we take an extra reference when creating
them.
We drop that reference by clearing the client's image data and putting it
in the render post_updates list.
2016-03-09 12:14:08 -05:00
Derek Foreman
d38cc38b9d
Track whether objects are on the post_updates list or not
...
Will use this to prevent accidentally adding objects to the list twice
2016-03-09 12:14:03 -05:00
Derek Foreman
4ba7648c41
Render deleted objects as long as they still have a pixmap
...
In wayland we can be presented with a new frame before being deleted. If
we've never displayed that frame we should (since we released all pointers
to the old frame when we got the new one)
2016-03-09 12:14:00 -05:00