Commit Graph

21257 Commits

Author SHA1 Message Date
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
Mike Blumenkrantz ab0e48d268 reduce wizard connman timeout timer to 0.5s
dbus is not this slow.
2016-04-26 09:45:05 -04:00
Mike Blumenkrantz 4c29688829 fix stringshare usage in wizard language page (010)
lang is not stringshared, and if it were then add/ref should always
be called before del
2016-04-26 09:45:00 -04:00
Mike Blumenkrantz d9bd88d2f5 do not reset the wizard got_desktops flag when setting the default system lang
this does not trigger any efreet cache rebuilds and will result in the user
being forced to sit through the full duration of the wait timer: currently 7.0s

this gets triggered multiple times throughout the wizard.

embarrassing.jpg
2016-04-26 09:44:52 -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 29f4c33e06 break out xwl init/shutdown into static functions for reuse internally
calling modapi functions like this causes symbol collision and randomly
calls corresponding functions for other modules
2016-04-26 09:43:00 -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 ecc85af47a grab comp input on wizard start
without this, windows can randomly grab keyboard input and prevent
fast forwarding
2016-04-26 09:42:52 -04:00
Mike Blumenkrantz 3c5ce6a9d5 redo wizard's gl testing mechanism
Xorg.$.log is not a reliable source of information for a variety of reasons,
using the readily-available evasgl is much safer and more portable
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
Mike Blumenkrantz 5ef356b39f remove library checks for a number of modules along with useless defines
most of these date back from before efl was a unified tree or enlightenment itself
could be optionally built with things like dbus support
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 e5d9dbd4ec remove show callback from evry win on deletion
==22088== Invalid read of size 1
==22088==    at 0x2C9FE7B1: _evry_cb_show (evry.c:3046)
==22088==    by 0x5BE9918: _eo_evas_object_cb (evas_callbacks.c:65)
==22088==    by 0x69A16F4: _eo_base_event_callback_call (eo_base_class.c:715)
==22088==    by 0x69A3041: eo_event_callback_call (in /usr/lib/libeo.so.1.17.99)
==22088==    by 0x5BEA0B3: evas_object_event_callback_call (evas_callbacks.c:240)
==22088==    by 0x5C2577C: evas_object_inform_call_show (evas_object_inform.c:12)
==22088==    by 0x5C1ED24: _show (evas_object_main.c:1360)
==22088==    by 0x5C1EADA: _evas_object_efl_gfx_base_visible_set (evas_object_main.c:1313)
==22088==    by 0x575D80A: efl_gfx_visible_set (in /usr/lib/libefl.so.1.17.99)
==22088==    by 0x5C1EA58: evas_object_show (evas_object_main.c:1291)
==22088==    by 0x479FCF: _e_comp_intercept_show_helper (e_comp_object.c:1616)
==22088==    by 0x47A02A: _e_comp_intercept_show (e_comp_object.c:1630)
==22088==  Address 0x17621591 is 81 bytes inside a block of size 120 free'd
==22088==    at 0x4C2AE6B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==22088==    by 0x2C9F95A8: _evry_window_free (evry.c:993)
==22088==    by 0x2C9F8065: evry_hide (evry.c:366)
==22088==    by 0x2C9FB9A2: _evry_cb_key_down (evry.c:1926)
==22088==    by 0x8F6ED4A: _ecore_call_handler_cb (ecore_private.h:316)
==22088==    by 0x8F6FC92: _ecore_event_call (ecore_events.c:518)
==22088==    by 0x8F7A15A: _ecore_main_loop_iterate_internal (ecore_main.c:2339)
==22088==    by 0x8F784A8: ecore_main_loop_begin (ecore_main.c:1284)
==22088==    by 0x4403F6: main (e_main.c:1087)
==22088==  Block was alloc'd at
==22088==    at 0x4C2BBD5: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==22088==    by 0x2C9F8D7D: _evry_window_new (evry.c:758)
==22088==    by 0x2C9F772D: evry_show (evry.c:177)
==22088==    by 0x2C9F711C: _e_mod_run_defer_cb (e_mod_main.c:537)
==22088==    by 0x8F75267: _ecore_call_task_cb (ecore_private.h:282)
==22088==    by 0x8F7574E: _ecore_idle_enterer_call (ecore_idle_enterer.c:174)
==22088==    by 0x8F7A05B: _ecore_main_loop_iterate_internal (ecore_main.c:2261)
==22088==    by 0x8F784A8: ecore_main_loop_begin (ecore_main.c:1284)
==22088==    by 0x4403F6: main (e_main.c:1087)
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 65485742b5 20.6 NEWS updates 2016-03-09 12:18:58 -05:00
Mike Blumenkrantz c50aa176e8 20.6 release 2016-03-09 12:18:12 -05:00
Chris Michael 32921f57f3 don't have to hook the ecore_evas resize callback here as that should
be handled by elm now

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-09 12:15:15 -05: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
Derek Foreman 4e1d7e3854 Add a NULL check in native_surface_init under wayland 2016-03-09 12:13:55 -05:00