- No longer just store groups that are referenced by snaps
Makes to logic somewhat simpler.
- Only and always write group configuration when changed
Previously we updated the group configuration way too often (on any
snap change).
When all groups were deleted from a window it would stop remembering
group membership.
Unfortunately this fix is not backwards compatible.
If downgrading setups where some windows have multiple groups some group
memberships will be lost.
The line
define(ec_c_compile_cpp, ifelse([$1], [cpp], [yes], [no]))
potentially caused weird problems later in configure.ac.
Using m4_define instead cured that.
So let's do define() -> m4_define() elsewhere too.
IF sound initialization fails AND then attempting to enabling sound with
"eesh set sound.enable 1" (which didn't actually enable sound), e16
could crash.
Somewhat hacky as the compositor may discard window events if the window
destroy event is received in the same batch as the map(reparent) event,
hence the delay before destroy.
arrange.c: Highly unlikely, maybe impossible situations
backgrounds.c: False positive (I think)
dialog.c: Fix memleak/segv on realloc failure
focus.c: False positive
ewin should never be NULL with FOCUS_EWIN_NEW
main.c: False positive
eoptarg will always be set if argument requires option
menus.c: Fix memleak on malloc failure
session.c: Fix dead assignment
stacking.c: False positive
Changed code is nicer though
pager.c: False positive
ewin would never be NULL if hiwin was NULL
But rearrange for clarity anyway
ecompmgr.c: Avoid bogus issues
The -e and -ewait options haven't done anything a normal
non-interactive invocation does in ages.
Just ignore them and let the malloc'ing argument handling deal with it.
For obscure reasons(?) Mode.context_win may be set to some large window.
If a slideout is then shown (if the slideout doesn't fit between the
window and the screen edge), SlideoutShow() will call itself recursively
until we crash.