Commit Graph

21033 Commits

Author SHA1 Message Date
Mike Blumenkrantz 9af96a4c23 determine new_client state for xwayland clients using xwayland pixmap
in the case where the xwayland pixmap has previously been marked as usable,
the corresponding client is guaranteed to have gone through the new_client
eval. allowing a second eval will result in wrong geometries being set for
the window in some cases
2016-02-02 13:36:14 -05:00
Mike Blumenkrantz 69ebda1df8 allow instant client mouse actions to persist until mouse up
if an action triggers on a window, the triggering mouse event should
not be passed to the window. the only way to determine this is if the
action object lives through the entire event
2016-02-02 13:36:08 -05:00
Mike Blumenkrantz f4c3d3eae8 unify client mouse action ending
the code for this in most places was identical, but in some places it was
not, leading to behavior inconsistencies and potentially dangling objects
2016-02-02 13:35:55 -05:00
Mike Blumenkrantz 3535581b2c enable surface visibility fallthrough for drag clients
more surfaces with no shell interfaces
2016-02-02 13:35:43 -05:00
Mike Blumenkrantz c0be62b0b4 track wayland client mouse button states as a full button mask
sending a button release event to a surface which has not previously
received a button press yields strange results
2016-02-02 13:35:38 -05:00
Chris Michael 18d59156cc check siginfo si_code to verify that SIGUSR2 comes from user
When VT switching away and back, the kernel uses SIGUSR1 and SIGUSR2
to notify us of a vt switch event. That same signal was being trapped
here to toggle display of the 'fps' window. If we check the signal's
si_code, we can tell if this signal came from the kernel (as in vt
switch) or from the user (as is sent in 'kill'). This fixes the issue
of VT-switching back and forth under DRM would cause the compositor
'fps' display to appear.

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-02 13:35:28 -05:00
Mike Blumenkrantz 7ae3d94308 remove _e_comp_wl_focus_down_set()
this function does nothing for wayland clients and never should have
been used in this file
2016-02-02 13:35:19 -05:00
Mike Blumenkrantz 65c222698c reenable fallthrough surface (un)mapping for subsurfaces during commit
subsurfaces have no shell interface and rely upon the map state of parent
surfaces to determine whether they are mapped
2016-02-02 13:35:15 -05:00
Mike Blumenkrantz 8ddc98d3a7 add render updates for cursor clients if damages exist during set_cursor
this indicates a cursor surface which has been committed but could not be
rendered due to lack of shell interface and cursor hint
2016-02-02 13:35:09 -05:00
Mike Blumenkrantz 45d8cb6b5e remove duplicate visibility setting blocks from wayland surface commit
this is already present (and identical) in state commit
2016-02-02 13:35:03 -05:00
Mike Blumenkrantz 47196af43a always apply damages and input regions during wayland commit
mapped status is not relevant according to spec
2016-02-02 13:34:57 -05:00
Mike Blumenkrantz 3b77b7aa43 do not set focus in wayland client show callback for cursor clients 2016-02-02 13:34:53 -05:00
Mike Blumenkrantz 317f0794d6 automatically mark wayland cursor surfaces as visible during set_cursor
a cursor client should be shown/hidden as needed despite its lack of a
shell interface, and having a special flag to identify these types of
surfaces makes it easier to do that
2016-02-02 13:34:48 -05:00
Mike Blumenkrantz f129b0d7d5 |= instead of = flag setting for want_focus during wayland surface commit
if want_focus has already been set, this check should not unset it
2016-02-02 13:34:32 -05:00
Mike Blumenkrantz 62171ab39a improve focus setting during wayland client show callback
take_focus will only be handled if the new_client flag is set. in all
other casees, focus_set should be called directly

new_client flag implies changed flag
2016-02-02 13:34:28 -05:00
Mike Blumenkrantz da2af2de23 more correctly handle evry mouse detection on wayland
in this case, mouse events which are not originating from the internal
window are for the screen, and these coords can be used for determining
"mouse out". if the mouse event comes from the window, it is inside the window.

ref 7c661b54a9
2016-02-02 13:34:21 -05:00
Mike Blumenkrantz 76d7824a7c only do passthrough surface map on xwayland surfaces during commit
these was a workaround for handling early internal windows which is
no longer necessary now that they will handle their map states more
effectively

now, any wayland surface (not xwayland) requires a shell to map the
surface as intended
2016-02-02 13:34:13 -05:00
Mike Blumenkrantz 7b4b823758 set want_focus for xdg popup surfaces on creation
these types of surfaces should grab focus as early as possible, and
setting the flag at this time ensures that it will be handled during
the next client eval
2016-02-02 13:34:09 -05:00
Mike Blumenkrantz f63ebeb939 call xdg surface map when creating a surface for visible internal windows
if windows are created during startup, they will attempt to show themselves
before xdg surface operations are available, leading to a scenario where they
will never successfully map themselves. if the elm win object is visible, this
indicates a mapped internal window, so directly call the map function at this
time to make the window visible
2016-02-02 13:34:05 -05:00
Mike Blumenkrantz f1ccac3775 remove need_reparent, reparented, first_damage flags from wl client comp_data
these flags, and related code, have no functional purpose in wayland
2016-02-02 13:33:58 -05:00
Chris Michael d37bcc887d Fix issue of using the wrong id when finding pixmap client
Previously, we were passing in the wl window id into the
pixmap_find_client function. This is improper as the e_pixmap_new
functions take the surface resource id. To solve this, we will get the
Ecore_Wl2_window from the Evas_Object, fetch the surface id from that,
then pass those into e_pixmap_find_client.

This resolves an issue where the everything module was not working
properly.

ref T3058

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-02 13:33:50 -05:00
Marcel Hollerbach a928205be4 e_comp_wl: only ignore ignored clients
a override client (in terms of override like x) should get focus, which
would not happen for the case of the function call.
2016-02-02 13:33:22 -05:00
Mike Blumenkrantz bd8a804718 remove defines for various beta api in other places 2016-02-02 13:32:31 -05:00
Mike Blumenkrantz 5a917094cf define EFL_BETA_API_SUPPORT explicitly in e.h if wayland support is enabled 2016-02-02 13:32:31 -05:00
Mike Blumenkrantz dfa9b45044 create wl client connection during compositor init, use in shot module
fixes shot module

ref T2919
2016-02-02 13:32:31 -05:00
Mike Blumenkrantz e67f238c06 call ecore_wl2_shutdown() in wl compositor delete callback
shutdown/restart crash--
2016-02-02 13:32:31 -05:00
Chris Michael 641fb52c62 Update wl_weekeyboard for ecore_evas_wayland_window_get2 function rename
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-02 13:32:31 -05:00
Chris Michael 9400e33bab Fix issue of nested compositors not working with Ecore_Wl2 library
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-02 13:32:31 -05:00
Chris Michael 59762676a8 Fix type of size fields for E_Shell_Data
In the xdg_surface_configure_send function, the size params
(width/height) come in as int32_t. This patch makes the E_Shell_Data
fields for width & height match those (else we end up with compiler
warnings when comparing int32_t to uint32_t).

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-02 13:32:31 -05:00
Chris Michael 96b55ce441 Fix using global ewd variable by making it part of e_comp_wl
ref T2919

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:31 -05:00
Chris Michael be2221ed95 Try to init (and error check the init) of ecore_wl2 library before we
create a compositor

ref T2919

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael 8cc5207355 Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael c648775b95 Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael 5ea81d10fd Port wl_fb module to use Ecore_Wl2 Library
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael 6e743567e6 Port wl_weekeyboard to use Ecore_Wl2 library
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael 58c7122aaf Don't leak eina_iterator in shot module
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael bdc41d238d Fix formatting of wl_weekeyboard module
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael cf51751347 Port shot module to use ecore_wl2 library
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael b8a7b2b93f port e_scale to use Ecore_Wl2
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael 824003eb1d port wayland compositor to use Ecore_Wl2
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael 5ff896f4bd remove unused event loop and add external Ecore_Wl2_Display variable
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael 01ac2a1a08 include header for Ecore_Wl2
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Chris Michael 157bee79ff Make configure check for Ecore_Wl2 library
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-02-02 13:32:30 -05:00
Mike Blumenkrantz 80c2439e2b 20.3 NEWS updates 2016-01-18 16:01:54 -05:00
Mike Blumenkrantz 4e91278589 20.3 release 2016-01-18 15:51:30 -05:00
Mike Blumenkrantz 68a211e9c4 automatically attempt to create a wayland x11 output during comp init
at this point an x11 compositor has already failed to be created, so trying
to use x11 is safe and probably desired
2016-01-18 15:44:11 -05:00
Mike Blumenkrantz 27e4881193 use more correct defines for enabling wl output modules during comp init 2016-01-18 15:44:07 -05:00
Mike Blumenkrantz a06c03bd14 if available, use wl output (nested) for wayland compositor creation
this defaults to using a nested compositor as the first choice:
harmless if it fails to create an output
2016-01-18 15:44:01 -05:00
Mike Blumenkrantz 344a89618f unset WM_STATE for x11 clients upon unmapping them
icccm provides conflicting spec info regarding how this property should be set.
according to 4.1.3.1:

When the window is withdrawn, the window manager will either change the state
field's value to WithdrawnState or it will remove the WM_STATE property entirely.

however, 4.1.4 states:

Only the client can effect a transition into or out of the Withdrawn state

so to be on the safe(r) side, deleting the property seems to be the best choice here

ref 41daddeacc

fix T3011
2016-01-18 15:43:52 -05:00
Mike Blumenkrantz 57ea33e541 do not unset comp object native surface during shape apply
due to efl changes, unsetting a native surface now clears existing image pixel
data, resulting in a guaranteed blank render

ref T3011
2016-01-18 15:43:47 -05:00