Mike Blumenkrantz
9005332468
ensure that client eval correctly handles retries on visibility-pending clients
...
ref 2854352bc8
fix T3636
2016-05-13 11:25:06 -04:00
Mike Blumenkrantz
00e427b126
adjust some client eval parts to make manual placement work again
...
activating the window_move action doesn't require the client to successfully
be shown, and failing this check would cause the window_move action to be
deleted until the next restart
2016-05-12 12:43:49 -04:00
Mike Blumenkrantz
5cd256da78
ensure child windows are placed on screen
...
when centering a child over its parent, checks were not made to ensure that
by centering the child it had not gone offscreen
2016-05-12 12:42:21 -04:00
Mike Blumenkrantz
dc0ec2339e
feed mouse up events to internal wins before mouse out during action exec
...
ref 609276e12d
fix T3347
2016-05-12 12:34:00 -04:00
Mike Blumenkrantz
dd07d01737
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-26 10:56:59 -04:00
Mike Blumenkrantz
203a118eb4
change client un/maximize_pre callback location to occur after safety checks
2016-04-26 09:59:17 -04:00
Mike Blumenkrantz
b4f664b7bc
make e_client_has_xwindow() more wayland-only friendly
2016-04-26 09:59:17 -04:00
Mike Blumenkrantz
12d1d70ca4
reject client maximize attempts using identical maximize params
2016-04-26 09:56:31 -04:00
Mike Blumenkrantz
783c35622d
only attempt to rescue offscreen clients if they are completely offscreen
2016-04-26 09:50:26 -04:00
Mike Blumenkrantz
bdc8078f87
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-04-26 09:49:04 -04:00
Mike Blumenkrantz
56e96ce294
do not set initial changed state for new clients if they are ignored
...
this loops the client idler for no reason
2016-04-26 09:48:22 -04:00
Mike Blumenkrantz
39717a8a38
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-04-26 09:48:06 -04:00
Mike Blumenkrantz
8d626e490b
do not attempt to resize clients to 0x0 during res restore
...
ACK--
2016-04-26 09:44:06 -04:00
Mike Blumenkrantz
af46fe8190
unify client e_hints window size setting in move/resize callbacks
2016-04-26 09:38:08 -04:00
Mike Blumenkrantz
f009e7c752
do not decrement e_comp->new_clients for non-new clients during _e_client_eval
...
this overflows the int!
2016-03-09 12:10:03 -05:00
Mike Blumenkrantz
1a71696c3a
pre-remove pixmap from x11 clients during del hook
...
this breaks the compositor!
ref 0ca200513e
2016-03-09 12:09:27 -05:00
Derek Foreman
1a6dac4677
Move pixmap free to client free from client destroy
...
Under wayland we need the pixmaps to exist until after the close
animations finish, even if clients can perform new rendering.
@fix
2016-03-09 12:08:43 -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
ac0cc26765
allow more client hooks to bypass delete check
...
failing to propagate these signals can result in a broken compositor
when a client is deleted before/during an operation
2015-11-24 21:42:22 -05:00
Mike Blumenkrantz
00252fad74
add safety checks to e_client_focus/raise_latest_set() fns
...
passing a null client here breaks the universe, so ensure that it's
easily catchable
2015-11-19 12:44:35 -05:00
Mike Blumenkrantz
64ceff507f
update E_Client->desk member upon focusing a sticky client
...
a sticky window previously would always have the desk set for where
it was set as sticky, meaning that anything which tries to access it
will be reading wrong data here.
more useful information to provide is the last desk which the sticky
client was focused on, so update that upon focusing it
2015-11-12 17:38:58 -05:00
Mike Blumenkrantz
b3d68ee828
use unsigned int for client focus tracking freeze state
...
there's no reason why this should ever be negative
2015-11-10 14:32:53 -05:00
Mike Blumenkrantz
cc137f6cd7
move client iconic hint setting into x11 hide function
...
e_hints should probably be merged into the x11 compositor entirely
at some point
2015-11-07 13:06:23 -05:00
Mike Blumenkrantz
d47252be4a
simplify client SMART/EXPAND maximize
...
calling e_client_resize_limit() here was misleading since the values
were never used
2015-10-30 15:03:29 -04:00
Mike Blumenkrantz
b9e51e1c0d
Revert "when maximizing a wayland client with csd, use window geometry"
...
This reverts commit 6e5e51c2b8
.
not a complete solution, makes client code somewhat unreadable
2015-10-29 14:34:32 -04:00
Mike Blumenkrantz
6e5e51c2b8
when maximizing a wayland client with csd, use window geometry
...
wayland clients which have csd must be resized according to window geometry,
not client (surface) geometry. this is somewhat tricky to handle because x11
clients which have csd work the exact opposite way and must continue to be
managed using client geometry
this is not my ideal solution for this issue, but I can't think of a
better one at this time which fully fixes wayland client maximization
2015-10-23 12:59:45 -04:00
Mike Blumenkrantz
7016c59c6f
reject frame theme changes for clients which have CSD
2015-10-23 12:31:24 -04:00
Chris Michael
59ffe3bed2
enlightenment: Add missing field initializers for Eina_Rectangle
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:19:43 -04:00
Mike Blumenkrantz
45b7224b42
explicitly disable screensaver for wayland urgency wakeups
2015-10-09 15:23:15 -04:00
Mike Blumenkrantz
277eb14ace
make wake-on-urgent apply for all cases of window urgency
...
in the case that an urgent window is set as urgent again, wakeup should
still occur
2015-10-09 15:21:41 -04:00
Tom Hacohen
981e3f8f31
Client: fix potential out of bounds read.
...
This is an unsigned int underflow that could lead to an out
of bounds read.
CID 1291837
@fix
2015-10-09 09:19:53 +01:00
Mike Blumenkrantz
95b9770f08
when removing VERTICAL maximize state, also remove LEFT and RIGHT states
...
LEFT and RIGHT are supersets of VERTICAL which serve no purpose on their own,
so remove them when removing VERTICAL
fix T2770
2015-10-07 15:47:21 -04:00
Mike Blumenkrantz
64c4adeca2
unset E_Client->changes.need_unmaximize after calling unmaximize
...
...just in case
2015-09-28 14:37:57 -04:00
Mike Blumenkrantz
f0fc7a12de
remove client maximize states during unmaximize only if they are active
...
do not accidentally remove untested states using bad math operations
2015-09-28 14:36:59 -04:00
Mike Blumenkrantz
8a764901c6
check warp_client existence during pointer warp before dereferencing it
...
ref T2679
2015-09-25 16:26:50 -04:00
Mike Blumenkrantz
2b38eb9712
block border-affecting client functions for csd clients
2015-09-24 16:33:56 -04:00
Mike Blumenkrantz
c9c880ec59
improve client exe_inst creation
...
ref T2679
2015-09-22 16:00:09 -04:00
Mike Blumenkrantz
ae919fe716
unset E_Client->want/take_focus flags during client eval
...
ref 4a33cd7ba0
2015-09-22 12:03:09 -04:00
Mike Blumenkrantz
4a33cd7ba0
only set focus on clients which are visible during client eval
...
focusing a client will automatically uniconify and desk flip, so
setting focus on a hidden client should be avoided during eval since
these focus-sets are not "user triggered"
this fixes issues where clients could randomly grab focus from other
desks and also restores expected behavior when restarting e on an
empty vdesk
2015-09-21 19:19:01 -04:00
Mike Blumenkrantz
7056d598c4
do not return non-visible clients for e_client_under_pointer_get()
...
a hidden client should not be considered "under the mouse" since its
geometry is undefined until it becomes visible again
fix T1069
2015-09-21 17:50:48 -04:00
Mike Blumenkrantz
e8a9ba34b0
always send CLIENT_SHOW event when clients are shown
...
I think it was the case for <E19 that uniconifying a client would
not send a show event, but this is not ideal and so the event should
still be sent
2015-09-17 19:08:27 -04:00
Mike Blumenkrantz
f5657fc6c1
enforce gathering client moveinfo before beginning move/resize action
2015-09-17 16:54:00 -04:00
Carsten Haitzler
b73364269b
e winlist focus alt-tabbing - fix focus list changes while tabbing
...
this should fix T2700
@fix
2015-09-12 13:38:38 +09:00
Mike Blumenkrantz
8946e3e504
unshade clients when activating
...
fixes issue where an activated client on another vdesk which was shaded
would appear to be unshaded but was, in fact, shaded
2015-09-08 17:01:36 -04:00
Mike Blumenkrantz
5bd8706bac
force-disable refocus during desk flip on client activation
...
this prevents an infinite focus loop where focus will be constantly
reapplied between multiple windows if the activated window is not the
refocus window
2015-09-08 16:55:21 -04:00
Mike Blumenkrantz
fb79fff70d
don't set E_Client->changes.visible on successful show/hide
...
iirc this was a fix for something else that was going on early in
e19 development, now it creates issues when attempting to hide clients
2015-08-19 14:00:52 -04:00
Mike Blumenkrantz
0730e3853a
unset E_Client->want/take_focus flags in hide callback
...
deferred focus should no longer be valid if a client has been hidden
before the focus-set could be triggered
fixes super fun infinite loop with desk flips
2015-08-18 18:18:12 -04:00
Mike Blumenkrantz
68da56b430
do not modify E_Client->visible value in show/hide callbacks
2015-08-18 18:17:51 -04:00
Mike Blumenkrantz
442d63d8d6
track button mask for all drags, only end drag when mask has depopulated
...
previously, beginning a drag with the left button, then pressing and
releasing another button would result in the drag terminating without
the original button being released
2015-08-12 15:39:42 -04:00