summaryrefslogtreecommitdiffstats
path: root/c2.c
Commit message (Collapse)AuthorAgeFilesLines
* Bug fix #99: Rewrite focus detection logicRichard Grenville2013-09-181-1/+1
| | | | | | | | | | | | | - Rewrite focus detection logic. Remove w->focused_real and use ps->active_win to identify focused window uniformly. Use a more expensive way to filter FocusIn/Out events to improve reliability. Only limited tests are done, and bugs are likely to be introduced. (#99) - Known issue: Under fvwm, compton sometimes does not consistently report the window input gets sent to. But there's something wrong in that case: XGetInputFocus() shows the root window is focused but another window is receiving input.
* Misc: stoppaint_force & Documentation updateRichard Grenville2013-07-301-0/+2
| | | | | | | | | | - Add stoppaint_force option, controlled via D-Bus, to stop painting completely, which may look better than unredirecting the screen, sometimes. (#41) - Add x2, y2 matching targets. - Update documentation.
* Misc: --paint-exclude & #119Richard Grenville2013-06-191-0/+8
| | | | | | | | | | | - Add --paint-exclude to prevent certain windows from being painted, for debugging purposes. - Add predefined matching target "x", "y", "width", "height", "widthb", "heightb", "border_width", and "fullscreen". - Fix bug #119, wrong man page install dir in CMake configuration. Thanks to sstewartgallus for reporting.
* Feature #113: Set opacity based on conditionsRichard Grenville2013-05-211-4/+12
| | | | | | | | | | | - Add --opacity-rule, which sets opacity based on conditions, as requested by zabbal. (#113) - Add a data field for each condition. - Correct the FAQ link in README.md. Silly me. - Code clean-up.
* Improvement: GLX: Cache region contents & --glx-no-rebind-pixmapRichard Grenville2013-04-051-1/+1
| | | | | | | | | | | | | | - Cache region contents in is_region_empty(), mostly useful only for GLX backend to save one roundtrip to X. - GLX backend: Add --glx-no-rebind-pixmap, which prevents rebinding of GLX texture to pixmap on content change. It doesn't work on some drivers, but it saves some CPU on those where it does. - Wrap XFree() with a new function cxfree() since its man page claims NULL pointers are not acceptable (although in fact it does...). - Use macro to save some code in get_cfg(). Code clean-up.
* Improvement: ARGB window matching & Enable track_focus with D-BusRichard Grenville2013-03-101-0/+1
| | | | | | | - Add predefined matching target "argb" to match ARGB windows. - Make it possible to enable focus tracking on-the-fly with D-Bus method.
* Feature #16: Advanced window matchingRichard Grenville2013-01-281-0/+1296
- 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.