Commit Graph

21248 Commits

Author SHA1 Message Date
Derek Foreman 6007a51f17 wayland: Don't leak a clipboard source if adding fd handler fails
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2016-03-31 14:25:35 -04:00
Mike Blumenkrantz 2bf2772712 don't set wl xdg popups to POPUP layer, set popups as placed on creation
resolves random popup placements
2016-03-31 14:06:29 -04:00
Mike Blumenkrantz 607975ccc0 enforce wl xdg popup stacking relative to parent stacking 2016-03-31 14:05:47 -04:00
Mike Blumenkrantz 336721e693 set destructor for xdg popups when setting implementation
popups never get deleted without this
2016-03-31 14:04:47 -04:00
Mike Blumenkrantz c529764660 do not reset previously-set ec->placed state when attempting early client moves 2016-03-31 14:03:56 -04:00
Mike Blumenkrantz 53c6b3ca19 apply compositor keybinds if an action client that is not focus exists 2016-03-31 14:03:29 -04:00
Mike Blumenkrantz a352a6d197 only attempt to rescue offscreen clients if they are completely offscreen 2016-03-31 14:03:02 -04:00
Mike Blumenkrantz a9415f696b allow some client zone/desk move actions to occur on action client 2016-03-31 14:02:25 -04:00
Mike Blumenkrantz 56121908d5 remove wl xdg popup new_client stuff from get_popup method
ref d7f7eb9448
2016-03-31 12:54:21 -04:00
Mike Blumenkrantz 9c3d8aa9ca optimize case where an x11 client is focused/unfocused in same loop iteration 2016-03-31 11:21:38 -04:00
Mike Blumenkrantz 4a73e9f29a explicitly manage client focus when setting/unsetting input grabs
clients cannot retain focus during a compositor grab, so ensure that
they do not think they have focus in such cases

fix T3338
2016-03-31 11:21:31 -04:00
Mike Blumenkrantz 0cb7013cda block wl keyboard modifier updating during input grabs 2016-03-31 11:21:23 -04:00
Mike Blumenkrantz 772163fe3e force keyboard modifier update on wl client focus-in
ensure that clients always receive up-to-date modifiers when they get focus
2016-03-31 11:21:23 -04:00
Mike Blumenkrantz 46d2469d22 don't show some x11-specific compositor settings under wayland 2016-03-30 17:48:25 -04:00
Mike Blumenkrantz d229d26ef4 remove old compositor reset code 2016-03-30 17:48:03 -04:00
Mike Blumenkrantz 1f417792d6 reshuffle notifications on replace 2016-03-30 16:20:49 -04:00
Mike Blumenkrantz 9f913cd3af track offline/presentation mode notification ids and replace on toggle 2016-03-30 16:16:44 -04:00
Mike Blumenkrantz 7ae25149c7 move notification text escaping into dbus notify method callback
this ensures that notification text reaching the module can be considered
"usable" without forcing multiple escape passes onto the same notification

fix T2757
2016-03-30 16:09:25 -04:00
Mike Blumenkrantz ee16177660 selectively reject comp object signal emissions based on action_client state
in the case where a mouse binding is active and a signal binding is triggered
by the same mouse-up event which also ends the mouse binding, the deferred
nature of edje emissions will result in the signal being received by the
corresponding callback some time after the mouse-up event has been handled by
the client and the mouse binding has ended

to accurately handle these cases, signal bindings triggered in the same event
loop in which a mouse binding has ended after a mouse-up must be rejected in
order to enforce the compositor's mouse grab

fix T3347
2016-03-30 10:42:11 -04:00
Mike Blumenkrantz 609276e12d feed mouse out to internal clients upon activating a mouse binding
this prevents internal windows from effectively processing pending
mouse-up events

ref T3347
2016-03-30 10:25:55 -04:00
Mike Blumenkrantz 286fb40428 add even more systray/dbusmenu hacks
mrw Qt systray devs take working (4.X) and then break it in 5.X to
be worse than steam: http://gfycat.com/CloudyPinkEmperorshrimp

fix T3139
2016-03-28 15:35:42 -04:00
Mike Blumenkrantz d02679383f ignore x11 ConfigureRequest events when maximize_override is set 2016-03-28 13:37:40 -04:00
Mike Blumenkrantz 19eb5d2644 use canvas pointer coords in systray mouse cb 2016-03-28 13:37:21 -04:00
Mike Blumenkrantz 9f52dfa50c remove deleted clients from tasks client list during repop
fix T3369
2016-03-28 12:59:45 -04:00
Mike Blumenkrantz 488ece76a6 do not add deleted clients to tasks gadgets 2016-03-28 12:59:34 -04:00
Mike Blumenkrantz d7f7eb9448 redo wayland client unignore mechanism
wayland clients were previously set as ignored until they obtained
a shell surface in order to avoid early execution of things like placement.

this had no effect.

the ignore must last until the first commit, at which point surfaces have been
sized and can be placed accurately without needing to move the surface around
a lot of times due to resize/frame adjust/birthdays
2016-03-24 16:43:32 -04:00
Mike Blumenkrantz 0d45b63a84 do not set initial changed state for new clients if they are ignored
this loops the client idler for no reason
2016-03-24 16:43:32 -04:00
Marcel Hollerbach 19db5f256c e_xkb: init before e_comp_wl init
for the case e_xkb gets initialized, we need to init it before ecore_drm
is called, otherwise ecore_drm will create his own context and keymap,
which will be overriden a few moment later when e_xkb is initializied.
So by calling e_comp_wl_input_keymap_set before ecore_drm_init the
correct context and keymap is set and no useless elements are created.

The mainproblem is that the comp_type is set when the compositor is
already running, so we have to pass the type at the init to the e_xkb
to tell for which kind of compositor we are running.
2016-03-24 20:54:03 +01:00
Marcel Hollerbach 62440eb5fe e_comp_wl: let keymaps be set when compositor is not running
if someone tries to set a new file to the wl compositor and it is not
running the values are cached now and setted when the compositor is
running.
2016-03-24 20:54:03 +01:00
Marcel Hollerbach 7cfb6f3d3f e_comp_wl: remove useless params from keymap_set 2016-03-24 20:54:03 +01:00
Marcel Hollerbach a7c659e258 wl: remove useless calls to e_comp_wl_input_keymap_set
those calls are not needed anymore since they will be overriden by e_xkb
init which takes place a few calls later
2016-03-24 20:54:03 +01:00
Marcel Hollerbach ce9339a4ac e_xkb: configure model and a list of layouts variants and options to use
the e_comp_wl function takes a list of layouts variants and options
which should be generated from the configured.
2016-03-24 20:54:03 +01:00
Marcel Hollerbach ab4e4e17cb e_comp_wl: allow variants and options for keyboard settings
Also set options and variants to the rule names struct.
There is no need to use strdup here the values are just freed in the
end.
2016-03-24 20:54:03 +01:00
Marcel Hollerbach 3677ff12f9 e_xkb: refactor command creation code
-model was set to default if e_config->xkb.default_model was default.
Fix this and always set e_config->xkb.default_model.
2016-03-24 20:54:03 +01:00
Mike Blumenkrantz 893f3b1669 feed mouse-up events for all buttons on internal wins when activating a binding
bindings enforce compositor grabs, which will result in stuck canvas buttons and
break internal windows which have already received button presses

fix T3347
2016-03-24 14:03:36 -04:00
Chris Michael 18a9c2d97d add #else to #if 0'd block in order to avoid compiler warning about
unused variable.

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-24 10:33:47 -04:00
Chris Michael 83a9e4a404 Reverting this commit to handle a better way
Revert "add EINA_UNUSED for unused function parameter"

This reverts commit 59c0e7f586.
2016-03-24 10:32:52 -04:00
Chris Michael 59c0e7f586 add EINA_UNUSED for unused function parameter
As the block which uses this parameter is #if 0'd out, we end up not
using this param, which generates a compiler warning

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-24 10:14:33 -04:00
Carsten Haitzler 1b73bedd4d e mod: cpufreq - handle the case where cpu has zero freqs - dont crash
it can be that if you remove setuid bits on cpufreq binary we can end
up with zero freqs on bsd. this causes a crash.

@fix
2016-03-24 12:17:35 +09:00
JengHyun Kang 3cdc11a107 Add functionality for setting left handed mode in drm
Summary:
 - Change mouse button mapping for left handed mode
 - Change a mouse_hand config and save
 Currently e_mouse had e_mouse_update() API for support left_handed mode.
 But that API only for Xorg not support wayland and only for update mapping not change mapping.
 So I added new support for change mouse mapping for left handed mode and support wayland backend system.

Test Plan:
After set left handed mode,
           mouse button mapping is changed for left handed people.

Reviewers: raster, devilhorns, zmike

Subscribers: ohduna, input.hacker, cedric

Differential Revision: https://phab.enlightenment.org/D3433
2016-03-23 17:58:41 -04:00
Mike Blumenkrantz 5d27befe44 send resize edges to wl clients on resize start and end 2016-03-23 16:03:33 -04:00
Mike Blumenkrantz 5e3fb38f86 optimize compositor canvas updating when zone geometry is marked dirty
in many cases where a zone's useful geometry is marked dirty, the resulting
recalc ends up having the same useful geometry as before: this is the case
for things like tasks gadgets, which continually expand and contract along
a single axis and thus will never affect useful geometry while still forcing
a recalc

by ignoring these cases, a huge amount of compositor thrashing is avoided and
a number of related bugs can also be fixed
2016-03-23 15:43:34 -04:00
Mike Blumenkrantz 3dd8ce38e7 remove lots of impossible null checks from pager move callback
CID 1237302
2016-03-22 15:21:04 -04:00
Mike Blumenkrantz 1098abfb6e use snprintf for string handling in batget
CID 1039801
2016-03-22 15:10:50 -04:00
Mike Blumenkrantz 750aa4644a rework systray theme applying code
potentially the most overoptimized string handling code I've ever seen.

CID 1039843
2016-03-22 12:23:51 -04:00
Mike Blumenkrantz 403e86d67c use snprintf for string handling in batget
CID 1039801
2016-03-22 12:06:27 -04:00
Mike Blumenkrantz 41f98b96bb use eina_streq for e_util_binding_match() comparisons
optimizes what is likely a stringshare comparison as well as avoiding
null derefs

CID 1191998
2016-03-22 12:01:04 -04:00
Mike Blumenkrantz c82f9ca55a avoid null deref in during pager_plain dnd
CID 1237302
2016-03-22 11:55:38 -04:00
Mike Blumenkrantz 4237832b3c unset opaque region during comp object render if none exists
fixes case where opaque region has been unset after previously being set
2016-03-22 11:52:56 -04:00
Mike Blumenkrantz 3e15daabd1 cast eina_list_count() in flowlayout, not entire expression
CID 1267211
2016-03-22 11:51:09 -04:00