Commit Graph

162 Commits

Author SHA1 Message Date
Mike Blumenkrantz 28a40d359f 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:44:58 -05:00
Mike Blumenkrantz 9539e36707 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-19 16:07:33 -05:00
Mike Blumenkrantz bc2d090572 use unsigned int for client focus tracking freeze state
there's no reason why this should ever be negative
2015-11-10 14:50:34 -05:00
Mike Blumenkrantz c31824c2ef 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-09 14:23:23 -05:00
Mike Blumenkrantz ff1ef7281b simplify client SMART/EXPAND maximize
calling e_client_resize_limit() here was misleading since the values
were never used
2015-11-09 14:05:17 -05:00
Mike Blumenkrantz 9324313948 reject frame theme changes for clients which have CSD 2015-11-09 14:04:29 -05:00
Mike Blumenkrantz f53e85e44c 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:24:37 -04:00
Mike Blumenkrantz 24c2d5fb95 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:41 -04:00
Mike Blumenkrantz 6709eed4c2 unset E_Client->changes.need_unmaximize after calling unmaximize
...just in case
2015-09-28 16:12:28 -04:00
Mike Blumenkrantz de0bffe9c6 remove client maximize states during unmaximize only if they are active
do not accidentally remove untested states using bad math operations
2015-09-28 16:12:28 -04:00
Mike Blumenkrantz d7d7853856 check warp_client existence during pointer warp before dereferencing it
ref T2679
2015-09-25 16:27:24 -04:00
Mike Blumenkrantz 351fbd1772 block border-affecting client functions for csd clients 2015-09-24 16:42:31 -04:00
Mike Blumenkrantz eeda49735c improve client exe_inst creation
ref T2679
2015-09-22 16:01:07 -04:00
Carsten Haitzler d7fdb67488 e - fix crash in desktop lookup+fixup where exe_inst is null 2015-09-22 16:01:02 -04:00
Mike Blumenkrantz e2dfd33496 unset E_Client->want/take_focus flags during client eval
ref 4a33cd7ba0
2015-09-22 12:06:49 -04:00
Mike Blumenkrantz c34e693614 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 20:05:18 -04:00
Mike Blumenkrantz 8b544ca830 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:52:34 -04:00
Mike Blumenkrantz b23f3cabd8 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:02:42 -04:00
Mike Blumenkrantz 579b5dcb76 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 17:02:40 -04:00
Mike Blumenkrantz 65d5e1ba7d 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:03:34 -04:00
Mike Blumenkrantz 5edb052b87 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:21:06 -04:00
Mike Blumenkrantz 239bbf95cf do not modify E_Client->visible value in show/hide callbacks 2015-08-18 18:21:05 -04:00
Mike Blumenkrantz e2488a04aa fix build break from previous commit 2015-07-28 23:46:11 -04:00
Mike Blumenkrantz af230fc7f6 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:49:18 -04:00
Mike Blumenkrantz eef5efe8c3 move E_Client->mouse.in to E_Client->mouse_in to avoid abi breakage 2015-07-07 13:15:45 -04:00
Chris Michael 099861c55a enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 15:56:20 -04:00
Mike Blumenkrantz 9e5c227689 trigger fake mouse-out on clients when unsetting focus
this will allow a more reasonable determination of pointer location
when attempting to apply mouse-based focus policies
2015-06-29 16:08:47 -04:00
Mike Blumenkrantz d9b6e25075 add E_Client->mouse.in for determining mouse-in status 2015-06-29 16:08:47 -04:00
Mike Blumenkrantz 3fc585efa3 fix focusing client on mouse events which trigger actions (with exceptions)
block focus events only if focus has changed to another client or the current
client's layer-actual has been lowered

regression from 719b2baeba
2015-05-21 12:32:40 -04:00
Mike Blumenkrantz 88cb4541bd allow new fullscreening clients to replace current nocomp where applicable 2015-05-18 13:22:53 -04:00
Mike Blumenkrantz 2b1b6def72 reject client fullscreening based on config and desk visibility 2015-05-18 13:21:45 -04:00
Mike Blumenkrantz 7a028f37f3 only apply mouse down focus events if a binding did not run on the same event
fixes the case of enabling "raise on click" and also having a mouse binding
for "lower on click" active

fix T2364
2015-04-29 22:08:26 -04:00
Mike Blumenkrantz aa71cd734c freeze evas events on clients during keyboard move/resize actions
fix T2112
2015-04-29 22:08:22 -04:00
Carsten Haitzler cbe533c848 e client - desk wait - ref it properly and clean up delfn
delfn's on desks being referred to as profile.wait_desk were never
cleared when client was freed. als the desk itself never got an obj
reference - fix that and ref/unref it.
2015-04-28 12:29:54 -04:00
Mike Blumenkrantz 85e9c985b0 ensure client max w/h props are set before applying them to client geom 2015-04-28 12:24:19 -04:00
Mike Blumenkrantz 92d8abd38c use client geometry for starting unmaximize calculations
the resize operations in this function operate off client geometry, so
stop using frame geometry

fix T2170
2015-04-20 15:34:37 -04:00
Mike Blumenkrantz facd645829 set E_Exec_Instance desktop during client idler if none present
ref T2284
2015-04-13 16:22:32 -04:00
Carsten Haitzler 666da6ab83 e clients - make sure we handle client with a NULL zone 2015-03-11 16:05:52 -04:00
Mike Blumenkrantz baf9640ef5 fix horizontal/vertical smart maximize
fix T2170
2015-03-06 17:18:15 -05:00
Mike Blumenkrantz 1d4f7027a4 set ec->fullscreen before applying fullscreen geometry 2015-03-04 17:08:22 -05:00
Mike Blumenkrantz 2d4929e68e rename extremely frustratingly-named E_Screen_Limits enum and members
this came in a patch that I take full responsibility for not adequately reviewing at the time.
the names are confusing and counterintuitive, and it does not properly include the client namespace.

backported to avoid future backport conflicts
2015-02-18 18:56:18 -05:00
Mike Blumenkrantz 7ea12ff367 clamp client size to screen when client limit policy does not allow offscreen
fix T1779
2015-02-18 18:38:39 -05:00
Carsten Haitzler 257118514e e - client list update after adding to client list - fix netwm bug
this fixes T2029
2015-02-12 23:14:59 -05:00
Mike Blumenkrantz 7570d8809e completely block border changes on MWM borderless windows
ref T1963

seriously.
2015-01-03 00:44:19 -05:00
Mike Blumenkrantz 50f5b74cd8 apply pointer warp effects immediately when instant warping
fix T1462
2014-11-28 15:07:32 -05:00
Mike Blumenkrantz f9370f013e fix internal window border changing 2014-11-03 17:04:14 -05:00
Mike Blumenkrantz 4374a04e2e client hooks should not continue to be called if the client has been deleted 2014-09-23 13:18:01 -04:00
Mike Blumenkrantz 16f3595f7d comp render queue on every client resize instead of on unmaximize 2014-09-23 10:31:24 -04:00
Mike Blumenkrantz 309ff82429 force render queue on unmaximize if client was fullscreen
fix T1665
2014-09-18 11:52:46 -04:00
Mike Blumenkrantz 0028c7aea3 fix client positioning when initial position is offscreen or size is huge
ref T1571
2014-09-07 12:35:45 -04:00