According to GCC's documentation, -fpic can have compatibility
issues on some platforms. Use -fPIC instead, which generates
slightly bigger objects but is generally more likely to work.
Get rid of -DPIC, since the symbol is not used anywhere.
Using this flag will cause the linker to ignore any libraries
that have been listed on the command line but whose symbols are
not actually used.
Right now, it just gets rid of the unnecessary linking against
xcb-render (see https://bugs.debian.org/829709), but it might
catch missing dependencies in the future, and it will generally
keep the resulting binaries nice and tidy.
Ubuntu and Arch are both using --as-needed by default already,
and other distributions will probably switch at some point.
Use MAINT_CPPFLAGS only for stuff used directly by spectrwm, and
move all the stuff needed by dependencies to the newly-defined
BIN_CPPFLAGS and LIB_CPPFLAGS.
The libswmhack library uses dlopen() and friends, so it needs
to link against libdl; on the other hand, it doesn't use nearly
as many library as spectrwm itself, so linking against them is
pointless.
Split MAINT_LDLIBS into BIN_LDLIBS and LIB_LDLIBS, and use them
for spectrwm and libswmhack respectively.
Buttons are specified as Button<n> (case sensitive) where n is 1 to 255.
Example:
bind[move] = MOD+Button8
Existing pointer actions are now available for bind[]:
focus - Focus window/region under pointer.
move - Move window with pointer while binding is pressed.
resize - Resize window with pointer while binding is pressed.
resize_centered - Same as resize but keep window centered.
Defaults:
bind[focus] = ANYMOD+REPLAY+Button1
bind[move] = MOD+Button1
bind[resize] = MOD+Button3
bind[resize_centered] = MOD+Shift+Button3
Button binds can be unbound the same as key binds:
Example:
bind[] = MOD+Button1 # unbind default move binding.
Add new special bind arguments:
ANYMOD
Binds all modifier combinations not handled by another binding.
REPLAY
Allows other programs to receive press/release events for bind.
Unavailable for move, resize and resize_centered.
The following changes have been implemented:
* make sure all standard (eg. $CFLAGS) variables are taken into
account when compiling;
* define default compilation flags in separate $MAINT_* variables
so that user-defined variables can override them;
* split default flags the expected way, eg. $CPPFLAGS instead of
$CFLAGS for C preprocessor flags;
* declare all dependencies, including the ones on header files;
* install localized man pages in the corresponding locale-qualified
directories, so that man(1) can pick them up automatically;
* install .desktop file;
* support $DESTDIR for downstream maintainers' convenience;
* provide uninstall target;
* get rid of symlink hackery.
Fix hang in fullscreen layout when a window has multiple transients.
Fix focus_(prev|next) for windows with multiple transients.
Add a missing queue.h macro to Linux util.h.
On 64-bit Linux systems, if LD_PRELOAD isn't a relative/absolute
pathname to libswmhack.so, then ld.so attempts to load a 32-bit version
for 32-bit programs. This produces an error message. The solution is
to either build and install a 32-bit libswmhack.so.0.0 or use an
absolute/relative path so that ld.so only loads libswmhack.so for 64-bit
binaries.
Fix Makefiles to set variables before they are referenced.
XCB ICCCM public functions, types and macros are now prefixed.
A temporary fix has been added for OpenBSD. Needs improvement.
Resolve a variable naming conflict.
Set num_screens in unmap_all.
In workaround(), utf8_string should be netwmname, not netwmcheck.
Initialize some uninitialized pointers.
Update debug printf format to reflect new xcb variable types.
Vacuum up whitespace.
Add XCB libs to linux Makefile