Commit Graph

19328 Commits

Author SHA1 Message Date
Mike Blumenkrantz 5cd84add0e block border-affecting entries from showing up in client menu with csd 2015-09-24 16:42:31 -04:00
Mike Blumenkrantz 0bf031f282 fix e_shelf_position_calc() to not set struct members before applying them
fix T2743
2015-09-24 16:42:31 -04:00
Mike Blumenkrantz fc1da30ad4 add util function for determining if a client is allowed to have a frame
returns false if mwm borderless is set or if csd exists
2015-09-24 16:42:31 -04:00
Mike Blumenkrantz 53e0c56f5e fully support _GTK_FRAME_EXTENTS
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
2015-09-24 16:42:24 -04:00
Mike Blumenkrantz 0692c736d0 broadcast support for _GTK_FRAME_EXTENTS
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
2015-09-24 16:35:55 -04:00
Mike Blumenkrantz cf7845de72 19.11 NEWS updates 2015-09-23 16:09:21 -04:00
Mike Blumenkrantz eb08e5b8b6 19.11 release 2015-09-23 13:05:21 -04:00
Carsten Haitzler 80ddfc7637 deskmirror - fix dangling reference to mirror by refcounting it
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!
2015-09-23 12:17:12 -04:00
Mike Blumenkrantz 6f4d1268d1 fix systray implementation of notifier watcher (StatusNotifierItem)
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
2015-09-22 18:41:56 -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 f19a122605 attempt to maintain currently-selected kbd layout when modifying kbd list
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
2015-09-22 14:21:14 -04:00
Mike Blumenkrantz c4f3181895 only init E_EVENT_XKB_CHANGED during xkb init if xkb init hasn't already occurred
allows xkb init to be called repeatedly
2015-09-22 14:21:12 -04:00
Mike Blumenkrantz cce8a47a7e update xkb settings and send xkb update event when calling e_xkb_layout_set()
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
2015-09-22 13:47:36 -04:00
Mike Blumenkrantz 52c66793f1 calculate comp object visibility regardless of pending damages
in the case of clients on non-visible vdesks, this improves the reliability
of mirrored rendering
2015-09-22 13:22:24 -04:00
Mike Blumenkrantz 7a142970cb do not emit client iconify signal when reapplying compositor theme
this has no effect other than breaking the animation counter for the
client and preventing it from being deleted
2015-09-22 13:21:11 -04:00
Mike Blumenkrantz 8087b84829 redo client maximization when a non-overlap shelf changes geometry
this fixes the annoying case of needing to remaximize all windows when
a shelf resizes in order to account for new geometry
2015-09-22 12:45:26 -04:00
Mike Blumenkrantz 5ae61c954e clamp client geometry to zone during geometry calc
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
2015-09-22 12:44:27 -04:00
Mike Blumenkrantz ff1408c040 only unpopulate a shelf when applying new settings if the shelf won't be recreated 2015-09-22 12:44:24 -04:00
Mike Blumenkrantz 8a1634266c block gadcon thaw on unpopulate when gadcon is deleted
saves a huge amount of unnecessary calc time
2015-09-22 12:44:19 -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
Carsten Haitzler 8f69b497b2 e - fm - flush all evas caches to get rid of open file handles b4 umount
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.
2015-09-22 12:06:44 -04:00
Mike Blumenkrantz 615fd46224 apply vertical maximize algorithm for LEFT/RIGHT maximized windows 2015-09-21 20:06:40 -04:00
Mike Blumenkrantz e4d065370b move focus setting on restart into desk restore function
the focused client on restart needs to be set after desk states
have been restored in order to avoid focusing the wrong client
2015-09-21 20:06:31 -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 4606d34c54 add efl versioning for eeze backlight monitoring 2015-09-21 17:26:05 -04:00
Mike Blumenkrantz 033c3c32f0 remove backlight update calls from backlight module
these are no longer necessary since the backlight value should be
kept up-to-date by the core backlight infra
2015-09-21 17:23:55 -04:00
Mike Blumenkrantz b6d243ce1a add eeze watch for backlight events
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
2015-09-21 17:23:54 -04:00
Mike Blumenkrantz a108d8ec6a only lower x11 layer windows for layers which have windows during init 2015-09-21 16:55:03 -04:00
Mike Blumenkrantz 67524ac921 re-set internal ee win after applying alpha
changing a window's alpha causes it to be recreated in the engine
2015-09-21 16:51:41 -04:00
Mike Blumenkrantz 404bbd8e51 decode .desktop link and directory uris in fileman menus
fix T1922
2015-09-21 16:16:13 -04:00
Mike Blumenkrantz ba84edbdb7 always set alpha for internal wins
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
2015-09-21 15:20:22 -04:00
Mike Blumenkrantz 7925bb3923 make bgpreview widget work with panoramic wallpapers 2015-09-21 15:07:04 -04:00
Mike Blumenkrantz d01f036833 send FLOAT_SET edje messages during desk flip
panoramic wallpapers are created to expect this type of message

ref T2219
2015-09-21 15:04:10 -04:00
Mike Blumenkrantz 2ff25a32d8 remove unused variables in ilist widget 2015-09-17 19:12:19 -04:00
Marcel Hollerbach 614e3ff99e deskmirror: check if ec is not null before accessing it
Summary: ec can be NULL

Reviewers: devilhorns, zmike

Projects: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D3023
2015-09-16 13:06:59 -04:00
Mike Blumenkrantz 3a0ed0b1c3 add ilist method for setting disabled state
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
2015-09-15 13:06:57 -04:00
Mike Blumenkrantz 05a1864b10 unset client hidden flag on config dialogs when activating from another vdesk
fix T2731
2015-09-15 12:47:31 -04:00
Mike Blumenkrantz 5b9723dd88 delete notification mirror objects upon deleting original popup
fix T2722
2015-09-14 13:15:53 -04:00
Mike Blumenkrantz 80c1e367b8 19.10 NEWS updates 2015-09-11 13:11:35 -04:00
Mike Blumenkrantz 439a2c914c 19.10 release 2015-09-11 13:10:17 -04:00
Mike Blumenkrantz e7176b5104 ensure that non-fullscreen nocomp clients have their layers re-set
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
2015-09-11 13:08:18 -04:00
Mike Blumenkrantz 2f3c0c2930 set 'starting' flag for desk show in e_zone_desk_count_set()
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
2015-09-11 13:01:17 -04:00
Carsten Haitzler b79fde5de7 e comp - set rects to null to silence compiler warning
even though n is 0 and we don't use rects, compiler doesn't know, so
to avoid noise - set to null so we can focus on warnings of real errors.
2015-09-11 13:01:16 -04:00
Mike Blumenkrantz 714353be47 add extreme hacks to enforce nocomp stacking policies
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
2015-09-08 18:44:55 -04:00
Mike Blumenkrantz 2c77b0591a ensure that normal clients are stacked below overrides when raising
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
2015-09-08 17:51:21 -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 c2b9008f11 explicitly show the client object of internal window during show
fix T2690
2015-09-07 12:06:53 -04:00