Commit Graph

19297 Commits

Author SHA1 Message Date
Mike Blumenkrantz 284d3079b7 do not set client window coordinates during a move until after resizing check
fixes case where values would be erroneously updated when they should instead
have been rejected

ref T2750
2015-09-28 16:12:28 -04:00
Mike Blumenkrantz c022cc579d use more accurate math to determine whether to apply a client maximize change 2015-09-28 16:12:28 -04:00
Mike Blumenkrantz 3d8c3bb614 unset the requested maximize state when receiving a client unmaximize request
not sure why it was always removing VERTICAL here but that's a bug
2015-09-28 16:12:28 -04:00
Mike Blumenkrantz 608b38b2e7 allow client resizes on axes currently unrestricted by maximize state
if this isn't explicitly blocked by config options then allowing resizes
on the unmaximized axes is necessary in order to avoid accidentally
queuing a full unmaximize
2015-09-28 16:12:28 -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 d103edfd6b force adjustment of client geometry when changing csd frame size
fix T2750
2015-09-28 16:12:28 -04:00
Carsten Haitzler ba267da5be e - efm fix. fix eio error handler that is called after eio cancel
so you have to have an error cb - so make it empty as even after a
canel, it is called, and thus accesses an invalid icon we've freed.
2015-09-28 12:36:14 -04:00
Carsten Haitzler 2fcfb36480 efm - handle cancel of async eio if icon is freed and eio still active
@fix
2015-09-28 12:35:47 -04:00
Mike Blumenkrantz 6be7068674 set x11 broadcast atom hint array size based on array-name size
partial backport of ref 701e2d914a

fix T2744
2015-09-26 12:03:52 -04:00
Mike Blumenkrantz f65991a7ba force pixmap clear when hiding an x11 window
failure to refetch this upon remapping the window will result in
a broken pixmap which cannot be rendered
2015-09-25 23:42:38 -04:00
Mike Blumenkrantz a43efbc124 blacklist all versions of efl affected by T2745
prevent case where internal windows cannot be made visible
2015-09-25 23:06:14 -04:00
Mike Blumenkrantz d9501096bf completely remove all wayland support from build system
this is unmaintained and out of date. the protocol versions are old,
and it's extremely unlikely that any client will work and be in a
usable state given the development progress since E19 was originally
released.

use E20+ for wayland support.

fix T2746
2015-09-25 22:53:16 -04:00
Mike Blumenkrantz 89436035d6 map/unmap x11 client windows when toggling iconic state
ICCCM 4.1.4
2015-09-25 22:41:29 -04:00
Mike Blumenkrantz 254494a7df initialize pixmap size vars in comp resize interceptor
these are never uninitialized when they are used, but this
is not obvious to the reader

CID 1324956, 1324956
2015-09-25 22:41:23 -04:00
Mike Blumenkrantz bfeeae6adf fix handling of x11 ICCCM WithdrawnState
according to ICCCM 4.1.4:
Only the client can effect a transition into or out of the Withdrawn state

withdrawn windows cannot be shown under any circumstances. the best that can
be done is to try mapping the window and hope it decides to appear.

to prevent any inadvertent showing of the window before it leaves the
withdrawn state, we play games with the E_Client->ignored flag in order
to skip client evals until we get notified that maybe we want to stop
skipping those evals

ref T2745

also includes 0e3cc2f533
2015-09-25 22:40:15 -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 aa665020e6 set comp object client_inset.calc based on frame_object existence 2015-09-24 16:42:31 -04:00
Mike Blumenkrantz 351fbd1772 block border-affecting client functions for csd clients 2015-09-24 16:42:31 -04:00
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