diff options
375 files changed, 174 insertions, 309283 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 75e7109..ea2aa85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,13 +1,9 @@ -project (compiz) +project (gtk-window-decorator) + +find_package (Compiz REQUIRED) -set (CMAKE_MODULE_PATH_ORIG ${CMAKE_MODULE_PATH}) -set (COMPIZ_CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) -set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${COMPIZ_CMAKE_MODULE_PATH}) include (CompizCommon) include (CompizPackage) -include (cmake/base.cmake) -include (CheckFunctionExists) - set (CMAKE_CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo;MinSizeRe" CACHE INTERNAL "" FORCE) if (NOT CMAKE_BUILD_TYPE) @@ -23,105 +19,20 @@ set (COMPIZ_VERSION_MICRO 2) set (COMPIZ_VERSION_MACRO 1) set (VERSION ${COMPIZ_VERSION_MAJOR}.${COMPIZ_VERSION_MINOR}.${COMPIZ_VERSION_MICRO}.${COMPIZ_VERSION_MACRO}) -set (DECOR_INTERFACE_VERSION 20080901) - -if (COMPIZ_PACKAGING_ENABLED) - set (prefix ${CMAKE_INSTALL_PREFIX} CACHE PATH "prefix") - set (exec_prefix ${CMAKE_INSTALL_PREFIX}/bin CACHE PATH "bindir") - set (libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "libdir") - set (includedir ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "includedir") - set (datadir ${CMAKE_INSTALL_PREFIX}/share CACHE PATH "datadir") -else (COMPIZ_PACKAGING_ENABLED) - set (prefix ${CMAKE_INSTALL_PREFIX} ) - set (exec_prefix ${CMAKE_INSTALL_PREFIX}/bin ) - set (libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}) - set (includedir ${CMAKE_INSTALL_PREFIX}/include ) - set (datadir ${CMAKE_INSTALL_PREFIX}/share ) -endif (COMPIZ_PACKAGING_ENABLED) - -set (compiz_plugindir ${libdir}/compiz) -set (compiz_imagedir ${datadir}/compiz/images) -set (compiz_metadatadir ${datadir}/compiz) -set (COMPIZ_I18N_DIR ${CMAKE_SOURCE_DIR}/po) - -set (ALL_LINGUAS af ar bg bn bn_IN bs ca cs cy da de el en_GB en_US es eu et fi fr gl gu he hi hr hu id it ja ka km ko lo lt mk mr nb nl or pa pl pt pt_BR ro ru sk sl sr sv ta tr uk vi xh zh_CN zh_TW zu) -set (GETTEXT_PACKAGE compiz) - -find_package (Boost 1.34.0 REQUIRED serialization) - -set (COMPIZ_REQUIRES - x11 - xext - xdamage - xcomposite - x11-xcb - xrandr - xinerama - xext - ice - sm - libxml-2.0 - libxslt - "libstartup-notification-1.0 >= 0.7" -) - -set (DECORATION_REQUIRES xrender) - -compiz_pkg_check_modules (COMPIZ REQUIRED ${COMPIZ_REQUIRES}) -compiz_pkg_check_modules (LIBDECORATION REQUIRED ${DECORATION_REQUIRES}) - -list (APPEND COMPIZ_LIBRARIES ${Boost_LIBRARIES}) +option (BUILD_GTK "Build GTK window decorator" 1) +option (BUILD_METACITY "Gtk-window-decorator metacity theme support" 1) -include (CompizDefaults) +compiz_set (USE_METACITY ${BUILD_METACITY}) -set (COMPIZ_CFLAGS "${COMPIZ_CFLAGS} -I${Boost_INCLUDE_DIR}") - -set (_compiz_package_string "Compiz ${VERSION}") -set (_compiz_package "Compiz") - -compiz_configure_file (${compiz_SOURCE_DIR}/config.h.core.in ${compiz_BINARY_DIR}/generated/config.h) - -compiz_configure_file ( - ${CMAKE_SOURCE_DIR}/include/compiz-common.h.in - ${CMAKE_BINARY_DIR}/generated/compiz-common.h -) - -install ( - FILES ${CMAKE_BINARY_DIR}/generated/compiz-common.h - DESTINATION ${COMPIZ_DESTDIR}${includedir}/compiz -) - -compiz_configure_file ( - ${CMAKE_SOURCE_DIR}/compiz.pc.in - ${CMAKE_BINARY_DIR}/compiz.pc - COMPIZ_REQUIRES - COMPIZ_CFLAGS -) - -install ( - FILES ${CMAKE_BINARY_DIR}/compiz.pc - DESTINATION ${COMPIZ_DESTDIR}${libdir}/pkgconfig -) - -add_subdirectory (cmake) -add_subdirectory (include) -add_subdirectory (images) -add_subdirectory (libdecoration) -add_subdirectory (gtk) -add_subdirectory (kde) -add_subdirectory (po) -add_subdirectory (metadata) add_subdirectory (src) -add_subdirectory (xslt) -add_subdirectory (plugins) -compiz_ensure_linkage () -compiz_package_generation ("Compiz") -compiz_add_uninstall () -compiz_add_git_dist () +compiz_print_configure_header ("Compiz GTK Window Decorator") +compiz_color_message ("\n${_escape}[4mFeatures:${_escape}[0m\n") -_print_configure_results () +compiz_print_result_message ("Metacity Theme Support" USE_METACITY) +compiz_print_configure_footer () -_check_compiz_cmake_macro (${CMAKE_MODULE_PATH_ORIG}) +compiz_add_uninstall () +compiz_package_generation ("Compiz GTK Window Decorator") diff --git a/COPYING.LGPL b/COPYING.LGPL deleted file mode 100644 index b124cf5..0000000 --- a/COPYING.LGPL +++ /dev/null @@ -1,510 +0,0 @@ - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations -below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it -becomes a de-facto standard. To achieve this, non-free programs must -be allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control -compilation and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at least - three years, to give the same user the materials specified in - Subsection 6a, above, for a charge no more than the cost of - performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply, and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License -may add an explicit geographical distribution limitation excluding those -countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms -of the ordinary General Public License). - - To apply these terms, attach the following notices to the library. -It is safest to attach them to the start of each source file to most -effectively convey the exclusion of warranty; and each file should -have at least the "copyright" line and a pointer to where the full -notice is found. - - - <one line to give the library's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or -your school, if any, to sign a "copyright disclaimer" for the library, -if necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James - Random Hacker. - - <signature of Ty Coon>, 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/COPYING.MIT b/COPYING.MIT deleted file mode 100644 index 69ef1bf..0000000 --- a/COPYING.MIT +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright © 2005 Novell, Inc. - -Permission to use, copy, modify, distribute, and sell this software -and its documentation for any purpose is hereby granted without -fee, provided that the above copyright notice appear in all copies -and that both that copyright notice and this permission notice -appear in supporting documentation, and that the name of -Novell, Inc. not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior permission. -Novell, Inc. makes no representations about the suitability of this -software for any purpose. It is provided "as is" without express or -implied warranty. - -NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN -NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, -NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION -WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
\ No newline at end of file diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index bbfa473..0000000 --- a/ChangeLog +++ /dev/null @@ -1,1795 +0,0 @@ -2006-06-21 David Reveman <davidr@novell.com> - - * src/window.c: Add updateTransientHint to protect against circular - transient dependencies. (bnc 186825) - -2006-06-20 David Reveman <davidr@novell.com> - - * src/window.c (addWindowSizeChanges): Constrain window - dimensions if they are too large. - - * gnome/window-decorator/gnome-window-decorator.c (get_mwm_prop): - Trap X errors. - -2006-06-20 Dan Winship <danw@novell.com> - - * configure.ac (ALL_LINGUAS): Add pl - -2006-06-16 David Reveman <davidr@novell.com> - - * plugins/compiz.schemas.in.in: Regen. - - * plugins/switcher.c: - * plugins/scale.c: Add modal dialogs and fullscreen windows - to default window types. (bnc 185749) - - * gnome/window-decorator/gnome-window-decorator.c: Track motif - WM hints and disable decorations when application wants no - titlebar. (bnc 185852) - -2006-06-15 David Reveman <davidr@novell.com> - - * plugins/cube.c (cubePaintTransformedScreen): Remove - PAINT_SCREEN_CLEAR_MASK from mask. - - * plugins/switcher.c (switchPaintScreen): Add PAINT_SCREEN_CLEAR_MASK - when zooming. (bnc 183676) - - * src/paint.c (paintTransformedScreen): Clear color buffer if - PAINT_SCREEN_CLEAR_MASK is present. - - * include/compiz.h: Add PAINT_SCREEN_CLEAR_MASK. - - * gnome/window-decorator/gnome-window-decorator.c: Add DM selection - support and --repalce option so it's possible to replace an - existing window decorator in the same way as it's possible to replace - a window manager. (bnc 185296) - (close_button_event): - (max_button_event): - (min_button_event): De-highlight on NotifyGrab. (bnc 185293) - -2006-06-12 Dan Winship <danw@novell.com> - - * plugins/cube.c: - * plugins/switcher.c: Mark cube as needing to load before switcher - rather than marking switcher as requiring cube. bnc #183676. - - * plugins/gconf-dump.c (dumpPluginOptions): Output load_before and - requires for all plugins, even if the list is empty, to ensure - that an empty value in a new release overrides a non-empty value - in an older release. - - * plugins/compiz.schemas.in.in: regen - -2006-06-09 Dan Winship <danw@novell.com> - - * configure.ac: add translations - -2006-06-09 David Reveman <davidr@novell.com> - - * plugins/move.c (moveHandleMotionEvent): Handle shaded windows - better. - - * src/window.c (maximizeWindow): - * src/event.c (handleEvent): Allow windows to be both maximized - and shaded. - - * src/window.c: Update addWindowSizeChanges so it can be used by - moveResizeWindow. - (updateWindowAttributes): Add missing sendSyncRequest call. - (addWindowSizeChanges): Make maximized window placement a bit better. - (moveResizeWindow): Adjust window geometry using - addWindowSizeChanges. (bnc 183121) - - * src/window.c: Only allow shading on windows with top decoration. - - * src/event.c (handleEvent): Check that shade action is allowed - before shading a window. - -2006-06-08 David Reveman <davidr@novell.com> - - * plugins/decoration.c (decorInitWindow): - * plugins/minimize.c (minInitWindow): - * src/window.c (addWindow): Handle initially shaded windows - correctly. - - * plugins/switcher.c (switchTerminate): Only use hideWindow - if switcher window is managed and mapped. - (switchInitiate): Only use showWindow if switcher window is - hidden. (bnc 182519) - - * plugins/minimize.c (minHandleEvent): Make sure we adjust the window - region correctly when it's being unshaded. - -2006-06-07 David Reveman <davidr@novell.com> - - * configure.ac: Bump version to 0.0.13. - - * plugins/compiz.schemas.in.in: Regen. - - * src/window.c: Add window shading support. - - * src/screen.c: - * src/paint.c: - * src/event.c: Adjust for window shading support. - (handleEvent): Handle RESTACK client messages with sibling None - correctly. - - * src/event.c: - * src/display.c: Add toggle window shade binding. - - * plugins/minimize.c: Add window shading animation support. - - * plugins/fade.c: - * plugins/place.c: - * plugins/resize.c: - * plugins/scale.c: - * plugins/switcher.c: - * plugins/decoration.c: Adjust for window shading support. - - * include/compiz.h: Add window shading support. - - * gnome/window-decorator/gnome-window-decorator.c: lower_window -> - restack_window and change it so it can be used for both - raising and lowering a window. - Add support for double_click_titlebar setting. - (title_event): Don't activate window on titlebar click only - raise it. Use double_click_action to determine what should be - done when titlebar is double clicked. - (update_event_windows): Remove vertical resize event windows - when top level window is shaded. - (window_state_changed): Update event windows when window state - changed. - - * gnome/window-decorator/gnome-window-decorator.c: - * gnome/compiz-window-manager.c: Add support for shade double click - setting. - - * plugins/compiz.schemas.in.in: Regen. - - * plugins/cube.c (cubePaintTransformedScreen): - * plugins/wobbly.c (wobblyDrawWindowGeometry): - * plugins/switcher.c (switchPaintWindow): - * src/paint.c (drawWindowGeometry): Disable client-side texture - coordinate arrays that are not used. (bnc #182430) - - * plugins/compiz.schemas.in.in: - * plugins/resize.c: - * plugins/move.c: Add initiate_keyboard binding which is more - appropriate for key-binding as it moves the cursor to middle of - window. - -2006-06-06 David Reveman <davidr@novell.com> - - * plugins/switcher.c: Track thumbnail damage correctly. - (switchPaintScreen): Only intercept paintScreen when screen is - grabbed or we're zooming and ss->translate > 0.001. - (switchPaintScreen): Paint switcher window correctly when we're - not zooming. - Add cube as a dependency to make sure background is rendered - correctly when zooming. - (bnc #181909) - - * src/window.c (moveResizeWindow, ensureWindowVisibility): - Don't make sure fullscreen windows are in workarea. - (fdo #7115) (bnc #181907) - - * src/event.c (handleEvent): Track XA_WM_CLASS property changes. - - * src/window.c: - * include/compiz.h: remove updateWindowClass and update - updateWindowClassHints. - -2006-06-02 David Reveman <davidr@novell.com> - - * configure.ac: Bump version to 0.0.12. - - * src/event.c (handleEvent): Fix typo. - - * gnome/window-decorator/gnome-window-decorator.c: - Hide tooltips on NotifyGrab. (bnc #180692) - -2006-06-01 Dan Winship <danw@novell.com> - - * src/event.c (handleEvent): If we receive a _NET_SHOWING_DESKTOP - request with no window set, set the flag on all screens. (Fixes - the KDE "show desktop" applet.) Also, don't allow a client to - change its _NET_WM_DESKTOP. - - * src/window.c (addWindow): Set _NET_WM_DESKTOP on all windows to - 0; KDE's pager and tasklist require this to be set. (bnc 178320) - -2006-06-01 David Reveman <davidr@novell.com> - - * include/compiz.h: - * src/window.c: Add updateWindowClass. - -2006-05-31 David Reveman <davidr@novell.com> - - * include/compiz.h: - * src/screen.c: - * src/display.c: Add hide_skip_taskbar_windows option. (bnc 180055) - - * include/compiz.h: - * src/window.c: Add getStartupId. - - * src/screen.c: Save initial viewport when startup notification - is received. Fix implementation of applyStartupProperties. - (bnc 180224) - - * src/event.c (handleEvent): Handle startup ID property changes. - - * plugins/place.c: Adjust work area to initial viewport. - - * plugins/cube.c (cubePaintTransformedScreen): Disable skydome - animation while cube is unfolded. (bnc 179833) - - * plugins/switcher.c (switchPaintWindow): Make sure selected window is - not clipped incorrectly when some window is transformed. (bnc 179828) - - * plugins/move.c (moveHandleEvent): Initialize xRoot and yRoot. - (bnc 179902) - - * src/Makefile.am (INCLUDES): Add @GL_CFLAGS@. (Eric Work) - -2006-05-30 Dan Winship <danw@novell.com> - - * configure.ac: Check libwnck for wnck_window_has_name (new in - HEAD). - - * gnome/window-decorator/gnome-window-decorator.c - (wnck_window_get_real_name): #if HAVE_WNCK_WINDOW_HAS_NAME, - redefine wnck_window_get_name to return NULL if the window only - has a fallback name. bnc 173059. - - * src/event.c (handleEvent): call moveInputFocusToOtherWindow() - before destroyWindow() when processing a DestroyNotify, or else - the input focus can get stranded. - -2006-05-26 David Reveman <davidr@novell.com> - - * plugins/compiz.schemas.in.in: Regen. - - * plugins/scale.c (SCALE_SLOPPY_FOCUS_DEFAULT): TRUE. - - * plugins/decoration.c (decorWindowUpdate): No drop-shadow decoration - on windows with below state. - - * src/window.c (recalcWindowType): Treat dock windows with below state - as normal windows. (bnc #178316) - - * plugins/cube.c (cubePaintTransformedScreen): Avoid optimized case - when more than 4 cube sides. - -2006-05-25 David Reveman <davidr@novell.com> - - * plugins/compiz.schemas.in.in: Regen. - - * src/window.c (moveResizeWindow): Don't adjust position for NorthWest - gravity. (bnc 178765) (fdo #6992) - - * plugins/compiz.schemas.in.in: - * include/compiz.h: - * src/event.c (handleEvent): - * src/display.c: Add maximize_window_horizontally, - maximize_window_vertically, toggle_window_maximized, - toggle_window_maximized_horizontally, - toggle_window_maximized_vertically. - - * src/event.c (handleEvent): Track changes to maximizeWindow function. - - * plugins/move.c (moveHandleMotionEvent): Make sure we have a saved - width before we use it. Track changes to maximizeWindow function. - - * plugins/wobbly.c (wobblyHandleEvent): Handle the case where - window is not both vertically and horizontally maximized better. - - * include/compiz.h: Add MAXIMIZE_STATE macro. - - * include/compiz.h: - * src/window.c: Remove unmaximizeWindow and make maximizeWindow - take a state mask so it can be used for both maximizing and - unmaximizing. - - * plugins/switcher.c: Don't add windows that appear after the switcher - is popped up. (bnc 178350) - (switchWindowRemove): Don't create a new list. Instead remove - window from the existing list and make sure we're positioned - correctly. - -2006-05-24 David Reveman <davidr@novell.com> - - * plugins/scale.c (scaleMoveFocusWindow): When moving to window on - left, make sure the window we're moving to is completely left of - currently selected window. And same thing when moving to window on - right, top, bottom. - (layoutThumbs): Set slot->x2 and slot->y2 correctly. (bnc 178216) - -2006-05-23 David Reveman <davidr@novell.com> - - * plugins/water.c: GL_UNSIGNED_INT_8_8_8_8_REV as pixel data type on - MSBFirst machines. - - * src/texture.c: Include config.h before compiz.h so that - IMAGE_BYTE_ORDER is defined correctly. (bnc 178171) - - * include/compiz.h: Define LSBFirst, MSBFirst, IMAGE_BYTE_ORDER, - BITMAP_BIT_ORDER. (bnc 178171) - -2006-05-23 Dan Winship <danw@novell.com> - - * plugins/switcher.c (switchToWindow): use ss->windows here as - well so that multiple activeNum==0 windows don't get skipped. - (switchTerminate): Remove the screen grab right away so that - keystrokes don't get dropped. bnc 177650 - (switchPreparePaintScreen, switchPaintScreen, - switchDonePaintScreen): update for that - -2006-05-22 Dan Winship <danw@novell.com> - - * src/window.c (moveResizeWindow): deal with both vertical and - horizontal struts; but not when moving a dock window - - * plugins/switcher.c (switchHandleEvent): Check init_all binding - before init, so you can bind "<Alt>" to init_all and so end up - with "<Alt>Tab" being init_all rather than init (but with no way - to get "init"...). bnc 173376 - -2006-05-21 David Reveman <davidr@novell.com> - - * src/display.c (addDisplay): Select for button events on root windows. - - * configure.ac: Bump version to 0.0.11. - - * gnome/window-decorator/gnome-window-decorator.c: Fix shadow - performance by separating the convolution filter into one vertical and - one horizontal pass. - - * src/window.c (mapWindow): Give sync request on map another try, it - seems to be working now. - - * src/window.c (addWindow): Allow XGetWindowAttributes to fail. - (bnc 173416). - - * src/window.c (addWindow): Initialize managed to false. Set managed - to true if widows is viewable. - - * src/event.c (handleEvent): Set managed to false when window - transitions to withdrawn state. - (handleEvent): Set managed to true when we get MapRequest. - (handleEvent): Constrain configure request if window is managed. - - * include/compiz.h: Add "managed" variable that is true while - windows is managed. - -2006-05-19 David Reveman <davidr@novell.com> - - * plugins/switcher.c (ICON_SIZE): Allow use of larger window icons. - -2006-05-18 Dan Winship <danw@novell.com> - - * plugins/wobbly.c (WOBBLY_FOCUS_DEFAULT): Set this to "None" to - match wobblyInitScreen() so that it actually works right. - - * plugins/compiz.schemas.in.in: regen - -2006-05-18 Dan Winship <danw@novell.com> - - * src/session.c (saveYourselfCallback): if we have a - RestartCommand registered with the session manager, update the - --sm-client-id in it to match the id we were assigned. bnc 176746 - - * src/main.c (main, usage): remove unused --sm-save-file arg and - fix documentation of --sm-client-id. - -2006-05-17 David Reveman <davidr@novell.com> - - * plugins/compiz.schemas.in.in: Regen (Overlay Icon). - - * plugins/switcher.c (switchPaintScreen): Don't remove switcher - from window list, just temporarily mark it as destroyed. This fixes - issue with switcher decorations disappearing when some window is - unmapped. - - * src/screen.c (updateDefaultIcon): width and height should be - unsigned. - - * gnome/window-decorator/gnome-window-decorator.c: Add minimal - option that can be used to run g-w-d with drop-shadows but without full - window decorations. - - * plugins/minimize.c (minHandleEvent): Restore window position - when transitioning to withdrawn state. - - * plugins/scale.c: Remove next_window binding and fix so that arrow - keys can be used to select window. - Focus new window when pointer enter window decorations and sloppy focus - is used. - Remove scaleSelectWindow. - - * plugins/scale.c: Icon support (Nat Friedman). - -2006-05-17 Dan Winship <danw@novell.com> - - * src/display.c (handleSelectionClear, eventLoop): don't process - exit-on-selection-clear until the event queue is empty, or else - MapRequest and ConfigureRequest events could get lost. bnc 175558 - -2006-05-14 David Reveman <davidr@novell.com> - - * src/event.c (handleEvent): mapNum might be 0 if we found the window - unmapped when trying to bind it to a texture. - -2006-05-12 David Reveman <davidr@novell.com> - - * src/screen.c (enterShowDesktopMode): Only go into show desktop mode - when some window is being hidden. - - * src/event.c (handleWindowDamageRect): Make sure placed is set to true - when no plugin is doing placement. - (handleEvent): Don't set WM_STATE on override redirect windows. - - * plugins/switcher.c (isSwitchWin): Don't show windows that ask not to - be in tasklists. - - * plugins/rotate.c (rotateHandleEvent): Only adjust viewport if window - has been placed. - - * plugins/minimize.c (minHandleEvent): Reset everything when going - into withdrawn state. - - * src/window.c (moveResizeWindow): Handle west and north gravity - correctly. - -2006-05-11 David Reveman <davidr@novell.com> - - * src/display.c (addDisplay): - * src/screen.c (addScreen): Move server grab to addDisplay to make - sure that no windows are created between XSelectInput and XQueryTree - as that would result in them being added two times. - - * src/window.c (moveResizeWindow): Fix typo, CWY should be CWX. - (moveResizeWindow): Constrain Y position so that window titlebar is - visible. - (restoreWindowGeometry): Fix issue with going from maximized state - to non-maximized state without changing the window size. - - * gnome/window-decorator/gnome-window-decorator.c - (max_window_name_width): Make sure title text fit in titlebar. - -2006-05-11 Dan Winship <danw@novell.com> - - * plugins/gconf-compiz-utils.c (gconfStringToBinding): Treat "" as - meaning "disabled" - -2006-05-11 David Reveman <davidr@novell.com> - - * gnome/window-decorator/gnome-window-decorator.c (action_menu_map): - Don't show window action menu on desktop and dock windows. - - * src/event.c (handleEvent): Allow click on window decorations - to trigger window action menu. - - * plugins/place.c (placeWindow): Place fullscreen and maximized - windows correctly. - (placeWindow): Only clip dialog position to screen if parent is - visible in current viewport. - -2006-05-09 David Reveman <davidr@novell.com> - - * plugins/switcher.c (switchPaintThumb): Rearrange code so we handle - the case when bindWindow fails. - - * src/paint.c (paintWindow): Bail out if window is not mapped. - - * src/window.c (bindWindow): Make sure window is mapped when - getting the window pixmap. (bnc 173248) - - * plugins/compiz.schemas.in.in: Regen. - - * plugins/cube.c (CUBE_MIPMAP_DEFAULT): Enable by default as - performance seem to be OK now when new mipmaps are only generated - when necessary. - - * src/texture.c (enableTexture): Don't generate new mipmaps - every time the texture is used. - -2006-05-08 David Reveman <davidr@novell.com> - - * plugins/switcher.c: Allow switcher to be initiated with prev - bindings. (Quinn Storm) - -2006-05-07 David Reveman <davidr@novell.com> - - * plugins/compiz.schemas.in.in: Regen. - - * plugins/switcher.c: Add icon support, minimized windows support - and allow switcher to show up when only one selectable window exist. - - * images/Makefile.am: Add default icon image. - - * include/compiz.h: - * src/texture.c: - * src/event.c (handleEvent): - * src/screen.c: - * src/display.c: - * src/window.c: Add WM icon interface. - - * gnome/window-decorator/gnome-window-decorator.c: Compute - switcher title text width correctly. - - * src/event.c (handleEvent): Insert windows correctly when - reparenting. - -2006-05-07 Dan Winship <danw@novell.com> - - * configure.ac: Add --with-scale-corner option and make - compiz.schemas reflect it; the best corner to use depends on where - the panels are and what's on them, so distros will want to - override this to match their default panel layout. - - * src/event.c (eventMatches): Fix the the "water plugin gets - mysteriously activated when activating some other keybinding" bug. - -2006-05-05 Dan Winship <danw@novell.com> - - * Makefile.am: - * autogen.sh: - * configure.ac: require intltool for option-description - translation - - * plugins/Makefile.am: translate compiz.schemas.in into - compiz.schemas - -2006-05-05 Dan Winship <danw@novell.com> - - * src/display.c (COMMAND_OPTION): Put numbers into the shortDescs - of the command and run_command options - - * plugins/wobbly.c (WOBBLY_SNAP_MODIFIERS_DEFAULT): Use Shift - rather than Control, for consistency with Metacity, and to remove - the ambiguity about whether Ctrl+Alt+Button1 should be "grab cube" - or "move with snapping". (bnc 169402) - - * plugins/compiz.schemas: regen - -2006-05-05 David Reveman <davidr@novell.com> - - * plugins/compiz.schemas: Regen. - - * gnome/window-decorator/gnome-window-decorator.c: Forward - metacity's bell settings to compiz. - - * plugins/water.c: - * plugins/wobbly.c: - * plugins/fade.c: Add visual bell. - - * include/compiz.h: - * src/display.c: Add audible bell option. - -2006-05-04 David Reveman <davidr@novell.com> - - * src/window.c (getModalTransient): Avoid infinite recursion when more - than one group transient got modal state. - -2006-05-03 David Reveman <davidr@novell.com> - - * plugins/move.c: - * plugins/resize.c (resizeHandleMotionEvent): Don't constrain the - cursor. - - * plugins/rotate.c (rotateHandleEvent): Use defaultViewportForWindow - to figure out which viewport we should move to. (bnc 152677) - - * src/window.c (addWindowSizeChanges): Offset x coordinate with - default viewport coordinate. (bnc 171465) - (updateWindowAttributes): Always add windows size changes. (bnc 171465) - - * include/compiz.h: - * src/window.c (defaultViewportForWindow): Add defaultViewportForWindow - function that computes the default viewport for a window. - -2006-05-02 David Reveman <davidr@novell.com> - - * plugins/cube.c (cubePaintTransformedScreen): Bump up size a bit more - to make sure the cube unfolds completely. - - * src/event.c (handleEvent): Not constraints should be applied to - ConfigureRequests for withdrawn windows. (bnc 171143) - - * src/window.c (syncWindowPosition): We never need to send synthetic - ConfigureNotify events as we're not reparenting windows. - -2006-05-02 Dan Winship <danw@novell.com> - - * plugins/gconf-dump.c: rewrite to make compiz.schema regeneration - a little easier, and to make it possible to generate schema files - for third-party plugins. Include plugin descriptions and - dependency information in the schema. - - * plugins/Makefile.am: add a rule to generate compiz.schemas - - * plugins/compiz.schemas: regen - - * plugins/cube.c, plugins/decoration.c, plugins/fade.c, - plugins/gconf.c, plugins/minimize.c, plugins/wobbly.c: - s/expose/scale/ in dependencies - -2006-05-02 David Reveman <davidr@novell.com> - - * include/compiz.h: - * configure.ac: Don't require glproto, include necessary enums in - compiz.h. - - * src/texture.c: - * include/compiz.h: Update to latest EXT_tfp spec. Requires an - X server that has also been updated. - - * configure.ac: Require glproto >= 1.4.7 with final EXT_tfp tokens. - -2006-05-01 David Reveman <davidr@novell.com> - - * src/window.c (circulateWindow): - * src/event.c (handleEvent): Use getTopWindow instead of - reverseWindows->id as reverseWindows might be a destroyed window. - - * include/compiz.h: - * src/screen.c: Add getTopWindow function that returns top window. - -2006-04-30 David Reveman <davidr@novell.com> - - * plugins/compiz.schemas: Regen. - - * plugins/decoration.c (decorWindowUpdate): Don't decorate fullscreen - windows. - - * plugins/cube.c: Add initial support for unfolding the cube. Default - key-binding is <Control><Alt>Down. - - * plugins/rotate.c (rotateHandleEvent): Fix absolute rotation. - - * plugins/switcher.c: Fix so that bring-to-front doesn't change - the actual stacking order. - Add zoom option, enable it by default so it gets some testing. - Made bring-to-front enabled by default as it makes zoom functionality - more useful. - Made switcher window always rendered above all other windows and - not affected by screen transformations. - - * src/event.c (handleEvent): Send configure notify before mapping - window if PPosition or USPosition is set. - - * src/screen.c (insertWindowIntoScreen): Sibling above doesn't have to - be mapped. This change seem to currently by causing the - stacking order of some override-redirect windows to be incorrect. - Don't insert window when aboveId doesn't match an existing window. - (removeScreenGrab): ifdef DEBUG around abort. - - * src/event.c (handleEvent): Only update active window property - when it's changing. - - * src/window.c (sendConfigureNotify): Make sure the latest - window attributes are put in the ConfigureNotify. - (moveResizeWindow): Only send sync request if window is mapped. - - * plugins/rotate.c: Add support for edge-flipping when using - drag-and-drop. Remove edge_flip and flip_move options and add - edge_flip_pointer, edge_flip_move, edge_flip_dnd. - - * src/screen.c: - * src/display.c: - * include/compiz.h: - Make screen edges drag-and-drop aware. - - * plugins/zoom.c: - * plugins/water.c: - * plugins/switcher.c: - * plugins/scale.c: - * plugins/rotate.c: - * plugins/resize.c: - * plugins/move.c: - * src/scren.c: - * include/compiz.h: - Variable argument list to otherScreenGrabExist, last argument must - be 0. - - * src/event.c: - * src/display.c: - * include/compiz.h: Add raise-on-click option. - - * gnome/window-decorator/gnome-window-decorator.c (title_event): - Activate window when clicking titlebar. - -2006-04-28 David Reveman <davidr@novell.com> - - * gnome/window-decorator/gnome-window-decorator.c: Back out last change - as it clearly didn't fix anything. XFixed being defined as "int" - is perfectly fine of course. libXrender is currently broken on 64bit. - See Bug #6774 for a fix. - (XRenderSetPictureFilter_wrapper): Add workaround for 64bit - issue in libXrender. (Dan Winship) - - * src/event.c (handleEvent): - * src/display.c: - * include/compiz.h: - Add show desktop binding. (Martin Szulecki) - - * plugins/rotate.c: Reset timout handle correctly. - - * plugins/move.c: - * plugins/resize.c: - * plugins/rotate.c: - * plugins/scale.c: - * plugins/switcher.c: - * plugins/water.c: - * plugins/zoom.c: Track screen grab changes changes. - - * src/screen.c: - * include/compiz.h: Associate all screen grabs with a name. Add - otherScreenGrabExist function which can be used to check if screen - is grabbed by other plugins. - -2006-04-28 Dan Winship <danw@novell.com> - - * src/event.c (eventMatches): new method that replaces EV_KEY and - EV_BUTTON. Tests if an event matches a binding, being more precise - about modifier state than EV_KEY and EV_BUTTON were. - (eventTerminates): Tests if an event is "the opposite" of a - binding. (Eg, button or modifier key release.) Replaces - CompReleaseMask and "terminate" bindings. - (handleEvent): Use eventMatches - - * src/screen.c (addPassiveKeyGrab, removePassiveKeyGrab, - updatePassiveKeyGrabs): When passed a keybinding containing just - modifiers, grab/ungrab every keypress event that would result in - that modifier state (eg, both left and right modifier keys, and - allow them to be pressed in any order). - - * src/display.c: Remove CompPressMask from default bindings. - (eventLoop): don't add virtual modifiers to event state. - (updateModifierMappings): store the XModifierKeymap for later - use. - - * plugins/*.c: Use eventMatches and eventTerminates. Remove - CompPressMask and "terminate" bindings (except from scale, which - is different from the others). - - * plugins/switcher.c: Make initiate_all be just the modifier key - used in addition to the initiate binding ("<Control>"). Remove - next_window since it doesn't make a lot of sense to have it be - different from initiate_all, and make prev_window be just a - modifier key as well. ("<Shift>"). - (SwitchScreen): add extra options to store the fully-composed - initiate_all, prev, and prev_all bindings. - (switchScreenInitOptions, switchSetScreenOption): Generate and - regenerate initiate_all, prev, and prev_all bindings as needed. - (switchHandleEvent): update - - * plugins/gconf-compiz-utils.c: Remove "<Release>" handling. - - * plugins/compiz.schemas: regen, dropping the terminate bindings - and updating a few others. - - * include/compiz.h: remove CompPressMask, CompReleaseMask, - EV_BUTTON, and EV_KEY. Add eventMatches, eventTerminates, and - keycodeToModifiers. Add modMap field to CompDisplay. - -2006-04-28 David Reveman <davidr@novell.com> - - * plugins/water.c: Handle enter/leave notify events. - - * plugins/decoration.c (decorInitWindow): Check for window specific - decoration on both mapped and unmapped windows so that initially - minimized windows get properly decorated. (Dan Winship) - - * gnome/window-decorator/gnome-window-decorator.c: Use xfixed_16_16_t - instead of XFixed to avoid 64bit issue with XFixed being defined as - "int". - - * configure.ac: xrender 0.8.4 is good enough. - -2006-04-27 Dan Winship <danw@novell.com> - - * plugins/rotate.c (rotateHandleEvent): for the - rotate-to-specific-face keys, rotate counterclockwise when that's - faster. (bnc 169427) - - * plugins/scale.c (scaleHandleEvent): Make the corners toggle - scale mode rather than only activating it. (bnc 169408) - -2006-04-27 David Reveman <davidr@novell.com> - - * configure.ac: Bump version to 0.0.10. - - * plugins/decoration.c: Remove debug variable. - - * src/window.c (addWindow): Check if window is minimized. (Dan Winship) - - * plugins/compiz.schemas: Regen (snapoff and maximize_effect). - - * plugins/wobbly.c: Add maximize effect. - - * plugins/zoom.c: - * plugins/water.c: - * plugins/rotate.c: - * plugins/resize.c: - * plugins/move.c: - * src/event.c: - * src/screen.c: - * src/display.c: - * include/compiz.h: Add proper warp pointer interface and update - all plugins to use it. - -2006-04-26 Dan Winship <danw@novell.com> - - * src/event.c (handleEvent): activate window on Button2 click in - addition to Button1 and Button3. - - * plugins/gconf.c (gconfSetOption): gconf_value_compare against - the old value for list-type options too. - (gconfInitOption): Change the call to gconf_client_get_entry to - request the default value again; the fix to gconfSetOption will - prevent the infinite loops that happened before. - -2006-04-26 David Reveman <davidr@novell.com> - - * gnome/window-decorator/gnome-window-decorator.c (update_shadow): - Remove comment that is no longer valid. - - * plugins/move.c: Support for maximized windows snap-off. Based on - patch by Colin Guthrie. - - * plugins/rotate.c (rotateHandleEvent): Don't do edge flipping - when a horizontally maximized or fullscreen window is grabbed. - - * plugins/zoom.c: - * plugins/rotate.c: - * plugins/resize.c: - * plugins/move.c: - * src/screen.c: - * include/compiz.h: Add warpPointerToScreenPos and use it everywhere - we want to invisibly warp the pointer. - -2006-04-25 David Reveman <davidr@novell.com> - - * gnome/window-decorator/gnome-window-decorator.c: - * plugins/decoration.c: Add clamp and min size. - - * plugins/decoration.c (decorReleaseDecoration): Fix memory leak. - - * plugins/scale.c: Click on background leaves scale mode and enters - show desktop mode. (Dan Winship) - - * plugins/minimize.c (minHandleEvent): Initialize scale and - translate properly. - - * src/window.c (activateWindow): - * src/event.c (handleEvent): - * src/screen.c: Add window parameter to leaveShowDesktopMode and - use this function for making one window leave show desktop mode. - Fixes so that we're leaving show desktop mode when no windows - are longer hidden. - - * plugins/scale.c (scaleSetScreenOption): Add missing break statement. - - * plugins/rotate.c (rotateInitScreen): Initialize rotateHandle. - - * src/paint.c (paintScreen): Only paint windows that have been - damaged. - -2006-04-24 Dan Winship <danw@novell.com> - - * plugins/scale.c: - * plugins/switcher.c: clarify the "initiate" descriptions - - * plugins/compiz.schemas: regen - -2006-04-24 David Reveman <davidr@novell.com> - - * src/paint.c (paintScreen): Always call paintWindow when window - is visible. Fixes so that window animations (fade, minimize...) aren't - paused when if window becomes invisible. - (paintWindow): Return early if region is empty. - - * plugins/switcher.c: Use hideWindow and showWindow so that the - decoration doesn't have to be redrawn every time the switcher window - is mapped. - - * src/window.c: - * include/compiz.h: Add hidden flag, that can be used to hide windows - without minimizing them. - - * plugins/compiz.schemas: Regen (drop-shadow options). - - * configure.ac: xrender 0.9, required for g-w-d. - - * gnome/window-decorator/gnome-window-decorator.c: - * plugins/decoration.c: Add configurable drop-shadows. A minor issue is - that shadows around "tiny" windows are not rendered correctly when - large shadow offsets are used. Solution is to have the decorator set - a minimum size for which a decoration can be used so that no shadows - are rendered around "tiny" windows. - -2006-04-20 Dan Winship <danw@novell.com> - - * plugins/rotate.c: add 12 go-directly-to-cube-face and 12 - go-directly-to-cube-face-with-window bindings. - - * src/display.c (compDisplayInitOptions): fix the binding type on - WINDOW_MENU. - - * plugins/compiz.schemas: Regen. (lower_window, window_menu, - scale_image, images, resize, flip_move, move_window_types, and the - new rotate bindings) - -2006-04-20 David Reveman <davidr@novell.com> - - * src/window.c: - * src/event.c (handleEvent): - * src/display.c: - * include/compiz.h: - * gnome/window-decorator/gnome-window-decorator.c: Add force quit - dialog. - - * plugins/resize.c: Changed default binding to Button2. - - * src/display.c (LOWER_WINDOW_BUTTON_DEFAULT): Button2 -> 6. - - * gnome/window-decorator/gnome-window-decorator.c: - * include/compiz.h: - * src/event.c (handleEvent): - * src/display.c: Add window menu binding. - - * gnome/window-decorator/gnome-window-decorator.c: Pick up toolkit - actions from compiz and send gnome panel actions for "main menu" and - "run dialog" actions. - - * src/event.c (handleEvent): - * src/screen.c: - * include/compiz.h: - * src/display.c (addDisplay): panel action -> toolkit action. - - * src/window.c (getModalTransient): Group transient must not be an - ancestor to the window we've currently found as the window to focus. - (getModalTransient): Check for child modal transient. - -2006-04-19 David Reveman <davidr@novell.com> - - * gnome/compiz-window-manager.c: Be nice to gnome-theme-manager - and return a theme even though we currently don't support it. - - * include/compiz.h: - * src/main.c: Remove window-image option. - - * include/compiz.h: - * plugins/water.c: - * plugins/cube.c: - * src/texture.c: - * src/paint.c: - * src/main.c: Add strict-binding option. - -2006-04-18 Dan Winship <danw@novell.com> - - * src/event.c (handleEvent): Fix a crasher in the screenshot - binding code (and rename some of the #defines to make them not so - ridiculously long). Also temporarily hack around a bug in EV_KEY - by putting the check for WINDOW_SCREENSHOT before the check for - SCREENSHOT. - - * plugins/scale.c: Change the keybinding again, now to "Pause". - (F11 is the "fullscreen mode" binding for many apps.) - - * plugins/compiz.schemas: update - - * plugins/gconf.c: - * plugins/gconf-compiz-utils.c: - * plugins/gconf-dump.c: Rearrange #includes to prevent warning - about TRUE and FALSE being redefined - -2006-04-18 David Reveman <davidr@novell.com> - - * plugins/rotate.c (ROTATE_FLIPMOVE_DEFAULT): Changed to TRUE. - - * src/window.c (recalcWindowActions): Remove maximize and fullscreen - actions when resizing isn't allowed. - - * gnome/window-decorator/gnome-window-decorator.c: Dynamic positioning - of window buttons. - - * plugins/cube.c (readSvgToTexture): Fix typo. - - * plugins/resize.c: Constrain cursor movement to min/max window size. - - * src/window.c (constrainNewWindowSize): Fix aspect ratio calculations. - -2006-04-17 David Reveman <davidr@novell.com> - - * plugins/cube.c: Put PNG on top face by default. - - * images/Makefile.am: Remove window.png. - Add novell.png. - - * include/compiz.h: - * src/readpng.c: Add openImageFile. - - * plugins/cube.c: Support for PNGs on top face. - Add scale image option which is used to determine if top face - image should be scaled or not. - -2006-04-15 David Reveman <davidr@novell.com> - - * plugins/wobbly.c: Add modal dialog type to default list of windows - that should be wobbly when moved. - - * plugins/water.c (SET): +1 for border. - -2006-04-14 Dan Winship <danw@novell.com> - - * plugins/gconf-dump.c: add "water" to gconfDeps - - * plugins/compiz.schemas: regen including the water options - -2006-04-14 David Reveman <davidr@novell.com> - - * src/event.c (handleWindowDamageRect): Ignore damage from windows - that aren't redirected. - - * include/compiz.h: - * src/window.c: - * src/display.c (eventLoop): - * src/screen.c: Add support for automatic unredirecting of fullscreen - windows. - - * plugins/scale.c (scaleInitiate): Layout thumbnails before we - grab the screen to make sure some window exist. - - * plugins/resize.c: Allow 4-way resize. (Mike Hearn) - -2006-04-13 Dan Winship <danw@novell.com> - - * src/screen.c (panelAction): take a timestamp and pass that to - the panel rather than using CurrentTime - - * src/event.c (handleEvent): update for that - - * src/window.c (moveResizeWindow): fix the gravity handling so - self-resizing windows don't dance (although I'm pretty sure this - is a symptom of mishandling gravity somewhere else). - - * plugins/gconf.c (gconfInitOption): Request the default value of - the key from gconf, rather than initializing the key to the - internal default value if it hasn't yet been set by the user. - Notably, this makes it so that "compiz gconf" on a new account - will use the default value of active_plugins rather than the - (effectively empty) list of plugins on the command line. (It also - makes it so that the sysadmin can override defaults via sabayon or - whatever.) - -2006-04-13 David Reveman <davidr@novell.com> - - * src/window.c (mapWindow): Maybe not, disable it again. :( - - * src/window.c (mapWindow): Enable draw synchronization on map - again. Should be working correctly with CVS version of X server. - -2006-04-12 Dan Winship <danw@novell.com> - - * src/window.c (moveResizeWindow): move duplicated code from - _NET_MOVERESIZE_WINDOW and ConfigureRequest handlers in event.c to - here, and handle gravity as well. (Fixes bnc 163058.) - (updateWindowAttributes): Do nothing if the window is - override_redirect (and remove a few now-redundant checks of that - elsewhere). Previously we were forgetting to check - !override_redirect in the case where the motif hints changed. (bnc - 163931) - (getWindowUserTime): fix a cut-and-paste-o that caused a crash on - 64bit machines. - - * src/event.c (handleEvent): fix the _NET_MOVERESIZE_WINDOW bit - manipulation to correspond to what the EWMH means rather than what - it says, and use moveResizeWindow for that and for - ConfigureRequest. - - * plugins/gconf-compiz-utils.c (gconfBindingToString): DTRT with - "None" bindings. - - * gnome/window-decorator/gnome-window-decorator.c (title_event): - if the user right-clicks on the titlebar while the context menu is - popped up, just pop it down and eat the click, like all other - GNOME context menus do. - (style_changed, value_changed): Don't add decorations to - previously-undecorated windows. (bnc 165393) - -2006-04-11 David Reveman <davidr@novell.com> - - * src/screen.c (addScreen): Fix typo. - -2006-04-10 Dan Winship <danw@novell.com> - - * src/window.c (focusWindowOnMap): new function to decide whether - or not to focus a newly-mapped window. In addition to the old - checks, this also checks that _NET_WM_USER_TIME isn't 0, to allow - a window to explicitly request to not get focus. - - * src/event.c (handleEvent): use focusWindowOnMap when processing - MapRequest. - - * plugins/rotate.c (rotateHandleEvent): fix _NET_ACTIVE_WINDOW - handling so this doesn't interfere with focusable panel applets. - - * plugins/compiz.schemas: regen (fixing cube top/bottom color) - - * plugins/gconf-dump.c: Handle CompOptionTypeColor. - - * configure.ac: Add --enable-gconf-dump so that the gconf-dump - plugin doesn't get built in normal builds - - * plugins/Makefile.am: make gconf-dump optional. - -2006-04-09 Dan Winship <danw@novell.com> - - * plugins/gconf-dump.c: add plugin options, and add information - about restrictions (numeric ranges, specific string values) to the - long description. Make gconf-dump refuse to run if gconf is - running (since you want the defaults it writes out to be coming - from the defaults in the source code, not from any gconf - overrides). - - * plugins/compiz.schemas: regen - - * plugins/gconf.c (gconfGetOptionValue): don't call gconfSetOption - from here, or we'll get an infinite loop when anything changes - -2006-04-09 David Reveman <davidr@novell.com> - - * include/compiz.h: - * src/display.c: - * src/main.c: - * src/screen.c: - * src/texture.c: - * src/window.c: Remove test mode. - - * plugins/Makefile.am: Remove schema from CLEANFILES. - - * plugins/compiz.schemas: - * src/display.c: - Improve documentation for runcommand keys slightly. (Mike Hearn) - - * include/compiz.h: - * src/texture.c: - * src/screen.c (addScreen): Switch to using GLX 1.3 functions. - (James Jones) - - * src/main.c: Indirect rendering option. (James Jones) - -2006-04-08 David Reveman <davidr@novell.com> - - * plugins/water.c: Add rain delay option. (Emilie Roberts) - -2006-04-07 David Reveman <davidr@novell.com> - - * plugins/gconf-dump.c: Dump list options correctly. - - * plugins/rotate.c: Add flip_move option, edge flipping is only - used when moving windows if this option is enabled. - (rotateHandleEvent): Make we don't rotate when some other plugin - has grabbed the screen. - - * plugins/scale.c: Change default key-binding to F11. - (scaleInitiate): Make sure screen isn't grabbed by some other plugin. - (scaleInitScreen): Initialize darkenBack properly. - - * configure.ac: Bump version to 0.0.9. - - * plugins/Makefile.am (CLEANFILES, EXTRA_DIST): Fix. - - * plugins/rotate.c (ROTATE_SPEED_DEFAULT): 1.5. - -2006-04-07 Dan Winship <danw@novell.com> - - (Much of this patch was written by Radek Doulik - <rodo@novell.com>.) - - * src/display.c: - * src/event.c: - * src/screen.c: Move keybinding stuff to CompDisplay, making it no - longer settable per-screen. Add bindings for screenshots (for - compatibility with metacity, which handles that keybinding in - GNOME for historical reasons). - - * include/compiz.h: add an explicit CompBindingTypeNone rather - than relying on modifiers==0 to mean none. Update bindings stuff. - - * src/screen.c (removePassiveKeyGrab, removePassiveButtonGrab): - Fix these to remove the right grab rather than always removing the - most-recently-added one. - (addScreenBinding): deal with CompBindingTypeNone - - * plugins/gconf-dump.c: hacky plugin to dump information about the - other plugins to a gconf schemas file (used to regenerate - compiz.schemas) - - * plugins/gconf-compiz-utils.c: shared code between gconf.c and - gconf-dump.c - - * plugins/Makefile.am: add gconf-dump plugin and compiz.schemas, - and code to install compiz.schemas. - - * configure.ac: Update gconf test to set macros needed for schema - install. - -2006-04-07 David Reveman <davidr@novell.com> - - * plugins/rotate.c: Add edge flipping support. - - * plugins/scale.c: Allow corner screen edges to be used for - initiating scale mode. - - * src/option.c (compSetBoolOption): Only return TRUE if value changed. - - * src/screen.c: - * src/window.c: - * plugins/minimize.c: - * plugins/decoration.c: - * include/compiz.h: Add immediate argument to MoveNotify, immediate - means that any animations should be avoided. - - * src/screen.c: - * plugins/water.c: - * plugins/resize.c: - * plugins/place.c: - * plugins/move.c: - * plugins/zoom.c: - * plugins/rotate.c: - * plugins/scale.c: - * src/event.c: - * include/compiz.h: - Add previous pointer position that can be shared between multiple - plugins. - -2006-04-06 David Reveman <davidr@novell.com> - - * include/compiz.h: - * src/screen.c: Add screen edges and simple interface for enabling - and disabling them. - - * plugins/switcher.c (switchDamageWindowRect) - (switchWindowRemove): Update switcher list even when screen isn't - grabbed. - - * plugins/switcher.c (switchDamageWindowRect): - * include/compiz.h: - * src/event.c (handleEvent): - * src/window.c: Made it possible to select if window should be - stacked above fullscreen windows or not. - - * src/window.c (findSiblingBelow): Only find a fullscreen sibling - if aboveFs is TRUE. - (activateWindow): Allow stacking of window above fullscreen windows - when being activated. - -2006-04-05 David Reveman <davidr@novell.com> - - * plugins/water.c (fboEpilogue): Reset raster position. Avoids - an FBO/raster-position issue found in newer nvidia drivers. - - * plugins/move.c: Add constrain_y option that constrains window - movement so that top of window is always visible (on by default). - - * src/event.c (handleEvent): Change active window property even though - it's not different than the window we currently have as active. - - * src/window.c (moveInputFocusToWindow): Set focus even though - the window is considered the active window. - -2006-04-03 David Reveman <davidr@novell.com> - - * plugins/water.c: Use char everywhere instead. - Fix offset direction (P-a Bäckström). - Add offset scale option. - - * plugins/water.c: (loadFragmentProgram): GLubyte -> const GLbyte. - (loadWaterProgram): char -> GLbyte. - (loadBumpMapProgram): char -> GLbyte. - Use char everywhere. - - * configure.ac: Bump version to 0.0.8. - - * plugins/water.c: Add simple rain effect. - (loadFragmentProgram): Clear any previous error. - - * src/display.c: Change so that timeouts are not only triggered - when we're idle. - -2006-04-02 David Reveman <davidr@novell.com> - - * plugins/water.c: Add scale and bias to normal so that light can be - computed correclty. Offset texture coordinates for nice refraction - |