- GLX backend: Fix a bug that ARGB windows / shadows are rendered too
dark. Thanks to derhass in FreeNode/##opengl for help.
- GLX backend: Fix a problem that during window resize the content looks
jittering, by letting compton fetch pixmap sizes with XGetGeometry()
instead of relying on window width/height, which could be inaccurate
during window resize. Negative effect on performance. Thanks to M4he
for reporting. (#7)
- Add .desktop file. Thanks to quequotion for providing it. (#97)
- Avoid checking presence of window pixmap, because they may not exist
with very old X Composite implementations.
- Add workaround for a strange window restack issue when compton
receieves a ConfigureNotify with non-existent new above window.
- Add debugging function hexdump(). Extra sanity checks on various
places.
- Add experimental OpenGL backend (--opengl). --blur-background is
currently not possible with this backend, because I'm still trying to
find a proper way to do blur with OpenGL. Flipping backend on-the-fly
is really hard, so it isn't supported right now. No configuration file
option exists to enable this, because it isn't stable enough.
- Add `opengl-swc` VSync method that uses SGI_swap_control to control
buffer swap, with OpenGL backend. (#7)
- Fix a potential read-from-freed-memory issue in paint_all().
- Correctly reattach GLX context after fork.
- Dump error text in error(). Add GLX error code handling.
- Code clean-up.
- Known issues: Region operations take a lot of time in glx_render().
I'm hesitating about what to do.
- Make Makefile compatible with BSD install, by dropping -D.
- Make CFG independent in Makefile, to allow people to specify CFLAGS
as a parameter to make.
- Correct location of .clang_complete.
- Add advanced window matching system, capable of matching against
arbitrary window properties as well as a series of internal
properties, with 4 additional operators (>, <, >=, <=) useful for
integer targets, and support of logical operators. The old matching
system is removed, but compatibility with the format is retained.
- As the new matching system is pretty complicated, and I have no past
experience in writing a parser, it's pretty possible that bugs are
present. It also has inferior performance, but I hope it doesn't
matter on modern CPUs.
- It's possible to disable matching system at compile time with NO_C2=1
now.
- Add ps->o.config_file to track which config file we have actually
read. Queryable via D-Bus.
- Parse -d in first pass in get_cfg() as c2 needs to query X to get
atoms during condition parsing.
- Fix a bug in wid_get_prop_adv() that 0 == rformat is not handled
correctly.
- Fix incompatibility with FreeBSD sed in dbus-examples/cdbus-driver.sh
.
- Add recipe to generate .clang_complete in Makefile, used by Vim
clang_complete plugin.
- Add DEBUG_C2 for debugging condition string parsing. DEBUG_WINMATCH is
still used for match debugging.
- Rename win_on_wdata_change() to win_on_factor_change().
- Extra malloc() failure checks. Add const to matching cache members in
session_t. Code clean-up. Documentation update.
- Create a session_t structure, to get rid of most global variables and
let information pass in/out mostly through parameters. Huge changes,
so bugs may very well appear. I'm worried about resource leakages, in
particular.
- Add gcc attributes on various functions.
- Add Doxygen configuration.
- Replace much Xlib Bool with C99 bool.
- Add and adjust some comments.
- Drop unused parameters from some functions.
- Cache default Visual and Depth, mainly to shorten code.
- Rename some types, variables, and functions.
- Add win_ev_stop() and set_ignore_next() for convenience.
- Modify wid_get_prop_wintype() and wid_get_opacity_prop() to use
wid_get_prop().
- Rename --respect-attr-shadow to --respect-prop-shadow.
- Fix a memory leak in --respect-prop-shadow.
- Many other small changes.
Add Asciidoc man pages. The old man page is still kept, and you need to
run "make docs" to generate the new man pages and a HTML version of it.
An Asciidoc man page for compton-trans is not added yet.
Pregenerate alpha pictures to save time when painting. Add --alpha-step
to control the step of alpha picture generation (the opacity difference
between two consecutively generated alpha pictures).
Add CMakeLists.txt to support building with CMake, as @pvanek requests.
The old Makefile system and CPackConfig.cmake are still usable. (Of
course, make sure you don't overwrite them by executing cmake.) There
must be a bunch of bugs in CMakeLists.txt. :-) Let chjj decide which one
he will choose, here I keep both.
- Let window type detection start with the client window if there's one,
in hope to enhance performance.
- Change get_wintype_prop() to fetch the property only once.
- Default to WINTYPE_UNKNOWN instead of WINTYPE_NORMAL if
_NET_WM_WINDOW_TYPE is missing.
- Fix a mistake in calc_opacity().
- Add some items to .gitignore.
- Fix a typo in usage().