Commit Graph

5104 Commits

Author SHA1 Message Date
Kim Woelders b27ff7ee74 Fix technical/shapewin move mode through edge flip
The technical etc. move modes using a shaped window ("avoid server grab"
mode) would create a new shape window on every edge flip, which could
only be removed by restarting e16.

Broken since 0c16916258 - v1.0.12.
2020-05-06 15:12:40 +02:00
Kim Woelders db38aae9e6 groups.c: Fold "groups" into "group_op" IPC command 2020-05-05 22:42:08 +02:00
Kim Woelders f0029d9f63 groups.c: Add group list ipc comand 2020-05-05 22:42:08 +02:00
Kim Woelders f58ca9c26a groups.c: Eliminate _EwinInGroup() 2020-05-05 22:42:08 +02:00
Kim Woelders f5324ebd5a groups.c: Simplify _GroupDelete() some more 2020-05-05 22:42:08 +02:00
Kim Woelders d511dd782c groups: Rework group configuration saving
- 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).
2020-05-05 22:42:08 +02:00
Kim Woelders b65a31e3d4 snaps: Fix snapshot group remembering when all groups are deleted
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.
2020-05-05 22:42:08 +02:00
Kim Woelders c2e9649cd5 groups.c: Fix snapshot updating 2020-05-05 22:42:08 +02:00
Kim Woelders 9c18d93735 groups.c: Add some debug 2020-05-05 22:42:08 +02:00
Kim Woelders 0df0320da6 groups.c: Fix group deletion
The loop construct did not delete all groups.

Do group destruction after loop to avoid accessing deleted
group->num_members.
2020-05-05 22:42:08 +02:00
Kim Woelders 924518956c groups.c: Add group del command 2020-05-05 22:42:08 +02:00
Kim Woelders 1399c7bf7d groups.c: Fix showing empty group 2020-05-05 22:42:08 +02:00
Kim Woelders d28388ad70 groups.c: Fix handling groups with negative id 2020-05-05 22:42:08 +02:00
Kim Woelders cc7fe7a2fb groups.c: Mostly cosmetic tweaks 2020-05-05 22:42:08 +02:00
Kim Woelders c2be7e7c14 groups.c: _GroupEwinDestroy() -> _GroupDelete()
Drop the possibility to delete all groups to which an EWin belongs.
It wasn't possible to go down that path anyway.
2020-05-05 22:42:08 +02:00
Kim Woelders d80bf8305c groups.c: Enable popping up ewin group configuration dialogs from ipc 2020-05-05 22:42:08 +02:00
Kim Woelders 3c5f33648e groups.c: Fold "group_info" into "group" IPC command 2020-05-05 22:42:08 +02:00
Kim Woelders 32f4255270 groups.c: Refactor _GroupEwinRemove() 2020-05-05 22:42:08 +02:00
Kim Woelders 4e97cbb637 groups.c: Rename functions for more consistency
Swap a couple of arguments too.
No functional changes.
2020-05-05 22:42:08 +02:00
Kim Woelders c4026c585c groups.c: Reshuffle code to avoid forward declarations 2020-05-05 22:42:08 +02:00
Kim Woelders 02001e632d groups.c: Mostly cosmetic changes around group configuration 2020-05-05 22:42:08 +02:00
Kim Woelders 5a131b00b1 groups.c: Eliminate BuildWindowGroup() 2020-05-05 22:42:08 +02:00
Kim Woelders 864009da54 groups: Eliminate EwinGetGroups()
Not particularly useful.
2020-05-05 22:42:08 +02:00
Kim Woelders 01a2163989 Add feature to build with ASAN (--enable-gcc-asan) 2020-05-05 22:42:08 +02:00
Kim Woelders 33a0c3e595 Fix obscure m4 problem
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.
2020-05-05 22:41:37 +02:00
Kim Woelders 258d174ffa Autofoo cosmetics (AC_HELP_STRING -> AS_HELP_STRING). 2020-05-05 22:41:26 +02:00
Kim Woelders be8c4faf60 Add alsa-lib sound backend 2020-05-05 10:22:36 +02:00
Kim Woelders 47d9555861 Minor cleanups in sound players
The sample pointers will never be NULL in _Play() and _Destroy() so drop
checks.

Also drop some pointless pointer clearing.
2020-05-05 10:15:44 +02:00
Kim Woelders 26e106a613 Avoid potential crash when attempting to enable sound, cosmetics
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.
2020-05-02 11:11:10 +02:00
Kim Woelders d24cdd303b GSOD: Avoid rendering artifacts when unmapped
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.
2020-05-02 09:56:04 +02:00
Kim Woelders 42447b16d3 Minor cleanups after sound by audio player feature
- Correct configure.ac help string
- Issue warning if player is not executable

Also change sound server problem warning message from GSOD to dialog.
2020-05-02 08:12:46 +02:00
Kim Woelders 9a6825fadf Introduce path_canexec0() for convenience 2020-05-02 08:11:30 +02:00
Kim Woelders 1ea08c2075 Optionally play sounds using audio player 2020-05-01 15:42:03 +02:00
Kim Woelders 0ef79b8771 Autofoo sound configuration cosmetics 2020-05-01 14:11:26 +02:00
Kim Woelders cf552ef7f9 Enable sounds in combined configuration dialog 2020-05-01 14:11:26 +02:00
Kim Woelders 8b10610095 Espawn(): Use variable argument list 2020-05-01 14:11:26 +02:00
Kim Woelders 7d7ec4add2 edox: Fix missing return value (at previously unreachable function exit) 2020-05-01 14:11:23 +02:00
Kim Woelders 893ccb4bce edox: Add a couple of forgotten casts 2020-05-01 14:11:22 +02:00
Kim Woelders a35ea61980 Spec file: Add git tag to rpm file name (if built from git checkout) 2020-03-07 17:30:56 +01:00
Kim Woelders dca85018b7 configure.ac: Drop unnecessary prefix stuff 2020-03-07 17:30:56 +01:00
Kim Woelders cee07a720a groups.c: Correct debug stuff 2020-03-07 17:30:56 +01:00
Kim Woelders 7011dc150d Hide Group struct internals 2020-03-07 17:30:56 +01:00
Kim Woelders 36b4eff7cc Fix incorrect check for __attribute__ ((unused)))
Worked with gcc which allows nested functions but not with
clang-analyzer which doesn't.
2020-02-08 09:03:35 +01:00
Kim Woelders 4fb216e825 autogen.sh: Add -n as alternative to NOCONFIGURE 2020-02-08 09:03:35 +01:00
Kim Woelders c839d0e14a src: Fix clang-analyzer complaints
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
2020-01-29 16:43:01 +01:00
Kim Woelders 910a27dd56 edox: Fix clang-analyzer complaints 2020-01-29 16:39:39 +01:00
Kim Woelders 72a86722a7 eesh: Fix clang-analyzer complaints
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.
2020-01-29 16:39:39 +01:00
Kim Woelders b6f500f3bc aclass.c: Fix valgrind complaint 2020-01-25 14:36:47 +01:00
Kim Woelders 32e9cf4535 slideouts: Fix potential crash
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.
2020-01-25 14:32:47 +01:00
Kim Woelders 031b9dd23e slideouts: Refactoring
- Split up SlideoutCalcSize().
- Move the functions to avoid forward declarations.
- Drop pointless call in SlideoutAddButton().
2020-01-25 14:32:47 +01:00