d6346401 | 2012-02-27 05:22:33 | Christopher Jeffrey |
reorganize tree |
||
A compton.c A compton.h |
||
diff --git a/compton.c b/compton.c new file mode 100644 index 0000000..2b33575 --- /dev/null +++ b/compton.c @@ -0,0 +1,2604 @@ +/* + * Compton - a compositor for X11 + * + * Based on `xcompmgr` - Copyright (c) 2003, Keith Packard + * + * Copyright (c) 2011, Christopher Jeffrey + * See LICENSE for more information. + * + */ + +#include "compton.h" + +/** + * Shared + */ + +win *list; +fade *fades; +Display *dpy; +int scr; + +Window root; +Picture root_picture; +Picture root_buffer; +Picture black_picture; +Picture root_tile; +XserverRegion all_damage; +Bool clip_changed; +#if HAS_NAME_WINDOW_PIXMAP +Bool has_name_pixmap; +#endif +int root_height, root_width; + +/* errors */ +ignore *ignore_head, **ignore_tail = &ignore_head; +int xfixes_event, xfixes_error; +int damage_event, damage_error; +int composite_event, composite_error; +int render_event, render_error; +int composite_opcode; + +/* shadows */ +conv *gaussian_map; + +/* for shadow precomputation */ +int Gsize = -1; +unsigned char *shadow_corner = NULL; +unsigned char *shadow_top = NULL; + +/* for root tile */ +static const char *background_props[] = { + "_XROOTPMAP_ID", + "_XSETROOT_ID", + 0, +}; + +/* for expose events */ +XRectangle *expose_rects = 0; +int size_expose = 0; +int n_expose = 0; + +/* atoms */ +Atom extents_atom; +Atom opacity_atom; +Atom win_type_atom; +Atom win_type[NUM_WINTYPES]; +double win_type_opacity[NUM_WINTYPES]; +Bool win_type_shadow[NUM_WINTYPES]; +Bool win_type_fade[NUM_WINTYPES]; + +/** + * Macros + */ + +#define INACTIVE_OPACITY \ +(unsigned long)((double)inactive_opacity * OPAQUE) + +#define IS_NORMAL_WIN(w) \ +((w) && ((w)->window_type == WINTYPE_NORMAL \ + || (w)->window_type == WINTYPE_UTILITY)) + +#define HAS_FRAME_OPACITY(w) (frame_opacity && (w)->top_width) + +/** + * Options + */ + +int shadow_radius = 12; +int shadow_offset_x = -15; +int shadow_offset_y = -15; +double shadow_opacity = .75; + +double fade_in_step = 0.028; +double fade_out_step = 0.03; +int fade_delta = 10; +int fade_time = 0; +Bool fade_trans = False; + +Bool clear_shadow = False; + +double inactive_opacity = 0; +double frame_opacity = 0; + +Bool synchronize = False; + +/** + * Fades + */ + +static int +get_time_in_milliseconds() { + struct timeval tv; + + gettimeofday(&tv, NULL); + + return tv.tv_sec * 1000 + tv.tv_usec / 1000; +} + +static fade * +find_fade(win *w) { + fade *f; + + for (f = fades; f; f = f->next) { + if (f->w == w) return f; + } + + return 0; +} + +static void +dequeue_fade(Display *dpy, fade *f) { + fade **prev; + + for (prev = &fades; *prev; prev = &(*prev)->next) { + if (*prev == f) { + *prev = f->next; + if (f->callback) { + (*f->callback)(dpy, f->w); + } + free(f); + break; + } + } +} + +static void +cleanup_fade(Display *dpy, win *w) { + fade *f = find_fade (w); + if (f) { + dequeue_fade(dpy, f); + } +} + +static void +enqueue_fade(Display *dpy, fade *f) { + if (!fades) { + fade_time = get_time_in_milliseconds() + fade_delta; + } + f->next = fades; + fades = f; +} + +static void +set_fade(Display *dpy, win *w, double start, + double finish, double step, + void(*callback) (Display *dpy, win *w), + Bool exec_callback, Bool override) { + fade *f; + + f = find_fade(w); + if (!f) { + f = malloc(sizeof(fade)); + f->next = 0; + f->w = w; + f->cur = start; + enqueue_fade(dpy, f); + } else if (!override) { + return; + } else { + if (exec_callback && f->callback) { + (*f->callback)(dpy, f->w); + } + } + + if (finish < 0) finish = 0; + if (finish > 1) finish = 1; + f->finish = finish; + + if (f->cur < finish) { + f->step = step; + } else if (f->cur > finish) { + f->step = -step; + } + + f->callback = callback; + w->opacity = f->cur * OPAQUE; + + determine_mode(dpy, w); + + if (w->shadow) { + XRenderFreePicture(dpy, w->shadow); + w->shadow = None; + + if (w->extents != None) { + XFixesDestroyRegion(dpy, w->extents); + } + + /* rebuild the shadow */ + w->extents = win_extents(dpy, w); + } + + /* fading windows need to be drawn, mark + them as damaged. when a window maps, + if it tries to fade in but it already + at the right opacity (map/unmap/map fast) + then it will never get drawn without this + until it repaints */ + w->damaged = 1; +} + +static int +fade_timeout(void) { + int now; + int delta; + + if (!fades) return -1; + + now = get_time_in_milliseconds(); + delta = fade_time - now; + + if (delta < 0) delta = 0; + + return delta; +} + +static void +run_fades(Display *dpy) { + int now = get_time_in_milliseconds(); + fade *next = fades; + int steps; + Bool need_dequeue; + + if (fade_time - now > 0) return; + steps = 1 + (now - fade_time) / fade_delta; ** Diff limit reached (max: 250 lines) ** |
||
614a1deb | 2012-02-27 10:41:12 | Christopher Jeffrey |
minor changes |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
85de312f | 2012-02-28 01:52:41 | Christopher Jeffrey |
stop listening for property events on client window after unmap |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
02a5747f | 2012-03-17 13:01:28 | Tim van Dalen |
Fixed a (very) small 'bug' in the usage text, -f wasn't printed on a new line. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
8610fd1f | 2012-06-03 11:08:50 | Christopher Jeffrey |
refactor, rename |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
b42eee1e | 2012-06-03 12:35:33 | Christopher Jeffrey |
rename, refactor again. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
c10cd64f | 2012-09-07 11:51:08 | Christopher Jeffrey |
apply patch from richardgv. fixes #5. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
e29714d4 | 2012-09-08 21:04:44 | Christopher Jeffrey |
add richardgv's patch. see #31. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
4f11c53a | 2012-09-08 21:13:56 | Christopher Jeffrey |
avoid allocating a new win struct if possible |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
fe811d64 | 2012-09-11 08:11:06 | Richard Grenville |
Bug fix: Issue #38, fixes painting specially-shaped semi-transparent windows Fix taken from xcompmgr. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
f7bf27f8 | 2012-09-11 08:33:03 | Richard Grenville |
Bug fix: Issue #36: Chromium window painting problems More descriptions on issue #36. - Listens ShapeNotify event to get around the Chromium window painting issues. - Adds dependency on X Shape extension. - Adds a few functions for convenience, so a bit code clean up. - Better event debug support, adds restack_win() debug. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
bbf35f81 | 2012-09-11 08:57:50 | Richard Grenville |
Feature: Issue #35, Add colored shadows - Use getopt_long() instead of getopt() for argument parsing, making long options possible. - Add support of colored shadows with 3 commandline switches. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
00d29b07 | 2012-09-11 09:22:58 | Richard Grenville |
Bug fix: Issue #37, fix 5 opacity-related bugs More details in the bug report. - Rewritten much of the opacity calculation, code cleanup. - Commandline switch --inactive_opacity_override to restore the old behavior in which inactive_opacity has higher priority than _NET_WM_OPACITY. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
0c077a76 | 2012-09-11 10:11:23 | Richard Grenville |
Bug fix: Segfault when encountering invalid long option I didn't read the documentation of getopt_long() carefully. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
7ab11dfa | 2012-09-11 20:08:15 | Richard Grenville |
Debug: Enhanced debugging capability - Change all #if DEBUG_XXX directives to #ifdef, thus making it possible to directly enable debugging options with CFLAGS (-DDEBUG_XXX). - Print timestamp before event debugging messages. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
1f271c29 | 2012-09-11 21:52:52 | Richard Grenville |
Feature: Issue #2: Support dim inactive windows - Add a switch --inactive-dim that dims inactive windows. - The window dimming feature is implemented in a pretty ugly way. Improve it if possible. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
05b229f2 | 2012-09-11 22:06:16 | Richard Grenville |
Bug fix: Issue #39: Render windows just mapped && focused incorrectly More info in the issue description. This also fixes the problem for --inactive-dim. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
17b8a501 | 2012-09-11 23:14:24 | Richard Grenville |
Bug fix: Double free when XQueryTree() fails Take care of failure of XQueryTree() to prevent it from causing a double-free crash. This usually happens when X is initializing and windows are constantly changing. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
73342d1f | 2012-09-12 08:01:06 | Richard Grenville |
Bug fix: Issue #40: -z does not work as expected More information in the issue report. - Let window opacity affect the opacity of its shadow and frames even if -z is enabled. - Check for the range of -o to eliminate potential segfault. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
a447b5d3 | 2012-09-12 22:47:31 | Richard Grenville |
Improvement: Do not track focus changes unless necessary Stop tracking focus changes unless either inactive_opacity or inactive_dim is enabled, small performance boost in certain cases. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
3a0ba85d | 2012-09-13 08:38:55 | Richard Grenville |
Improvement: Use find_toplevel() to find WM frame Use find_toplevel() to find out the WM frame of a client window. I didn't noticed it beforehand. Fallback to the old method as compton does not always get correct client windows. - Clean up find_client_win() a bit. A BFS search algorithm could be more optimal yet it requires a queue implementation. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
27197e24 | 2012-09-13 09:30:18 | Richard Grenville |
Bug fix: Segfault when meeting FocusIn/Out from destoryed windows I found compton segfaults sometimes when starting from .xinitrc. Debugging reveals my conky window was just reparented to a fvwm's frame window before compton picked up a FocusOut event on this conky window that has just been destroyed in the event queue. find_win() call in ev_focus_in/out() returned a NULL pointer. When it tried to use the pointer segfault happens. - Add extra check to ev_focus_in/out() to stop the segfault. - Reset window event mask on window reparenting to a non-root window to minimize wrong events. - More abstraction for determining window event mask. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
2f63377d | 2012-09-13 09:59:50 | Christopher Jeffrey |
whitespace |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
f092885f | 2012-09-13 10:00:57 | Christopher Jeffrey |
stay consistent with code style |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
21258246 | 2012-09-13 10:24:14 | Christopher Jeffrey |
more style changes |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
62786047 | 2012-09-13 10:24:37 | Christopher Jeffrey |
fix determine_evmask warnings |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
72a11771 | 2012-09-13 10:28:27 | Christopher Jeffrey |
fix code duplication resulting from rebase |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
e370ec9b | 2012-09-13 22:51:46 | Richard Grenville |
Bug fix: Issue #43, better client window lookup More details on the issue report. - Look up the client window of a WM frame when it's mapped instead of when it's created, for better reliability. - Fix a warning when building. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
32d98071 | 2012-09-16 10:17:34 | Richard Grenville |
Misc: Clean up - Add 4 helper free functions that free XserverRegion, Damage, Picture, and Pixmap. - Rename w->shadow to w->shadow_pict. Add a bool member w->shadow to prepare for a future change. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
65e8e56c | 2012-09-16 23:41:41 | Richard Grenville |
Improvement: Change generating process of alpha_pict, etc. - Change how w->alpha_pict is generated, in hope to boost performance, slightly, and as a step to eventually move handling code of most resources used when painting to paint_preprocess(). - Remove alpha_pict parameter of shadow_picture() as it's not necessary. - Let window opacity affect frame opacity. - Rename some members of struct _win. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
e7ba091c | 2012-09-17 03:04:04 | Richard Grenville |
Improvement: Change painting sequence - Now compton paints windows from the lowest to the highest. Warning: I'm not completely certain that the change won't introduce unexpected glitches. This commit may be revoked in the future. - Remove w->border_clip since it's no longer needed. - Correct a mistake in find_toplevel2(). (clang --analyze found it out.) - Change "func_name()" prototypes to "func_name(void)". If I remember correctly, "func_name()" means you are remaining silent about this function's parameters instead of stating it has no parameter in ANSI C. - Add timestamps to error messages. - Suppress error messages caused by free_damage(). |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
be3451e0 | 2012-09-17 09:15:04 | Richard Grenville |
Improvement: Defer shadow picture generation - Defer shadow picture generation to minimize interactions with X, hoping to boost performance. - Fix a rendering issue caused by clip_changed in configure_win(). Remove clip_changed altogether. - Split generation of shadow picture from calculating its geometry. - Cache width/height including borders in struct _win as it's frequently used. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
fb18759b | 2012-09-17 22:28:09 | Richard Grenville |
Bug fix: Issue #23, notify-osd not rendered More details in the issue report. - Add ClientMessage detection to ev_name() and ev_window(), although we don't actually handle the event. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
a08c2294 | 2012-09-19 08:14:28 | Richard Grenville |
Improvement: Change fading mechanism - Change fading mechanism for better modularity. Remove fade queue and use members in struct _win to record fading data. In contrast to previous commits, this one actually could make the program slower (but very slightly, hardly noticeable if your CPU is anywhere close to AMD K7). As this commit changes lots of things, bugs are to be expected. - Currently -F does not do its job. -f actually equals -fF. (While in the past -F equals nothing and -f is just -f.) A fix will be made soon. I suppose it isn't hard. - Add a preprocessor function paint_preprocess() and move all preprocessing code in paint_all() to it. - Add window flag support but currently unused. - Add DamageNotify handling to ev_window(). - I'm considering removing HAS_NAME_WINDOW_PIXMAP = 0 support as I couldn't see what it is good for. Nor do I know what CAN_DO_USABLE does. Basically all my changes ignore these cases. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
fd0900ef | 2012-09-20 01:11:50 | Richard Grenville |
Bug fix: Detect and mark WM windows as active See chjj's comments on issue #39: https://github.com/chjj/compton/issues/39#issuecomment-8533360 - Add a switch --mark-wmwin-focused that try to detect WM windows and mark them active. - Fix a bug that causes BadDrawable, etc. if a window is mapped then immediately unmapped. - Fix a bug in determine_evmask(). - Add a debug option DEBUG_CLIENTWIN. - Force window repaint on window frame extent change. - Code cleanup. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
cbdaa9c0 | 2012-09-21 22:42:39 | Richard Grenville |
Feature: Issue #29: Alternative shadow blacklist implementation - Add shadow blacklist feature, but a different implementation from nicklan's. 5 matching modes (exact, starts-with, contains, wildcard, PCRE) and 3 matching targets (window name, window class instance, window general class). Not extensively tested, bugs to be expected. It's slower for exact matching than nicklan's as it uses linear search instead of hash table. Also, PCRE's JIT optimization may cause issues on PaX kernels. - Add dependency to libpcre. Could be made optional if we have a graceful way to handle that in Makefile. - Some matching functions are GNU extensions of glibc. So this version may have troubles running on platforms not using glibc. - Fix a bug that access freed memory blocks in set_fade_callcack() and check_fade_fin(). valgrind found it out. - Use WM_CLASS to detect client windows instead of WM_STATE. Some client windows (like notification windows) have WM_CLASS but not WM_STATE. - Mark the extents as damaged if shadow state changed in determine_shadow(). - Rewrite wid_get_name(). Code clean-up. - Two debugging options: DEBUG_WINDATA and DEBUG_WINMATCH. - As the matching system is ready, it should be rather easy to add other kinds of blacklists, like fading blacklist. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
80a4f6d0 | 2012-09-22 07:59:26 | Richard Grenville |
Improvement: Change window type detection - 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(). |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
9a839bc6 | 2012-09-22 22:49:02 | Richard Grenville |
Misc: Fix two memory leaks - Fix two small memory leaks. valgrind detects another memory leak possibly caused by XGetTextProperty(), probably a bug in libX11, I couldn't fix that one. - Use predefined atoms in Xatom.h to replace a few XInternAtom() calls. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
0c67b843 | 2012-09-24 21:32:41 | Richard Grenville |
Feature: Configuration file parsing - Add support for parsing configuration files using libconfig. (Dependency on libconfig could be made optional once we get some better building system.) Few tests has been done, bugs to be expected. compton searches for a configuration file mostly according to the XDG standard. Firstly the configuration file requested by --config, then $XDG_CONFIG_HOME/compton.conf (~/.config/compton.conf, usually), then ~/.compton.conf, then compton.conf under $XDG_DATA_DIRS (often /etc/xdg/compton.conf). A sample configuration file is supplied as compton.sample.conf. Configuration file syntax may change in the future. Commandline switches has higher priority than configuration file, except for --shadow-exclude. Use --config /dev/null to temporarily disable configuration file. - Fix a bug that causes windows to disappear or be partially rendered on opacity changes. - Fix a bug that causes some windows to ignore -i (inactive_opacity) and --inactive-dim, caused by the default window type change in a5d9955ca4. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
760188db | 2012-09-25 08:08:54 | Richard Grenville |
Feature: Wintype-specific options in configuration files - Add support of window-type-specific options (fade, shadow, and opacity) in configuration file parsing. Syntax shown in compton.sample.conf. - Replace wintype_name() with an array of window type names. Code clean-up. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
a0439e57 | 2012-09-25 20:56:02 | Christopher Jeffrey |
add global options struct. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
fdf1593a | 2012-09-26 02:38:51 | Christopher Jeffrey |
remove fade_time from options struct. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
93de3d1d | 2012-09-26 03:18:10 | Christopher Jeffrey |
initialize fade_time just to be explicit. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
60f724a3 | 2012-09-26 05:54:35 | Richard Grenville |
Misc: Code clean-up - Change some members of options_t. Clean up wrongly replaced option names in comments. Rename "options" to "opts", to avoid breaking line width too much, and to minimize typing as it's so frequently used. :-) - Let general options in commandline arguments override wintype-specific options in a configuration file, which could be a more natural behavior. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
10ede899 | 2012-09-26 06:48:36 | Richard Grenville |
Bug fix: Issue #46: Optionally mark override-redirect windows as active Attempt to fix the transparency issue of Firefox and Chromium location bar dropdown window by marking override_redirect windows as active. This may not work completely and could have other side effects. Experimental. Enable by using --mark-ovredir-focused. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
280bc0fc | 2012-09-26 08:47:32 | Richard Grenville |
Feature: --no-fading-openclose to partially simulate -F -F hasn't being working for long. This commit adds a switch --no-fading-openclose (and a configuration file option of the same name) to simulate the behavior when only -F is enabled, which disables fading when opening/closing windows, and makes -F an alias for -f. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
4deb30a9 | 2012-09-27 09:30:16 | Richard Grenville |
Bug fix: Issue #47: Locale cause problems with float arguments A locale using comma instead of dot in floating point values causes unexpected behavior when parsing floating point commandline arguments. This commits enforces LC_NUMERIC="C" during commandline argument parsing. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
debc0035 | 2012-09-27 20:19:53 | Richard Grenville |
Bug fix: #48: Compilation failure with old libconfig/libpcre - Fix compilation failure with <libpcre-8.20 and <libconfig-1.4. Tested with libpcre-8.12 and libconfig-1.3.2, but not extensively tested. libconfig-1.3* probably has more limitations on configuration file syntax (enforces comma at the end of a setting?) and does not support @include. - Make it possible to turn off PCRE and libconfig support using environment variable "CFG". Not well tested. CMake might provide a better solution. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
2d6f88e2 | 2012-09-28 12:22:25 | Christopher Jeffrey |
Merge commit '69513d6' Conflicts: src/compton.c src/compton.h |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
83f64a22 | 2012-09-29 00:21:39 | Richard Grenville |
Improvement: Split shadow_pict to shadow_pict & shadow_alpha_pict Split w->shadow_pict to w->shadow_pict and w->shadow_alpha_pict, so that the whole w->shadow_pict need not to be rebuild on shadow opacity change. This greatly reduces CPU usage of compton when a window with shadow is fading. (My test shows the CPU usage of compton process dropped from 1.15% to 0.35% when constantly fading in and out a window.) It uses a rather painful and slow method in shadow_picture() to get around the limitation of PictStandardA8 to make colored shadows work. I wonder if there's a better approach. - Merge variables gsize and cgsize as they seemingly represent the same thing. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
ec29300e | 2012-09-29 09:53:57 | Richard Grenville |
Improvement: Wait infinitely for events when idling Wait infinitely for events when idling, instead of always calling paint_preprocess(), to reduce CPU usage in the case. Thanks to valr for help. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
17cf40e5 | 2012-09-30 21:41:51 | Richard Grenville |
Feature: #27: Detect shaped windows and disable shadow on them - Optionally detect shaped windows using X Shape extension and disable shadow on them with --shadow-ignore-shaped. - Some windows are bounding-shaped just to support rounded corners, like Chromium windows (when system titlebar is disabled in its settings). Add --detect-rounded-corners to treat them as non-shaped windows (thus enable shadow on them). The algorithm I use is not perfect and wrong detection results are pretty possible to appear. - Many windows don't use X Shape extensions to add shapes but use ARGB background instead. These windows could only be blacklisted with --shadow-blacklist. - Rename a few functions. Code clean up. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
44d94284 | 2012-09-30 22:57:46 | Christopher Jeffrey |
Merge branch 'richardgv-dev' |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
11e27d35 | 2012-10-02 08:46:37 | Richard Grenville |
Improvement: Change in client window lookup & wintype detection - Revert to WM_STATE for client window lookup, as WM_CLASS is unreliable, either, but set the client window of an override-redirect window to itself. - Conform to EWMH to make assumptions about window types when _NET_WM_WINDOW_TYPE is not available. - Remove determine_wintype() and completely rely on client window for window type detection. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
3ef93767 | 2012-10-03 08:21:43 | Richard Grenville |
Improvement: Support reading _NET_WM_OPACITY from client windows - Some WMs don't respect Keith Packard's proposal of _NET_WM_WINDOW_OPACITY, and do not copy _NET_WM_OPACITY attribute of a client window to its frame windows, thus cause opacity set by non-override-redirect windows to have no effect. This commit adds support for reading _NET_WM_OPACITY from client windows if running with --detect-client-opacity. Thanks to pvanek for reporting. - Change Makefile logic to determine options from 3 variables (NO_LIBCONFIG, NO_REGEX_PCRE, NO_REGEX_PCRE_JIT) instead of CFG to ensure compatibility when we add new options. CFG variable is no longer been respected. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
ae5771e1 | 2012-10-07 21:36:28 | Richard Grenville |
Feature: #7: VSync - Add VSync feature. 3 possible VSync methods available: "sw" (software, not too reliable, but at least you have something to fallback to), "drm" (using DRM_IOCTL_WAIT_VBLANK, should work only on DRI drivers), "opengl" (using SGI_swap_control extension OpenGL, might work on more drivers than the DRM method). "sw" and "opengl" are briefly tested, "drm" received utterly no test (because I use the nVidia binary blob). They are enabled with "--vsync sw" / "--vsync drm" / "--vsync opengl". - Add --refresh-rate to let user specify a refresh rate for software VSync, in case the automatic refresh rate detection does not work well. - Seemingly the automatic refresh rate detection using X RandR in software VSync detects refresh rate incorrectly. Need further investigation. - Fix a few bugs in fading timing. - Add a workaround for client window detection on Fluxbox, as Fluxbox (incorrectly?) sets the override-redirect flag upon all frame windows. - Software VSync adds dependency on librt (a part of glibc) for nanosecond-level timing functions, and libXrandr for automatic refresh rate detection; DRM VSync adds dependency on libdrm to use its drm.h, but does not link to libdrm; OpenGL VSync adds dependency on libGL. - Print timing information on DEBUG_REPAINT. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
5d3425b5 | 2012-10-10 08:17:48 | Richard Grenville |
Misc: Code clean-up - Fix a memory leak in register_cm(). - Print a warning message if argument of --vsync is invalid. - Known bug: compton will probably freeze X if another compositing window manager is running and --vsync opengl is enabled, with nvidia-drivers-304.51. Probably an issue on the driver. I could see no workaround. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
2b120a74 | 2012-10-13 06:11:25 | Richard Grenville |
Improvement: Pregenerate alpha pictures 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). |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
3c1e0038 | 2012-10-21 07:49:34 | Richard Grenville |
Improvement: Stop painting on regions of higher windows Sort of reverts cdf7db750d, but implements in a different way. (Well, maybe the pre-cdf7db750d way is actually better, if I'm willing to sacrifice some precious code reusability.) Basically, trading CPU for GPU, in an attempt to solve farseerfc and ichi-no-eda's problems. Highly experimental, could be revoked at any moment. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
62a6c295 | 2012-10-21 08:21:38 | Richard Grenville |
Bug fix #55: Workaround for window type detection on Openbox menus A small workaround for a small problem. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
2105bc89 | 2012-10-21 19:16:52 | Richard Grenville |
Misc: Drop support for old versions of libXcomposite Basically dropping support for HAS_NAME_PIXMAP = 0 because I don't think there are many people using it, and I cannot maintain it. CAN_DO_USABLE support is under evaluation. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
450fc874 | 2012-10-22 03:04:19 | Christopher Jeffrey |
v0.0.1 |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
10d4c2d2 | 2012-10-22 06:35:02 | Christopher Jeffrey |
revert to c7ca345 |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
09f57a7d | 2012-10-22 08:20:43 | Christopher Jeffrey |
fix man page and various other documentation. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
590440ac | 2012-10-22 12:02:08 | Christopher Jeffrey |
more man page changes |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
71613f20 | 2012-10-23 00:42:20 | Richard Grenville |
Improvement #7: Add double buffering Add double buffering with X DBE extension in hope to get rid of the tearing issue. Thanks to cairo-compmgr for providing hints. Could be enabled with --dbe. Only very limited tests have been done, I don't know if it actually solves the tearing issue. My estimation is it is harmful for performance, but I found no clear evidence. Experimental, so no configuration file option is available for it. MONITOR_REPAINT is broken if --dbe is turned on, this is intended for testing whether DBE is actually working. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
c1471ff1 | 2012-10-23 21:23:26 | Richard Grenville |
Improvement: Add painting on overlay support - Add support for painting on X Composite overlay window instead of root window (--paint-on-overlay). I intended to use this to fix the conflict between conky (own-window off) and compton, but it's unsuccessful. Will have to ask somebody to figure out how to solve this problem. - Rename a few variables to avoid confusion. - Slightly change how root window content (wallpaper) change is detected. - Slightly improve window name detection in DEBUG_EVENTS. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
399df7ae | 2012-10-25 22:28:38 | Richard Grenville |
Bug fix #7: Correct a possible issue in VSync - I realized I might have fundamentally misunderstood VSync. This commit tries to fix the possible problem, or at least move the tearing line close to the top of the screen. - Software VSync is replaced by --sw-opti (software optimization), as I guess it isn't possible at all to do VSync without driver support. - Add "vsync" and "sw-opti" as configuration file options. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
00ce7d0d | 2012-10-27 08:52:26 | Richard Grenville |
Bug fix #57: Fix incorrect handling of InputOnly windows - Stop rendering InputOnly windows. In the past I've misunderstood the whole thing, I guess, sorry. Thanks to garfilth and funeral1988 for reporting and providing valuable information. - Fix a possible segfault in DDEBUG_EVENTS. - Add "dbe" as a configuration file option. - Attempt to slightly reduce the rendering delay after VSync in non-DBE mode. I don't think, however, that this would be greatly helpful for the tearing issue. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
b0432108 | 2012-10-28 04:02:07 | Richard Grenville |
Improvement: Change clear_shadow implementation - Implement clear_shadow with painting region limitation instead of calculation in shadow image, to make it work correctly on windows with rounded corners, requested by funeral1988. This might cause more load on CPU, but could mean less load for GPU. The original implementation is kept but commented out. - Code cleanup. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
ddc6da3b | 2012-10-28 20:58:16 | Richard Grenville |
Merge branch 'master' into richardgv-dev Merged the documentation changes. Program code unchanged. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
6bcc871e | 2012-10-29 09:00:11 | Richard Grenville |
Bug fix: Fading blocks in rare circumstances - In very rare circumstances, poll() to the X connection returns 1 but no events are read out, causing XNextEvent() in the main loop to wait infinitely until another event comes, typically affecting fading process only, causing fading to appear somehow stopped. This commit adds a (possible) fix. - Listen to Expose events of the X Composite overlay window if we are painting to it, to avoid making some parts of the screen blank when switching out of X screen in --paint-on-overlay mode. - Drop "fade_fin" member of struct _win, because it's pretty useless. - Drop unused "root" parameter of expose_root(), move get_time_ms() to compton.h, etc. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
4a607cea | 2012-10-30 05:37:49 | Richard Grenville |
Misc: Small adjustments - Minor change of code in configure_win() for a slight performance boost in some cases. - Discovered there are a lot of X errors that I basically cannot fix, caused by the asynchronous nature of Xlib... - Correct the position of the timestamps in DEBUG_REPAINT. This might have negative effects for debugging X errors, though. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
47f54a1c | 2012-10-30 21:08:48 | Richard Grenville |
Improvement: Try to reduce reg_ignore regenerations - Try to reduce regenerations of reg_ignore. Highly experimental and could lead to very obscure bugs. More testing needed. - Introduce to_paint in struct _win to keep track of whether this window was painted last time. - Drop CAN_DO_USABLE support. Its usage looks pretty limited. - Fix a bug that possibly causes rendering issues on frame width changes if frame_opacity is enabled. - Detect other borders (instead of only top border) when determining frame opacity. - Change the type of w->mode from int to an enumeration type. - Ignore ShapeNotify if the window is not mapped, to avoid loss of w->border_size in some cases, which breaks the fading out process of shaped windows. - Stop rendering a window if its picture is lost and it's unmapped, to avoid a series of X errors and possible rendering problems. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
987c43bb | 2012-10-31 22:44:38 | Richard Grenville |
Improvement: border_size & ConfigureNotify & VSync changes - Run XSync() before the final paint to catch VBlank better. Stolen from Xfwm4 VSync patch. - Add --vsync-aggressive that sends out the final painting request earlier, simulating xfwm4 VSync patch. But this thing does have the possibility of breaking VSync, I think... - Change handling of ConfigureNotify to avoid freeing w->extents and w->border_size if possible. - Change logic in paint_prepreprocess() to use win_get_region() for border_size generation instead of border_size() if the window is not shaped to try to avoid some BadRegion error messages when a window loses its border_size then is unmapped, about which Adys complained in #25. - Detect if w->border_size is None before using it in various places. Practically the effect is pretty limited because XFixesCreateRegionFromWindow() usually returns an invalid X ID instead of None on error. - Fix a bug that rounded corner detection could fail if the window size is changed by a ConfigureNotify immediately. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
d3e75057 | 2012-11-01 06:12:55 | Richard Grenville |
Bug fix #17: Try to fix artifacts after animating/shading shaped wins in Openbox - Correct design mistakes in win_get_region_noframe(). I must be sleepwalking when I wrote that thing! - Intersect border_size with window region rectangle because Openbox is offering wrong window shapes larger than the window rectangle for shaped windows. Shame on you, Openbox. - Change logic in reg_ignore calculation as border_size is now intersected with window rectangle and we don't need to do this here again. - Rewrite window painting with frame opacity part in win_paint_win() to deal with absurd frame widths WM offers. Again, Openbox, this is your fault. - As I'm in a pretty bad state (continuously working on compton for 10+ hours without rest...), all these changes are not well tested, and bugs are to be expected. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
b7aee48c | 2012-11-02 16:51:40 | Richard Grenville |
Misc: Code cleanup & debug code changes - Merge @daBrado's focus event debugging code. Thanks! - Use macro to reduce code redundancy in various functions. - Move focus event validation from ev_focus_out() to a separate function. - Add logic in ev_handle() to increase the chance of successful window name detection if compton is not reading window names normally (i.e. if there's no --shadow-exclude), when DEBUG_EVENTS is on. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
1dd73826 | 2012-11-02 21:38:29 | Richard Grenville |
Bug fix: A XserverRegion leak - Fix a XserverRegion leak introduced in b78ab316fd. I hope this is the reason of the slowdowns many users reported. Thanks to xrestop! - Cache the screen region as a variable. - Add debugging code for region allocation. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
53aeb801 | 2012-11-03 09:15:51 | Richard Grenville |
Improvement: Focus detection & --mark-ovredir-focused changes - Change focus detection to filter FocusIn/Out events in an alternative way. Could break things, and may be revoked in the future. - Change --mark-ovredir-focused's semantics. Now it determines whether a window is to be unconditionally focused by checking if its client window is the window itself. This resolves a problem in window managers that set frame windows to be override-redirected (Fluxbox and i3?). Yes, I know it's bad to change semantics in this way. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
86103c5c | 2012-11-04 04:45:39 | Richard Grenville |
Improvement: Add EWMH _NET_WM_ACTIVE_WINDOW support - Add support for using _NET_WM_ACTIVE_WINDOW to track focus (rather than using FocusIn/Out events) as --use-ewmh-active-win. - Add wid_get_attr() and use it in place of XGetWindowProperty() in various places. - Remove dpy parameter from find_win() and find_toplevel() as it's unused. - Fix a writing-to-freed-memory issue in paint_preprocess(). |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
fe5537df | 2012-11-04 05:44:14 | Richard Grenville |
Bug fix #61: Silence a warning - Silence a FORTIFY_SOURCE warning. Thanks to @smlx for reporting. - Add -O2 -D_FORTIFY_SOURCE=2 to default CFLAGS in Makefile. - Use a cleaner way to resolve the writing-to-freed-memory issue mentioned in last commit. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
798c631e | 2012-11-05 21:37:29 | Richard Grenville |
Bug fix: Window rendered incorrectly if has no border with -e - Fix a bug that window content and some borders are not rendered if the window has no border on particular sides when -e (frame-opacity) is enabled, introduced in 66d3f30978. Just as what I said in the commit message of the commit, "bugs are to be expected". :-S - Fix a potential segfault in win_match(). - Slightly update CPackConfig.cmake to add dependency to libdrm. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
baed7f4b | 2012-11-08 05:45:39 | Richard Grenville |
Bug fix: Shape update of opaque windows not handled correctly - Fix a bug that causes rendering issues if a opaque window changes shape. - Remove abundant handling code in paint_preprocess() when generating border_size as border_size() is no longer relying on XFixesCreateRegionFromWindow() right now by default. - Add extra code to print backtrace in DEBUG_ALLOC_REG. - Move initialization of fade_time closer to first paint. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
295bbf30 | 2012-11-08 21:41:21 | Richard Grenville |
Feature #16: _COMPTON_SHADOW window property support - Add support for reading _COMPTON_SHADOW property from windows (--respect-attr-shadow). Presently the only defined behavior is, if _COMPTON_SHADOW is set on the highest ancestor below root window of a window (usually the WM frame), it's format is 32-bit, type is CADINAL, value is 0, the window will not get a shadow. The format and behavior could change in the future without prior notification. - Fix an issue in fork_after() that may cause some streams to remain open. My mistake. - Attempt to reduce determine_shadow() calls from map_win() by separating some raw handler functions out. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
bbe376ad | 2012-11-09 08:16:41 | Richard Grenville |
Feature: Unredirect windows when there's a fullscreen window - Optionally unredirect windows when there's a fullscreen opaque window on the top of the stack (--unredir-if-possible). Experimental. Known issues: * Screen flickers when redirecting/unredirecting windows. --paint-on-overlay seemingly minimizes it (Thanks for hints from mutter), but still noticeable. * It probably does not play well with vdpau in some cases. - A debug option DEBUG_REDIR is added. - Fix a bug that reg_ignore are not expired when a CirculateNotify is received. - Add extra safe guards in some places, which could be bad for performance. - Remove some abundant code. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
473cb1f4 | 2012-11-09 21:41:01 | Richard Grenville |
Bug fix: Client window event mask not restored in map_win() - Fix a bug that client window event masks are not restored in map_win(), causing further property changes to be ignored, for example. - Misc changes. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
e6f24419 | 2012-11-14 07:34:51 | Richard Grenville |
Misc: Code cleanup - Form a function ev_window_name() for all window name detection in debugging code. - Add unredir-if-possible to configuration file options. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
de41eb8a | 2012-11-18 21:44:58 | Richard Grenville |
Feature #51: Re-initialize when SIGUSR1 is received - 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. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
f126bf72 | 2012-11-20 19:15:49 | Richard Grenville |
Bug fix: Wrong file path being displayed on config file parsing error - Fix a bug that causes wrong file path being displayed on configuration file parsing error. - Continue dropping unused parameters and silence clang warnings. - Add conky shadow exclusion rule to compton.sample.conf. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
72225285 | 2012-11-26 18:41:55 | Richard Grenville |
Bug fix: --use-ewmh-active-win causes wrong focus state in Awesome - Fix a bug that causes wrong focus detection result in Awesome and maybe other window managers, when --use-ewmh-active-win is enabled and _NET_ACTIVE_WINDOW changes before the newly-focused window is mapped. - Fix a typo that causes more than one window to stay focused after a window destruction with --use-ewmh-active-win. - Fix a bug that find_clientwin() incorrectly returns a window when window ID 0 is passed to it. - Check for window ID 0 in update_ewmh_active_win(). |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
c3c0b95c | 2012-11-27 22:07:58 | Richard Grenville |
Feature #65: --focus-exclude - Add --focus-exclude, which should be used with a list of conditions to set certain windows to always be considered focused. - Change focus determination process, with a newly added w->focused_real that reflects whether the window is actually focused, while w->focused represents whether compton considers it focused. The primary difference is now when a window considered focused because of --mark-wmwin-focused or --mark-ovredir-focused receives a FocusOut event, it's still considered focused by compton. - Change opacity target and dim state calculation so that it's done at most once every paint. - Split window opacity property fetching from calc_opacity() to a new function win_update_opacity_prop(). - Silence a warning in wid_get_prop_wintype(). - Rename a few functions. Code clean-up. - My time is very limited currently, few tests are done, so this commit may very well introduce bugs. - Known issue: Dim picture opacity does not change based on window opacity, causing somehow annoying effects when a window fades off. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
1a1df745 | 2012-12-05 01:28:37 | Richard Grenville |
Bug fix: Dynamic inactive dim & client window changes - Make inactive_dim opacity change according to window opacity by default, so it looks better when fading. --inactive-dim-fixed restores the old behavior. - Make client window default to the window itself. Add w->wmwin to represent whether the window looks like a WM window instead. A side effect is, the window type of WM windows are changed from unknown to normal, making it necessary to use --mark-wmwin-active to avoid considering them unfocused. - Add check of PointerRoot to recheck_focus() to avoid BadWindow errors when the root window is focused. - Add a few macros to simplify debugging code. - Add DEBUG_FRAME. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
a7c05d20 | 2012-12-05 04:23:35 | Richard Grenville |
Feature: WM_WINDOW_ROLE matching - Add support of matching WM_WINDOW_ROLE value. Thanks to Vladimir A. Pavlov! - Thanks to Vladimir A. Pavlov for reporting the issues caused by missing client window, fixed in the last commit! - Fix a memory leak in wid_get_text_prop() and wid_get_name(). Xlib documentation did not mention how to free the value XGetTextProperty() returns, so my fix could lead to troubles. - Set focus out in unmap_win(), and add w->leader, to prepare for subsidiary window detection. - Abstract update of a single string window property to win_get_prop_str(). - Change wid_get_name() to rely on wid_get_text_prop() as much as possible. - Correct a typo in win_get_prop_str() that could cause unnecessary update of shadow state and window focus. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
bfbf991a | 2012-12-07 09:06:15 | Richard Grenville |
Bug fix #68: Possible fix for failure in client window detection - Note I'm not in the best state today (bad cold & sleep-deprived). This commit is likely to introduce bugs. - Attempt to fix client window detection failures happening when compton searches for client window before it's ready. - Fix build failure with <libpcre-8.20. Thanks to @pvanek for reporting in #51. - Move client window detection to a new function win_recheck_client(). - Add win_unmark_client(), which unmarks a client window. - Rename a few functions. - Split fetching of values of type-Window properties to a new function wid_get_prop_window(). - Add extra safety checks and assert calls to various functions, to expose potential bugs. - Fix a memory leak that w->role is not freed on window destruction. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
94f292b9 | 2012-12-07 21:10:08 | Richard Grenville |
Bug fix #68: Second attempt to fix client window detection - Attempt to fix client window detection when WM_STATE property is not yet set when the window is mapped. Thanks to kinclma1 for reporting. - Apply stricter checks for whether window is mapped in determine_evmask() and win_mark_client(). |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
8d4a3f89 | 2012-12-09 20:38:28 | Richard Grenville |
Feature: Wintype-based focus exclusion - Add "focus" to the wintypes settings in compton.conf, to mark windows of certain window types to be always focused. Replaces the ugly is_normal_win(). - Add a ON/OFF/UNSET switch_t type, but it's unused currently. - Mark client_win if the window client detection hasn't been performed when we detect WM_STATE's presence in ev_property_notify(), for performance. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
7b86cd79 | 2012-12-11 22:01:51 | Richard Grenville |
Feature #65: Auxiliary window detection - Add auxiliary window detection (--detect-transient & --detect-client-leader). Thanks to SmilingHorse for inspiring me. The implementation is not too speed-efficient, and bugs are to be expected. - Known issue: auxiliary window detection may not work too well with windows that are never mapped, for example as client leader. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
844a51b4 | 2012-12-11 22:47:17 | Richard Grenville |
Misc: Code cleanup - Move some long functions to ./src/compton.c . - Fix a small potential issue in win_set_focused() when a window with neither leader nor client window is focused. - Add DEBUG_LEADER. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
64a9b80f | 2012-12-14 06:32:46 | Richard Grenville |
Feature #69: Blur window background - Add window background blur support (--blur-background & --blur-background-frame), with X Render convolution filter. The performance sucks. The performance when the window is opaque but frame is transparent could be improved, but there are two possible ways and I'm hesitating. - Known issue: The blurring effect looks very ungraceful during fading. I could partially fix the problem, but it probably isn't easy to fix it completely. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
f4edcb2e | 2012-12-15 06:07:45 | Richard Grenville |
Improvement: Dynamic blur strength & improved frame blur performance - Remove the region expansion design in win_blur_background(). I must be sleep-walking when I wrote that! - Improve performance of blurring when a window is opaque but its frame is transparent. - Adjust blur strength according to window opacity. --blur-background-fixed restores the old behavior. - Add "use_offset" parameter to a few functions for convenience. Code clean-up. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
03ffecb4 | 2013-01-07 20:19:19 | Richard Grenville |
Improvement #74: Use libevent for main loop - Use libevent for main loop. I will explain the reasons in #56 later. The preferred libevent version is 2.x, yet 1.4.x should work as well. - As a result, compton now should build fine on *BSD. Thanks to DachiChang for the FreeBSD build issue report. - Another consequence is we now use microsecond-level timing all the way. Nanosecond-level code will be dropped soon. Start using long instead of unsigned long to represent time in milliseconds, as both can't hold the full epoch time in ms, anyway, and a signed type requires less care in subtraction. Wrap the epoch time in ms to 15 days. - Fix broken NO_VSYNC_DRM and NO_VSYNC_OPENGL compile-time options. - Use git revision number for versioning in Makefile, and other small improvements. - Reorganize struct _win. Drop unused w->damaged_sequence. w->damaged is turned to bool. - Add type and format to winprop_t, as preparation for the new condition format. - Add w->shadow_force and w->focus_force, to prepare for D-Bus support. - Rename wid_get_prop() to wid_get_prop_adv() with more options. Add wrapper function wid_get_prop(). - Add some extra helper functions, for D-Bus support later. - Make some functions return a bool value to indicate if it's successful. - Modify add_win(), use a static const structure to initialize the new struct _win. - Add some helper macros, like printf_err(f)(q). Make some errors fatal. - Rename some types, constants, and functions. Code clean-up. - Check for time disorder in paint_preprocess() when calculating fading steps. - Rename evpoll() to swopti_handle_timeout(), and partially rewrite it. - Make -h / --help legal. - Known issue: compton segfaults on FreeBSD with nvidia-drivers, unless NO_VSYNC_OPENGL is used. Will look into it later. Thamls to DachiChang for reporting. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
6e74af14 | 2013-01-09 06:41:18 | Richard Grenville |
Bug fix #77 incorrect border_width handling & #73 window data issue - (Hopefully) fix all incorrect handling of w->a.border_width in compton (#77). Thanks to baskerville for reporting. - Attempt to fix #73 by correcting a mistake that window data is fetched from the wrong function. Thanks to zakkak. - Add git commit/tag detection to Makefile for automatic versioning. - Change -lGL linking order, to fix a segmentation fault caused by something in nvidia-drivers under FreeBSD, mentioned in #74. Thanks for the report from DachiChang. - Link to -levent_core instead of -levent in Makefile. We might move to libev soon, though. - Increase SWOPTI_TOLERANCE to handle the extraordinary delay of kqueue() under FreeBSD. Thanks for DachiChang's report. - Add helper function dump_drawable() for debugging. - Replace XInternAtom() calls with get_atom(). - Remove -lrt as it's unneeded. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
5871e8f4 | 2013-01-11 07:31:02 | Richard Grenville |
Improvement: Use select() for main loop - Back to using select() for main loop. Thus we are not longer relying on libevent. - Add generic timeout system (untested) to prepare for D-Bus support. - Drop troff man pages. Revise Makefile to improve documentation building, fix double LDFLAGS inclusion, and re-add -lrt. This turns asciidoc into a build time dependency. - Change fading time calculation. - Add --logpath and ostream_reopen() for debugging with -b. - Drop unused lceil_ntimes() and other helper functions. - Only very limited tests are done. Bugs to be expected. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
f0521b2d | 2013-01-12 08:44:46 | Richard Grenville |
Feature #75: Invert window color - Add window color inversion (--invert-color-include). It means 2-3 times extra painting, so performance issues are likely to appear. I hope I could find a faster way to invert colors. - Rename some functions. - Fix update of some window properties after window type/data change. Hopefully this will be helpful for #73. - Split win_build_picture() from win_blur_background(). - Correct memory leak of ps->focus_blacklist during reinitialization. - Add win_upd_t and win_upd_run(), to reduce duplicate window property updates. But is unused right now. - Limited tests are done overall. Bugs to be expected. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
a5dc8299 | 2013-01-12 23:44:05 | Richard Grenville |
Bug fix #75: --invert-color-include not working & others - Fix a small bug that breaks --invert-color-include if no other blacklists are present. Thanks to MaskRay and xiaq for reporting. - Disable --unredir-if-possible for multi-screen setups. - Fix a bug that causes --no-fading-openclose to have no effect in some cases. Add w->in_openclose to keep track of window open/close state. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
32132312 | 2013-01-19 06:20:27 | Richard Grenville |
Feature #80: D-Bus support - Add D-Bus support. Currently 7 methods are available: "reset" (same as SIGUSR1), "list_win" (list the windows compton manages), "win_get" (get a property of the window), "win_set" (set a property of the window), "find_win" (find window based on client window / focus), "opts_get" (get the value of a compton option), and "opts_set" (set the value of a compton option), together with 4 signals: "win_added", "win_destroyed", "win_mapped", "win_unmapped". - D-Bus support depends on libdbus. - As there are many items and my time is tight, no much tests are done. Bugs to be expected. - Create a new header file `common.h` that contains shared content. - Fix some bugs in timeout handling. - Update file headers in all source files. - Re-enable --unredir-if-possible on multi-screen set-ups, as the user could turn if off manually anyway. - Check if the window is mapped in `repair_win()`. - Add ps->track_atom_lst and its handlers, to prepare for the new condition format. - Known issue 1: "win_get", "win_set", "opts_get", "opts_set" support a very limited number of targets only. New ones will be added gradually. - Known issue 2: Accidental drop of D-Bus connection is not handled. - Known issue 3: Introspection does not reveal all available methods, because some methods have unpredictable prototypes. Still hesitating about what to do... - Known issue 4: Error handling is not finished yet. Compton does not always reply with the correct error message (but it does print out the correct error message, usually). |
||
A common.h A dbus.c A dbus.h M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
56a35506 | 2013-01-23 23:38:03 | Richard Grenville |
Bug fix #84: Root window not repainted sometimes on wallpaper change - Fix a bug that root window is not repainted on wallpaper change unless an Expose X event is received. Seemingly, if there's no mapped window on a screen, X will not send an Expose event when the wallpaper changes. Thanks to baskerville for reporting. - Fix a X Pixmap leak when there's no existing wallpaper pixmap found. - Fix a bug in mstrncpy() that null character is not added to the end of the copied string. - Make VSYNC_STRS public, for use in src/dbus.c. Adjust the type of WINTYPES array. Add NUM_VSYNC. - Add more targets for various D-Bus methods. Add "bad_target" D-Bus error. Improve error handling. Add more helper functions to append arguments to a D-Bus message. Add Introspect method to D-Bus introspection reply. - Add public declarations of things in the new condition format code to common.h. Move definitions of some inline functions from compton.h to common.h. Make some functions public. Move wid_get_prop_adv() to compton.c. The primary code files of the new format src/c2.{c,h} will be published when ready. - Add support for dumping version string in Makefile (make version), to make snapshot generation easier. - Add repeated inclusion protection to common.h. - Update documentation. - Use gsed instead of sed in dbus-examples/cdbus-driver.sh if possible, as some BSD systems does not come with GNU sed by default. Thanks to DaChiChang for reporting. - Code clean-up. Small type changes in register_cm() to silence warnings. Quit on failure in parse_vsync(). Apply stricter checks in force_repaint(). |
||
M common.h M compton.c M compton.h M dbus.c M dbus.h |
||
** Diff limit reached (max: 250 lines) ** |
||
679bfe3c | 2013-01-28 07:39:38 | Richard Grenville |
Feature #16: Advanced window matching - 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. |
||
A c2.c A c2.h M common.h M compton.c M compton.h M dbus.c |
||
** Diff limit reached (max: 250 lines) ** |
||
370fc459 | 2013-01-28 10:08:34 | hasufell |
hide disabled features from help output |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
7c662117 | 2013-01-28 17:58:40 | Richard Grenville |
Merge branch 'master' into richardgv-dev Conflicts: src/compton.c |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
e5264dd4 | 2013-01-28 19:57:04 | Richard Grenville |
Improvement: Improve color inversion performance & Validate pixmap - Try to improve the performance of color inversion by applying clipping region during color inversion. (#75) - Validate pixmap on window unmap/destruction. Probably slightly helpful for #52. - Change the design of unmap_win() and destroy_win(), a bit. - Add warning message to help messages about features disabled at compile time, instead of dropping their description completely. (#85) - Silence some warnings. Code clean-up. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
64639014 | 2013-01-29 23:41:08 | Richard Grenville |
Improvement #7: Add GLX_OML_sync_control VSync support - Add "vsync-oml" VSync method, using GLX_OML_sync_control. Untested, because it's not supported by my driver. - Unredirect ps->reg_win, because DRI wiki says it's related to the behavior of OpenGL VSync extensions. - Add glFlush() and glXWaitX() calls, in hope they are slightly helpful for VSync. - Change a few functions to make error handling more graceful. Make some errors fatal. Code clean-up. - Add unused function make_text_prop(). |
||
M common.h M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
d1fb8649 | 2013-01-31 08:56:54 | Richard Grenville |
Improvement: Change VSync mode with D-Bus & Makefile update & Misc - Add on-the-fly VSync option modification via D-Bus, as requested by kunitoki (#80). Expose parse_vsync(), create vsync_init() and ensure_glx_context(). - Change default value of ps->drm_fd to -1. - Update Makefile. Change the install/uninstall rules and add doc installation, requested by hasufell in #85. - Mark window not damaged in map_win(). It helps in reducing flickering with inverted window color, but I'm not completely sure if it's safe. - Avoid modifying w->invert_color when window is unmapped. - Update documentation. Thanks to hasufell for pointing out. |
||
M common.h M compton.c M compton.h M dbus.c M dbus.h |
||
** Diff limit reached (max: 250 lines) ** |
||
71fdda46 | 2013-02-28 22:41:16 | Richard Grenville |
Bug fix #91: Using pkg-config to find drm.h & OpenGL changes - #91: Use pkg-config to find drm.h to avoid issues on FreeBSD. Thanks to hun7err for pointing out and providing patch. - #89: Add default shadow exclusion rule for notify-osd. Thanks to DanielRS. - Check for abundant positional arguments. - Use paint target window (root window / overlay window) instead of ps->reg_win to create GLXContext. (May have negative effects on OpenGL VSync.) Add new OpenGL helpers functions, to prepare for the new OpenGL backend. - Dump more info of a PropertyNotify with DEBUG_EVENTS. |
||
M common.h M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
dc4da095 | 2013-03-03 07:53:08 | Richard Grenville |
Bug fix #93: Assertion failure when window reparented - Fix an assertion failure that occurs when a window is reparented to the root window then immediately to another window. Thanks to smlx for reporting. - Add extra debugging info for ReparentNotify. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
07ed9901 | 2013-03-10 05:45:54 | Richard Grenville |
Improvement: ARGB window matching & Enable track_focus with D-Bus - Add predefined matching target "argb" to match ARGB windows. - Make it possible to enable focus tracking on-the-fly with D-Bus method. |
||
M c2.c M c2.h M common.h M compton.c M dbus.c |
||
** Diff limit reached (max: 250 lines) ** |
||
690589bb | 2013-03-11 20:43:14 | Richard Grenville |
Bug fix: Create OpenGL context only after initializing overlay - Create OpenGL context only after initializing overlay, which fixes a bug that --paint-on-overlay does not work with OpenGL VSync. Thanks to tsmithe for reporting. (#7) |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
f9f1e1f2 | 2013-03-15 10:16:23 | Richard Grenville |
Feature: OpenGL backend - 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. |
||
A opengl.c A opengl.h M common.h M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
74792903 | 2013-03-16 09:54:43 | Richard Grenville |
Bug fix: GLX backend incompatibility with mesa & others - Fix a bug that glx_bind_pixmap() doesn't work with mesa drivers. Thanks to Janhouse and mkraemer for reporting. (#7) - Use stencil buffer to attempt to eliminate potential double-paint issue in glx_render(). X Fixes doesn't guarantee the rectangles in a region do not overlap, and this may cause some regions to be painted twice, which would be a problem if we are painting transparent things. Now the target window must have a stencil buffer. Compiz uses its own region implementation to deal with this, but as a lightweight compositor we can't really do the same. It may have a positive or negative effort over performance. Callgrind result indicates basically no change in performance, but this may or may not be true. - Correctly distinguish GL extensions and GLX extensions. Sorry. :-D - Handle screen size. Thanks to tsmithe for reporting. (#7) - Rename OpenGL backend to GLX backend, because, we might have a EGL backend someday. - Add configuration file option `backend` to specify backend. Add `backend` to D-Bus `opts_get`. - Add OpenGL shader compilation code, but currently unused. - Minor adjustments. - Known issue: Window content doesn't get updated in VirtualBox, probably because its OpenGL implementation requires constant rebinding of texture. But that's really slow... - Known issue: Blur feature is still unimplemented in GLX backend. |
||
M common.h M compton.c M compton.h M dbus.c M opengl.c M opengl.h |
||
** Diff limit reached (max: 250 lines) ** |
||
17f7d31a | 2013-03-16 23:14:00 | Richard Grenville |
Bug fix: GLX backend incompatibility with VirtualBox & others - GLX backend: Fix a bug that window content does not get updated on VirtualBox, by rebinding texture when window content changes. This may have a negative effect on performance. - GLX backend: Add --glx-no-stencil to restore the old clipping method, just in case. - GLX backend: Apply stricter checks on texture-pixmap binding. - GLX backend: Fix a bug that glx_set_clip() behaves incorrectly when None is passed in. - GLX backend: Use glEnable()/glDisable() to toggle stencil tests, in hope to increase performance. - Move window pixmap/picture fetching to win_paint_win(), in hope to increase performance. - Intersect shadow painting region with its bounding rectangle, in hope to increase performance. |
||
M common.h M compton.c M compton.h M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
848103bc | 2013-03-18 00:29:14 | Richard Grenville |
Bug fix: GLX: ARGB texture too dark & Jitter when resize & others - 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. |
||
M common.h M compton.c M compton.h M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
69c3579a | 2013-03-18 06:01:18 | Richard Grenville |
Improvement: GLX: Use SCISSOR_TEST instead of STENCIL_TEST when possible - GLX backend: Use GL_SCISSOR_TEST instead of STENCIL_TEST if there's only one rectangle in glx_set_clip(). Profiling with gDebugger shows a 10% performance improvement. - Add .desktop installation rules. (#97) |
||
M compton.c M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
cdd6a738 | 2013-03-19 07:58:55 | Richard Grenville |
Improvement: --glx-copy-from-front & benchmark mode - GLX backend: Add --glx-copy-front, which copies all unmodified regions from front buffer to back buffer instead of redrawing the whole screen. Unfortunately, probably because glCopyPixels() isn't usually well-optimized on graphic cards, this option appears very unstable in its effect: Over 20% boost in performance when only 1/4 of the screen is modified, but 10% decrease when the whole screen is. Thus, not enabled by default. - GLX backend: Add glx_blur_dst(), to prepare for the background blur feature. It currently is capable to modify background in the desired way, but the core blur shader is absent. glConvolution2D() seemingly relies entirely on CPU and has horrifying performance. I've hesitating about whether I should use ARB assembly language or GLSL for the shader. - GLX backend: Invert y-axis GL matrix. It's upside-down previously because that's what dcompmgr uses. Seemingly a "normal" y-axis is required for glCopyPixels() to operate correctly. - GLX backend: Fix some GLX_TEXTURE_RECTANGLE compatibility issues. Still, not actually tested. - Add benchmark mode (--benchmark & --benchmark-wid). - Misc changes. |
||
M common.h M compton.c M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
da85de48 | 2013-03-20 04:29:45 | Richard Grenville |
Feature #69: GLX: Blur background - GLX backend: Add blur background support using a GLSL shader. Only tested with nvidia-drivers-313.26. Known to cause quite some decrease in performance (~10%?). - Detach shaders in glx_create_program(). Misc changes. |
||
M common.h M compton.c M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
2dfe9d52 | 2013-03-21 00:05:56 | Richard Grenville |
Improvement: --glx-use-copysubbuffermesa - GLX backend: Add --glx-use-copysubbuffermesa, to use MESA_copy_sub_buffer to do partial screen update. Huge performance boost on mesa drivers for partial screen updates, but does not work for nvidia-drivers and may break VSync. Automagically overrides --glx-copy-from-front. - Add rect_is_fullscreen() to reuse code. Misc changes. |
||
M common.h M compton.c M compton.h M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
8fdb6e49 | 2013-03-22 03:44:03 | Richard Grenville |
Bug fix: Incorrect handling when a window is placed on bottom - Fix a bug that ConfigureNotify placing a window in bottom (ConfigureNotify with .new_above == 0) is not correctly handled, introduced in 1a88e3d0c5. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
e9ea554f | 2013-03-23 09:06:41 | Richard Grenville |
Improvement: --blur-background-exclude #98 & MESA_swap_control & others - Add --blur-background-exclude. (#98) - Add `opengl-mswc` VSync, which uses MESA_swap_control instead of SGI_swap_control. I don't expect it to perform better than SGI_swap_control, though. - Update CMakeLists.txt . - Add a few targets for D-Bus `win_get`. Misc changes. - Known issue: Apparently I've forgotten implementing --inactive-dim on GLX backend... Silly me. |
||
M common.h M compton.c M compton.h M dbus.c |
||
** Diff limit reached (max: 250 lines) ** |
||
47f7b407 | 2013-03-24 22:36:39 | Richard Grenville |
Bug fix: GLX: Fix --inactive-dim & fix color inversion - GLX backend: Fix broken --inactive-dim. - GLX backend: Fix bugs when inverting colors of windows. Thanks to madsy and neure for help. - GLX backend: Lift `glx_no_stencil` restriction from glx_init_blur(). It still probably won't work, but the user can try. - XRender backend: Use XRenderFillRectangles() instead of XRenderComposite() to do dimming. |
||
M common.h M compton.c M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
3ad3ebae | 2013-03-29 23:27:27 | Richard Grenville |
Feature #4: Default active window opacity - Add default active window opacity (--active-opacity). (#4) - Add win_focusin and win_focusout D-Bus signals. |
||
M common.h M compton.c M dbus.c |
||
** Diff limit reached (max: 250 lines) ** |
||
ab53e73c | 2013-04-02 21:53:04 | Richard Grenville |
Misc: Workaround for some missing definitions - Add workarounds for missing GL_TEXTURE_RECTANGLE and PictOpDifference definitions in broken GL headers / old X Composite headers. |
||
M common.h |
||
** Diff limit reached (max: 250 lines) ** |
||
53870fb7 | 2013-04-05 08:05:19 | Richard Grenville |
Improvement: GLX: Cache region contents & --glx-no-rebind-pixmap - 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. |
||
M c2.c M common.h M compton.c M compton.h M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
b75d417c | 2013-04-06 07:21:38 | Richard Grenville |
Bug fix: GLX: Fix dim and blur with --glx-no-stencil - GLX backend: Fix broken dim and blur with --glx-no-stencil when dealing with shaped windows. - GLX backend: Cache region contents and do a local region intersection instead of using XFixesIntersectRegion(). Drastic reduction in CPU usage for --glx-no-stencil. Now --glx-no-stencil substantially outperforms (~15%) normal mode. - Use macros to reuse paint-in-region code in opengl.c . Add new type "reg_data_t" to store XserverRegion cache. |
||
M common.h M compton.c M compton.h M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
39da2761 | 2013-04-21 09:30:22 | Richard Grenville |
Improvement: --glx-swap-method & --fade-exclude - GLX backend: Add --glx-swap-method, to reduce painting region if the driver uses exchange or copy buffer swaps. Untested. - Add --fade-exclude, to disable fading on specific windows based on some conditions. Untested. - Expose GLX backend options through configuration file. Add fetching of GLX backend options through D-Bus. - Use NULL pointer instead of element count to delimit string arrays in parse_vsync()/parse_backend()/parse_glx_swap_method(). - Add documentation about "wintypes" section in configuration file. |
||
M common.h M compton.c M dbus.c M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
1dd41253 | 2013-04-24 20:27:14 | Richard Grenville |
Misc: Fix wrong description & DEBUG_GLX_ERR - Fix description of "opengl" VSync. - Add DEBUG_GLX_ERR to check for OpenGL errors. - Update man page. |
||
M compton.c M opengl.c M opengl.h |
||
** Diff limit reached (max: 250 lines) ** |
||
ec2cd627 | 2013-04-25 09:23:35 | Richard Grenville |
Improvement: --blur-kern - Add blur convolution kernel customization, --blur-kern. The format is a bit tricky so be sure to read the description in `compton -h`. Not much tests received. - GLX backend: Tolerate missing GLSL uniforms for strangely shaped convolution kernel. - Fix a memory leak that blur-background blacklist is not freed. |
||
M common.h M compton.c M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
b5116f64 | 2013-04-26 01:01:20 | Richard Grenville |
Improvement: Enhance --glx-swap-method - Enhance --glx-swap-method to support longer buffers ages (3-6), and automatic buffer age detection via GLX_EXT_buffer_age. |
||
M common.h M compton.c M dbus.c M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
74d91eb3 | 2013-04-26 03:14:37 | Richard Grenville |
Misc: Fix gcc error Fix gcc compilation error about "initializer element is not constant". |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
5775cefe | 2013-04-26 22:43:11 | Richard Grenville |
Improvement: --resize-damage - Add --resize-damage to enlarge/shrink repaint region by a specific number of pixels, used for solving the line corruption issue with blur. Thanks to Nuck and jerri in #104 for reporting. - Fix the memory leak of blur shader string. |
||
M common.h M compton.c M compton.h M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
19471a42 | 2013-04-27 04:44:10 | Richard Grenville |
Bug fix: Fix --resize-damage - Fix --resize-damage. I forgot to shrink the painting region back when actually copying to destination. - Include extra pixels around the blur texture to avoid some possible small issues, if --resize-damage is positive. - Known issue: Line artifacts may still appear with --dbe (X Render backend) or --glx-swap-method (GLX backend). I doubt if there's way to fix this without very inefficient mechanisms. |
||
M common.h M compton.c M compton.h M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
7f97bf93 | 2013-04-27 07:43:39 | Richard Grenville |
Bug fix: Fix a BadRegion error with --glx-use-copysubbuffermesa Just a small and mostly harmless issue. Sorry, didn't test throughly. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
e94746bb | 2013-04-29 09:42:46 | Richard Grenville |
Improvement: Add predefined blur kernels - Add a few predefined blur kernels, requested by jerri in #104. - Add compton-convgen.py to generate blur kernels. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
c742c97a | 2013-05-01 09:08:43 | Richard Grenville |
Misc: Validate wallpaper pixmap & Documentation update - Split Pixmap validation out to validate_pixmap(). Validate wallpaper Pixmap as well. - Update README.md and man page. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
08b6bfe9 | 2013-05-08 09:50:02 | Richard Grenville |
Imp: Fix GL_TEXTURE_RECTANGLE & Enhance --glx-copy-from-front - Fix GL_TEXTURE_RECTANGLE support. Thanks to amonakov for guides. (#107) - Enhance --glx-copy-from-front to improve performance and make it work with --glx-swap-method, copied from kwin patch. Thanks to bwat47 for info. (#107) - Add texture2Doffset() support in blur GLSL shader. Thanks to amonakov for advice. No visible benefit here, though. (#107) - Only limited tests are done and I'm super sleepy. Bugs expected |
||
M common.h M compton.c M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
a09589b2 | 2013-05-08 20:43:40 | Richard Grenville |
Misc: Add DEBUG_GLX_PAINTREG - GLX: Add DEBUG_GLX_PAINTREG, for debugging painting region issues, for p4ddy's problem. |
||
M opengl.c M opengl.h |
||
** Diff limit reached (max: 250 lines) ** |
||
060b5ab2 | 2013-05-09 08:47:09 | Richard Grenville |
Bug fix: Compilation failure with NO_LIBCONFIG / NO_C2 - Fix compilation failure with NO_LIBCONFIG or NO_C2. Thanks to Spaulding for reporting. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
2b0dfa9b | 2013-05-12 05:21:16 | Richard Grenville |
Misc: Add DEBUG_GLX_MARK & Misc - GLX backend: Add DEBUG_GLX_MARK, to add GL marks around functions with glStringMarkerGREMEDY(), and mark frame termination with glFrameTerminatorGREMEDY(). - Print output of `compton -h` to stdout. (#110) - GLX backend: Strip out elements with factor 0 in GLSL blur code. Thanks to jrfonseca for guides. (#107) |
||
M common.h M compton.c M compton.h M dbus.c M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
1bdd0359 | 2013-05-20 05:16:27 | Richard Grenville |
Imp: Multi-pass blur & D-Bus fading control - Add multipass blur support. Note GLX Framebuffer support is required. My benchmark shows multipass blur brings 5% performance boost for X Render backend (3x3box). On GLX backend it brings 10% performance boost for 5x5box but negatively affects performance for 3x3box. Thanks to jrfonseca for advice. (#107) - GLX backend: Cache blur texture for each window, for a 12% performance boost. - Add D-Bus fading control. Thanks to yulan6248 for testing. (#112) - Fix FAQ link in README.md. Thanks to lorenzos for report. (#111) - Correctly deinitialize VSync on on-the-fly VSync method switch. - X Render backend: Normalize blur kernel. - Code clean-up. - Known issue: Linear corruption on border of a window may appear with X Render multi-pass blur. Possible to fix but probably not worthwhile. |
||
M common.h M compton.c M compton.h M dbus.c M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
d800a62b | 2013-05-20 20:26:18 | Richard Grenville |
Feature #113: Set opacity based on conditions - 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. |
||
M c2.c M c2.h M common.h M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
0dca9aa7 | 2013-06-09 04:09:28 | Richard Grenville |
Feature #116: Shadow exclusion region - Add --shadow-exclude-reg, which excludes certain regions on the screen to have shadows painted in. (#116) - Adjust session initialization order. Now X root and screen info and basic X extensions are available in configuration parsing step. |
||
M common.h M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
1096bf90 | 2013-06-19 06:36:48 | Richard Grenville |
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. |
||
M c2.c M c2.h M common.h M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
291fba3b | 2013-06-25 10:08:41 | Richard Grenville |
Misc: OpenGL 3.0 compatibility & misc - Fix OpenGL 3.0 compatibility by changing glFramebufferTexture() to glFramebufferTexture2D(). Thanks to danfe for suggestion! - Add notification about DocBook toolchina dependencies. Thanks to danfe. (#121) |
||
M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
bd40b36f | 2013-07-05 10:22:58 | Richard Grenville |
Bug fix #124: GLX: Missing check on FBConfig X visual depth - Check FBConfig X visual depth, like Compiz, to fix issues with nvidia-drivers-325.08 . Thanks to guotsuan for reporting. |
||
M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
4f926725 | 2013-07-26 00:02:06 | Richard Grenville |
Improvement #41: Enable/disable redirection through D-Bus - Add "redirected_force" to D-Bus opts_get to forcefully redirect/unredirect windows. - Add D-Bus method "repaint", to, namely, repaint the screen. |
||
M common.h M compton.c M dbus.c |
||
** Diff limit reached (max: 250 lines) ** |
||
8f6c2d89 | 2013-07-30 09:24:11 | Richard Grenville |
Misc: stoppaint_force & Documentation update - 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. |
||
M c2.c M c2.h M common.h M compton.c M dbus.c |
||
** Diff limit reached (max: 250 lines) ** |
||
cd62d55a | 2013-08-22 08:44:15 | Richard Grenville |
Improvement #137: --xinerama-shadow-crop Add --xinerama-shadow-crop to crop shadow to current Xinerama screen. Thanks to Feltzer for suggestion. |
||
M common.h M compton.c M compton.h M dbus.c |
||
** Diff limit reached (max: 250 lines) ** |
||
731ed301 | 2013-08-26 09:00:53 | Richard Grenville |
Misc: Add missing configuration file options and switches - Add "xinerama_shadow_crop" configuration option. - Add long commandline switches corresponding to the short ones. - Documentation update. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
17c318b4 | 2013-08-28 08:54:04 | Richard Grenville |
Bug fix #137: Auto-detect screen changes Attempt to auto-detect screen changes to address the issue reported by Feltzer. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
fc117ad4 | 2013-09-03 08:14:40 | Richard Grenville |
Misc: GLX: Avoid using multi-sampling visuals Avoid using multi-sampled visuals, like the cogl patch: http://people.freedesktop.org/~glisse/0001-glx-do-not-use-multisample-visual-config-for-front-o.patch |
||
M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
d41c7507 | 2013-09-04 09:00:51 | Richard Grenville |
Improvement: --unredir-if-possible-exclude & --unredir-if-possible-delay - Add --unredir-if-possible-exclude, to exclude certain windows when evaluating --unredir-if-possible. (#140) - Add --unredir-if-possible-delay, to add some delay before unredirecting screen. (#138, #140) - Code clean-up. |
||
M common.h M compton.c M compton.h M dbus.c |
||
** Diff limit reached (max: 250 lines) ** |
||
7e488d81 | 2013-09-12 08:23:20 | Richard Grenville |
Bug fix #140: Possible fix for CPU usage with --unredir-possible-delay - Possible fix for high CPU usage with a low --unredir-possible-delay. Thanks to Feltzer for reporting. (#140) - Rewrite some parts to (hopefully) increase performance, especially with --unredir-if-possible. - Known issue: With GTX 670 and x11-drivers/nvidia-drivers-325.15, and compton --unredir-if-possible --config /dev/null, if you send a SIGUSR1 to compton when a full-screen solid window is there, in which case compton either redirects then immediately unredirects the screen, or just don't redirect it altogether, X freezes after compton unredirects the screen. Requests sent by other X clients are not responded until compton is killed, which indicates the possibility of a bug in X. Attaching to X process shows X is on ./os/waitFor.c. Backend does not matter. --paint-on-overlay fixes the issue somehow. compton-git-v0.1_beta1-5-g4600f43-2013-08-28 doesn't exhibit the issue, but it's probably timing-related. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
631f50d6 | 2013-09-13 21:04:38 | Richard Grenville |
Bug fix #143: Move setlocale(LC_NUMERIC, "C") Move setlocale(LC_NUMERIC, "C") to a better place, in hope to fix #143. Thanks to hiciu for reporting! |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
9c609b9b | 2013-09-14 19:56:53 | Richard Grenville |
Bug fix #143: GLSL shader error on European locales Set LC_NUMERIC=C when generating GLSL shader strings to avoid decimal point issues on European locales. Thanks to hiciu for reporting. |
||
M opengl.c M opengl.h |
||
** Diff limit reached (max: 250 lines) ** |
||
6e82deb0 | 2013-09-14 22:07:49 | Richard Grenville |
Bug fix #144: Workaround for insane window type changes Dynamically detect window type as a workaround to insane applications. Thanks to Feltzer for reporting. (#144) |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
2b534cd8 | 2013-09-18 09:41:40 | Richard Grenville |
Bug fix #99: Rewrite focus detection logic - 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. |
||
M c2.c M common.h M compton.c M compton.h M dbus.c |
||
** Diff limit reached (max: 250 lines) ** |
||
e0e726c4 | 2013-09-24 07:41:50 | Richard Grenville |
Misc: Add cfg file options for --unredir-if-possible-* Add configuration file options for --unredir-if-possible-{delay,exclude}. (#140) |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
7f97d55d | 2013-09-25 18:41:11 | Richard Grenville |
Misc: Typo in vsync_opengl_init() I typed ps->glXGetVideoSyncSGI as ps->glXWaitVideoSyncSGI... |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
70dfd1f5 | 2013-10-01 10:20:22 | Richard Grenville |
Bug fix #149: --opacity-rule misbehaves on 32-bit systems & others - Fix a bug that --opacity-rule misbehaves with a value higher than 50% on 32-bit systems. Thanks to mrinx for reporting. (#149) - Fix a bug that opacity-rule in configuration file does not work. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
522923db | 2013-10-21 09:17:01 | Richard Grenville |
Bug fix #153: Possible fix for a rare timing issue Possible fix for a very rare timing issue in focus detection. Compton may fail to detect the currently focused window, when a window newly mapped gets focused, we failed to listen to events and get FocusIn from it in time, and a series of focus change events before it happens stay in the event queue and puzzled compton. My choice is to force focus recheck on all focus-related events. More roundtrips to X, but not necessarily worse performance, due to the high cost of focus flipping especially when there's a lot of conditions. Thanks to SlackBox for reporting. (#153) |
||
M common.h M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
ed99f1b2 | 2013-11-09 07:38:31 | Richard Grenville |
Misc: --write-pid-path & small changes - Add --write-pid-path to write process ID to a file, to help determining compton's process ID when -b is used. - Add a few extra targets to query through D-Bus opts_get (version, pid, etc.) and through win_get, primarily for debugging. - Add helper macros likely(), unlikely(), cmalloc(), ccalloc(), crealloc(). - Change w->opacity_set to opacity_t. Determine display_repr in session_init(), etc. |
||
M common.h M compton.c M dbus.c M dbus.h |
||
** Diff limit reached (max: 250 lines) ** |
||
640ef043 | 2013-11-09 20:13:18 | Richard Grenville |
Misc: Add properties to the registration window Add WM_CLASS, COMPTON_VERSION, and _NET_WM_PID properties to the registration window, to ease the development of pcman's compton-conf. |
||
M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
44a13b4e | 2013-12-10 08:06:02 | Richard Grenville |
Feature: Add XRender-GLX hybird backend - Add new backend "xr_glx_hybird", which uses X Render for all compositing but GLX on the last step of rendering to screen. This makes GLX-backend-specific VSync methods usable while may avoid certain bugs with GLX backend. The idea comes from ali1234. Experimental. - GLX backend: Stop using or rendering to depth buffer. - Use glFinish() instead of glFlush() before VSync. It probably uses more CPU but could be more reliable than glFlush(). |
||
M common.h M compton.c M compton.h M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
43b47ec4 | 2013-12-23 17:46:48 | Richard Grenville |
Misc #152: Fix a spelling mistake Fix a spelling mistake (xr_glx_hybird -> xr_glx_hybrid). Thanks to cju for reporting. |
||
M common.h M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
0969d7d5 | 2013-12-26 06:43:06 | Richard Grenville |
Misc #163: Make usage of glFinish() optional Make usage of glFinish() optional to avoid high CPU usage. (#163) |
||
M common.h M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
978dde64 | 2014-01-02 12:33:57 | Christopher Jeffrey |
Fix typo: s/hybird/hybrid/ |
||
M common.h M compton.c M compton.h |
||
** Diff limit reached (max: 250 lines) ** |
||
5ae38a62 | 2014-01-06 01:31:42 | Richard Grenville |
Merge branch 'richardgv-dev' |
||
M common.h M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
96ea32f1 | 2014-01-18 18:04:14 | Richard Grenville |
Bug fix #163: xr_glx_hybrid: Flickering issue xr_glx_hybrid backend: Attempt to fix flickering issue. Thanks to cju for testing. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
6078937c | 2014-01-21 08:13:06 | Richard Grenville |
Bug fix: Fix access to freed memory due to invalid w->prev_trans - Fix a bug that w->prev_trans sometimes points to freed memory. Probably related to #165. - Add some more debugging printf()-s under DEBUG_EVENTS. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
ecd5b339 | 2014-02-27 08:08:30 | Richard Grenville |
Bug fix: Fix -S Fix the broken -S. |
||
M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
f01576de | 2014-03-10 18:22:23 | Richard Grenville |
Misc: xr-glx-hybrid alias & minor fixes - Add "xr-glx-hybrid" as an alias of "xr_glx_hybrid". (#163) - Clear damage history in expose_root() and when root window size changes. Unfortunately this doesn't fix #181. |
||
M common.h M compton.c |
||
** Diff limit reached (max: 250 lines) ** |
||
224dcd29 | 2014-03-17 10:25:34 | Richard Grenville |
Bug fix #181: Add --xrender-sync{,-fence} - Add --xrender-sync{,-fence} to deal with redraw lag issue on GLX backend. --xrender-sync-fence requires a sufficiently new xorg-server and libXext. NO_XSYNC=1 may be used to disable it at compile time. Thanks to tchebb for reporting and everybody else for testing. (#181) - A bit code clean-up. Replace a few XSync() with XFlush() to minimize the latency. |
||
M common.h M compton.c M compton.h M opengl.c M opengl.h |
||
** Diff limit reached (max: 250 lines) ** |
||
6e4f45f8 | 2014-03-26 09:27:25 | Richard Grenville |
Misc: Add --xrender-sync{,-fence} as configuration file option - Add --xrender-sync{,-fence} as configuration file option. - Quit on encountering invalid opacity rule. - Other small changes. |
||
M common.h M compton.c M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
24e34ad9 | 2014-03-31 23:10:03 | Timothy Pearson |
Add basic support for a modified compton compositor instead of the old buggy kompmgr Update additional Xorg atom names |
||
M config.h.cmake M kcontrol/tdm/tdm-appear.cpp M kdesktop/lock/autologout.cc M kdesktop/lock/infodlg.cc M kdesktop/lock/lockdlg.cc M kdesktop/lock/lockprocess.cc M kdesktop/lock/querydlg.cc M kdesktop/lock/sakdlg.cc M kdesktop/lock/securedlg.cc M kicker/applets/systemtray/systemtrayapplet.cpp M konqueror/konq_mainwindow.cc M ksmserver/server.cpp M tdm/kfrontend/kfdialog.cpp M tdm/kfrontend/kgapp.cpp M tdm/kfrontend/sakdlg.cc M twin/CMakeLists.txt M twin/COMPLIANCE M twin/activation.cpp M twin/atoms.cpp M twin/clients/b2/b2client.cpp M twin/clients/keramik/keramik.cpp M twin/kcmtwin/twinoptions/windows.cpp M twin/kcmtwin/twinoptions/windows.h M twin/lib/kcommondecoration.cpp M twin/workspace.cpp |
||
** Diff limit reached (max: 250 lines) ** |
||
fbd3a27d | 2014-03-31 23:12:37 | Timothy Pearson |
Add required functionality for use with TDE |
||
M c2.h M common.h M compton.c M compton.h M opengl.c |
||
** Diff limit reached (max: 250 lines) ** |
||
fb41c501 | 2014-03-31 23:20:55 | Timothy Pearson |
Move sources to correct directory |
||
A twin/compton-tde/c2.c A twin/compton-tde/c2.h A twin/compton-tde/common.h A twin/compton-tde/compton.c A twin/compton-tde/compton.h A twin/compton-tde/dbus.c A twin/compton-tde/dbus.h A twin/compton-tde/man/compton-tde-trans.1.html A twin/compton-tde/man/compton-tde.1.html A twin/compton-tde/man/compton-trans.1 A twin/compton-tde/man/compton.1 A twin/compton-tde/opengl.c A twin/compton-tde/opengl.h R c2.c R c2.h R common.h R compton.c R compton.h R dbus.c R dbus.h R opengl.c R opengl.h |
||
** Diff limit reached (max: 250 lines) ** |
||
0f7f449b | 2014-03-31 23:22:51 | Timothy Pearson |
Merge working compton-tde branch |
||
A twin/compton-tde/c2.c A twin/compton-tde/c2.h A twin/compton-tde/common.h A twin/compton-tde/compton.c A twin/compton-tde/compton.h A twin/compton-tde/dbus.c A twin/compton-tde/dbus.h A twin/compton-tde/man/compton-tde-trans.1.html A twin/compton-tde/man/compton-tde.1.html A twin/compton-tde/man/compton-trans.1 A twin/compton-tde/man/compton.1 A twin/compton-tde/opengl.c A twin/compton-tde/opengl.h |
||
** Diff limit reached (max: 250 lines) ** |
||
8083ca83 | 2014-03-31 23:46:10 | Timothy Pearson |
Build compton-tde |
||
A twin/compton-tde/CMakeLists.txt M twin/CMakeLists.txt |
||
** Diff limit reached (max: 250 lines) ** |