Derek Foreman
d9679f765f
wayland: Fix crash when attempting to create surfaces for deleted clients
...
Internal clients can be deleted by keybind before the surface create
callback fires resulting in a NULL pointer dereference.
2016-04-25 16:40:32 -05:00
Mike Blumenkrantz
c3700297d7
remove explicit edje_init/shutdown calls
...
elm already handles this
2016-04-25 12:55:21 -04:00
Mike Blumenkrantz
fcc996545c
always end drag operations on failure
...
fix T3507
2016-04-25 12:24:44 -04:00
Mike Blumenkrantz
05451aeb36
treat POPUP_MENU window type as an override window for comp theme matching
...
ensures that the menu theme gets picked for wayland popups; probably needs
a more comprehensive solution for xdgs v6
2016-04-22 15:28:54 -04:00
Mike Blumenkrantz
2014de2fe6
Revert "do not revert client focus except for normal and dialog windows"
...
This reverts commit 5b119d437a
.
I give this solution a B- for working but also totally ruining everything
2016-04-22 14:47:35 -04:00
Mike Blumenkrantz
5b119d437a
do not revert client focus except for normal and dialog windows
...
fix T3432
2016-04-22 13:15:33 -04:00
Mike Blumenkrantz
5c0729221e
only set "dialog" border for transient clients if window type is unset
...
fix T3157
from https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html :
_NET_WM_WINDOW_TYPE_DIALOG indicates that this is a dialog window.
If _NET_WM_WINDOW_TYPE is not set, then managed windows with
WM_TRANSIENT_FOR set MUST be taken as this type
2016-04-22 12:51:12 -04:00
Mike Blumenkrantz
b94023c412
set NULL image data in _e_comp_object_pixels_get() on failure
...
ensure that nothing is rendered here
2016-04-22 12:45:26 -04:00
Mike Blumenkrantz
6f83ec7329
do not show unsized comp objects during theme apply
2016-04-22 12:45:04 -04:00
Mike Blumenkrantz
d584c9a095
ensure resize is still deferred for changes.shape clients during failed resize
...
ref c212bb4e21
2016-04-22 12:13:11 -04:00
Mike Blumenkrantz
84cf7743b6
set NULL image pixel data during x11 render when no damages exist
...
fixes a weird corner case where shapeless clients try to sneak a fast one
by and you gotta be like http://i.imgur.com/irwmnCT.webm
ref T3157
2016-04-21 18:21:26 -04:00
Mike Blumenkrantz
881ccfc768
slightly simplify image data setting in e_comp_object_render()
2016-04-21 18:09:18 -04:00
Mike Blumenkrantz
77e8ab0926
remove unnecessary conditional in e_comp_object_render()
2016-04-21 18:06:58 -04:00
Mike Blumenkrantz
2a67b3a899
ensure damages do not get added for shapeless x11 clients
...
ref 32d4c2f2b9
ref T3157
2016-04-21 18:04:16 -04:00
Mike Blumenkrantz
c212bb4e21
don't defer resizes+queue render updates for shapeless or pending shaped clients
...
this basically guarantees a misrender
2016-04-21 18:01:42 -04:00
Mike Blumenkrantz
a97a50b306
don't force full damage on x11 override clients
...
reverts f6be761226
this didn't fix anything and can cause irregularities in rendering
2016-04-21 16:32:01 -04:00
Mike Blumenkrantz
019318b88f
do not attempt to show x11 override windows
...
fix T3444, T1759, T2735
2016-04-21 15:28:55 -04:00
Mike Blumenkrantz
f36f2d16bc
unify client filtering checks from e_place_desk_region_smart()
2016-04-21 14:48:49 -04:00
Mike Blumenkrantz
08cb34f7ad
ensure that wl clients do not run extra render on hide twice
...
fixes crash when applications crash
2016-04-21 13:55:23 -04:00
Mike Blumenkrantz
54e6da6576
only update wl dnd actions when applying focus
2016-04-21 13:55:23 -04:00
Mike Blumenkrantz
aefa7d3795
always update wl dnd offer actions
2016-04-21 13:55:23 -04:00
Mike Blumenkrantz
42d67d51c3
do not perform input ungrab twice during dnd end in wayland
...
this was happening in both drag free and drag end: once is sufficient
2016-04-21 13:55:23 -04:00
Carsten Haitzler
76ed021006
e - e_start - update mtrack to use new debug mode for hunting bugs
...
this won't affect anyone who doesnt have a ~/.e-mtrack file ... this
is for debugging purposes and no others
2016-04-21 09:42:13 +09:00
Mike Blumenkrantz
fc759b1f0c
more accurately reject wl selection setting based on whether serial is invalid
...
copycopycopycopy
2016-04-20 12:38:08 -04:00
Mike Blumenkrantz
9dd36ff01c
apply formatting rules to e_comp_wl_data.c
2016-04-19 17:38:22 -04:00
Mike Blumenkrantz
bfd204be71
update wl dnd/clipboard support to v3 of protocol
...
this code is mostly copied from weston:
78d4bf9a3ec990dceee23fd53962a69891352a0e
9c93179023fe894e417ccd20533d72d672d976fc
b288988e831cee3deb7f8bb1a3f440c86230dd9f
4061e2b67e62d5d2a635f0b87098f331082e8145
credit to Carlos Garnacho <carlosg@gnome.org> as original author
ref T3455
2016-04-19 17:34:58 -04:00
Mike Blumenkrantz
33e23c7364
add copyright headers (MIT) from weston to e_comp_wl_data
...
these files were created containing code which was very obviously copied from
weston. when copying code, copyright headers must also be copied in order to
comply with licenses.
2016-04-19 17:27:17 -04:00
Mike Blumenkrantz
6aee63d1dc
redo wl (xdg)shell surface ping
...
- remove (wrong) global variables which tracked client-specific resources
- start ping upon creating a shell surface
- track client-specific shell resources on a per-client basis
2016-04-18 15:37:22 -04:00
Mike Blumenkrantz
536a3a7ff6
make startup/restart app exec timing protocol-specific
...
this allows different display protocols to start their applications at
different times to ensure that any initialization has completed prior to
starting anything requiring a window
fix T3475
2016-04-18 15:27:47 -04:00
Mike Blumenkrantz
40af8d5193
reject xwayland clients in wl client resize handlers
...
fix T3461
2016-04-18 13:15:09 -04:00
Mike Blumenkrantz
a1d0f97968
do not perform x11 mouse/wheel grabs for ANY binding contexts
...
these are traditionally compositor-only actions which may filter through
many different objects but are not meant to activate on window contents
resolves issues where some related mouse bindings were blocking input on windows
under x11
#thingsthatneeddocs
2016-04-18 12:55:30 -04:00
Mike Blumenkrantz
fefdca1f00
redo e_place_desk_region_smart() to handle multiple screens
...
this code is unbelievably bad.
fix T3404
2016-04-12 13:33:54 -04:00
Carsten Haitzler
1db14b547a
e intel - fix number 2
...
so the crazieness in e+intl was because of eina_str_tolower()
silliness... so work with it and another patch to follow on from
01e53356f8
...
@fix
2016-04-12 16:31:32 +09:00
Carsten Haitzler
01e53356f8
e intl - fix string buffer length size
...
this intl code was broken using sizeof a pointer (sizef char *) vs
size of the actual buffer used.
@fix
2016-04-12 14:22:20 +09:00
Mike Blumenkrantz
48fbfa2908
reduce efl version req to 1.17.0, make new gadget stuff 1.7.99+ at runtime
2016-04-11 15:15:51 -04:00
Mike Blumenkrantz
7db999dec1
xkb compiler warns--
...
ref 53636dd87c
2016-04-11 15:05:32 -04:00
Mike Blumenkrantz
c9e168460e
ensure that wl keymap is initialized, even if no configuration exists
...
fixes no-config crash
ref 62440eb5fe
2016-04-11 14:53:52 -04:00
Mike Blumenkrantz
3df1e04ded
bump modapi
2016-04-11 14:28:52 -04:00
Mike Blumenkrantz
4cbf81b1e8
add E_Client->saved.frame to handle mismatched csd states
...
if csd exists in only one of (before || after) a maximize/fullscreen,
this provides info so that the right size can be used when restoring
geometry
...again
2016-04-11 14:28:31 -04:00
Mike Blumenkrantz
005ad4e986
fake client-side geometry during wl (un)maximize interception
...
fixes internal window maximize
2016-04-11 13:41:19 -04:00
Mike Blumenkrantz
1facf33ddf
ignore maximized+fullscreen windows when placing new clients
...
this should improve perf and placement
ref T3404
2016-04-11 12:02:00 -04:00
Marcel Hollerbach
53636dd87c
e_xkb: use new_keyboard event to restore known layout
...
Summary:
the new_keyboard event is now used to restore the known layouts out of
the config, if the state is changedthe new group is safed in the config
which will be safed later.
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3877
2016-04-08 23:30:22 +02:00
Mike Blumenkrantz
6df8f5a806
Revert "do not update client saved states during maximize if client is animating"
...
This reverts commit 227776985e
.
impossible case, too much wayland
2016-04-08 17:23:06 -04:00
Mike Blumenkrantz
2cecb9369e
bump modapi
2016-04-08 16:53:08 -04:00
Mike Blumenkrantz
4c6a4ea4ce
track client maximize animation agents, delete upon beginning new animation
...
fixes an issue where unmaximize+maximize chaining would break client sizing
2016-04-08 16:45:56 -04:00
Mike Blumenkrantz
cfca88bc95
simplify maximize animation re:maximize_override unsetting on no-animate
2016-04-08 16:43:46 -04:00
Mike Blumenkrantz
63af4ea865
buffer server-side (un)maximize commands to ensure synchronization in wayland
...
maximize is client-initiated and compositor-enforced in wayland, meaning that a
maximize should only be acted upon in the compositor after the client has
acknowledged that it has transitioned into the maximized state (likely removing
part of its csd region) and has resized itself to match the expected maximize
size
fix T3297
2016-04-08 16:08:32 -04:00
Mike Blumenkrantz
98934fb0e9
make (un)maximize_pre callbacks capable of rejecting the maximize operation
...
this is useful when subsystems need to know that a client wants to maximize
but need to delay that maximize for a later point
2016-04-08 16:07:40 -04:00
Mike Blumenkrantz
a3da199685
disable maximize anims for www-compatible wl surfaces
...
due to www modifying the csd region, animating resizes will trigger
unsolvable race conditions which break windows
2016-04-08 16:06:19 -04:00
Mike Blumenkrantz
b0f2443042
improve behavior of wl client buffered state changes during commits
...
apply e_config maximize policy for buffered (un)maximize, unset buffered states
after applying them
2016-04-08 16:05:00 -04:00
Mike Blumenkrantz
9578ae615f
do not force wl client state update (configure) on (un)maximize done cb
...
this is spurious
2016-04-08 16:04:19 -04:00
Mike Blumenkrantz
b17999de8d
do not sent wl *shell configures from resize callback during maximize
...
this is spurious
2016-04-08 16:03:28 -04:00
Mike Blumenkrantz
a7adf21c88
add E_Client->maximize_anims_disabled to selectively disable maximize anims
...
for some clients it's impossible to animate resizing due to various race conditions
being created which will break the client
2016-04-08 16:01:55 -04:00
Mike Blumenkrantz
b4b682cd6a
make a number of client functions take const E_Client*
2016-04-08 15:57:21 -04:00
Mike Blumenkrantz
8d56ff3eec
break out client maximize/unmaximize calc functions into preview functions
...
these enable "previewing" a client's size after toggling the maximize state,
not accounting for any csd or ssd sizing changes
2016-04-08 15:55:27 -04:00
Mike Blumenkrantz
227776985e
do not update client saved states during maximize if client is animating
2016-04-08 12:23:19 -04:00
Mike Blumenkrantz
71c1669036
change client un/maximize_pre callback location to occur after safety checks
2016-04-08 12:22:47 -04:00
Mike Blumenkrantz
4cc66119c5
make e_client_has_xwindow() more wayland-only friendly
2016-04-08 11:51:18 -04:00
Mike Blumenkrantz
dea3ae21ad
directly include e.h in efm device backends
...
fixes some compile errors related to include ordering
ref 68587276cf
2016-04-08 11:50:27 -04:00
Mike Blumenkrantz
9516031e93
only apply buffered wl client maximize during configure if client is not maximized
...
fixes directional maximize
2016-04-07 14:00:25 -04:00
Mike Blumenkrantz
657bc713c7
don't send duplicate configure to wayland clients during unfullscreen
...
this causes unnecessary client-side resizing
2016-04-07 13:56:03 -04:00
Derek Foreman
b8ab7b0738
Remove unwanted debug detritus from last commit
...
#Oops
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2016-04-07 13:29:58 -04:00
Derek Foreman
68587276cf
Clean up some header inclusion
...
Including certain headers in the wrong order can cause problems if
we're configured to use beta api (right now wayland forces this).
In most cases we should just be including e.h and not the individual
EFL headers anyway. This fixes some of that.
fix T3426, T3428
2016-04-07 13:14:43 -04:00
Mike Blumenkrantz
7e3c2b08ec
move buffered maximize/fullscreen for wl clients to occur before csd update
...
this ensures that all such operations calculate based on the correct csd state
2016-04-06 16:42:10 -04:00
Mike Blumenkrantz
14721bc116
do not unconditionally update position+size when changing wl client csd geometry
...
this breaks...everything
2016-04-06 16:40:42 -04:00
Mike Blumenkrantz
e9bca1abaa
Revert "add E_Client->saved.frame to handle mismatched csd states"
...
This reverts commit ae7af6b8ef
.
this was a workaround for an entirely different issue, and it didn't even
solve that issue
2016-04-06 16:39:55 -04:00
Mike Blumenkrantz
992e04feb2
wayland client maximize/fullscreen cleanups
...
ref da74e690f0
2016-04-05 16:54:04 -04:00
Mike Blumenkrantz
ae7af6b8ef
add E_Client->saved.frame to handle mismatched csd states
...
if csd exists in only one of (before || after) a maximize/fullscreen,
this provides info so that the right size can be used when restoring
geometry
2016-04-05 16:52:50 -04:00
Mike Blumenkrantz
da74e690f0
redo xdg shell to enforce double buffering of client-side configure serials
...
xdg shell configure states (maximize, fullscreen) return a client ack when the
client has applied the state. the ack, followed by the next surface commit,
indicates that the surface is ready to be transitioned into the configured state
2016-04-05 15:05:10 -04:00
Mike Blumenkrantz
d50a20f812
do not send shell configures for deleted wl clients
2016-04-05 15:04:35 -04:00
Mike Blumenkrantz
a99d505771
set WAYLAND_DEBUG=0 during wl compositor init
...
ensures that debug logs won't get both compositor and client output,
making the log impossible to read
2016-04-05 15:03:26 -04:00
Mike Blumenkrantz
f8bca98f35
reject client maximize attempts using identical maximize params
2016-04-05 15:00:54 -04:00
Mike Blumenkrantz
e4960ad652
set ELM_ACCEL=gl upon successfully creating a gl wayland compositor
...
...successfully
ref 4aecb7ad14
2016-04-04 16:06:52 -04:00
Mike Blumenkrantz
ed6448eb21
send fake www data during maximize
2016-04-04 14:03:17 -04:00
Mike Blumenkrantz
687b5fb6b6
set maximizing flag during maximize resizing for wl clients
...
a helpful indicator for when to avoid potentially leaking positioning info
2016-04-04 14:02:39 -04:00
Mike Blumenkrantz
6617a8440c
always set ec->maximize_override on unmaximize if maximize anims are enabled
...
this ensures that all cases of animation have the flag set
2016-04-04 14:01:30 -04:00
Mike Blumenkrantz
3f7e6dc359
wl popup surfaces should not receive focus on show if parent is not focused
...
fix T3339 harder
2016-04-04 12:51:29 -04:00
Mike Blumenkrantz
b9b9ed68b0
remove video child references from wl compositor
...
this is an x11-only thing
2016-04-04 12:51:20 -04:00
Mike Blumenkrantz
7541a51599
use zone geometry for shelf zone obstacles
...
shelves use relative coords, so zone obstacles must have adjusted coords
passed in order to calc correctly
fix T3404
2016-04-04 11:29:01 -04:00
Mike Blumenkrantz
dead7646d4
delete internal wayland elm windows in wl client delete request callback
...
fix T2874
2016-04-01 16:48:50 -04:00
Mike Blumenkrantz
8b8abb436d
restrict shelf border_fix to only affect clients affected by the shelf
...
fixes random other clients changing sizes based on irrelevant shelf hiding
2016-04-01 16:26:41 -04:00
Mike Blumenkrantz
37c5063200
do not incrementally remaximize clients during shelf hide animation
...
this looks really bad and forces unnecessary spinning
2016-04-01 16:26:06 -04:00
Mike Blumenkrantz
4aecb7ad14
set ELM_ACCEL=gl upon successfully creating a gl wayland compositor
2016-04-01 15:14:46 -04:00
Mike Blumenkrantz
3cb11abb25
move x11 client icon caching to private functions in comp_x
...
ref 57ce6419e5
2016-04-01 14:16:21 -04:00
Derek Foreman
8f0f9ce4f7
wayland: Fix xdg-popup crash
...
We need to remove the destroy listener when we delete a pixmap or it
leaves an invalid node on the signal list.
2016-04-01 14:07:45 -04:00
Carsten Haitzler
57ce6419e5
e icons: reduce mem usage (in x11) by a fair bit by de-duplicating
...
so i was profiling today .. leak hunting .. and i noticed. if you have
enough appss open - eg terminology, e uses a huge amount of memory...
for icons. terminology is 128x128 ... thats 64k per icon. open up a
lot of terminology windows and we duplicate that 64k per every window
on the wm sside because we get the data. it would apply for any app
that sets a netwm icon. this can be come rather silly if you have like
100 terminals. it's worse with larger icons (eg 256x256 - 256k per
icon).
this puts in a simply list for shared icons and a lookup on fetch to
de-duplicate and share icon data. this should drop memory usage
nicely.
@improvement
2016-04-01 20:33:52 +09:00
Mike Blumenkrantz
7f20ff52c9
reapply client focus after input grab, only handle focus for wayland compositors
...
this was looking too weird
ref 4a73e9f29a
2016-04-01 06:56:47 -04:00
Mike Blumenkrantz
c70054174e
implement www wayland extension handling for clients
...
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2016-04-01 06:29:49 -04:00
Derek Foreman
79a770b638
wayland: Stop E from consuming all CPU as soon as a selection is made
...
Clipboard fds from clients are regular files, which shouldn't be passed
to fd_handler_add. Using the wrong add function causes epoll to return
immediately and we end up running idle handlers and burning cpu.
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2016-03-31 14:26:02 -04:00
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
607975ccc0
enforce wl xdg popup stacking relative to parent stacking
2016-03-31 14:05: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
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
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
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
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
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
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
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
Chris Michael
ccd867e6ff
destroy seat resource when we get a release request
...
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-16 08:40:41 -04:00
Mike Blumenkrantz
d08abd43fd
adjust wayland client coords by window_geometry during first surface commit
...
fixes first window positioning
2016-03-15 16:12:05 -04:00
Mike Blumenkrantz
04e3c383c4
unset solid drawing of opaque regions during comp object animations
...
this makes animations with transparency not look like giant black rectangles
2016-03-14 14:46:37 -04:00
Mike Blumenkrantz
5494ddd424
enforce bryce zone setting and clip setting
...
resolves issues where non-primary screens would have differing behaviors
2016-03-14 14:27:15 -04:00
Mike Blumenkrantz
1b9d152eeb
do not attempt to resize clients to 0x0 during res restore
...
ACK--
2016-03-14 14:27:15 -04:00
Mike Blumenkrantz
885d24eeab
unify client post_updates management code into single function
2016-03-14 14:27:15 -04:00
Chris Michael
fd816230c4
make e_alert WBOD work in X11 even when built with wayland support
...
If enlightenment is built with support for wayland, then previously
the WBOD would not work if we were running the same binary with X11.
This was because the alert system would try to connect via drm by
default (due to wayland build option). We fix that by checking for the
existance of $DISPLAY (as this will not be present under drm), and
running the X11 codepath if it is found, running the drm codepath if
it is not found.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-14 13:22:30 -04:00
Mike Blumenkrantz
e5cf1fb215
add workaround for xwayland client bug
...
sighhhhhhhhhhhhhhhhh
2016-03-12 15:43:39 -05:00
Mike Blumenkrantz
8d7e55f4dc
remove direct references to ec->comp_data in x11 compositor
...
this fixes a number of xwayland client issues
2016-03-12 15:41:50 -05:00
Mike Blumenkrantz
abffe6b6d2
calling dirty() on a comp object for a deleted client should not print an error
2016-03-12 15:37:10 -05:00
Mike Blumenkrantz
1a91486083
always send wl key releases if surface still exists
...
fixes stuck keys for wl_clients with multiple surfaces
2016-03-12 12:40:39 -05:00
Mike Blumenkrantz
b2107ae2b0
remove maximize_pre flag from wl client comp_data
...
this breaks modification of maximized size for surfaces as well as animations
fix T3297
partially reverts 0321fd690e
2016-03-12 11:18:10 -05:00