Commit Graph

20952 Commits

Author SHA1 Message Date
Mike Blumenkrantz 9578d65199 20.5 NEWS updates 2016-02-03 11:49:07 -05:00
Mike Blumenkrantz 227f66420f 20.5 release 2016-02-03 11:49:07 -05:00
Mike Blumenkrantz 4a6f329905 add back x11 window focusing
somehow during a cherry-pick of 96b55ce441,
this line was removed. no conflicts were raised during the cherry-pick.

thanksgit.jpg

fix T3137
2016-02-03 11:49:00 -05:00
Mike Blumenkrantz f3b9d9a9c6 20.4 NEWS updates 2016-02-02 13:47:46 -05:00
Mike Blumenkrantz 652a36e3c8 20.4 release 2016-02-02 13:46:36 -05:00
Mike Blumenkrantz c6d96feea2 disable map when unsetting zoomap child
if the existing map is left enabled when the child is removed from the
zoomap, the child object will be permanently misrendered with the previously
applied map
2016-02-02 13:41:30 -05:00
Mike Blumenkrantz 5864d4b9e6 send mouse out+in on desk flip end
this triggers mouse in events on objects under the mouse in order to
forcibly reapply focus for mouse-based focus policies

fix Tfrance
2016-02-02 13:41:14 -05:00
Mike Blumenkrantz f4179c1b27 update xkb.cur_group and send event upon serializing an EFFECTIVE layout in wl input
according to xkbcommon, the group returned from serializing the EFFECTIVE layout
is the one which is currently active. this array index should match up with the
list used in the xkb part of E_Config
2016-02-02 13:41:05 -05:00
Mike Blumenkrantz c111cf7455 do not update keymap group in _e_comp_wl_input_keymap_update()
this state is dead, and any group changes which have been made should
be reapplied based on the new state
2016-02-02 13:41:02 -05:00
Mike Blumenkrantz 5919d6ae7c disable shelf shadows if "noshadow" data item exists in shelf theme
this used to be handled by the "shaped" flag back when shelves had their
own windows, but the handling for it was lost during the transition away from
the E18 compositor
2016-02-02 13:38:48 -05:00
Mike Blumenkrantz 820a70e71d do not shortcut access of Efreet_Desktop->x hash in fileman
this subverts thread safety and also (now) avoids return data validation

fix T3096
2016-02-02 13:38:29 -05:00
Mike Blumenkrantz 3fbdc847ab do not attempt to create x11 canvas during xwayland init
this kills the gl_drm engine
2016-02-02 13:38:21 -05:00
Mike Blumenkrantz a372e5ba1b disable bindings during wayland screenshot operations
recursive action activation is very bad.
2016-02-02 13:37:40 -05:00
Mike Blumenkrantz e5e2a7cca4 defer screenshot action execution using a job
the drm screenshot action forcefully iterates the main loop, causing
the current loop (which triggered the action) to return after the screenshot
action has ended. during this time, it's possible for other actions to also
trigger, including triggering subsequent screenshot actions, so it's necessary
to defer the execution of the action until after the initial loop which triggered
the action has returned

 #Recursion
2016-02-02 13:37:35 -05:00
Mike Blumenkrantz e84ea043ac remove comp canvas key handler shortcuts for passing keys to wayland clients
now handled normally by disabling bindings
2016-02-02 13:36:56 -05:00
Mike Blumenkrantz 7e3e2db2be disable binding activation when grab dialog, menus, or dnd is active
these are all cases where bindings should fail to activate in order to
avoid interfering with current operations

also fixes an issue where attempting to add or modify an existing
mouse/key/wheel binding would fail as a result of that binding activating
while the grab dialog was active
2016-02-02 13:36:46 -05:00
Mike Blumenkrantz 9c22c5d12a add function for disabling mouse/key/wheel/signal bindings
currently there are a lot of workarounds for inhibiting these bindings,
but it's getting harder to keep track of all the conditions and cases
where bindings need to be worked around

this should greatly simplify the process of toggling binding activation
in cases where such behavior is undesirable

acpi bindings are always allowed since they are unlikely to interfere with
operations where direct-input bindings would be harmful
2016-02-02 13:36:42 -05:00
Mike Blumenkrantz a28eae0ca9 allocate E_Shell_Data for all xdg surfaces (popups)
this crashes if the shell surface does not have shell data
2016-02-02 13:36:24 -05:00
Mike Blumenkrantz 97b6558444 handle more mouse buttons in wayland
according to the "reference" compositor this is how it works
2016-02-02 13:36:20 -05:00
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