Mike Blumenkrantz
847d3fe358
reject internal window moves when they originate from a wl configure event
...
fixes a number of internal win positioning issues
2015-07-30 16:22:08 -04:00
Mike Blumenkrantz
24ec288b3c
remove spurious focus setting on desk flip without animation
...
focus gets automatically handled in e_desk_flip_end(). changing it
again here will produce unintended/wrong results in some cases
fix T2071
2015-07-29 19:47:49 -04:00
Mike Blumenkrantz
9ad208bfb8
add fallback loading of default theme on init
...
this should fix cases where whatever the user-set theme is doesn't provide
a required group by filling it in
fix T2210
2015-07-29 17:41:21 -04:00
Mike Blumenkrantz
7848947ea0
Revert "remove unnecessary geometry setting during xwl client swap"
...
This reverts commit ae1fc10d06
.
not unnecessary if the client has already been shown. fixes xwl menus
randomly showing up at 0,0
2015-07-29 15:40:02 -04:00
Mike Blumenkrantz
cd0e11c8c3
fix new_client setting on xwl clients during swap
2015-07-29 15:39:39 -04:00
Mike Blumenkrantz
1496b3db7b
don't reset wayland surface geometry for overrides
2015-07-29 15:38:17 -04:00
Mike Blumenkrantz
01ba4eea55
end compositor animations for dead clients on hide
...
fixes a huge object leak in xwayland related to menus
2015-07-29 15:25:22 -04:00
Mike Blumenkrantz
e5d367292f
return immediately on wayland focus-in key timer when no focused kbds exist
2015-07-28 17:36:13 -04:00
Mike Blumenkrantz
c9e35cc0f9
do not call ecore_time_unix_get() on each key sending loop for wayland clients
2015-07-28 17:34:58 -04:00
Derek Foreman
fea72d5fcd
wayland: Only send keyboard modifiers to focused resources
...
Summary: We were sending them to anything that bound a wl_keyboard.
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2879
2015-07-28 17:12:57 -04:00
Mike Blumenkrantz
8278e20183
reduce delay before running screensaver-off animations in wayland
...
this feels a bit more natural while still displaying animations after dpms
has finished cycling
2015-07-28 16:58:53 -04:00
Mike Blumenkrantz
42bc9b0bef
disable ecore-evas events on client windows during actions
...
this is a not-great way of hacking around various issues related to
the efl mouse button cancel patches that went in for the 1.15 cycle
which changed the entire mouse input workings of the toolkit.
to avoid further issues, the compositor will explicitly block eventing
on all internal canvases during actions
2015-07-28 16:46:00 -04:00
Mike Blumenkrantz
f7ca0b5791
disable x11 mouse eventing in wayland compositor mode
...
these events are delegated directly by the compositor. anything that
is told to us by x11 may or may not be the case and we shouldn't care
either way
2015-07-28 15:59:19 -04:00
Mike Blumenkrantz
784af9c097
do not create wayland screensaver timer when screensaver is disabled
...
ref T2609
2015-07-28 12:41:05 -04:00
Mike Blumenkrantz
6faa894a59
block xsettings config update if xsettings has not been initialized
...
fix T2610
2015-07-28 12:34:05 -04:00
Mike Blumenkrantz
db41479414
fix x11 detection for wayland compositor setup
...
ref T2609
2015-07-28 12:32:50 -04:00
Mike Blumenkrantz
9138b484d1
fix desklock-related screensaver modification
...
ref T2609
2015-07-28 12:31:22 -04:00
Mike Blumenkrantz
c4024acfd2
ensure expected screensaver blanking in x11 compositors with HAVE_WAYLAND
2015-07-27 18:24:34 -04:00
Mike Blumenkrantz
812ceafec6
fix wl screensaver activation when deactivating during fade
2015-07-27 17:32:11 -04:00
Mike Blumenkrantz
376945dcd8
add dpms handling for wayland compositors
2015-07-27 16:54:31 -04:00
Mike Blumenkrantz
9efb05a865
add E_EVENT_SCREENSAVER_OFF_PRE
...
for hooking dpms changes which occur before animations play
2015-07-27 16:54:01 -04:00
Mike Blumenkrantz
56a73e3c67
add dpms method for E_Comp_Screen_Iface
2015-07-27 16:47:55 -04:00
Mike Blumenkrantz
4543e26ca6
remove e_screensaver_force_update()
...
this was just used to set up x11 screensaver stuff, which has now been
relocated to the related comp_init function
2015-07-27 15:54:15 -04:00
Mike Blumenkrantz
7f638d98bf
add functioning wayland screensaver support
...
block xscreensaver events, manage input<->activation eventing
fix T2525
2015-07-27 15:46:57 -04:00
Mike Blumenkrantz
c2ecadae14
reject x11 NotifyVirtual and NotifyInferior mouse in events
...
these are triggered "in passing" when mouse in events occur and do
not necessarily indicate that the mouse has entered this specific window
failing to reject such events can cause mouse-based focus policies to
attempt to set focus onto windows which are not visible, resulting in
an infinite loop where no window is actually focused
2015-07-27 13:25:01 -04:00
Mike Blumenkrantz
0a8ee7b5ad
allow x11 mouse wheel events to check ev->event_window for possible client match
...
in the event that these windows are different, event_window is the parent of window
which may or may not be explicitly tracked by an E_Client, so the wheel events here
should be sent to the parent as is done in mouse button events
fix T2604
2015-07-27 13:23:13 -04:00
Mike Blumenkrantz
0d19a5914b
apply csd sizing transform for wayland configure events
...
when not resizing, the sizes passed to configure should be based on the
window size and not the surface size. in order to calculate this, it's
necessary to keep track of the last-known window geometry for non-maximized
states and create offsets with which to calculate new sizes
this fixes directional maximizes as well as unmaximizing
2015-07-24 16:35:21 -04:00
Mike Blumenkrantz
9e4fe82fbc
always send geometry to configure method for wayland clients when not resizing
...
failure to set this would lead to clients changing geometry when maximized while
focus state was removed
2015-07-24 16:34:18 -04:00
Mike Blumenkrantz
0321fd690e
do not send duplicate configures for wayland clients during maximize
...
this seems to not have caused any real issues, but it made debugging
more of a pain and is unnecessary connection noise
2015-07-24 16:33:33 -04:00
Mike Blumenkrantz
dd1577a169
fix client smart callbacks on (un)maximize
...
these should match the callbacks triggered for whatever the current
maximize state is
2015-07-24 14:34:03 -04:00
Mike Blumenkrantz
187fd44936
add an actual module no-save blacklist
...
this should make it easier to keep track of modules that should be
blocked from having their load states saved
2015-07-24 14:34:03 -04:00
Chris Michael
33414c0a0d
enlightenment: Remove static function prototype for unused function
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-24 13:16:04 -04:00
Chris Michael
b98a58f632
enlightenment: Allocate space for terminating NULL
...
Fixes CID1261289
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-24 13:12:20 -04:00
Chris Michael
f25f074be5
enlightenment: Remove listener for XDnD status
...
As we don't do anything within this handler, having it is just
pointless. Remove it. Fixes Coverity CID1267214
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-24 13:09:36 -04:00
Derek Foreman
457f3c013c
wayland: fix key repeat
...
Summary:
wl_keyboard_send_repeat_info takes ints, not floats. We were rounding to
0 and weston-terminal didn't key repeat.
fixes T2597
Reviewers: devilhorns, zmike
Subscribers: cedric
Maniphest Tasks: T2597
Differential Revision: https://phab.enlightenment.org/D2859
2015-07-23 11:01:31 -04:00
Mike Blumenkrantz
5cbbe261d7
add a timer for wl client focus to delay held key input
...
this prevents keys from immediately being sent to newly-focused clients
and avoids the case of reverting focus from one app to another on keybind
close, only to have the second app also close immediately using the same keybind
2015-07-22 17:55:30 -04:00
Mike Blumenkrantz
738622b068
send wl kbd modifiers only when changes occur
2015-07-22 17:46:39 -04:00
Mike Blumenkrantz
d38b2eb6b3
create/manage list of focused wl keyboard resources for reuse in kbd operations
...
this simplifies kbd code all over
2015-07-22 17:40:28 -04:00
Mike Blumenkrantz
0b66c2d841
set new_client flag on xwl clients during swap
...
this forces another run of client placement so that xwl clients do
not always appear at 0,0
2015-07-22 17:10:49 -04:00
Mike Blumenkrantz
ae1fc10d06
remove unnecessary geometry setting during xwl client swap
...
this geometry will be applied during show
2015-07-22 17:10:11 -04:00
Mike Blumenkrantz
43ed8dbdb5
set shell-less wl surface mapped state regardless of visibility during commit
...
new_client flag here will defer show operations, but the operations will complete
2015-07-22 17:09:14 -04:00
Mike Blumenkrantz
6dfc6da02c
update wl keyboard resource key presses on focus in/out of surfaces
2015-07-22 16:59:23 -04:00
Mike Blumenkrantz
5c5fb11187
allow wl client focus-out callback to execute on deleted E_Clients
2015-07-22 16:28:48 -04:00
Mike Blumenkrantz
435bd8794a
don't update wl keyboard state on client focus events
...
this is always up-to-date
2015-07-22 16:28:08 -04:00
Mike Blumenkrantz
75fb072dc3
fix backlight init value
...
in the case where xrandr is not used, setting backlight to very dim on init
will result in the backlight remaining at a very dim level when the backlight
normal level is 1.0 since backlight values will not successfully update until
at least 0.05s after the main loop starts
ref T1333
2015-07-22 13:56:19 -04:00
Mike Blumenkrantz
818fcb01f4
fix compositing error when client is ec->hidden during show animation
...
this prevented clients from being deleted and resulted in artifacts and
memory leaks
2015-07-22 13:30:02 -04:00
Mike Blumenkrantz
a3d5762bf2
simplify deskmirror client desk checking
2015-07-22 13:23:53 -04:00
Mike Blumenkrantz
9c1fca5a16
fix wl build
2015-07-22 12:24:35 -04:00
Mike Blumenkrantz
a9db84f94e
simulate modal windows for badly behaved x11 clients
...
it seems that some clients, eg. libreoffice, don't set the modal window
property on child dialogs. instead of fighting for focus, set up the child
as a modal on the parent and then avoid the whole issue
fix T2594
2015-07-21 18:24:39 -04:00
Mike Blumenkrantz
a951b88305
don't block keybind activation while grabs are active
2015-07-21 15:33:50 -04:00
Mike Blumenkrantz
b51e5fa0b2
ensure clients possess comp_data before dereferencing it during x11 stacking
...
ref T2566
2015-07-21 14:34:11 -04:00
Mike Blumenkrantz
5c00c1009b
redo wl compositor key eventing
...
* break out key callbacks into EINTERNs
* remove extraneous/unused mouse event handlers
* enforce wl modifier updating in all cases
* ensure keybinds are activated before wl clients receive input
- block wl client input during grabs
fixes T2565
2015-07-21 14:27:29 -04:00
Mike Blumenkrantz
d2fce4ce27
do not add x11 compositor desklock hooks in non-x11 compositor
2015-07-21 14:25:41 -04:00
Mike Blumenkrantz
2ce5dfa33f
add wl compositor desklock hooks to add grabs during lock
2015-07-21 14:25:16 -04:00
Mike Blumenkrantz
21b8016c5b
add clients to focus stack as necessary in e_client_unignore()
2015-07-21 14:21:36 -04:00
Mike Blumenkrantz
3c3f0845f3
fix typo in comp object opaque region render
...
#DerekWasRight
2015-07-20 17:26:13 -04:00
Mike Blumenkrantz
f6725c53a4
move opaque region (image border) apply to render fn
...
this seems to provide a more accurate region for rendering in my tests,
as various weston-apps no longer show black rects during resize
2015-07-20 14:38:44 -04:00
Mike Blumenkrantz
612a61ce0e
don't mangle wl client opaque region tiler during commit clip
2015-07-20 14:38:31 -04:00
Mike Blumenkrantz
4acce00428
improve wl compositor tiler usage
...
pixman <-> tiler api naming seems similar but functionality is totally
different
2015-07-20 14:10:55 -04:00
Mike Blumenkrantz
4d76741533
only perform keybind grabs on root window for x11 compositors
2015-07-20 13:32:06 -04:00
Mike Blumenkrantz
f2d71ad903
block compositor keybinds using more accurate x11 detection
...
blocking based on event window here is only valid for true x11 compositors
and not just compositors with root windows
fixes keybind activation when running xwayland clients
2015-07-20 13:29:13 -04:00
Carsten Haitzler
ee16a11455
e - randr allow you to turn off screens and keep them off if config says so
2015-07-19 22:41:48 +09:00
Carsten Haitzler
94a15856bd
e - unbreak client pixmaps when native surf is used
...
this unbreaks disappearing client content introduced by
5a001b1759
.
2015-07-18 23:39:46 +09:00
Mike Blumenkrantz
6b7ce91373
do not set opaque regions on comp object mirrors
...
based on testing, this breaks all rendering of related objects. I
suspect that the image border needs to be manually scaled based on
image::mirror proportions in order for this to work as expected, but
adding the required code seems like too much complexity for nearly zero
gain
2015-07-17 16:09:52 -04:00
Mike Blumenkrantz
1d4d906361
render surface opaque regions as opaque when image border is set
...
it seems that just setting the opaque region is not enough for evas;
we must also inform it that the opaque region is opaque and should not
be blended
2015-07-17 16:07:01 -04:00
Mike Blumenkrantz
552f065c09
zero out wl surface opaque region on commit in all cases
...
it's possible that the opaque ptr may exist but have no regions,
which will result in the previous frame's opaque region being used
2015-07-17 15:58:14 -04:00
Mike Blumenkrantz
bd776b157f
add e_client_unignore() for triggering events when unignoring a client
...
mainly for use in wayland compositing since all surfaces are ignored
until they get a shell surface or a commit
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz
51c74889cf
fix wl_fb define name in comp init
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz
5a001b1759
enforce image border/size/pixels_dirty setting on comp mirrors during create
...
this should provide a more accurate first-render for mirrors as they are added
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz
6471ba0a05
do not update client list hint when creating a new wayland client
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz
fbe55d20f1
always set new wayland E_Clients to be ignored during client hook
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz
d5e25a8449
add wl_wl wl output module
...
it is now possible to create a xephyr window in a drm-enlightenment session,
launch wl-x11 enlightenment in xephyr, and then launch wl-wl enlightenment
inside that enlightenment
the primary limitation on this output module is that all internal windows will
appear in the outer compositor due to the current restriction of ecore-wayland
with regard to only having a single global display server connection
#Inception
2015-07-17 15:30:30 -04:00
Seunghun Lee
faacad29dc
remove a kind of typo in E_ZONE_GEOMETRY atom string.
...
Test Plan: N/A
Reviewers: devilhorns, zmike
Reviewed By: devilhorns, zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2833
2015-07-17 15:04:39 -04:00
Chris Michael
bf993c6eee
e-comp-wl: Fix region_add and region_subtract functions to make sure we have accurate opaque regions
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-17 14:58:34 -04:00
Mike Blumenkrantz
32c48f9a40
...and also ungrab the compositor when internal drags end
2015-07-16 12:59:04 -04:00
Mike Blumenkrantz
2e5ab5a947
only use input xwindows for internal drags in x11 compositor
...
this fixes input region detection for dnd operations
fix T1831
2015-07-16 12:52:00 -04:00
Mike Blumenkrantz
7859787f73
wl clients should not use edges during keyboard resize
...
ref T2452
2015-07-15 18:08:32 -04:00
Mike Blumenkrantz
ecb5f4ca41
add E_Client->keyboard_resizing flag
...
there is no other indication of whether a client is resizing using the
keyboard, so this should serve as an adequate hint
2015-07-15 18:07:12 -04:00
Mike Blumenkrantz
73c03565b3
never use new clients for stacking part 2: the secret of the stacking
...
a client with this flag set here is unreliable to use as a stacking
reference since it has yet to be stacked and can be located anywhere
in the window stack.
fixes internal window stacking on startup
2015-07-15 16:22:02 -04:00
Mike Blumenkrantz
008a0658ec
only trigger client mouse-in from x11 mouse move event if client+desk are visible
...
ref T2566
2015-07-15 14:27:19 -04:00
Mike Blumenkrantz
17e878eca3
simulate netwm sync for xwl clients
...
blocks execution of resizes until the surface commit arrives. reduces
the race condition between resize and render and eliminates frame drops
during slow resizes
2015-07-15 13:58:03 -04:00
Chris Michael
321a421208
e-comp-wl: Remove unused variable
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-15 13:46:51 -04:00
Chris Michael
9e2512eb98
e-comp-wl: Fix T2570: stuck key when closing efm windows
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 15:26:38 -04:00
Chris Michael
e46c0812fc
e-comp-wl: Fix getting end key during key down/up events
...
NB: This is actually an Oopsie from a previous commit that should not
have gotten in.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 15:10:38 -04:00
Chris Michael
147bc3d71a
e-comp-wl: don't send keyboard modifiers twice.
...
NB: e_comp_wl_input_keyboard_modifiers_update already sends keyboard
modifiers to all keyboard resources, so no need to call this twice.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 14:46:13 -04:00
Chris Michael
116af14649
e-comp-wl: Update keyboard and modifier state AFTER we send them to clients
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 14:18:21 -04:00
Chris Michael
46997706ea
e-comp-wl: Add support for wl_keyboard_send_repeat_info to allow for configurable keyboard repeat rates
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 13:29:02 -04:00
Chris Michael
74e96f3826
e-comp-wl: Update keyboard key state regardless of client focus or not
...
Key state updates need to be consistent. As we update the key state on
key up regardless of client focus, then we should be doing the same in
the key_down event handler so that key state remains consistent.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 13:29:02 -04:00
Chris Michael
5052bd9266
e-comp-wl: Don't call keyboard_modifiers_update twice
...
e_comp_wl_input_keyboard_state_update already makes a call to
e_comp_wl_input_keyboard_modifeirs_update so there is no need to call
it twice on key up/down events.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-14 13:29:02 -04:00
Mike Blumenkrantz
161b67a53d
Revert "delete render updates for xwayland clients upon triggering a client resize"
...
This reverts commit f3f29a0cf8
.
upon further review, this was not at all helpful and breaks resizing eventually
2015-07-14 13:12:06 -04:00
Simon Lees
e8911323c3
e_bg_del should only delete the bg on the zone specified
...
Summary:
previously e_bg_del didn't take the zone paramater into
account
fixes T2572
Reviewers: raster, zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2810
2015-07-14 12:32:37 -04:00
Carsten Haitzler
964fabe6e2
e randr2 - auto clone and use common res when doing so - make it work
...
tested this and made it work. should fix T2100
2015-07-12 18:12:00 +09:00
Mike Blumenkrantz
c128d54690
disable size debug on drags
2015-07-11 08:37:56 -04:00
Mike Blumenkrantz
f3f29a0cf8
delete render updates for xwayland clients upon triggering a client resize
...
fixes frame dropping during resize
2015-07-10 16:59:47 -04:00
Mike Blumenkrantz
311f524094
only register dnd xwindow with compositor canvas in x11 compositor mode
...
registering it under wayland creates spurious mouse events
2015-07-10 16:03:45 -04:00
Mike Blumenkrantz
4a779ef03d
fix xdnd in (x)wayland
...
this is a real thing, so don't abort immediately if it happens
2015-07-10 16:03:18 -04:00
Mike Blumenkrantz
e92519f171
adjust layering of pointer and init splash
...
prevents cursor from getting stuck above screensaver fade
2015-07-10 14:21:50 -04:00
Mike Blumenkrantz
697e1beda3
add wayland client post-render references in the render loop
2015-07-10 13:22:15 -04:00
Mike Blumenkrantz
bec06b8703
add function to fill in x11 cursor image on creation
...
xwayland compositing requires that we set up a root window cursor image
immediately since we'll be getting that cursor surface to display as soon
as the pointer goes out of an x11 client's window
2015-07-10 13:04:12 -04:00
Mike Blumenkrantz
5a26363046
break up some pointer setting code into helper functions
2015-07-10 13:03:05 -04:00