Commit Graph

21331 Commits

Author SHA1 Message Date
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
Mike Blumenkrantz e919734df7 extend wl extension macros to store globals into extension data 2016-03-21 17:24:24 -04:00
Mike Blumenkrantz a658c785c3 ignore xwayland clients in wl client delete request callback
this breaks the compositor!
2016-03-21 12:13:27 -04:00
Marcel Hollerbach f01b8d76e7 add skip event counter for xkb events
if we are setting the group or the set of groups in e we will receive a
XkbNotifyState Event from x, which will result in a
ECORE_X_EVENT_XKB_STATE_NOTIFY event. We are setting there again our
settings, since we need to reset the settings from a potential external
application. So we should only reset our settings when the event is not
expected by e.
2016-03-21 11:33:15 -04:00
Marcel Hollerbach 24487c5233 re-apply xkb layout groups whenever an xkb event occurs
If someone plugs in a external monitor, the notify event is set AND the
group is changed externally. This means enlightenment cannot configure a
new keyboard anymore. So we are flushing in our new config all the time,
setting the old group-index again.
2016-03-21 11:31:58 -04:00
Mike Blumenkrantz 7ce5f68b51 store (internal) elm win geometry when set prior to showing the win
this fixes the case where attempts to manipulate a window would fail
prior to showing the window
2016-03-18 13:53:28 -04:00
Mike Blumenkrantz 1c3b45e984 use zone geometry when clamping evry gadget popup to gadget's screen
fix T3238
2016-03-18 13:53:28 -04:00
Mike Blumenkrantz 510d05d8d3 remove wl selection hacks from f0ba92d39e
https://gfycat.com/ChiefDeafeningGull
2016-03-17 15:18:48 -04:00
Mike Blumenkrantz 952d2c1d25 hide wl clients before deleting them when surface is destroyed
clients without hide animations will fail to run cleanup operations during
hide if they are not marked as deleted
2016-03-17 14:09:08 -04:00
Mike Blumenkrantz 0d6f019bc6 ignore deleted clients when reapplying zone geometry policy in canvas update
this breaks the compositor!
2016-03-17 14:08:23 -04:00
Mike Blumenkrantz b366d8bfb1 use agent objects for maximize effects
this fixes maximize effects on csd windows by providing an object which
will return usable geometry with evas_object_geometry_get()
2016-03-17 13:40:17 -04:00
Mike Blumenkrantz 80595756b7 add e_comp_object_agent_add()
an agent object can be used when a client should be represented on the
canvas solely by its window geometry and not including any csd

this creates and manages a mutable object which maintains the same geom
as ec->x/y/w/h and can be operated upon to modify those values
2016-03-17 13:40:17 -04:00
Mike Blumenkrantz bd0f2595b3 do not update client coords on csd geom update if it would change the zone
in the case where a client is at 0,0 relative to a zone, changing the coords
in this case will result in the client moving out of the zone by the size of the
csd
2016-03-17 13:40:17 -04:00
Mike Blumenkrantz 959366076c always update saved coords for maximized/fullscreen clients on csd geom update
this was causing clients to position themselves wrongly in some cases after
removing the related states
2016-03-17 13:40:17 -04:00
Mike Blumenkrantz 39ce6e2d49 unify maximize animation checks+code 2016-03-17 13:40:17 -04:00
Mike Blumenkrantz 7c054f272b disable wizard mouse binding page's next button if all modifiers are disabled
this breaks the user experience!
2016-03-16 14:33:06 -04:00
Mike Blumenkrantz 9eba966126 reduce wizard connman timeout timer to 0.5s
dbus is not this slow.
2016-03-16 14:32:15 -04:00
Mike Blumenkrantz 604bf1ea4e fix stringshare usage in wizard language page (010)
lang is not stringshared, and if it were then add/ref should always
be called before del
2016-03-16 13:01:09 -04:00