Mike Blumenkrantz
b5320b6246
explicitly free client animation agent object during fullscreen operation
...
ensure that animations do not persist after fullscreen state has been set
2017-10-31 12:04:48 -04:00
Mike Blumenkrantz
bbb3ec1fc5
unset client's mouse-in state on mouse out even while fullscreen or deleted
...
the state should always be updated regardless of these attributes
2017-10-27 13:21:03 -04:00
Mike Blumenkrantz
ef69fabd47
add client refs for the nocomp client
...
this client may be referenced after deletion during render loop
fix T6151
2017-10-20 13:40:20 -04:00
Mike Blumenkrantz
1d5977c02a
do not unnecessarily rescale clients
...
this function is mainly for rescaling maximized/fullscreen clients to fit new
dimensions, so don't call on other clients since this can trigger unwanted resize
events
2017-09-28 13:03:37 -04:00
Mike Blumenkrantz
15ea006eb5
block client rescales during render updates
...
this guarantees misrenders
2017-09-28 13:03:37 -04:00
Mike Blumenkrantz
11a08ebc30
don't perform zone updates on client resize
...
zone updates should probably only happen on client moves, not resizes
ref T6023
2017-09-21 13:31:01 -04:00
Mike Blumenkrantz
9727710647
hide clients again after show in idler if clients are on hidden desk
...
clients need initial show to correctly handle mirror visibility but should
then be hidden again
ref 0ee8cc896e
fix T6024
2017-09-14 12:45:45 -04:00
Mike Blumenkrantz
b77e01e1dd
use EC_CHANGED when setting changed flag in client idler
2017-09-14 12:43:15 -04:00
Mike Blumenkrantz
20ea0ed150
add/use helper function for rescaling individual clients
...
in any case where client needs to be rescaled to use new screen geometry
certain things must happen, such as handling shaded state and forcing the
new geometry to be applied
2017-09-12 13:21:04 -04:00
Mike Blumenkrantz
378e371e74
remove fullscreen clients from vdesk clients list when toggling sticky state
...
fix T5988
2017-09-07 13:37:20 -04:00
Mike Blumenkrantz
72b979ca2b
handle first time desk setting for fullscreen clients without crashing
...
ref T5988
2017-09-07 13:37:20 -04:00
Mike Blumenkrantz
ef6197b119
do not force client focus setting after calling e_desk_last_focused_focus()
...
in some cases focus setting must be deferred, and forcing focus in these cases
will create focus bugs
ref 9ae24a3a4a
2017-09-01 13:40:12 -04:00
Carsten Haitzler
9ae24a3a4a
e client focus - fix focus if moving focused window to new desk - long
...
fix client focus the very very very long way vs
418319fc94
2017-09-01 19:29:03 +09:00
Carsten Haitzler
418319fc94
e client focus - fix focus if moving focused window to new desk
...
if the window being moved to a new desktop is focused, then ensure
after the move to restore focus to the last focused in the focus stack
for this desk to something stays focused.
@fix
2017-08-30 16:13:50 +09:00
Mike Blumenkrantz
ec047b1a98
perform client zone updates on canvas move/resize when not ignored
...
overrides still need zone updates here
2017-08-25 14:47:10 -04:00
Carsten Haitzler
da791a0bf5
e mixer - handle pulse exit/disconnect and not keep e client sinks
...
we keps e client sinks even if we were dicsonnected from pulse... this
caused fun crashes. fix
@fix
2017-08-20 01:02:03 +09:00
Mike Blumenkrantz
5f87fbca2e
only set new clients to current desk if desk has not yet been set
...
placement policies can override setting windows onto the current desk
2017-08-18 15:52:50 -04:00
Mike Blumenkrantz
2b984e68b9
add MISC client property event to be manually triggered whenever misc props change
...
there's too many properties to create flags/events for all of them, so just use this
if it's one of the many misc props
currently only used for skip_{pager,taskbar,winlist}
2017-08-18 15:52:50 -04:00
Carsten Haitzler
4fe7827af2
fix fallthrough warnings and tag as fallthrough
...
this code was intending to do this.. so tag as such
2017-08-05 12:37:39 +09:00
Mike Blumenkrantz
cb3911cc3a
make client size hints apply more accurately
...
* clamp min/max first
* only apply step adjustments when obeying min/max sizes
* make aspect calculations more accurate
2017-08-04 16:05:16 -04:00
Mike Blumenkrantz
2c3f65d6f8
apply client hints when rescaling a client
...
ensure rescales obey hints
2017-08-04 16:05:15 -04:00
Mike Blumenkrantz
4e86fb57e1
restack child windows on parent_set() even if child is ignored
...
ensure that this happens as expected since it may not occur elsewhere for
some cases
2017-08-04 16:05:15 -04:00
Mike Blumenkrantz
0b887245cc
remove left/right maximize before removing vertical maximize
...
ensure maximize states are removed accurately and in the right order
ref b48419c577
2017-07-28 15:44:55 -04:00
Mike Blumenkrantz
94633fbde1
fix wayland-only build
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz
b7776798c7
don't attempt desk flips from client move handler
...
this should be handled by normal zone handlers now
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz
07d4f3bcf6
don't call comp object cleanup functions for clients without comp objects
2017-06-30 10:25:18 -04:00
Mike Blumenkrantz
d0accb8e52
block pointer warping on override clients
...
this is never okay
2017-06-30 10:25:17 -04:00
Mike Blumenkrantz
bb1d7790b0
force shape queue when adding/deleting action client event grabber
...
ensure that this is normalized to provide consistent behavior before
and after actions begin/terminate
2017-06-26 14:48:03 -04:00
Mike Blumenkrantz
63f3fe949c
block "user" client resizes during comp client updating phase
...
resizing objects triggers clip resizes and further event feeding which
can propagate mouse events such that clients try to resize themselves
during the update phase, resulting in illegal compositor behavior
2017-06-24 12:34:12 -04:00
Mike Blumenkrantz
46fc9c0988
freeze client action event grabber stacking
...
ensure event stacking does not get modified by external handlers
2017-06-23 17:49:44 -04:00
Mike Blumenkrantz
dae4bd6576
feed mouse-up to action client from event grabber, then attempt to end actions
...
signal actions don't pass through the same init methods as other actions, and
so it becomes possible for the mouse-up to fail to terminate the action
2017-06-19 15:26:34 -04:00
Mike Blumenkrantz
339cbde731
reject client mouse move if coords match previous position
...
ensure that random event feeds don't accidentally trigger unwanted
move/resize attempts which can break the compositor
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz
5e7ca478d0
route all mouse movements to action_client during action grab
...
ensure client receives all necessary mouse events
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz
b48419c577
only remove left/right maximize when removing vertical if left/right is set
...
avoid accidentally removing horizontal maximizes
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz
b4e96a0aea
feed mouse up during window maximize if the current window is being dragged
...
prevent window from accidentally toggling its maximize state repeatedly
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz
f396d3fe42
re-enable zone edges during window_move action
...
this can now be sensibly handled without accidentally sending input to
every object on the canvas
ref T5552
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz
d0f45a48a4
use event_grabber to simulate explicit grab during window move/resize actions
...
this grabs the client's frame as well as any existing edge objects during drags
ref T5552
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz
41a5fe2708
delete client raise timer when beginning a move/resize operation
...
this breaks things in subtle ways
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz
9f48fd5a9c
perform client raise before triggering move/resize BEGIN client hook
...
hooks may further modify stacking, so ensure any changes are done before
that point
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz
f11aeaa8d0
do not perform zone updates on ignored clients during evas callbacks
...
ignored clients should not have a zone or a desk
2017-05-25 12:15:42 -04:00
Mike Blumenkrantz
a7cfbcd101
do not adjust unplaced transient client position on parent move/resize
...
this breaks placement
2017-04-07 16:08:38 -04:00
Mike Blumenkrantz
b4be7040a6
break out client transient restacking into function
...
this is nontrivial and breaks things when incorrectly applied
2017-04-07 16:08:37 -04:00
Mike Blumenkrantz
1bc600baba
do not arbitrarily center "lost" child windows, center them on the parent
...
if the parent is also lost, it will eventually be rescued and thus all children
will also be saved
#WeirdCommitLogs
2017-04-07 16:08:35 -04:00
Mike Blumenkrantz
d4b8404073
add a client's children to the skiplist during place routine
...
these should be ignored since they will be positioned relative to the parent
2017-04-07 16:07:25 -04:00
Mike Blumenkrantz
53233ec53f
center child clients on parent in parent_set()
2017-04-07 16:07:25 -04:00
Mike Blumenkrantz
bab204bde1
explicitly stack child client above parent when calling parent_set
2017-04-07 16:07:25 -04:00
Mike Blumenkrantz
e3faaf865e
do not set intermediate client geometry when doing fullscreen -> maximized
...
this provides a smoother experience for the transition as well as being a
more optimized operation
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz
b223ed0981
add E_Client->saved.set
...
this indicates that saved geometry has been set and should not be
updated during maximize
currently only used to handle transition from fullscreen -> maximize
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz
5c4f8a19a4
call "maximize" smart callback before "maximize_pre"
...
this callback induces ssd changes which affect the resulting geometry
and so it must be called before any size calculations are made
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz
e3b3970b6e
adjust size for frame geometry in no-animation maximize path
...
this is based on window size, not surface size
also ignore coords if the size matches, animating just a positional
change looks dumb
2017-03-24 13:17:24 -04:00