Misc: --paint-exclude & #119

- 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.
This commit is contained in:
Richard Grenville
2013-06-19 19:36:48 +08:00
parent 044a5c991c
commit c02b3fadf0
6 changed files with 58 additions and 12 deletions

View File

@@ -468,6 +468,8 @@ typedef struct {
int benchmark;
/// Window to constantly repaint in benchmark mode. 0 for full-screen.
Window benchmark_wid;
/// A list of conditions of windows not to paint.
c2_lptr_t *paint_blacklist;
/// Whether to work under synchronized mode for debugging.
bool synchronize;
@@ -896,6 +898,8 @@ typedef struct _win {
bool rounded_corners;
/// Whether this window is to be painted.
bool to_paint;
/// Whether the window is painting excluded.
bool paint_excluded;
/// Whether this window is in open/close state.
bool in_openclose;
@@ -936,6 +940,7 @@ typedef struct _win {
const c2_lptr_t *cache_ivclst;
const c2_lptr_t *cache_bbblst;
const c2_lptr_t *cache_oparule;
const c2_lptr_t *cache_pblst;
// Opacity-related members
/// Current window opacity.
@@ -1720,6 +1725,17 @@ rect_is_fullscreen(session_t *ps, int x, int y, unsigned wid, unsigned hei) {
&& (x + wid) >= ps->root_width && (y + hei) >= ps->root_height);
}
/**
* Check if a window is a fullscreen window.
*
* It's not using w->border_size for performance measures.
*/
static inline bool
win_is_fullscreen(session_t *ps, const win *w) {
return rect_is_fullscreen(ps, w->a.x, w->a.y, w->widthb, w->heightb)
&& !w->bounding_shaped;
}
/**
* Determine if a window has a specific property.
*