gtk apps set an atom which provides information about the area
where non-window content (eg. shadows) may be drawn; this area
must not be used in placement calculations.
the easiest method for implementing this functionality was to add
a case to the compositor geometry interceptors which effectively
flip the client struct geometry values such that the E_Client->client
is outside of the more commonly used E_Client->x/y/w/h
fix T2744
this is not actually supported yet, so behavior of windows using this
feature will be more wayland-like, eg. geometry determined by area
of window+shadow
fix T2744
add deskmirror refs to avoid segv on shutdown/restart due to mb->m
becoming a pointer to freed (now garbage) memory, so trace every
ref/unref and count them to get it right. crash gone!
previously, this would throw dbus errors (or not) and then do nothing in
many cases. now it manages bus/path names more effectively and falls back
to binary image data when an icon path is not available
fix T2626 and probably some others
the previous behavior would just set up the new layouts, resulting in
the first layout in the list being applied. now it should be the case
that if the current layout has not been deleted, it will continue to
remain in effect; alternatively if the current layout has been modified,
it's now more likely to be picked up and used
resolves issue where setting a specific kbd would fail to make settings permanent
as well as not propagating the kbd change to the rest of enlightenment
fix T1810
somehow it was possible for client sizes to overflow the zone geometry here
which would end up breaking maximization limits and result in clients
not respecting various geometry boundaries
this should fix open file handles on unmount by flushing caches first.
not great, but works. long-term have evas not keep file handles open
for 0 refcount cached items.
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
when using "system" backlight mode, ensure that events are processed
as they occur so that the available backlight level is in sync with
the actual backlight level
fix T2255
due to the presence of color classes on internal windows, e must
ensure that users who set translucent colors for window base objects
get transparency as expected on those parts of the window. it's impossible
to determine in advance whether alpha is needed, so it's best to just
set alpha in all cases
fix T2050
ilist widget adds items in a deferred queue, resulting in attempts to
immediately toggle the disabled state having no effect. now there is
a flag so that items added after the disabled flag have been set will
have the correct state
fix T2730
in the case where a window is fullscreen without having the 'fullscreen'
flag set, the previously-used layer must be reapplied upon nocomp end
in order to avoid breaking the compositor
as a result of earlier changes which prevented recursive desk flips,
e_desk_show() now rejects some desk show calls which are invalid such as
a show where the "current" desk does not have the visible flag set. this
behavior is overridden in the case of startup, which is functionally the
same effect as changing the desk count
fix T2717
if windows set to "Always on Top" exist while the option to allow
windows over fullscreen windows is enabled, enabling nocomp will
result in the above windows being stuck over the nocomp window
instead, force the nocomp window to be the top-most window in all cases,
and then put it back if another object appears on the screen over it
fix T2703
when a client is set to "Always on Top", it will be on the same layer
as override clients. this can cause strange stacking and mouse eventing
in cases where these windows occupy the same space and the normal client
is stacked over the override
this prevents an infinite focus loop where focus will be constantly
reapplied between multiple windows if the activated window is not the
refocus window