Commit Graph

775 Commits

Author SHA1 Message Date
Derek Foreman acb125419f ee_wayland: Remove extraneous unregister
Summary:
ecore_event_window_unregister(ee->prop.window) is actually *exactly*
the same as ecore_evas_input_event_unregister(ee)

So this sequence just uselessly tries to remove something from an empty
hash table.

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6521
2018-07-06 10:15:40 -04:00
Mike Blumenkrantz 4aad39ce03 ecore-evas-x: set draw_block until the window receives a configure event (#2)
Summary:
drawing a non-override window before receiving a configure event results
in an unsized window, breaking spec. it also prevents ecore-evas resize
callbacks from triggering, yielding undefined returns from functions which
attempt to get the geometry of the ecore-evas

this patch improves upon the previous version by handling the case of windows
which are created with the correct initial size, bypassing an initial configure
event

there is still a lot of work to be done in this engine to improve/consolidate
resize-related code and ensure protocol correctness

ref T7008
fix T6907

Reviewers: devilhorns, ManMower

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7008, T6907

Differential Revision: https://phab.enlightenment.org/D6275
2018-06-27 13:49:57 +09:00
Derek Foreman dc75d6b5d3 ee_wayland: Don't offer a raise callback
Summary: This isn't possible under wayland.

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6276
2018-06-15 13:17:39 -05:00
YeongJong Lee 420128903a ee_wayland: remove needless variable
Reviewers: ManMower, zmike

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6239
2018-06-01 09:13:14 -05:00
Carsten Haitzler 4715c099ec Revert "ecore-evas-x: set draw_block until the window receives a configure event"
This reverts commit 7b80038fa7.

JackDanielz asked nicely, but this hasn't been reverted. As this
totally breaks enlightenment (it's black) and this happens on
everythng I've tested (1 laptop, desktop and Xephyr) I'm calling this
patch a dud.

Now... what kind of review is going on here? This hasn't been tested.
What kind of review doesn't build + run things?

for the reasons of poor review and massive horribler fully complete
desktop like breakage ... this gets reverted as master should not be
broken like this.
2018-05-27 04:52:03 +09:00
Mike Blumenkrantz 7b80038fa7 ecore-evas-x: set draw_block until the window receives a configure event
Summary:
drawing a non-override window before receiving a configure event results
in an unsized window, breaking spec. it also prevents ecore-evas resize
callbacks from triggering, yielding undefined returns from functions which
attempt to get the geometry of the ecore-evas

fix T6907

Reviewers: cedric, raster

Reviewed By: cedric

Subscribers: #committers, vtorri

Tags: #efl

Maniphest Tasks: T6907

Differential Revision: https://phab.enlightenment.org/D6019

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-05-25 10:28:32 -07:00
Cedric Bail bff5c37c1b ecore_evas: we shouldn't do anything when we are deleted. 2018-05-24 16:02:19 -07:00
Derek Foreman 27316746f5 ee_wayland: Fix device leak on disconnect
Summary:
A reference was taken on these when they were added, so by passing NULL
here we're not allowing that reference to be dropped.  This results in
not only leaking the device forever, but also potentially leaving it as
a default device after it's removed so that no new attach will replace it.

Under weston all devices are removed on a VT switch, and when you switch
back the default device is wrong, which leads to problems with events
like "mouse in" which, for legacy reasons, don't take a seat, but
instead look up the default seat.

This allows the delete callback to be fired for the first time ever,
and while I've tried to fix some bugs this has revealed, I'm not
actually sure I've caught them all.
Depends on D6182

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6183
2018-05-18 13:46:47 -04:00
Wonki Kim f1c03000c9 Modify initial visibility of a extn_socket
Summary:
extn socket should be rendered even if it is not visible to answer client's requests

extn_socket was rendered even if it's not visible for the first render.
however, it's not rendered as expected because there has been changes for ecore evas idle enterer.
so that this patch changes visibility of extn_socket to answer client's requests immediately.

ref D6054

Reviewers: zmike, jypark

Subscribers: cedric

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6167
2018-05-16 11:41:27 -04:00
Wonki Kim d92b195fe2 ecore_evas_extn: Remove aka latch logic on fn_prepare function
Summary:
current extn_socket_prepare function logic could run into dead-end
because extnbuf_lock return null on failure of taking a lock.

this patch removes aka latch logic that guide the function to dead-end.

Reviewers: cedric, raster, zmike, jypark

Subscribers: zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6054
2018-05-16 11:41:19 -04:00
Andy Williams 114873c545 remove potential double free 2018-05-15 14:49:41 +01:00
Wonki Kim fef2a12ef6 ecore_evas_extn: Modify not to send a message if there is nothing to draw
Summary:
Seding ipc messages on ews_update_image(which is invoked as a callback of EVAS_RENDER_POST)
can makes ecore main loop awake, because sending ipc messages makes message_queue not empty.

so that this patch prevent seding ipc logic if there is nothing to draw.

Reviewers: cedric, raster

Reviewed By: raster

Subscribers: zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6055
2018-05-09 23:58:48 +09:00
Derek Foreman 1e2626a70c ee_wayland: retain seat names when creating a new canvas
Summary:
We were creating seats with silly arbitray names like seat-11 when
creating a new canvas.
Depends on D6130

Reviewers: zmike, cedric

Reviewed By: zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6131
2018-05-08 13:26:57 -05:00
Derek Foreman abe295735a ee_wayland: clean up warnings
Summary:
Pretty sure these are my fault.
Depends on D6122

Reviewers: zmike, cedric

Reviewed By: zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6123
2018-05-08 13:26:25 -05:00
Derek Foreman 684d6a69d6 ee_wayland: remove edges flag
Summary:
Nothing needs this anymore.
Depends on D6121

Reviewers: zmike, cedric

Reviewed By: zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6122
2018-05-08 13:26:22 -05:00
Mike Blumenkrantz 4d62d59978 ecore-evas-win32: set draw_block until the window receives a configure event
Summary:
drawing a window before receiving a configure event results
in an unsized window, breaking spec. it also prevents ecore-evas resize
callbacks from triggering, yielding undefined returns from functions which
attempt to get the geometry of the ecore-evas

ref T6907

@fix

Depends on D6033

Reviewers: vtorri

Reviewed By: vtorri

Subscribers: cedric

Maniphest Tasks: T6907

Differential Revision: https://phab.enlightenment.org/D6034
2018-05-02 15:57:26 -04:00
Cedric BAIL c51a425ee5 ecore_evas: fix vnc_server build. 2018-05-01 10:39:01 -07:00
Derek Foreman a61f254f19 ee_wayland: Remove pointless ack_configure
If we don't ack_configure here, it'll just automatically happen in
ecore_wl2_commit() next time we render anyway.

If we do ack_configure here, we can totally screw up E's internal window
handling.

Removing it seems like a win.
2018-04-24 15:44:09 -05:00
Derek Foreman a297f17ac3 ee_wayland: Add some NULL checks
These just protect against caller stupidity.  Double register or double
unregister shouldn't happen anyway.
2018-04-20 13:00:28 -05:00
Derek Foreman dbf65eb96a ecore_evas_wayland: Handle region updates and alpha setting in engine
Instead of having elm handle all this stuff, handle it in ee.  This fixes
a loooong standing bug where we would always use an alpha enabled surface
because CSD needs shadows - even if we aren't drawing CSD.
2018-04-20 13:00:28 -05:00
Derek Foreman 5af84afced ecore_evas_wayland: Replace transparent_set with alpha_set
transparent_set is a legacy path that should do exactly what alpha_set
does these days, so squash them into the same function.
2018-04-20 13:00:27 -05:00
Derek Foreman d20c0bf964 ecore_evas_wayland: Remove content rectangle from engine data
It's no longer used.
2018-04-20 13:00:27 -05:00
Derek Foreman 541ab76e45 ecore_evas_wayland: Calculate content size from shadow and framespace
Instead of using wdata->content, calculate these values.
2018-04-20 13:00:27 -05:00
Derek Foreman a252c3445d ee_wayland: Stop using manual_render_set
Now we use draw_block instead, so we don't accidentally stomp on other
code's usage of manual_render_set

fix T6834
2018-04-12 15:59:39 -05:00
Derek Foreman 380a58a9d9 ee_x: Rename draw_ok to draw_block and invert logic
I want to use this in other engines, but no other engine initializes this
properly, so draw_ok would be EINA_FALSE everywhere.  This way draw_block
is EINA_FALSE after calloc in all engines that don't know about it.

ref T6834
2018-04-12 15:59:39 -05:00
Derek Foreman b8e58eb4b2 ee_wayland: Remove use of draw_ok
This appears vestigial, as the evas render path we use has no custom
draw_ok handling, so nothing ever reads this variable.

ref T6834
2018-04-12 15:59:39 -05:00
Derek Foreman 4343a95e27 ee_cocoa: Remove draw_ok sets
draw_ok isn't currently used by anything but the X custom render function,
so it's doing absolutely nothing here.

ref T6834
2018-04-12 15:59:39 -05:00
Shinwoo Kim b27949dafb ecore_evas_wayland: handle 0x0 content problem
Someone could NOT use elementary and use ecore_evas only. In this case, content
size which is defined by elementary is 0x0. If content size is 0x0, then frame
size is equal to window size. But the frame size is defined by elementary as
well. So if there is not a content, then the frame size should be 0.
2018-04-10 20:38:47 +09:00
Cedric Bail a44697c37a ecore_evas: refactor logic for creating Ecore_Evas. 2018-04-02 15:12:31 -07:00
Derek Foreman e9b7844bb8 ecore_drm2: Improve early tick logic
We should only have to actually force a tick if we can't set up
the tick job, as the evas changed callback or a following render
from the tick job's tick will cause a flip.

Should remove a potential for a missed tick near the start of
ticking.
2018-03-23 16:13:39 -05:00
Derek Foreman f0a96ec53c ee_drm: prevent extra flips
Similarly to commit 8b962d24ac prevent
extra flips in the drm engine.

These are potentially more harmful to DRM as they can cause frame
drops and missed render opportunities.
2018-03-15 14:49:56 -05:00
Derek Foreman 8b962d24ac ee_wayland: Prevent extra commits
It's possible that we unregister then reregister an animator so quickly
that the ecore_evas idle enter/exiters haven't had a chance to run yet.
In this case a render will come shortly anyway and we shouldn't use a
'false' commit to kick off a frame callback.

Silences an ERR and unmeasurably improves protocol utilization.
2018-03-15 14:41:15 -05:00
Derek Foreman 812ab64413 ee_wayland: Set window visible before trying to render it
if we try to render before setting ee->visible the results aren't
likely to be... visible.
2018-03-14 16:08:07 -05:00
Carsten Haitzler cc1e1a5b56 ecore evas - drm engine - fix focus set on show to work correctly 2018-02-26 00:36:17 +09:00
Derek Foreman 0a66978041 ee_wayland: Fix ecore_wl2 refcounting breakage on some failures
If we have a blacklisted gl implementation then we'll create a canvas,
it'll fail to be useful, and we'll free it - which calls
ecore_wl2_shutdown(), but then we'll also call ecore_wl2_shutdown()
a second time further down the failure path.

Take a bonus reference before freeing the failed canvas to keep refcounts
sane.
2018-02-21 16:42:08 -06:00
Myoungwoon Roy, Kim 1308fe5338 ecore-evas: Replace ecore_wl_dpi_get with ecore_wl2_output_dpi_get
Summary: This patch replaces ecore_wl_dpi_get with ecore_wl2_output_dpi_get using Ecore_Wl2_Output

Test Plan: Execute test suite

Reviewers: cedric, raster, jpeg, stefan_schmidt, Jaehyun_Cho, devilhorns

Reviewed By: devilhorns

Differential Revision: https://phab.enlightenment.org/D5804
2018-02-19 06:40:03 -05:00
Chris Michael 32d32d402f ecore-evas-drm: Use output viewport in ecore_evas_animator_tick calls
@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-02-13 11:44:23 -05:00
Vincent Torri d54f0f66cf Evas: remove depth usage in GDI and DirectDraw engines
Test Plan: compilation and elementary_test

Reviewers: raster

Reviewed By: raster

Subscribers: cedric, raster

Differential Revision: https://phab.enlightenment.org/D5792
2018-02-07 22:20:20 +09:00
Vincent Torri 4916973a60 efl: remove inclusion of dirent.h where it is not used
Test Plan: compilation

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5733

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2018-01-12 11:06:12 -08:00
Mike Blumenkrantz ffa276fce3 wayland: add xdg-shell vfinal support for client-side
@feature
2018-01-10 11:39:52 -05:00
Chris Michael 1711363725 ecore-evas-drm: Check for XDG_SEAT existence
Small patch to allow specifying a different seat via XDG_SEAT env
variable. If no seat name is passed as ecore_evas options, then we
would always default to 'seat0'. As this may not be desirable in all
situations, allow for an override via XDG_SEAT env var.

ref T6455

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-12-01 15:32:35 -05:00
Derek Foreman 6a48d56dca wayland ee: Don't clear the window pointer during session recovery
The same pointer is valid post recovery, and anything that used to
check this for NULL now checks that the window's display is NULL
which is handled in ecore_wl2 now.
2017-12-01 10:58:44 -06:00
Derek Foreman 15fdbca653 wayland evas: Remove Ecore_Wl2_Display from engine info
We've got the Ecore_Wl2_Window so we can always get the display from
that.
2017-12-01 10:58:44 -06:00
Derek Foreman 8cf0bfc9ef wayland: stop tracking compositor_version in engine
We don't need it anymore now that damage is posted from inside ecore_wl2.
2017-11-10 13:43:45 -06:00
Carsten Haitzler 6a47c2243e efl ui win - make win centering work with multiple screens
this should fix T6323
@fix
2017-11-07 13:53:27 +09:00
Jean-Philippe Andre 9cec14918c evas: Move evas_canvas.eo to legacy-only
This isn't meant to be installed. The canvas API in EO is based around
the interfaces Efl.Canvas and the widget Efl.Ui.Win. Anything else is
not EO (eg: ecore_evas, evas, ...)

Note: evas_canvas3d is the last remaining thing that is installed along
EO files, but those are all beta APIs.
2017-11-01 11:22:33 +09:00
Derek Foreman 059613222a ecore_evas_wayland: Fix session recovery
Turns out when apps reconnect to the compositor they don't always
realize they need to redraw themselves.  Force a manual render
at startup if we end up in a state where an update is needed but
has probably been dropped on the floor.
2017-10-30 14:23:07 -05:00
Mike Blumenkrantz f375661e0b wayland: use eina array for ecore-evas event handlers
thx to @jpeg for reporting how dumb this was
2017-10-25 10:44:16 -04:00
Mike Blumenkrantz ffac7fc539 wayland: fix window stack implementation
ref T5350
2017-10-25 10:44:16 -04:00
Derek Foreman 3dd90f61a9 ee_wayland: Don't use wrong window size
Borderless windows, such as internal windows, need to be the exact size
they're passed by a configure event.
2017-10-16 16:17:29 -05:00