This reverts commit dfb1877500.
This did fix the problem of "rage -f" not starting properly, but it
broke toggling between fullscreen and !fullscreen for other apps.
They'd resize to a large, but not quite fullscreen, size, then render with decor
present, and big black bars on the right/bottom edges (which were offscreen due
to the client size and position)
This isn't really the right place to fix this - it's a protocol usage bug, not
a canvas bug.
Currently, ecore_evas_extn only use exclusive lock.
so if there are many ecore_extn_plugs , there is competition among the ecore_extn_plugs.
since the ecore_extn_plugs dont need to use exclusive lock, add the shred lock mode.
We need a display unset path for software render to prevent an async
render completing after a disconnect from posting a frame and crashing
us.
As of this commit both software and gl session recovery work for me.
fix T5005
#SessionRecoveryWorksHere
Calling ecore_wl2_window_surface_get() has the side effect of creating
a new wayland surface if we don't already have one. If we do that
during a session recovery, we can try to create a new surface while
we have no connection to a compositor - that's Bad.
So we just use the one we already have stored - which we NULL out on
disconnect.
commit 81783ec75c combined two "identical"
pieces of code that weren't identical. The removed code never checked
if the evas was visible before performing operations to make it so,
the code left behind would bail if the evas was visible.
Reset the visible status during disconnect to make sure we properly show
windows after a session recovery.
ref https://phab.enlightenment.org/T5005
@fix
Session works on the software engines at this point. Use this as a bisect
point next time someone fubars it.
GL still broken. Window geometry seems like it doesn't get updated right
either, but at least clients reconnect again.
#SessionRecoveryWorksHere
As we already call the same functions inside
_ecore_evas_wl_common_show, there is no need to duplicate the same
code when we have defer_show set...just call the show function.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Calls to make a window fullscreen do require the window to already
have a shell surface with which to fullscreen. If an app sets the
window fullscreen property when the window is not shown yet, then the
app would never startup fullscreen. This patch fixes that issue by
adding a 'defer_fullscreen' flag to Ecore_Evas (wayland) so that when
the window does finally get shown, we can show it in fullscreen.
Addresses part of the T5044 ticket...
ref T5044
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Small patch to not call _ecore_evas_register unless we are showing the
window. This stops creation of rogue animators on cursors until the
window is actually going to be shown.
Fixes T5209
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
If we are in async render and a call to rotation_set has been made,
then we should delay setting that rotation until rendering is
completed. This patch fixes that issue by setting ee->delayed.rotation
and handling it during _drm_render_updates
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
If we are in async render when a call to set rotation happens, we
should not be setting the engine info->rotation until we have actually
handled the rotation. Old code here would set delayed.rotation on the
ecore_evas itself, but then it would tell the engine to rotate. What
we actually want here is If in async render, set the delayed rotation
property and let render_updates deal with any delayed setting.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Minor optimization to avoid always fetching framespace values even if
we were not going to use them.
@optimize
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Small patch to add a handler so we can listen for when the surface
configure event is complete and can then go ahead and attach buffers
to the surface. This allows rage <filename> to work again in Weston :)
NB: This does allow rage <filename> to work under Weston now, but
still fails under Enlightenment for some reason :(
ref T5090
Signed-off-by: Chris Michael <cp.michael@samsung.com>
With the change to xdg_shell v6, we need to wait for any pending
configure to be handled before we can render. This patch addresses
that issue and makes Elementary_Test work again under Weston :)
Signed-off-by: Chris Michael <cp.michael@samsung.com>
The common code was skipping frame callback when no shell surface was
present - cursors aren't shell surfaces.
Add the frame callback to the common path and remove the bespoke callback
from the cursor code.
As most of the "hard work" has been moved into
ecore_evas_wayland_common file, these includes are no longer needed
here.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Small patch to set all fields of the Evas Engine Info structure before
calling evas_engine_info_set function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This patch allows us to set a 'hidden' flag in the Evas Engine
information structure instead of setting a NULL surface. Setting this
flag allows us to hide/show a canvas without having to
destroy/recreate a wl_surface every time.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This function will set the modifiers/lock per seat in Evas.
Some places will still use ecore_event_evas_modifier_lock_update(),
since multi-seat is not supported.
This fixes the sizing of EDI. And elm_test "States 2"
The sizes stored in ecore_evas are the "window content" sizes,
excluding the framespace which thus must be added to all calls
to ecore_x / Xlib.
Small patch to implement support for ecore_evas_screen_dpi get on the
drm canvas. This will be used in enlightenment (e_scale) to get the
screen dpi of the compositor canvas when we call e_scale_update.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
After changes done on commit 9f8e2e0d9c
it was possible to have multiple devices with the same
id added throught the function
_ecore_evas_wl_common_cb_global_added().
To avoid such issue, let's check if the device was already
created first.
Reviewers: iscaro
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4428