summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Misc #204: Add glx_take_screenshot() & othersRichard Grenville2014-09-074-29/+109
| | | | | | | | | | | | | | | - Add glx_take_screenshot() for taking a screenshot. With ImageMagick the output data could be viewed in this way: display -size [SCREEN-WIDTH]x[SCREEN-HEIGHT] -depth 8 -flip rgb:[PATH] (#204) - Add D-Bus command `opts_get string:paint_on_overlay_id` to get X Composite overlay window ID. (#204) - Code cleanup.
* Merge branch 'richardgv-dev' of github.com:chjj/compton into richardgv-devRichard Grenville2014-09-071-1/+1
|\
| * fix crash caused by free of uninitialized pointermæp2014-08-061-1/+1
| |
* | Misc: Add --no-name-pixmapRichard Grenville2014-09-072-1/+8
|/ | | | | Add --no-name-pixmap to disable the usage of XCompositeNameWindowPixmap(), for debugging.
* Misc: Fix spelling mistakesRichard Grenville2014-08-062-2/+2
| | | | Still, "Guassian" -> "Gaussian". (#221)
* Bug fix: Fix X pixmap leakage in shadow_paintRichard Grenville2014-08-034-3/+149
| | | | | | - Fix X pixmap leakage in shadow_paint. - Add the skeleton of a X resource leakage checker.
* Misc: Fix compilation with NO_VSYNC_OPENGL_GLSL / NO_C2Richard Grenville2014-07-292-0/+9
| | | | Fix compilation with NO_VSYNC_OPENGL_GLSL / NO_C2.
* Misc #218: Warn about using --glx-no-rebind-pixmap on intel driverRichard Grenville2014-07-281-1/+2
| | | | | Warn about using --glx-no-rebind-pixmap on xf86-video-intel. Thanks to aktau for the info. (#218)
* Improvement: Separate GLX parts from session_t & Attempt to fix #217Richard Grenville2014-07-285-185/+290
| | | | | | | - Separate GLX parts from session_t into glx_session_t. - Add --rererdir-on-root-change and --glx-reinit-on-root-change, as possible solutions for #217. Thanks to jlindgren90 for reporting.
* Misc: Add --version & --no-x-selectionRichard Grenville2014-07-132-1/+12
| | | | | | - Add --version. (#206) - Add --no-x-selection for debugging. (#207)
* whitespace cleanupMichael Reed2014-07-041-1/+1
|
* Misc #205: Add 2 long options & Update documentationRichard Grenville2014-06-151-0/+2
| | | | | | - Add two long variants of short options. - Update documentation.
* Feature: #183 custom window shader & #193 --no-fading-destroyed-argbRichard Grenville2014-05-164-99/+352
| | | | | | | | | | | | | - Add --glx-fshader-win, which specifies a custom fragment shader for painting windows. compton-default-fshader-win.glsl is the shader with default behavior, and compton-fake-transparency-fshader-win.glsl provides a template of fake transparency. (#183) - Add --force-win-blend to force all windows to be painted with blending. - Add --no-fading-destroyed-argb, as a workaround of bugs in some WMs. (#193)
* Bug fix #195: Pointer incompatibility with libconfig-1.3*Richard Grenville2014-05-101-1/+1
| | | | | Fix pointer incompatibility with libconfig-1.3*. Thanks to sstewartgallus for reporting. (#195)
* Bug fix #194: Fix assertion failure in some casesRichard Grenville2014-04-281-2/+2
| | | | | | Fix assertion failure when evaluating --unredir-if-possible-exclude or --paint-exclude on unmapped windows. Thanks to ppuryear for reporting. (#194)
* Bug fix #191: Add rounded-corners detection to --unredir-if-possibleRichard Grenville2014-04-214-6/+18
| | | | | | | Add `bounding_shape` and `rounded_corners` as condition match target. Deprecate --shadow-ignore-shaped. Add rounded-corners detection to win_is_fullscreen(). Slightly modify win_rounded_corners() logic. Thanks to tdryer for reporting. (#191)
* Misc: Fix a possible assert() failureRichard Grenville2014-04-211-1/+1
|
* Bug fix #190: Copy shadow/fade state from last paint on unmapped winsRichard Grenville2014-04-193-32/+88
| | | | | | Copy shadow/fade/color-inversion/background-blur state from last paint on unmapped windows. I hope it doesn't have unexpected side effects. (#190)
* Misc: Try to avoid evaluating conditions after window unmap & othersRichard Grenville2014-04-193-23/+56
| | | | | | | | | | | | - Try to avoid evaluating conditions after window unmap/destruction. Unfortunately, frequently this doesn't work due to the asynchronous nature of X. - Add _GTK_FRAME_EXTENTS exclusion rules to compton.sample.conf. Thanks to memeplex, hexchain, and others for info. (#189) - Add debugging option --show-all-xerrors, and other debugging changes. Doc update.
* Misc: Add --xrender-sync{,-fence} as configuration file optionRichard Grenville2014-03-263-5/+25
| | | | | | | | - Add --xrender-sync{,-fence} as configuration file option. - Quit on encountering invalid opacity rule. - Other small changes.
* Bug fix #181: Add --xrender-sync{,-fence}Richard Grenville2014-03-175-51/+379
| | | | | | | | | | - 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.
* Misc: xr-glx-hybrid alias & minor fixesRichard Grenville2014-03-112-0/+16
| | | | | | | - 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.
* Bug fix: Fix -SRichard Grenville2014-02-271-1/+3
| | | | Fix the broken -S.
* Bug fix: Fix access to freed memory due to invalid w->prev_transRichard Grenville2014-01-211-1/+28
| | | | | | | - 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.
* Bug fix #163: xr_glx_hybrid: Flickering issueRichard Grenville2014-01-191-0/+7
| | | | | xr_glx_hybrid backend: Attempt to fix flickering issue. Thanks to cju for testing.
* Misc #163: Make usage of glFinish() optionalRichard Grenville2013-12-262-2/+13
| | | | Make usage of glFinish() optional to avoid high CPU usage. (#163)
* Misc #152: Fix a spelling mistakeRichard Grenville2013-12-243-12/+17
| | | | | Fix a spelling mistake (xr_glx_hybird -> xr_glx_hybrid). Thanks to cju for reporting.
* Feature: Add XRender-GLX hybird backendRichard Grenville2013-12-104-51/+95
| | | | | | | | | | | | | - 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().
* Misc: Add properties to the registration windowRichard Grenville2013-11-102-5/+45
| | | | | Add WM_CLASS, COMPTON_VERSION, and _NET_WM_PID properties to the registration window, to ease the development of pcman's compton-conf.
* Misc: --write-pid-path & small changesRichard Grenville2013-11-094-37/+110
| | | | | | | | | | | | | | - 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.
* Bug fix #153: Possible fix for a rare timing issueRichard Grenville2013-10-212-12/+9
| | | | | | | | | | | | 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)
* Bug fix #149: --opacity-rule misbehaves on 32-bit systems & othersRichard Grenville2013-10-012-6/+26
| | | | | | | - 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.
* Misc: Typo in vsync_opengl_init()Richard Grenville2013-09-261-1/+1
| | | | I typed ps->glXGetVideoSyncSGI as ps->glXWaitVideoSyncSGI...
* Misc: Add cfg file options for --unredir-if-possible-*Richard Grenville2013-09-241-0/+5
| | | | | Add configuration file options for --unredir-if-possible-{delay,exclude}. (#140)
* Bug fix #99: Rewrite focus detection logicRichard Grenville2013-09-185-103/+107
| | | | | | | | | | | | | - 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.
* Bug fix #144: Workaround for insane window type changesRichard Grenville2013-09-152-25/+40
| | | | | Dynamically detect window type as a workaround to insane applications. Thanks to Feltzer for reporting. (#144)
* Bug fix #143: GLSL shader error on European localesRichard Grenville2013-09-152-0/+10
| | | | | Set LC_NUMERIC=C when generating GLSL shader strings to avoid decimal point issues on European locales. Thanks to hiciu for reporting.
* Bug fix #143: Move setlocale(LC_NUMERIC, "C")Richard Grenville2013-09-141-4/+4
| | | | | Move setlocale(LC_NUMERIC, "C") to a better place, in hope to fix #143. Thanks to hiciu for reporting!
* Bug fix #140: Possible fix for CPU usage with --unredir-possible-delayRichard Grenville2013-09-121-46/+60
| | | | | | | | | | | | | | | | | | | | - 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.
* Improvement: --unredir-if-possible-exclude & --unredir-if-possible-delayRichard Grenville2013-09-044-58/+158
| | | | | | | | | | - 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.
* Misc: GLX: Avoid using multi-sampling visualsRichard Grenville2013-09-031-1/+15
| | | | | 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
* Bug fix #137: Auto-detect screen changesRichard Grenville2013-08-282-10/+17
| | | | | Attempt to auto-detect screen changes to address the issue reported by Feltzer.
* Misc: Add missing configuration file options and switchesRichard Grenville2013-08-261-0/+17
| | | | | | | | - Add "xinerama_shadow_crop" configuration option. - Add long commandline switches corresponding to the short ones. - Documentation update.
* Improvement #137: --xinerama-shadow-cropRichard Grenville2013-08-224-2/+134
| | | | | Add --xinerama-shadow-crop to crop shadow to current Xinerama screen. Thanks to Feltzer for suggestion.
* Misc: stoppaint_force & Documentation updateRichard Grenville2013-07-305-9/+40
| | | | | | | | | | - 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.
* Improvement #41: Enable/disable redirection through D-BusRichard Grenville2013-07-263-11/+29
| | | | | | | - Add "redirected_force" to D-Bus opts_get to forcefully redirect/unredirect windows. - Add D-Bus method "repaint", to, namely, repaint the screen.
* Bug fix #124: GLX: Missing check on FBConfig X visual depthRichard Grenville2013-07-051-6/+22
| | | | | - Check FBConfig X visual depth, like Compiz, to fix issues with nvidia-drivers-325.08 . Thanks to guotsuan for reporting.
* Misc: OpenGL 3.0 compatibility & miscRichard Grenville2013-06-251-1/+2
| | | | | | | | - 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)
* Misc: --paint-exclude & #119Richard Grenville2013-06-195-11/+57
| | | | | | | | | | | - Add --paint-exclude to prevent certain windows from being painted, for debugging purposes. - Add predefined matching target "x", "y", "width", "height", "widthb", "heightb", "border_width", and "fullscreen". - Fix bug #119, wrong man page install dir in CMake configuration. Thanks to sstewartgallus for reporting.
* Feature #116: Shadow exclusion regionRichard Grenville2013-06-093-14/+167
| | | | | | | | - 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.