debian/0000775000000000000000000000000012517210245007167 5ustar debian/libmetacity-dev.install0000664000000000000000000000010212277143773013650 0ustar usr/include usr/lib/lib*.a usr/lib/lib*.so usr/lib/pkgconfig/*.pc debian/metacity-message.10000664000000000000000000000337512277143773012540 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH METACITY\-MESSAGE 1 "28 August 2002" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME METACITY\-MESSAGE \- a command to send a message to Metacity .SH SYNOPSIS .B METACITY\-MESSAGE [restart|reload\-theme|enable\-keybindings|disable\-keybindings] .SH DESCRIPTION This manual page documents briefly the .B metacity\-message\fP. This manual page was written for the Debian distribution because the original program does not have a manual page. .PP .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. \fBmetacity\-message\fP send a specified message to \fBmetacity\fP(1). .SH OPTIONS .TP .B restart Restart \fBmetacity\fP(1) which is running. .TP .B reload-theme Reload a theme which is specified on gconf database. .TP .B enable-keybindings Enable all of keybindings which is specified on gconf database. .TP .B disable-keybindings Disable all of keybindings which is specified on gconf database. .SH SEE ALSO .BR metacity (1) .SH AUTHOR This manual page was written by Akira TAGOH , for the Debian GNU/Linux system (but may be used by others). debian/control0000664000000000000000000000727712517210420010602 0ustar # This file is autogenerated. DO NOT EDIT! # # Modifications should be made to debian/control.in instead. # This file is regenerated automatically in the clean target. Source: metacity Section: x11 Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian GNOME Maintainers Uploaders: Debian GNOME Maintainers , Jeremy Bicha Build-Depends: cdbs (>= 0.4.41), debhelper (>= 8), dh-autoreconf, intltool (>= 0.34.90), libgtk2.0-dev (>= 2.24.0), libpango1.0-dev (>= 1.2.0), libcanberra-gtk-dev, gsettings-desktop-schemas-dev (>= 3.3.0), libglib2.0-dev (>= 2.25.10), libstartup-notification0-dev (>= 0.7), libgtop2-dev, libxcomposite-dev (>= 1:0.2), libxfixes-dev, libxrender-dev, libxdamage-dev, libxcursor-dev, libxt-dev, libx11-dev, libxinerama-dev, libxext-dev, libxrandr-dev, libsm-dev, libice-dev, zenity, yelp-tools, gnome-pkg-tools (>= 0.10) Standards-Version: 3.9.3 Vcs-Bzr: http://code.launchpad.net/~ubuntu-desktop/metacity/ubuntu Package: metacity Section: x11 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libmetacity-private0a (= ${binary:Version}), metacity-common (= ${source:Version}), gsettings-desktop-schemas (>= 3.3.0), zenity, gnome-icon-theme Provides: x-window-manager Recommends: gnome-session | x-session-manager, Suggests: gnome-control-center (>= 1:3.4.0), gnome-themes-standard, xdg-user-dirs Description: lightweight GTK+ window manager Metacity is a small window manager, using GTK+ to do everything. . As the author says, metacity is a "Boring window manager for the adult in you. Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios." . This package contains the core binaries. Package: libmetacity-private0a Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, metacity-common (= ${source:Version}) Breaks: libmetacity-private0 Replaces: libmetacity-private0 Description: library for the Metacity window manager Metacity is a small window manager, using GTK+ to do everything. . As the author says, metacity is a "Boring window manager for the adult in you. Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios." . This package contains the shared library. Package: metacity-common Section: misc Architecture: all Depends: ${misc:Depends} Description: shared files for the Metacity window manager Metacity is a small window manager, using GTK+ to do everything. . As the author says, metacity is a "Boring window manager for the adult in you. Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios." . This package contains the shared files. Package: libmetacity-dev Section: libdevel Architecture: any Depends: ${misc:Depends}, libmetacity-private0a (= ${binary:Version}), libgtk2.0-dev Description: development files for the Metacity window manager Metacity is a small window manager, using GTK+ to do everything. . As the author says, metacity is a "Boring window manager for the adult in you. Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios." . This package contains the development files. debian/metacity-common.sgmlcatalogs0000664000000000000000000000010712277143773014712 0ustar debian/metacity-common.catalog /usr/share/sgml/metacity-common/catalog debian/control.in0000664000000000000000000000667012277143773011226 0ustar Source: metacity Section: x11 Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian GNOME Maintainers Uploaders: @GNOME_TEAM@ Build-Depends: cdbs (>= 0.4.41), debhelper (>= 8), dh-autoreconf, intltool (>= 0.34.90), libgtk2.0-dev (>= 2.24.0), libpango1.0-dev (>= 1.2.0), libcanberra-gtk-dev, gsettings-desktop-schemas-dev (>= 3.3.0), libglib2.0-dev (>= 2.25.10), libstartup-notification0-dev (>= 0.7), libgtop2-dev, libxcomposite-dev (>= 1:0.2), libxfixes-dev, libxrender-dev, libxdamage-dev, libxcursor-dev, libxt-dev, libx11-dev, libxinerama-dev, libxext-dev, libxrandr-dev, libsm-dev, libice-dev, zenity, yelp-tools, gnome-pkg-tools (>= 0.10) Standards-Version: 3.9.3 Vcs-Bzr: http://code.launchpad.net/~ubuntu-desktop/metacity/ubuntu Package: metacity Section: x11 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libmetacity-private0a (= ${binary:Version}), metacity-common (= ${source:Version}), gsettings-desktop-schemas (>= 3.3.0), zenity, gnome-icon-theme Provides: x-window-manager Recommends: gnome-session | x-session-manager, Suggests: gnome-control-center (>= 1:3.4.0), gnome-themes-standard, xdg-user-dirs Description: lightweight GTK+ window manager Metacity is a small window manager, using GTK+ to do everything. . As the author says, metacity is a "Boring window manager for the adult in you. Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios." . This package contains the core binaries. Package: libmetacity-private0a Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, metacity-common (= ${source:Version}) Breaks: libmetacity-private0 Replaces: libmetacity-private0 Description: library for the Metacity window manager Metacity is a small window manager, using GTK+ to do everything. . As the author says, metacity is a "Boring window manager for the adult in you. Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios." . This package contains the shared library. Package: metacity-common Section: misc Architecture: all Depends: ${misc:Depends} Description: shared files for the Metacity window manager Metacity is a small window manager, using GTK+ to do everything. . As the author says, metacity is a "Boring window manager for the adult in you. Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios." . This package contains the shared files. Package: libmetacity-dev Section: libdevel Architecture: any Depends: ${misc:Depends}, libmetacity-private0a (= ${binary:Version}), libgtk2.0-dev Description: development files for the Metacity window manager Metacity is a small window manager, using GTK+ to do everything. . As the author says, metacity is a "Boring window manager for the adult in you. Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios." . This package contains the development files. debian/metacity-theme-viewer.10000664000000000000000000000224512277143773013510 0ustar .\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection .\" other parms are allowed: see man(7), man(1) .\" .\" Based on template provided by Tom Christiansen . .\" .TH METACITY-THEME-VIEWER 1 "1 June 2004" .SH NAME metacity-theme-viewer \- view metacity themes .SH SYNOPSIS .B metacity-theme-viewer [ .I THEMENAME ] .SH DESCRIPTION .\" Putting a newline after each sentence can generate better output. .B metacity-theme-viewer allows you to preview any installed Metacity theme. .PP When designing a new Metacity theme, you can use .B metacity-theme-viewer to measure the performance of a window frame option, and to preview the option. .SH OPTIONS .TP .I THEMENAME Name of the theme to be shown (\fIAtlanta\fR by default). It is case-sensitive. .SH FILES .br .nf .TP .I /usr/share/themes system themes directory .TP .I /usr/share/themes/*/metacity-1/metacity-theme-1.xml theme specification file .SH AUTHOR This manual page was written by Jose M. Moya , for the Debian GNU/Linux system (but may be used by others). .SH "SEE ALSO" .\" Always quote multiple words for .SH .BR metacity (1), .BR metacity-window-demo (1). debian/changelog0000664000000000000000000011760012517210245011046 0ustar metacity (1:2.34.13-0ubuntu4.1) trusty; urgency=medium * Backport upstream patch to not grab keybindings without modmask (LP: #1440570, thanks to Alberts Muktupāvels). -- Marc Deslauriers Sun, 26 Apr 2015 12:21:17 -0400 metacity (1:2.34.13-0ubuntu4) trusty; urgency=low * debian/patches/22_fix_above_tab_switching.patch: - For Above_Tab, don't compare keysym (fixes group switching). (LP: #907640) -- Jeffrey Knockel Wed, 22 Jan 2014 22:28:15 -0700 metacity (1:2.34.13-0ubuntu3) trusty; urgency=medium * Build-depend on and use dh-autoreconf to get new libtool macros. -- Adam Conrad Sat, 21 Dec 2013 11:43:14 -0700 metacity (1:2.34.13-0ubuntu2) saucy; urgency=low * debian/patches/git_support_new_schemas.patch: - Backport patch to support gsettings-desktop-schemas 3.8 Thanks Dmitry Shachnev for the patch! -- Jeremy Bicha Fri, 31 May 2013 19:30:20 -0400 metacity (1:2.34.13-0ubuntu1) raring; urgency=low * New upstream release -- Robert Ancell Tue, 13 Nov 2012 10:03:56 +1300 metacity (1:2.34.8-0ubuntu4) quantal; urgency=low * debian/metacity-common.gsettings-override: - Dropped, override moved to ubuntu-default-settings -- Jeremy Bicha Tue, 11 Sep 2012 19:49:40 -0400 metacity (1:2.34.8-0ubuntu3) quantal; urgency=low * debian/metacity-common.gsettings-override: - Fix window button layout on GNOME Classic to match Unity -- Jeremy Bicha Fri, 07 Sep 2012 09:09:34 -0400 metacity (1:2.34.8-0ubuntu2) quantal; urgency=low * debian/metacity-common.install: - Install help from new location -- Robert Ancell Thu, 06 Sep 2012 14:48:07 +1200 metacity (1:2.34.8-0ubuntu1) quantal; urgency=low * New upstream bugfix release * debian/control: - Replace build-depends on gnome-doc-utils to yelp-tools -- Robert Ancell Thu, 06 Sep 2012 13:47:24 +1200 metacity (1:2.34.5-0ubuntu1) quantal; urgency=low * New upstream release -- Robert Ancell Tue, 28 Aug 2012 15:28:34 +1200 metacity (1:2.34.3-3ubuntu1) quantal-proposed; urgency=low * Resync with Debian & refresh patches. (LP: #1032120, LP: #1035261) Remaining changes: * debian/control: - Suggest gnome-themes-standard instead of recommend - Add Vcs-Bzr link * debian/metacity-common.gsettings-override: - Set Ubuntu default button layout order for Classic session - Drop previous gconf overrides as obsolete * debian/patches/04_support_drag_drop_with_alt_tab.patch: - Support alt-tab during drag and drop. * debian/patches/05_raise_on_click_for_click_mode.patch: - Use raise on click option. * debian/patches/06_Add_UXD_shadows_and_borders.patch: - patch for a new key in the ubuntu theme for shows and borders * debian/patches/10_no-ws-switcher.patch: - Don't show the workspace switcher if we only have one. * debian/patches/12_dont-show-as-user.patch: - Don't show "as user" in title bar. * debian/patches/13_better_support_for_button_layout.patch: - Corrected support for buttons backgrounds with transparency * debian/patches/14_wrong_colormap.patch: - Use correct colormap to avoid crash with client side decorations * debian/patches/20_do-not-place-windows-over-the-launcher.patch: - Try to avoid an already visible launcher in intellihide mode when initially positioning new windows. * debian/patches/21_fix_compositing_startup.patch: Fix some weird rendering effect at startup with compositing activated * debian/patches/100_fade_on_long_title.patch: - Fade on the end if the title is too long. * debian/patches/102_workarea.patch, debian/patches/103_struts_in_the_middle.patch, debian/patches/104_workarea_union.patch: - Add barriers and multimonitor strut support for unity-2d * debian/patches/104_workarea_union.patch: - Ensure each screen_region generated by meta_rectangle_get_minimal_spanning_set_for_region is not outside the xinerama screens * Dropped patch: - 11_hide_tooltip_on_decorator.patch: Obsolete * debian/patches/03_strict_focus.patch: - Disabled. This needs gsettings-desktop-schemas to be patched if we want to bring this back * Disabled Unity 2D-related patches that need porting to gsettings: - 15_show_maximized_titlebars.patch - 16-capture-before-unmap.patch - 17-workspace-switcher-cycle.patch - 18-auto-maximize-windows.patch - 19_add_unity_hud_configuration.patch - 101_override_gconf_settings.patch -- Jeremy Bicha Thu, 23 Aug 2012 11:12:43 -0400 metacity (1:2.34.3-3) unstable; urgency=low [ Josselin Mouette ] * 01_focus_new_window.patch: new patch from upstream bugzilla. Correctly focus new windows even when they appear behind an ?^?^?always on top?^?^? window. Closes: #515577. [ Michael Biebl ] * Rebuild with xz compression for binary packages. -- Michael Biebl Tue, 07 Aug 2012 01:37:33 +0200 metacity (1:2.34.3-2) unstable; urgency=low * Upload to unstable. * Replace Suggests: gnome-themes with Recommends: gnome-themes-standard since Adwaita is the preferred window manager theme and we want it to be installed by default. * Use strict dependency between metacity/libmetacity-private0a and metacity-common to ensure we have the correct version of metacity-common providing the org.gnome.metacity gsettings schema. -- Michael Biebl Wed, 30 May 2012 12:33:45 +0200 metacity (1:2.34.3-1) experimental; urgency=low * New upstream release. * Bump Build-Depends on libgtk2.0-dev to (>= 2.24.0) and libglib2.0-dev to (>= 2.25.10). * Replace libgconf2-dev Build-Depends with gsettings-desktop-schemas-dev (>= 3.3.0). * Replace libgnome2-common Depends with gsettings-desktop-schemas (>= 3.3.0). * Bump Suggests gnome-control-center to (>= 1:3.4.0). * Install GSettings schemas and GConf conversion script. * Bump Standards-Version to 3.9.3. * Update Vcs-* URLs. -- Michael Biebl Mon, 14 May 2012 19:09:58 +0200 metacity (1:2.34.1-2) unstable; urgency=low [ Josselin Mouette ] * Depend on gnome-icon-theme. Closes: #638141. [ Michael Biebl ] * Use a strict dependency between metacity and libmetacity-private. * Due to incompatible changes in libmetacity-private, which broke reverse dependencies like compiz, rename the library package to libmetacity-private0a. Closes: #629310 * Add Breaks/Replaces: libmetacity-private0 to libmetacity-private0a. * Add a lintian override for the package-name-doesnt-match-sonames warning. * debian/watch: Track .xz tarballs. -- Michael Biebl Tue, 25 Oct 2011 14:31:59 +0200 metacity (1:2.34.1-1) unstable; urgency=low * New upstream release. * debian/watch: - Don't run uupdate. - Switch to .bz2 tarballs. * Bump debhelper compatibility level to 8. - Update Build-Depends on debhelper. - Strip debian/tmp/ from .install files. * debian/control.in: - Bump Standards-Version to 3.9.2. No further changes. - Remove old Conflicts and Replaces which are no longer necessary. * Remove debian/patches/01_Wcast-align.patch and dh-autoreconf usage. The package no longer builds with -Werror so this is not necessary anymore. -- Michael Biebl Wed, 20 Jul 2011 12:52:05 +0200 metacity (1:2.34.0-1) unstable; urgency=low [ Josselin Mouette ] * Depend on libgnome2-common for the GConf schemas. This will be necessary until metacity is ported to GSettings. [ Martin Pitt ] * debian/control.in: Add missing Vcs-* fields. [ Josselin Mouette ] * New upstream release. + Fixes interaction with Java/Tk applications. Closes: #512401. * Bump GTK+ build-dependency. * 02_restart_hint.patch, 04_gdk_grab_tracking.patch, 05_36_workspaces.patch: dropped, merged upstream. * 90_autotools.patch, 99_ltmain_as-needed.patch: dropped. * Use dh-autoreconf instead. -- Josselin Mouette Thu, 02 Jun 2011 17:42:02 +0200 metacity (1:2.30.1-3) unstable; urgency=low [ Josselin Mouette ] * 05_36_workspaces.patch: patch from Bas van Sisseren. Fix assertion failure when more than 16 workspaces are defined. Closes: #576651, #586207, #598016. [ Emilio Pozuelo Monfort ] * debian/patches/05_36_workspaces.patch: - Apply the patch to the correct file. -- Emilio Pozuelo Monfort Tue, 05 Oct 2010 01:04:28 +0200 metacity (1:2.30.1-2) unstable; urgency=low * Refresh 02_restart_hint.patch. * 03_gtop_error.patch: patch from Tomaž Šolc to handle libgtop errors. Closes: #549290. * Switch to 3.0 source format. * 04_gdk_grab_tracking.patch: patch from Owen Taylor to prevent events from being transmitted to the wrong window. Closes: #559576. -- Josselin Mouette Wed, 16 Jun 2010 23:32:32 +0200 metacity (1:2.30.1-1) unstable; urgency=low * New upstream stable release: + debian/patches/90_autotools.patch: - Updated for the new version. -- Sebastian Dröge Mon, 12 Apr 2010 17:43:11 +0200 metacity (1:2.28.1-1) unstable; urgency=low * New upstream release: + debian/patches/10_remove_sigchld_handler.patch: - Dropped, merged upstream. + debian/patches/90_autotools.patch: - Regenerated for the new version. -- Sebastian Dröge Thu, 25 Mar 2010 22:29:27 +0100 metacity (1:2.28.0-3) unstable; urgency=low * debian/patches/10_remove_sigchld_handler.patch: - Patch from upstream git, remove a global SIGCHLD handler that could cause deadlocks. It also allows metacity to build on GNU/Hurd again as the patch removes the SA_SIGINFO usage. * debian/control.in: - Standards-Version is 3.8.3, no changes needed. -- Emilio Pozuelo Monfort Sun, 06 Dec 2009 17:26:31 +0100 metacity (1:2.28.0-2) unstable; urgency=low * 02_restart_hint.patch: patch from Owen Taylor. Don’t restart metacity unconditionnally if there is another WM running. Closes: #553342, #551512. -- Josselin Mouette Tue, 03 Nov 2009 19:43:29 +0100 metacity (1:2.28.0-1) unstable; urgency=low * New upstream release. * Add build-dependencies on gtop and canberra. * 10_ignore_callbacks.patch: dropped, merged upstream. * 90_autotools.patch: updated for the new version. * Update list of files to install. -- Josselin Mouette Sat, 26 Sep 2009 02:08:59 +0200 metacity (1:2.26.0-3) unstable; urgency=high * 10_ignore_callbacks.patch: stolen upstream. Fix a bug leading to some callbacks being ignored. Closes: #533917. -- Josselin Mouette Wed, 24 Jun 2009 12:04:26 +0200 metacity (1:2.26.0-2) unstable; urgency=low * Use patchsys-quilt; build-depend on quilt. * 01_Wcast-align.patch: don’t use -Wcast-align, it gives incorrect warnings (errors thanks to -Werror) when some pointers are converted back and forth to XPointers. Closes: #532655. * 90_autotools.patch: relibtoolize the whole package. -- Josselin Mouette Wed, 10 Jun 2009 21:52:35 +0200 metacity (1:2.26.0-1) unstable; urgency=low [ Josselin Mouette ] * Fix typo in changelog entry. [ Loic Minier ] * Let metacity suggest gnome-themes as it attempts to use the Clearlooks Metacity theme by default and logs a warning when it can't be used. * Let metacity suggest xdg-user-dirs as it fails creating the .config/metacity sub-directory and logs a warning if .config isn't created by xdg-user-dirs. [ Josselin Mouette ] * Set the team as primary maintainer. Closes: #523545. * Fixup in the descriptions. * New upstream release. * Update build-dependencies. * Bump shlibs for libmetacity-private0. -- Josselin Mouette Tue, 09 Jun 2009 20:36:03 +0200 metacity (1:2.24.0-2) unstable; urgency=low * Rename libmetacity0 to libmetacity-private0 because of an unexpected ABI change. Closes: #510096. * Remove trailing -1's in build-depends. * debian/copyright: write complete list of copyright holders. * Upload to unstable. -- Josselin Mouette Mon, 16 Feb 2009 18:03:57 +0100 metacity (1:2.24.0-1) experimental; urgency=low * New upstream release. + Implements one-way maximisation. Closes: #450837. + Fixes issues when disabling the compositor. Closes: #476492. * Bump shlibs version to 1:2.24.0. * Standards version is 3.8.0. * 01_doublefree_maximize.patch: dropped, merged upstream. * Install the .desktop in the metacity package. -- Josselin Mouette Sat, 22 Nov 2008 15:57:58 +0100 metacity (1:2.22.0-2) unstable; urgency=low [ Sven Arvidsson ] * Add README.Debian, describing how to enable the compositor. (Closes: #471442) [ Josselin Mouette ] * 01_doublefree_maximize.patch: stolen upstream (r3817). Fixes vertical maximisation bug caused by an invalid free. Closes: #452139. * control.in: make metacity the first package so that it gets the README.Debian. -- Josselin Mouette Thu, 18 Sep 2008 16:53:19 +0200 metacity (1:2.22.0-1) unstable; urgency=low [ Bradley Smith ] * New upstream development release. [ Sam Morris ] * Build-depend on libxcomposite-dev for composite manager. [ Sebastian Dröge ] * New upstream stable release: + debian/rules: - Drop check-dist include. - Update shlibs to >= 2.22.0 because of new API. -- Sebastian Dröge Fri, 14 Mar 2008 13:54:19 +0100 metacity (1:2.21.5-1) experimental; urgency=low [ Riccardo Setti ] * New metacity package. * build with compositor extension. [ Bradley Smith ] * Update Standards Version to 3.7.3. (No changes) * Add check-dist. -- Riccardo Setti Thu, 20 Dec 2007 02:29:13 +0100 metacity (1:2.20.1-2) UNRELEASED; urgency=low * Let metacity-common replace metacity instead of conflicting to ease upgrades. -- Loic Minier Wed, 28 Nov 2007 19:00:45 +0100 metacity (1:2.20.1-1) unstable; urgency=low [ Josselin Mouette ] * Recommend gnome-session | x-session-manager. Closes: #225640. * Remove metacity.menu. Closes: #397645. [ Sebastian Dröge ] * New upstream bugfix release. -- Sebastian Dröge Mon, 19 Nov 2007 13:57:21 +0100 metacity (1:2.20.0-1) unstable; urgency=low * New upstream release: + debian/patches/01_session_tolerate_missing_file.patch, debian/patches/02_fix_crash_on_session_saving.patch: - Dropped, merged upstream. + debian/rules: - Bump shlibs to >= 2.19.5. + debian/metacity-common.install: - Ship keybinding stuff. * debian/control.in: + Drop duplicated libxinerama-dev build dependency. -- Sebastian Dröge Sat, 22 Sep 2007 10:46:36 +0200 metacity (1:2.18.5-1) unstable; urgency=low * New upstream stable release; no API change. -- Loic Minier Tue, 19 Jun 2007 12:07:17 +0200 metacity (1:2.18.3-2) unstable; urgency=low * 99_ltmain_as-needed.patch: make --as-needed work for the library too. -- Josselin Mouette Wed, 06 Jun 2007 23:40:52 +0200 metacity (1:2.18.3-1) unstable; urgency=low * Drop metacity-common postinst as it was scheduled to be dropped post-etch. * Rewrite metacity postinst and prerm to use safer individual if tests instead of trying to list all possible args in a case; reported by Lior Kaplan; closes: #421206. * New upstream stable release; no API change. -- Loic Minier Mon, 28 May 2007 17:48:18 +0200 metacity (1:2.18.2-3) unstable; urgency=low * New patch 02_fix_crash_on_session_saving.patch, taken from Ubuntu. Fix a crash that would occur when the current session is saved and would corrupt ~/.gnome2/session. Gnome bug #433253 -- Sebastian Dröge Thu, 26 Apr 2007 15:44:10 +0200 metacity (1:2.18.2-2) unstable; urgency=low * Add -z defs to LDFLAGS; cleanups. * Upload to unstable; drop check-dist include. * Add a ${misc:Depends}. * Drop useless --enable-xsync=yes from configure flags. * Wrap build-deps and deps. * Bump dep on libgtk2.0-dev to >= 2.10.0-1. -- Loic Minier Sat, 14 Apr 2007 15:12:50 +0200 metacity (1:2.18.2-1) experimental; urgency=low * New upstream stable release. -- Loic Minier Mon, 09 Apr 2007 08:47:47 +0200 metacity (1:2.18.1-1) experimental; urgency=low * New upstream stable release; no API change; bug fixes and translations. * Drop obsolete README.Debian; misc cleanups. -- Loic Minier Sun, 08 Apr 2007 09:23:44 +0200 metacity (1:2.18.0-1) experimental; urgency=low [ Marco Cabizza ] * New upstream release: not enabling compositor, too unstable, and libcm seems dead upstream. [ Riccardo Setti ] * Updated debhelper compatibility to 5 [ Loic Minier ] * Set LDFLAGS directly instead of via DEB_CONFIGURE_SCRIPT_ENV; build-dep on cdbs >= 0.4.41. * Fix metacity-common.install to list the correct dirs. -- Loic Minier Mon, 26 Mar 2007 22:27:08 +0200 metacity (1:2.16.5-1) experimental; urgency=low [ Loic Minier ] * Add a get-orig-source target to retrieve the upstream tarball. * Include the new check-dist Makefile to prevent accidental uploads to unstable; bump build-dep on gnome-pkg-tools to >= 0.10. [ Josselin Mouette ] * 01_session_tolerate_missing_file.patch: register differently to the session, in order to handle gracefully the case where a session file is missing on the disk (closes: #315169, #391287). * New upstream release. -- Josselin Mouette Sun, 4 Mar 2007 10:29:40 +0100 metacity (1:2.16.3-1) experimental; urgency=low [ Marco Cabizza ] * New upstream release. [ Loic Minier ] * Merge 1:2.14.5-2. [ Josselin Mouette ] * Use ${gnome:Version} and ${gnome:NextVersion} to loosen the dependencies. * Build-depend on gnome-pkg-tools 0.6. * Call gnome-version.mk. * Replace the x-dev build-dependency by x11proto-core-dev. -- Josselin Mouette Tue, 21 Nov 2006 20:50:05 +0100 metacity (1:2.16.2-1) experimental; urgency=low * New upstream release, with backwards incompatible changes in internal API. -- Loic Minier Mon, 25 Sep 2006 17:47:56 +0200 metacity (1:2.16.1-1) experimental; urgency=low [ Loïc Minier ] * Remove superfluous dh_installcatalogs call and bump cdbs build-dep to >= 0.4.37, thanks Peter Eisentraut. (Closes: #361156) [debian/control, debian/control.in, debian/rules] * Don't mention non-existing Info documentation in the metacity and metacity-message man pages, thanks Piotr Engelking. (Closes: #365450) [debian/metacity.1, debian/metacity-message.1] * Fix watch file. [ Marco Cabizza ] * New upstream release, target experimental: - Bumping up libgtk2.0-dev build-dep to 2.10 * Setting myself as the maintainer. -- Marco Cabizza Wed, 13 Sep 2006 18:46:45 +0200 metacity (1:2.14.5-2) unstable; urgency=low * Remove superfluous dh_installcatalogs call and bump cdbs build-dep to >= 0.4.37, thanks Peter Eisentraut. (Closes: #361156) [debian/control, debian/control.in, debian/rules] * Don't mention non-existing Info documentation in the metacity and metacity-message man pages, thanks Piotr Engelking. (Closes: #365450) [debian/metacity.1, debian/metacity-message.1] * Fix watch file. * Fix typo in debian/metacity-message.1; thanks Per Bojsen; closes: #397864. -- Loic Minier Fri, 10 Nov 2006 09:38:49 +0100 metacity (1:2.14.5-1) unstable; urgency=low * New upstream release. -- Loic Minier Tue, 30 May 2006 15:47:36 +0200 metacity (1:2.14.3-1) unstable; urgency=low [ Gustavo Noronha Silva ] * New upstream release. + Doesn't steal focus (closes: #361273). [ Josselin Mouette ] * Make the package binNMU-safe. + Build-depend on dpkg-dev 1.13.19. + Use ${source:Version} and ${binary:Version}. * Standards version is 3.7.2. * Bump shlibs version to 2.14. [ Loic Minier ] * Stop shipping /usr/lib/*.la files in libmetacity-dev. [debian/libmetacity-dev.install] -- Josselin Mouette Sun, 14 May 2006 23:30:56 +0200 metacity (1:2.14.1-2) unstable; urgency=low * Simple rebuild to get rid of references to Xcursor.la / Xrender.la. -- Loic Minier Tue, 2 May 2006 16:45:22 +0200 metacity (1:2.14.1-1) unstable; urgency=low * New upstram version. * Adds edge resistance. Closes: #191649. * patches/000_raise-on-click.patch: Fixed upstream; dropped. -- Dafydd Harries Thu, 30 Mar 2006 19:50:23 +0100 metacity (1:2.12.3-3) unstable; urgency=low * Also explicitely remove catalogs installed by past metacity packages. [debian/metacity-common.preinst] * Move these clenaups to postinst. [debian/metacity-common.preinst, debian/metacity-common.postinst] -- Loic Minier Sun, 12 Feb 2006 16:53:48 +0100 metacity (1:2.12.3-2) unstable; urgency=low * Clean up metacity's postinst. [debian/metacity.postinst] * Clean up /etc/sgml/metacity.cat and .old left over by metacity. [debian/metacity-common.preinst] -- Loic Minier Sun, 12 Feb 2006 16:35:07 +0100 metacity (1:2.12.3-1) unstable; urgency=low * New upstream release. * Update patch to support a new raise on click mode and choice of this mode to apply without fuzz. Also note this patch has been rejected upstream. [debian/patches/000_raise-on-click.patch] * New metacity-common package holds arch-independent files and registers schemas. (Closes: #218365, #234665, #240211) [debian/metacity.dirs, debian/metacity-common.links, debian/metacity.install, debian/control, debian/control.in, debian/metacity-common.postinst, debian/metacity.catalog, debian/metacity-common.manpages, debian/metacity.postrm, debian/metacity-common.dirs, debian/metacity-common.install, debian/metacity-common.catalog, debian/changelog, debian/metacity-common.postrm, debian/rules, debian/metacity.links, debian/metacity.postinst, debian/metacity.manpages] * Actually ship license information. [debian/copyright] * Version the metacity and libmetacity dependency on metacity-common with Source-Version. [debian/control, debian/control.in] * Install SGML catalogs with dh_installcatalogs, move them below /usr/share/sgml/metacity-common, in the metacity-common package. [debian/control, debian/control, debian/metacity-common.catalog, debian/metacity-common.postinst, debian/metacity-common.postrm, debian/metacity-common.sgmlcatalogs, debian/rules] * Drop the /usr/share/metacity/dtd symlink. [debian/metacity-common.links] * Drop /usr/share/sgml/dtd creation. [debian/metacity-common.dirs] * Drop useless /usr/share/metacity from metacity-common. [debian/metacity-common.install] * Drop obsolete cleanup "rm -rf". [debian/rules] * Give .dtd installation to dh_install. [debian/metacity-common.install, debian/rules] -- Loic Minier Sat, 11 Feb 2006 21:10:40 +0100 metacity (1:2.12.2-3) unstable; urgency=high * Add xorg build-deps (libice-dev, libsm-dev, libx11-dev, libxext-dev, libxinerama-dev, libxrandr-dev, x-dev) thanks to "xlibs-split". (Closes: #347000) [debian/control, debian/control.in] * Relibtoolizing would get Debian's AC_PATH_XTRA, but I add a libxt-dev build-dep and pass --as-needed because the patch was like uh 1.1 MB. [debian/control, debian/control.in, debian/rules] -- Loic Minier Mon, 9 Jan 2006 22:47:36 +0100 metacity (1:2.12.2-2) unstable; urgency=low * Upload to unstable. -- Josselin Mouette Sun, 8 Jan 2006 01:49:55 +0100 metacity (1:2.12.2-1) experimental; urgency=low * New upstream release. -- Jordi Mallach Sun, 25 Dec 2005 23:20:10 +0100 metacity (1:2.12.1-1) experimental; urgency=low * New upstream release. * watch: update for 2.12. * 000_raise-on-click.patch: update to make patch apply cleanly. * rules: bump shlibs for new symbols. -- Josselin Mouette Sun, 9 Oct 2005 16:50:22 +0200 metacity (1:2.10.3-2) unstable; urgency=low * debian/control.in: - don't Build-Depends on xlibs-pic, Build-Depend on libxinerama-dev (Closes: #320589). * debian/patches/000_metacity-debian-xinerama-pic.patch: - not useful with xorg. -- Sebastien Bacher Tue, 2 Aug 2005 17:40:43 +0200 metacity (1:2.10.3-1) unstable; urgency=low * New upstream version. * Bump Standards-Version to 3.6.2. * Add CDBS' utils to rules. -- Loic Minier Fri, 29 Jul 2005 10:56:05 +0200 metacity (1:2.10.2-1) unstable; urgency=low * New upstream version. -- Sebastien Bacher Tue, 28 Jun 2005 23:09:14 +0200 metacity (1:2.10.1-2) unstable; urgency=low * Upload to unstable. -- Jordi Mallach Sun, 12 Jun 2005 19:03:18 +0200 metacity (1:2.10.1-1) experimental; urgency=low * New upstream version. -- Sebastien Bacher Wed, 13 Apr 2005 17:35:20 +0200 metacity (1:2.10.0-1) experimental; urgency=low * New upstream version. * debian/patches/000_raise-on-click.patch: - updated. * debian/watch: - updated. -- Sebastien Bacher Fri, 8 Apr 2005 21:33:44 +0200 metacity (1:2.8.8-1) unstable; urgency=low * GNOME team upload. * New upstream release. -- Jordi Mallach Wed, 29 Dec 2004 17:18:05 +0100 metacity (1:2.8.6-1) unstable; urgency=low * New upstream release. * Upload to unstable. -- Sebastien Bacher Thu, 18 Nov 2004 13:23:27 +0100 metacity (1:2.8.5-2) experimental; urgency=low * debian/metacity.postinst: - removed the static gconf registration. * debian/metacity-theme-viewer.1: - manpage written by Jose M. Moya" (Closes: #252108). * debian/metacity-window-demo.1: - manpage written by Jose M. Moya" (Closes: #252110). * debian/metacity.manpages: - updated. -- Sebastien Bacher Fri, 17 Sep 2004 22:11:51 +0200 metacity (1:2.8.5-1) experimental; urgency=low * GNOME team upload. * New upstream release. * Sebastien Bacher: - Switched to CDBS. - debian/rules: converted to CDBS - debian/*.files: replaced with .install files. * J.H.M. Dassen (Ray): - [debian/control.in] Bumped libstartup-notification0-dev as configure requires 0.7. * Jordi Mallach: - debian/control.in: add cdbs to build-deps. -- Jordi Mallach Tue, 14 Sep 2004 20:30:36 +0200 metacity (1:2.8.1-4) unstable; urgency=low * debian/rules: - added a dh_gconf call. * debian/metacity.postinst: - removed the static schemas registration, dh_gconf handles that right. -- Sebastien Bacher Fri, 6 Aug 2004 18:17:03 +0200 metacity (1:2.8.1-3) unstable; urgency=low * GNOME Team Upload. * Upload in unstable. -- Sebastien Bacher Wed, 26 May 2004 14:28:32 +0200 metacity (1:2.8.1-2) experimental; urgency=low * debian/patches/000_raise-on-click.patch: + patch from bugzilla to choose to raise or not the window which has the focus in mouse and sloppy modes. (Closes: #228768). The gconf key to use is /apps/metacity/general/raise_on_click. * Gnome Team Upload. -- Sebastien Bacher Wed, 26 May 2004 14:19:51 +0200 metacity (1:2.8.1-1) experimental; urgency=low * New upstream release. * debian/patches/000_metacity-debian-xinerama-pic.patch: + updated * GNOME Team Upload. -- Sebastien Bacher Wed, 5 May 2004 21:17:15 +0200 metacity (1:2.8.0-3) experimental; urgency=low * GNOME team upload. * debian/rules: get the epoch included in the shlib version for libmetacity0. -- Jordi Mallach Tue, 6 Apr 2004 14:04:36 +0200 metacity (1:2.8.0-2) experimental; urgency=low * Added Build-Depends on gnome-pkg-tools and libxml-parser-perl (Closes: #240639). -- Sebastien Bacher Sat, 3 Apr 2004 23:46:56 +0200 metacity (1:2.8.0-1) experimental; urgency=low * New upstream release: + converts "show desktop mode" to "all windows are minimized" when you open a new window (Closes: #217467). + fixes bug with panel not listed before clicking on them (Closes: #224054). + fixes multi-tab handling (Closes: #227708). + includes always on top menu entry (Closes: #204212). + includes wireframes support (Closes: #184849). + should fix bug with applications changing workspace (Closes: #224156, #230782). + switches window truncates title (Closes: #186324). * debian/control.in, debian/rules: + adapted for the Gnome Team. * debian/patches/000_metacity-debian-xinerama-pic.patch: + updated. * debian/patches/001_metacity-focus.patch: + removed since the changes are included in the new version. * debian/watch: + updated to 2.8 branch. -- Sebastien Bacher Sun, 28 Mar 2004 12:26:22 +0200 metacity (1:2.6.3-2) unstable; urgency=low * debian/patches/001_metacity-focus.patch : + new patch to fix focus problem with panels in mouse and sloppy modes (Closes: #224858). * Gnome Team Upload. -- Sebastien Bacher Sun, 18 Jan 2004 19:31:49 +0100 metacity (1:2.6.3-1) unstable; urgency=low * New upstream release. * Gnome Team Upload. -- Sebastien Bacher Sat, 20 Dec 2003 23:17:21 +0100 metacity (1:2.6.2-2) unstable; urgency=low * debian/patches/000_metacity-debian-xinerama-pic.patch: - updated to fix a link problem (Closes: #216693). -- Sebastien Bacher Tue, 21 Oct 2003 13:56:24 +0200 metacity (1:2.6.2-1) unstable; urgency=low * New upstream release. * debian/patches/: - 000_metacity-2.4.34-usage.patch: removed. - 000_metacity-debian-xinerama-pic.patch: updated. - 001_metacity-2.4.55-non-weak-symbols.patch: removed. * Update Build-Depends. * Gnome Team Upload. -- Sebastien Bacher Sat, 18 Oct 2003 19:33:23 +0200 metacity (1:2.4.55-3) unstable; urgency=low * debian/metacity.1: - fixed the incorrect option. (closes: Bug#209159) * debian/metacity.prerm: - fixed removing alternatives issue. (closes: Bug#211502) -- Akira TAGOH Wed, 8 Oct 2003 18:44:56 +0900 metacity (1:2.4.55-2) unstable; urgency=low * debian/patches/000_metacity-debian-xinerama-pic.patch: - update to fix the unnecessary library dependencies in .la. (closes: Bug#195774) -- Akira TAGOH Thu, 12 Jun 2003 01:25:45 +0900 metacity (1:2.4.55-1) unstable; urgency=low * New upstream release. * debian/patches/: - 000_metacity-2.4.34-save-workspace.patch: removed. - 001_metacity-2.4.55-non-weak-symbols.patch: updated. -- Akira TAGOH Mon, 2 Jun 2003 02:50:50 +0900 metacity (1:2.4.34-3) unstable; urgency=low * debian/control: - suggests gnome-control-center instead of metacity-properties. (closes: Bug#192752) - bumped Standards-Version to 3.5.10.0. * debian/patches/001_metacity-2.4.34-non-weak-symbols.patch: - applied a backported patch to fix undefined non-weak symbols. (closes: Bug#187347) * debian/metacity.postinst: - set a priority to 60 for x-window-manager according to the latest policy. -- Akira TAGOH Mon, 19 May 2003 06:30:37 +0900 metacity (1:2.4.34-2) unstable; urgency=low * Revert to 2.4.34 to use stable release. - should works now. (closes: Bug#187749, Bug#187387, Bug#187982) * debian/README.Debian: - described NVidia drivers issue. (closes: Bug#181056) * debian/patches/: - 000_metacity-2.4.34-usage.patch: applied it again. - 000_metacity-2.4.34-save-workspace.patch: applied a backported patch from CVS to really fix Bug#186033 in 2.4.34. - 000_metacity-2.5.0-noframe-window.patch: removed. -- Akira TAGOH Mon, 14 Apr 2003 00:29:52 +0900 metacity (2.5.0-2) unstable; urgency=low * debian/patches/: - 000_metacity-debian-xinerama-pic.patch: use libXinerama_pic.a instead of libXinerama.a. - 000_metacity-2.5.0-noframe-window.patch: applied a backported patch from CVS to work no frame window. (closes: Bug#187316) * debian/control: - requires xlibs-pic >= 4.2.1-6. -- Akira TAGOH Fri, 4 Apr 2003 04:26:49 +0900 metacity (2.5.0-1) unstable; urgency=low * New upsream release. - Workspace names are saved now. (closes: Bug#186033) * debian/control: - bumped Standards-Version to 3.5.9. - changed a section for libmetacity-dev to libdevel. * debian/compat: - use it instead of DH_COMPAT. * debian/patches/ - 000_metacity-2.4.34-usage.patch: removed. -- Akira TAGOH Wed, 2 Apr 2003 00:16:38 +0900 metacity (2.4.34-1) unstable; urgency=low * New upstream release. - contains a fix of 64-bit bug. so should be fixed. (closes: Bug#179698) - should be fixed. (closes: Bug#177814) * debian/patches/000_metacity-2.4.34-usage.patch: applied to fix a typo in usage. (closes: Bug#179699) -- Akira TAGOH Fri, 7 Feb 2003 04:38:32 +0900 metacity (2.4.21-2) unstable; urgency=low * debian/control: - suggests metacity-properties instead of gnome-control-center. * debian/metacity.docs: - moved from libmetacity0. (closes: Bug#178966) * debian/metacity.postinst: - run gconftool-2 with HOME=/root -- Akira TAGOH Sun, 2 Feb 2003 16:50:02 +0900 metacity (2.4.21-1) unstable; urgency=low * New upstream release. * debian/patches/: - 000_metacity-2.4.13-args.patch: removed, because it was merged to the upstream. - 000_metacity-2.4.8-properties.patch: removed. * debian/control: add Suggests: gnome-control-center. * debian/rules: drop --enable-config-dialog. metacity-properties is obsolete. use gnome-window-properties in gnome-control-center instead of. -- Akira TAGOH Wed, 29 Jan 2003 00:39:57 +0900 metacity (2.4.13-2) unstable; urgency=low * debian/docs: add NEWS file (closes: Bug#176317) -- Akira TAGOH Tue, 14 Jan 2003 23:15:48 +0900 metacity (2.4.13-1) unstable; urgency=low * New upstream release. * debian/control: - updated Build-Depends. - add libgtk2.0-dev to Depends for libmetacity-dev * debian/rules: enable startup-notification. * debian/patches/: - 000_metacity-2.4.8-dont-pass-NULL.patch: removed. - 000_metacity-2.4.13-args.patch: applied to fix the working of configure options. -- Akira TAGOH Sat, 11 Jan 2003 07:06:24 +0900 metacity (2.4.8-4) unstable; urgency=low * upstream bug was closed. so it should be fixed. (closes: Bug#152075) * debian/rules: don't use dh_installwm until it will supports the registration of manpage as slave. * debian/metacity.postinst: runs update-alternatives. (closes: Bug#175756) * debian/metacity.prerm: runs update-alternatives. -- Akira TAGOH Thu, 9 Jan 2003 03:40:15 +0900 metacity (2.4.8-3) unstable; urgency=low * debian/metacity.postinst: fix the wrong registration. (closes: Bug#173789, Bug#174358) -- Akira TAGOH Fri, 27 Dec 2002 05:01:25 +0900 metacity (2.4.8-2) unstable; urgency=low * debian/patches/000_metacity-2.4.8-dont-pass-NULL.patch: applied to fix the segfault at startup. (closes: Bug#173594, Bug#173604) -- Akira TAGOH Fri, 20 Dec 2002 01:08:43 +0900 metacity (2.4.8-1) unstable; urgency=low * New upstream release. * debian/patches/000_metacity-2.4.3-stack.patch: removed, because this release contains it. * debian/control: - fix description-synopsis-ends-with-full-stop. - add libmetacity0 and libmetacity-dev * debian/rules: - install metacity-theme.dtd as a sgml catalog. (closes: Bug#170041) - build with --enable-config-dialog until we upload GNOME 2.2. * debian/metacity.postinst: - use gconftool-2 --get-default-source to get GCONF_CONFIG_SOURCE - runs update-catalog. * debian/patches/000_metacity-2.4.8-properties.patch: applied to fix the missing file. -- Akira TAGOH Thu, 12 Dec 2002 09:21:35 +0900 metacity (2.4.3-2) unstable; urgency=low * debian/patches/000_metacity-2.4.3-stack.patch: backported to fix the random crashes. (closes: Bug#168653) -- Akira TAGOH Wed, 13 Nov 2002 00:32:14 +0900 metacity (2.4.3-1) unstable; urgency=low * New upstream release. (closes: Bug#166919) * debian/rules: support noopt option for DEB_BUILD_OPTIONS. * debian/control: improve a description. Thanks stephen farrell. -- Akira TAGOH Thu, 7 Nov 2002 23:16:47 +0900 metacity (2.4.1-1) unstable; urgency=low * New upstream release. (closes: Bug#160535) - Should be fixed. (closes: Bug#157995) * Set a priority to 40 for x-window-manager according to Bug#155680. (closes: Bug#155494) * debian/metacity.1: updated. * debian/metacity-message.1: added. * debian/control: - bumped Standards-Version to 3.5.7. - updated Build-Depends. -- Akira TAGOH Sat, 14 Sep 2002 20:01:35 +0900 metacity (2.4.0-1) unstable; urgency=low * New upstream release. - switching the workspaces should works now. (closes: Bug#151500) * debian/control: update Build-Depends for libgtk2.0-dev. -- Akira TAGOH Fri, 9 Aug 2002 02:35:15 +0900 metacity (2.3.987-1) unstable; urgency=low * New upstream release. * debian/control: add libglade2-dev to Build-Depends (closes: Bug#149489) -- Akira TAGOH Tue, 11 Jun 2002 14:38:06 +0900 metacity (2.3.610-1) unstable; urgency=low * New upstream release. - Should be fixed in this release. (closes: Bug#146127) -- Akira TAGOH Wed, 5 Jun 2002 19:15:41 +0900 metacity (2.3.377-2) unstable; urgency=low * debian/docs: includes theme-format.txt (closes: Bug#147644) -- Akira TAGOH Tue, 21 May 2002 19:24:00 +0900 metacity (2.3.377-1) unstable; urgency=low * New upstream release. -- Akira TAGOH Tue, 21 May 2002 11:02:28 +0900 metacity (2.3.233-2) unstable; urgency=low * debian/control: fix the misleading description. (closes: Bug#145942) -- Akira TAGOH Tue, 7 May 2002 14:29:36 +0900 metacity (2.3.233-1) unstable; urgency=low * New upstream release. -- Akira TAGOH Sun, 5 May 2002 03:21:05 +0900 metacity (2.3.144-2) unstable; urgency=low * debian/control: Add Provides: x-window-manager. -- Akira TAGOH Fri, 3 May 2002 07:31:17 +0900 metacity (2.3.144-1) unstable; urgency=low * New upstream release. - keybindings are configurable now. (closes: Bug#144657) -- Akira TAGOH Tue, 30 Apr 2002 03:32:36 +0900 metacity (2.3.89-1) unstable; urgency=low * New upstream release. * debian/scripts/vars.build: fix bashism. * debian/rules: add GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=yes to install rule. * debian/metacity.manpages: remove metacity-restart.1 entry. this command no longer exists. -- Akira TAGOH Tue, 16 Apr 2002 21:35:19 +0900 metacity (2.3.55-1) unstable; urgency=low * I have taken over from Thom. * New upstream release. * Build against the latest libraries (closes: Bug#139215) * debian/rules: - support DEB_HOST_GNU_TYPE and DEB_BUILD_GNU_TYPE. - support debug and nostrip options for DEB_BUILD_OPTIONS. - copying the latest config.sub and config.guess. -- Akira TAGOH Tue, 26 Mar 2002 02:18:26 +0900 metacity (2.3.34-2) unstable; urgency=low * Added build-depend on docbook-to-man (Closes: #134433) -- Thom May Sun, 17 Feb 2002 20:14:28 +0000 metacity (2.3.34-1) unstable; urgency=low * Initial Release. (Closes: #107181) -- Thom May Sun, 10 Feb 2002 12:03:22 +0000 debian/metacity.prerm0000664000000000000000000000023612277143773012074 0ustar #!/bin/sh set -e action="$1" if [ "$action" = remove ]; then update-alternatives --remove x-window-manager \ /usr/bin/metacity fi #DEBHELPER# debian/source/0000775000000000000000000000000012277143773010505 5ustar debian/source/format0000664000000000000000000000001412277143773011713 0ustar 3.0 (quilt) debian/compat0000664000000000000000000000000212277143773010403 0ustar 8 debian/metacity-common.install0000664000000000000000000000034612277143773013705 0ustar usr/share/gnome usr/share/help usr/share/locale usr/share/man usr/share/metacity usr/share/themes usr/share/gnome-control-center/keybindings usr/share/GConf usr/share/glib-2.0 doc/metacity-theme.dtd usr/share/sgml/metacity-common debian/metacity-window-demo.10000664000000000000000000000161012277143773013333 0ustar .\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection .\" other parms are allowed: see man(7), man(1) .\" .\" Based on template provided by Tom Christiansen . .\" .TH METACITY-WINDOW-DEMO 1 "1 June 2004" .SH NAME metacity-window-demo \- demo of window features .SH SYNOPSIS .B metacity-window-demo .SH DESCRIPTION .\" Putting a newline after each sentence can generate better output. This program demonstrates various kinds of windows that window managers and window manager themes should handle. .PP Be sure to tear off the menu and toolbar, those are also a special kind of window. .SH AUTHOR This manual page was written by Jose M. Moya , for the Debian GNU/Linux system (but may be used by others). .SH "SEE ALSO" .\" Always quote multiple words for .SH .BR x-window-manager (1), .BR metacity (1), .BR metacity-theme-viewer (1). debian/libmetacity-private0a.install0000664000000000000000000000002212277143773014766 0ustar usr/lib/lib*.so.* debian/patches/0000775000000000000000000000000012517210170010613 5ustar debian/patches/12_dont-show-as-user.patch0000664000000000000000000001065712277143773015467 0ustar Description: Don't show "as user" in title bar Author: ? Index: metacity-2.34.1/configure.in =================================================================== --- metacity-2.34.1.orig/configure.in 2011-06-21 13:29:34.000000000 -0400 +++ metacity-2.34.1/configure.in 2011-08-18 00:06:25.504650566 -0400 @@ -303,20 +303,6 @@ AC_DEFINE(HAVE_XCURSOR, , [Building with Xcursor support]) fi -AC_MSG_CHECKING([libgtop]) -if $PKG_CONFIG libgtop-2.0; then - have_gtop=yes - else - have_gtop=no - fi - AC_MSG_RESULT($have_gtop) - -if test x$have_gtop = xyes; then - echo "Building with libgtop" - METACITY_PC_MODULES="$METACITY_PC_MODULES libgtop-2.0" - AC_DEFINE(HAVE_GTOP, , [Building with libgtop]) -fi - PKG_CHECK_MODULES(METACITY, $METACITY_PC_MODULES) AC_PATH_XTRA Index: metacity-2.34.1/src/core/window-props.c =================================================================== --- metacity-2.34.1.orig/src/core/window-props.c 2011-08-18 00:06:20.664534033 -0400 +++ metacity-2.34.1/src/core/window-props.c 2011-08-18 00:08:08.847139760 -0400 @@ -47,15 +47,6 @@ #include #include #include -#include -#include -#include - -#ifdef HAVE_GTOP -#include -#include -#include -#endif /* HAVE_GTOP */ #ifndef HOST_NAME_MAX /* Solaris headers apparently don't define this so do so manually; #326745 */ @@ -321,39 +312,6 @@ } } -/** - * Finds who owns a particular process, if we can. - * - * \param process The process's ID. - * \result Set to the ID of the user, if we returned true. - * - * \result True if we could tell. - */ -static gboolean -owner_of_process (pid_t process, uid_t *result) -{ -#ifdef HAVE_GTOP - glibtop_proc_uid process_details; - - glibtop_get_proc_uid (&process_details, process); - - if (process_details.flags & (1L << GLIBTOP_PROC_UID_UID) ) - { - *result = process_details.uid; - return TRUE; - } - else - { - return FALSE; - } -#else - /* I don't know, maybe we could do something hairy like see whether - * /proc/$PID exists and who owns it, in case they have procfs. - */ - return FALSE; -#endif /* HAVE_GTOP */ -} - #define MAX_TITLE_LENGTH 512 /** @@ -396,66 +354,6 @@ title, window->wm_client_machine); modified = TRUE; } - else if (window->net_wm_pid != -1) - { - /* We know the process which owns this window; perhaps we can - * find out the name of its owner (if it's not us). - */ - - char *found_name = NULL; - - uid_t window_owner = 0; - gboolean window_owner_known = - owner_of_process (window->net_wm_pid, &window_owner); - - /* Assume a window with unknown ownership is ours (call it usufruct!) */ - gboolean window_owner_is_us = - !window_owner_known || window_owner==getuid (); - - if (window_owner_is_us) - { - /* we own it, so fall back to the simple case */ - *target = g_strdup (title); - } - else - { - /* it belongs to window_owner. So what's their name? */ - - if (window_owner==0) - { - /* Simple case-- don't bother to look it up. It's root. */ - *target = g_strdup_printf (_("%s (as superuser)"), - title); - } - else - { - /* Okay, let's look up the name. */ - struct passwd *pwd; - - errno = 0; - pwd = getpwuid (window_owner); - if (errno==0 && pwd!=NULL) - { - found_name = pwd->pw_name; - } - - if (found_name) - /* Translators: the title of a window owned by another user - * on this machine */ - *target = g_strdup_printf (_("%s (as %s)"), - title, - found_name); - else - /* Translators: the title of a window owned by another user - * on this machine, whose name we don't know */ - *target = g_strdup_printf (_("%s (as another user)"), - title); - } - /* either way we changed it */ - modified = TRUE; - - } - } else *target = g_strdup (title); debian/patches/03_strict_focus.patch0000664000000000000000000000573312277143773014676 0ustar Description: Strict focus mode (/apps/metacity/general/focus_mode = strict) Author: LaMont Jones Index: metacity-2.34.3/src/core/display.c =================================================================== --- metacity-2.34.3.orig/src/core/display.c 2012-07-23 10:17:19.529668248 -0400 +++ metacity-2.34.3/src/core/display.c 2012-07-23 10:18:44.010087151 -0400 @@ -1783,6 +1783,7 @@ { switch (meta_prefs_get_focus_mode ()) { + case G_DESKTOP_FOCUS_MODE_STRICT: case G_DESKTOP_FOCUS_MODE_SLOPPY: case G_DESKTOP_FOCUS_MODE_MOUSE: display->mouse_mode = TRUE; #Index: metacity-2.34.1/src/core/prefs.c #=================================================================== #--- metacity-2.34.1.orig/src/core/prefs.c 2011-03-08 04:31:53.000000000 -0500 #+++ metacity-2.34.1/src/core/prefs.c 2011-08-18 00:02:10.448515662 -0400 #@@ -178,6 +178,7 @@ # { META_FOCUS_MODE_CLICK, "click" }, # { META_FOCUS_MODE_SLOPPY, "sloppy" }, # { META_FOCUS_MODE_MOUSE, "mouse" }, #+ { META_FOCUS_MODE_STRICT, "strict" }, # { 0, NULL }, # }; # Index: metacity-2.34.3/src/core/window.c =================================================================== --- metacity-2.34.3.orig/src/core/window.c 2012-02-15 12:31:44.000000000 -0500 +++ metacity-2.34.3/src/core/window.c 2012-07-23 10:21:44.642982868 -0400 @@ -2316,7 +2316,7 @@ if (window->showing_for_first_time) { window->showing_for_first_time = FALSE; - if (takes_focus_on_map) + if (takes_focus_on_map && meta_prefs_get_focus_mode () != META_FOCUS_MODE_STRICT) { meta_window_focus (window, timestamp); } Index: metacity-2.34.3/src/core/workspace.c =================================================================== --- metacity-2.34.3.orig/src/core/workspace.c 2012-02-15 12:31:44.000000000 -0500 +++ metacity-2.34.3/src/core/workspace.c 2012-07-23 10:23:12.223417171 -0400 @@ -928,7 +928,8 @@ } else if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_SLOPPY) focus_ancestor_or_mru_window (workspace, not_this_one, timestamp); - else if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_MOUSE) + else if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_MOUSE || + meta_prefs_get_focus_mode () == META_FOCUS_MODE_STRICT) { meta_topic (META_DEBUG_FOCUS, "Setting focus to no_focus_window, since no valid " #Index: metacity-2.34.1/src/include/common.h #=================================================================== #--- metacity-2.34.1.orig/src/include/common.h 2010-04-18 06:05:31.000000000 -0400 #+++ metacity-2.34.1/src/include/common.h 2011-08-18 00:02:10.458515912 -0400 #@@ -162,7 +162,8 @@ # { # META_FOCUS_MODE_CLICK, # META_FOCUS_MODE_SLOPPY, #- META_FOCUS_MODE_MOUSE #+ META_FOCUS_MODE_MOUSE, #+ META_FOCUS_MODE_STRICT # } MetaFocusMode; # # typedef enum debian/patches/13_better_support_for_button_layout.patch0000664000000000000000000001167412277143773021110 0ustar Description: Corrected support for buttons backgrounds with transparency Added 'no background' if there is only one button and backgrounds no more overlap if transparency used. Corrected bug with left button clickable region when window is maximized Origin: Ubuntu Bug: https://bugzilla.gnome.org/show_bug.cgi?id=608511 Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/535088 Author: Nicolas Desfontaine Index: metacity-2.34.1/src/ui/theme.c =================================================================== --- metacity-2.34.1.orig/src/ui/theme.c 2011-08-18 00:09:45.689474158 -0400 +++ metacity-2.34.1/src/ui/theme.c 2011-08-18 00:09:52.879647547 -0400 @@ -737,8 +737,14 @@ for (i = 0; i < n_left; i++) { - if (i == 0) /* prefer left background if only one button */ - left_bg_rects[i] = &fgeom->left_left_background; + if (i == 0) /* For the first button (From left to right) */ + { + if (n_left > 1) /* Set left_left_background + if we have more than one button */ + left_bg_rects[i] = &fgeom->left_left_background; + else /* No background if we have only one single button */ + left_bg_rects[i] = &fgeom->left_single_background; + } else if (i == (n_left - 1)) left_bg_rects[i] = &fgeom->left_right_background; else @@ -747,15 +753,20 @@ for (i = 0; i < n_right; i++) { - /* prefer right background if only one button */ - if (i == (n_right - 1)) - right_bg_rects[i] = &fgeom->right_right_background; + if (i == (n_right - 1)) /* For the first button (From right to left) */ + { + if (n_right > 1) /* Set right_right_background + if we have more than one button */ + right_bg_rects[i] = &fgeom->right_right_background; + else /* No background if we have only one single button */ + right_bg_rects[i] = &fgeom->right_single_background; + } else if (i == 0) right_bg_rects[i] = &fgeom->right_left_background; else right_bg_rects[i] = &fgeom->right_middle_backgrounds[i - 1]; } - + /* Be sure buttons fit */ while (n_left > 0 || n_right > 0) { @@ -876,9 +887,9 @@ if (flags & META_FRAME_MAXIMIZED) { rect->clickable.x = rect->visible.x; - rect->clickable.y = 0; - rect->clickable.width = rect->visible.width; - rect->clickable.height = button_height + button_y; + rect->clickable.y = rect->visible.y; + rect->clickable.width = button_width; + rect->clickable.height = button_height; if (i == n_right - 1) rect->clickable.width += layout->right_titlebar_edge + layout->right_width + layout->button_border.right; @@ -914,23 +925,13 @@ if (flags & META_FRAME_MAXIMIZED) { - if (i==0) - { - rect->clickable.x = 0; - rect->clickable.width = button_width + x; - } - else - { - rect->clickable.x = rect->visible.x; - rect->clickable.width = button_width; - } - - rect->clickable.y = 0; - rect->clickable.height = button_height + button_y; - } - else - g_memmove (&(rect->clickable), &(rect->visible), sizeof(rect->clickable)); - + rect->clickable.x = rect->visible.x; + rect->clickable.y = rect->visible.y; + rect->clickable.width = button_width; + rect->clickable.height = button_height; + } + else + g_memmove (&(rect->clickable), &(rect->visible), sizeof(rect->clickable)); x = rect->visible.x + rect->visible.width + layout->button_border.right; if (left_buttons_has_spacer[i]) @@ -4692,7 +4693,7 @@ /* MIDDLE_BACKGROUND type may get drawn more than once */ if ((j == META_BUTTON_TYPE_RIGHT_MIDDLE_BACKGROUND || j == META_BUTTON_TYPE_LEFT_MIDDLE_BACKGROUND) && - middle_bg_offset < MAX_MIDDLE_BACKGROUNDS) + (middle_bg_offset < (MAX_MIDDLE_BACKGROUNDS - 1))) { ++middle_bg_offset; } Index: metacity-2.34.1/src/ui/theme.h =================================================================== --- metacity-2.34.1.orig/src/ui/theme.h 2011-08-18 00:09:45.699474395 -0400 +++ metacity-2.34.1/src/ui/theme.h 2011-08-18 00:09:52.879647547 -0400 @@ -248,9 +248,11 @@ MetaButtonSpace unstick_rect; #define MAX_MIDDLE_BACKGROUNDS (MAX_BUTTONS_PER_CORNER - 2) + GdkRectangle left_single_background; GdkRectangle left_left_background; GdkRectangle left_middle_backgrounds[MAX_MIDDLE_BACKGROUNDS]; GdkRectangle left_right_background; + GdkRectangle right_single_background; GdkRectangle right_left_background; GdkRectangle right_middle_backgrounds[MAX_MIDDLE_BACKGROUNDS]; GdkRectangle right_right_background; debian/patches/14_wrong_colormap.patch0000664000000000000000000000204312277143773015210 0ustar From 00f0078808fa4e33cf4a5f1d88f33c121828a735 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Wed, 2 Jun 2010 09:43:47 +1000 Subject: [PATCH] Use gdk_screen_get_system_colormap with gdk_screen_get_system_visual as gdk_screen_get_default_colormap can return a colormap that is incompatible. Author: Fabien Tassin Bug: bugs.launchpad.net/bugs/584287 --- src/ui/ui.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Index: metacity-2.34.1/src/ui/ui.c =================================================================== --- metacity-2.34.1.orig/src/ui/ui.c 2011-03-08 04:31:53.000000000 -0500 +++ metacity-2.34.1/src/ui/ui.c 2011-08-18 00:09:59.519807670 -0400 @@ -317,7 +317,7 @@ gint attributes_mask; GdkWindow *window; GdkVisual *visual; - GdkColormap *cmap = gdk_screen_get_default_colormap (screen); + GdkColormap *cmap = gdk_screen_get_system_colormap (screen); /* Default depth/visual handles clients with weird visuals; they can * always be children of the root depth/visual obviously, but debian/patches/104_workarea_union.patch0000664000000000000000000000313212277143773015263 0ustar # Description: Make the workarea be the union of available work areas not only one # Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/950774 Index: metacity-2.34.1/src/core/window.c =================================================================== --- metacity-2.34.1-old/src/core/workspace.c 2012-02-24 09:57:18.133491716 +0100 +++ metacity-2.34.1/src/core/workspace.c 2012-03-09 13:06:33.513603495 +0100 @@ -638,13 +638,27 @@ /* STEP 3: Get the work areas (region-to-maximize-to) for the screen and * xineramas. */ - work_area = workspace->screen->rect; /* start with the screen */ if (workspace->screen_region == NULL) work_area = meta_rect (0, 0, -1, -1); else - meta_rectangle_clip_to_region (workspace->screen_region, - FIXED_DIRECTION_NONE, - &work_area); + { + const GList *temp; + work_area = *(MetaRectangle*)workspace->screen_region->data; + for (temp = workspace->screen_region; temp; temp = temp->next) + { + MetaRectangle *rect = temp->data; + + /* Ensure each screen_region is not outside the xinerama screens. */ + for (i = 0; i < workspace->screen->n_xinerama_infos; i++) + { + if (meta_rectangle_overlap(rect, &workspace->screen->xinerama_infos[i].rect)) + { + meta_rectangle_union(rect, &work_area, &work_area); + break; + } + } + } + } /* Lots of paranoia checks, forcing work_area_screen to be sane */ #define MIN_SANE_AREA 100 debian/patches/103_struts_in_the_middle.patch0000664000000000000000000000543012277143773016452 0ustar # Description: Add support for struts in the middle of the work area # Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/947249 Index: metacity-2.34.1/src/core/window.c =================================================================== --- metacity-2.34.1-orig//src/core/window.c 2012-02-22 13:49:07.000000000 +0100 +++ metacity-2.34.1/src/core/window.c 2012-02-22 13:52:26.264853264 +0100 @@ -6126,6 +6126,63 @@ window->desc); } + /* applications expect us to clip struts to xinerama edges */ + new_iter = new_struts; + while (new_iter) + { + int j; + MetaStrut *strut = (MetaStrut*) new_iter->data; + for (j = 0; j < window->screen->n_xinerama_infos; j++) + { + const MetaXineramaScreenInfo *xineramaInfo = &window->screen->xinerama_infos[j]; + + const int screenX1 = xineramaInfo->rect.x; + const int screenY1 = xineramaInfo->rect.y; + const int screenX2 = screenX1 + xineramaInfo->rect.width; + const int screenY2 = screenY1 + xineramaInfo->rect.height; + + const int strutX1 = strut->rect.x; + const int strutY1 = strut->rect.y; + const int strutY2 = strutY1 + strut->rect.height; + const int strutX2 = strutX1 + strut->rect.width; + + switch (strut->side) + { + case META_SIDE_LEFT: + if (strutX2 > screenX1 && strutX2 <= screenX2 && strutY1 < screenY2 && strutY2 > screenY1) + { + strut->rect.x = screenX1; + strut->rect.width = strutX2 - screenX1; + } + break; + case META_SIDE_RIGHT: + if (strutX1 > screenX1 && strutX1 <= screenX2 && strutY1 < screenY2 && strutY2 > screenY1) + { + strut->rect.x = strutX1; + strut->rect.width = screenX2 - strutX1; + } + break; + case META_SIDE_TOP: + if (strutY2 > screenY1 && strutY2 <= screenY2 && strutX1 < screenX2 && strutX2 > screenX1) + { + strut->rect.y = screenY1; + strut->rect.height = strutY2 - screenY1; + } + break; + case META_SIDE_BOTTOM: + if (strutY1 > screenY1 && strutY1 <= screenY2 && strutX1 < screenX2 && strutX2 > screenX1) + { + strut->rect.y = strutY1; + strut->rect.height = screenY2 - strutY1; + } + break; + default: + g_assert_not_reached (); + } + } + new_iter = new_iter->next; + } + /* Determine whether old_struts and new_struts are the same */ old_iter = old_struts; new_iter = new_struts; debian/patches/04_support_drag_drop_with_alt_tab.patch0000664000000000000000000000152612277143773020442 0ustar Description: Add drag and drop support when using alt + tab Added to 1:2.30.1-2ubuntu2 Author: Matthias Clasen Upstream bug report: https://bugzilla.gnome.org/show_bug.cgi?id=135056 Ubuntu bug report: https://bugs.launchpad.net/bugs/111939 Index: metacity-2.34.1/src/core/display.c =================================================================== --- metacity-2.34.1.orig/src/core/display.c 2011-08-18 00:02:10.448515662 -0400 +++ metacity-2.34.1/src/core/display.c 2011-08-18 00:02:22.218798496 -0400 @@ -3267,7 +3267,7 @@ meta_display_set_grab_op_cursor (display, screen, op, FALSE, grab_xwindow, timestamp); - if (!display->grab_have_pointer) + if (!display->grab_have_pointer && !grab_op_is_keyboard (op)) { meta_topic (META_DEBUG_WINDOW_OPS, "XGrabPointer() failed\n"); debian/patches/series0000664000000000000000000000150112517210164012030 0ustar 01_focus_new_window.patch 03_gtop_error.patch #03_strict_focus.patch 04_support_drag_drop_with_alt_tab.patch 05_raise_on_click_for_click_mode.patch 06_Add_UXD_shadows_and_borders.patch 10_no-ws-switcher.patch 12_dont-show-as-user.patch 13_better_support_for_button_layout.patch 14_wrong_colormap.patch 20_do-not-place-windows-over-the-launcher.patch 21_fix_compositing_startup.patch 100_fade_on_long_title.patch 102_workarea.patch 103_struts_in_the_middle.patch 104_workarea_union.patch git_support_new_schemas.patch #Only needed for Unity 2D, needs porting to gsettings #15_show_maximized_titlebars.patch #16-capture-before-unmap.patch #17-workspace-switcher-cycle.patch #18-auto-maximize-windows.patch #19_add_unity_hud_configuration.patch #101_override_gconf_settings.patch 22_fix_above_tab_switching.patch require_modmask.patch debian/patches/21_fix_compositing_startup.patch0000664000000000000000000000153212277143773017143 0ustar # Description: Fix some weird rendering effect at startup with compositing # activated # Bug: https://bugzilla.gnome.org/show_bug.cgi?id=658036 # Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/820553 diff -Naur metacity-2.34.1.old//src/compositor/compositor-xrender.c metacity-2.34.1//src/compositor/compositor-xrender.c --- metacity-2.34.1.old//src/compositor/compositor-xrender.c 2011-09-13 16:47:30.401946870 +0200 +++ metacity-2.34.1//src/compositor/compositor-xrender.c 2011-09-13 16:50:54.559380264 +0200 @@ -3090,6 +3090,8 @@ xrc->atom_net_wm_window_type_toolbar = atoms[12]; xrc->atom_net_wm_window_type_dropdown_menu = atoms[13]; xrc->atom_net_wm_window_type_tooltip = atoms[14]; + xrc->show_redraw = FALSE; + xrc->debug = FALSE; #ifdef USE_IDLE_REPAINT meta_verbose ("Using idle repaint\n"); debian/patches/19_add_unity_hud_configuration.patch0000664000000000000000000000100612277143773017732 0ustar Index: metacity-2.34.1/src/50-metacity-launchers.xml.in =================================================================== --- metacity-2.34.1.orig/src/50-metacity-launchers.xml.in 2011-03-08 10:31:53.000000000 +0100 +++ metacity-2.34.1/src/50-metacity-launchers.xml.in 2012-04-05 11:57:10.789788264 +0200 @@ -4,5 +4,8 @@ + + debian/patches/101_override_gconf_settings.patch0000664000000000000000000001254612277143773017161 0ustar --- a/src/core/main.c +++ b/src/core/main.c @@ -235,6 +235,7 @@ gboolean composite; gboolean no_composite; gboolean no_force_fullscreen; + gchar *conf_file; } MetaArguments; #ifdef HAVE_COMPOSITE_EXTENSIONS @@ -322,6 +323,12 @@ N_("Don't make fullscreen windows that are maximized and have no decorations"), NULL }, + { + "conf-file", 0, 0, G_OPTION_ARG_FILENAME, + &my_args.conf_file, + N_("Options from the given configuration file have precedence over GConf ones"), + NULL + }, {NULL} }; GOptionContext *ctx; @@ -491,7 +498,7 @@ meta_errors_init (); /* Load prefs */ - meta_prefs_init (); + meta_prefs_init (meta_args.conf_file); meta_prefs_add_listener (prefs_changed_callback, NULL); @@ -571,6 +578,7 @@ g_free (meta_args.save_file); g_free (meta_args.display_name); g_free (meta_args.client_id); + g_free (meta_args.conf_file); if (meta_args.composite || meta_args.no_composite) meta_prefs_set_compositing_manager (meta_args.composite); --- a/src/core/prefs.c +++ b/src/core/prefs.c @@ -71,6 +71,8 @@ static GList *changes = NULL; static guint changed_idle; static GList *listeners = NULL; +static GKeyFile *key_file = NULL; +static const gchar conf_file_group_name[] = "general"; #endif static gboolean use_system_font = FALSE; @@ -512,6 +514,43 @@ { NULL, 0, NULL, 0, 0, 0, }, }; +static gchar * +conf_get_string (const gchar *key, GError **error) +{ + if (key_file != NULL) + { + gchar *value = g_key_file_get_string (key_file, + conf_file_group_name, + key, + NULL); + if (value != NULL) + return value; + } + return gconf_client_get_string (default_client, + key, + error); +} + +static gint +conf_get_int (const gchar *key, GError **error) +{ + if (key_file != NULL) + { + GError *key_error = NULL; + gint value = g_key_file_get_integer (key_file, + conf_file_group_name, + key, + &key_error); + if (key_error != NULL) + g_error_free (key_error); + else + return value; + } + return gconf_client_get_int (default_client, + key, + error); +} + static void handle_preference_init_enum (void) { @@ -528,9 +567,8 @@ continue; } - value = gconf_client_get_string (default_client, - cursor->key, - &error); + value = conf_get_string (cursor->key, + &error); cleanup_error (&error); if (value==NULL) @@ -579,9 +617,8 @@ gboolean dummy = TRUE; /* the string "value" will be newly allocated */ - value = gconf_client_get_string (default_client, - cursor->key, - &error); + value = conf_get_string (cursor->key, + &error); cleanup_error (&error); if (cursor->handler) @@ -616,9 +653,8 @@ gint value; GError *error = NULL; - value = gconf_client_get_int (default_client, - cursor->key, - &error); + value = conf_get_int (cursor->key, + &error); cleanup_error (&error); if (value < cursor->minimum || value > cursor->maximum) @@ -1035,7 +1071,7 @@ #endif void -meta_prefs_init (void) +meta_prefs_init (const gchar *conf_file) { #ifdef HAVE_GCONF GError *err = NULL; @@ -1058,6 +1094,18 @@ cleanup_error (&err); } + /* if a configuration file has been specified, settings written in that file + * will override those in GConf */ + if (conf_file != NULL) + { + key_file = g_key_file_new (); + g_key_file_load_from_file (key_file, + conf_file, + G_KEY_FILE_NONE, + &err); + cleanup_error (&err); + } + /* Pick up initial values. */ handle_preference_init_enum (); @@ -1240,6 +1288,22 @@ GConfValue *value; gboolean filled_in = FALSE; + if (key_file != NULL) + { + GError *key_error = NULL; + gboolean value = g_key_file_get_boolean (key_file, + conf_file_group_name, + key, + &key_error); + if (key_error != NULL) + g_error_free (key_error); + else + { + *val = value; + return TRUE; + } + } + value = gconf_client_get (default_client, key, &err); cleanup_error (&err); if (value) --- a/src/include/prefs.h +++ b/src/include/prefs.h @@ -77,7 +77,7 @@ void meta_prefs_remove_listener (MetaPrefsChangedFunc func, gpointer data); -void meta_prefs_init (void); +void meta_prefs_init (const gchar *conf_file); const char* meta_preference_to_string (MetaPreference pref); MetaVirtualModifier meta_prefs_get_mouse_button_mods (void); debian/patches/10_no-ws-switcher.patch0000664000000000000000000000146112277143773015050 0ustar Description: Don't show the ws switcher if we only have one Origin: Ubuntu Bug: https://bugzilla.gnome.org/show_bug.cgi?id=609513 Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/506944 Author: Didier Roche Index: metacity-2.34.3/src/core/keybindings.c =================================================================== --- metacity-2.34.3.orig/src/core/keybindings.c 2012-02-15 12:31:44.000000000 -0500 +++ metacity-2.34.3/src/core/keybindings.c 2012-08-22 17:49:15.964775504 -0400 @@ -3169,6 +3169,10 @@ g_assert (motion < 0); + /* Don't show the ws switcher if we get just one ws */ + if (meta_screen_get_n_workspaces(screen) == 1) + return; + meta_topic (META_DEBUG_KEYBINDINGS, "Starting tab between workspaces, showing popup\n"); debian/patches/15_show_maximized_titlebars.patch0000664000000000000000000002222312277143773017263 0ustar From: Aurelien Gateau Date: Thu, 16 Dec 2010 11:17:14 +0100 Subject: [PATCH] Added an option to make it possible to hide maximized titlebars bzr-revid: aurelien.gateau@canonical.com-20101216101714-tyht142o66k25uaj Index: metacity-2.34.1/src/ui/frames.c =================================================================== --- metacity-2.34.1.orig/src/ui/frames.c 2011-08-18 00:09:47.559519247 -0400 +++ metacity-2.34.1/src/ui/frames.c 2011-08-18 00:10:05.569953587 -0400 @@ -95,7 +95,7 @@ static void meta_frames_font_changed (MetaFrames *frames); static void meta_frames_button_layout_changed (MetaFrames *frames); - +static void meta_frames_show_maximized_titlebars_changed (MetaFrames *frames); static GdkRectangle* control_rect (MetaFrameControl control, MetaFrameGeometry *fgeom); @@ -197,6 +197,9 @@ case META_PREF_BUTTON_LAYOUT: meta_frames_button_layout_changed (META_FRAMES (data)); break; + case META_PREF_SHOW_MAXIMIZED_TITLEBARS: + meta_frames_show_maximized_titlebars_changed (META_FRAMES (data)); + break; default: break; } @@ -425,6 +428,16 @@ queue_draw_func, frames); } +void meta_frames_show_maximized_titlebars_changed (MetaFrames *frames) +{ + MetaTheme *theme = meta_theme_get_current (); + if (theme) + { + meta_theme_set_show_maximized_titlebars (theme, + meta_prefs_get_show_maximized_titlebars ()); + } +} + static void reattach_style_func (gpointer key, gpointer value, gpointer data) { Index: metacity-2.34.1/src/core/prefs.c =================================================================== --- metacity-2.34.1.orig/src/core/prefs.c 2011-08-18 00:09:47.559519247 -0400 +++ metacity-2.34.1/src/core/prefs.c 2011-08-18 00:10:05.569953587 -0400 @@ -99,6 +99,7 @@ static gboolean resize_with_right_button = FALSE; static gboolean force_fullscreen = TRUE; static gboolean hide_decorator_tooltip = FALSE; +static gboolean show_maximized_titlebars = TRUE; static MetaVisualBellType visual_bell_type = META_VISUAL_BELL_FULLSCREEN_FLASH; static MetaButtonLayout button_layout; @@ -419,6 +420,11 @@ &hide_decorator_tooltip, FALSE, }, + { "/apps/metacity/general/show_maximized_titlebars", + META_PREF_SHOW_MAXIMIZED_TITLEBARS, + &show_maximized_titlebars, + FALSE, + }, { NULL, 0, NULL, FALSE }, }; @@ -1275,6 +1281,12 @@ return hide_decorator_tooltip; } +gboolean +meta_prefs_get_show_maximized_titlebars (void) +{ + return show_maximized_titlebars; +} + const char* meta_prefs_get_theme (void) { @@ -1770,6 +1782,9 @@ case META_PREF_HIDE_DECORATOR_TOOLTIP: return "HIDE_DECORATOR_TOOLTIP"; + + case META_PREF_SHOW_MAXIMIZED_TITLEBARS: + return "META_PREF_SHOW_MAXIMIZED_TITLEBARS"; } return "(unknown)"; Index: metacity-2.34.1/src/ui/ui.c =================================================================== --- metacity-2.34.1.orig/src/ui/ui.c 2011-08-18 00:09:59.519807670 -0400 +++ metacity-2.34.1/src/ui/ui.c 2011-08-18 00:10:05.569953587 -0400 @@ -883,6 +883,12 @@ gboolean force_reload) { meta_theme_set_current (name, force_reload); + MetaTheme *theme = meta_theme_get_current (); + if (theme) + { + meta_theme_set_show_maximized_titlebars (theme, + meta_prefs_get_show_maximized_titlebars ()); + } meta_invalidate_default_icons (); } Index: metacity-2.34.1/src/include/prefs.h =================================================================== --- metacity-2.34.1.orig/src/include/prefs.h 2011-08-18 00:09:47.559519247 -0400 +++ metacity-2.34.1/src/include/prefs.h 2011-08-18 00:10:05.569953587 -0400 @@ -61,7 +61,8 @@ META_PREF_COMPOSITING_MANAGER, META_PREF_RESIZE_WITH_RIGHT_BUTTON, META_PREF_FORCE_FULLSCREEN, - META_PREF_HIDE_DECORATOR_TOOLTIP + META_PREF_HIDE_DECORATOR_TOOLTIP, + META_PREF_SHOW_MAXIMIZED_TITLEBARS } MetaPreference; typedef void (* MetaPrefsChangedFunc) (MetaPreference pref, @@ -82,6 +83,7 @@ MetaFocusNewWindows meta_prefs_get_focus_new_windows (void); gboolean meta_prefs_get_raise_on_click (void); gboolean meta_prefs_get_hide_decorator_tooltip (void); +gboolean meta_prefs_get_show_maximized_titlebars (void); const char* meta_prefs_get_theme (void); /* returns NULL if GTK default should be used */ const PangoFontDescription* meta_prefs_get_titlebar_font (void); Index: metacity-2.34.1/src/ui/theme.c =================================================================== --- metacity-2.34.1.orig/src/ui/theme.c 2011-08-18 00:09:52.879647547 -0400 +++ metacity-2.34.1/src/ui/theme.c 2011-08-18 00:10:05.579953821 -0400 @@ -406,7 +406,8 @@ int *top_height, int *bottom_height, int *left_width, - int *right_width) + int *right_width, + MetaTheme *theme) { int buttons_height, title_height; @@ -442,6 +443,9 @@ *bottom_height = layout->bottom_height; } + if ((flags & META_FRAME_MAXIMIZED) && !theme->show_maximized_titlebars) + *top_height = 0; + if (flags & META_FRAME_FULLSCREEN) { if (top_height) @@ -646,7 +650,8 @@ &fgeom->top_height, &fgeom->bottom_height, &fgeom->left_width, - &fgeom->right_width); + &fgeom->right_width, + theme); width = client_width + fgeom->left_width + fgeom->right_width; @@ -5025,6 +5030,9 @@ theme->quark_icon_height = g_quark_from_static_string ("icon_height"); theme->quark_title_width = g_quark_from_static_string ("title_width"); theme->quark_title_height = g_quark_from_static_string ("title_height"); + + theme->show_maximized_titlebars = TRUE; + return theme; } @@ -5449,7 +5457,8 @@ text_height, flags, top_height, bottom_height, - left_width, right_width); + left_width, right_width, + theme); } void @@ -6813,3 +6822,9 @@ return 1; } } + +void +meta_theme_set_show_maximized_titlebars (MetaTheme *theme, gboolean show) +{ + theme->show_maximized_titlebars = show; +} Index: metacity-2.34.1/src/metacity.schemas.in.in =================================================================== --- metacity-2.34.1.orig/src/metacity.schemas.in.in 2011-03-08 04:31:53.000000000 -0500 +++ metacity-2.34.1/src/metacity.schemas.in.in 2011-08-18 00:10:05.579953821 -0400 @@ -41,6 +41,20 @@ + /schemas/apps/metacity/general/show_maximized_titlebars + /apps/metacity/general/show_maximized_titlebars + metacity + bool + true + + Whether to show title bars for maximized windows + + Set this to false to hide title bars for maximized windows. + + + + + /schemas/apps/metacity/general/button_layout /apps/metacity/general/button_layout metacity Index: metacity-2.34.1/src/ui/theme.h =================================================================== --- metacity-2.34.1.orig/src/ui/theme.h 2011-08-18 00:09:52.879647547 -0400 +++ metacity-2.34.1/src/ui/theme.h 2011-08-18 00:10:05.579953821 -0400 @@ -883,6 +883,8 @@ GQuark quark_icon_height; GQuark quark_title_width; GQuark quark_title_height; + + gboolean show_maximized_titlebars; }; struct _MetaPositionExprEnv @@ -916,7 +918,8 @@ int *top_height, int *bottom_height, int *left_width, - int *right_width); + int *right_width, + MetaTheme *theme); void meta_frame_layout_calc_geometry (const MetaFrameLayout *layout, int text_height, MetaFrameFlags flags, @@ -1244,6 +1247,8 @@ guint meta_theme_earliest_version_with_button (MetaButtonType type); +void meta_theme_set_show_maximized_titlebars (MetaTheme *theme, gboolean); + #define META_THEME_ALLOWS(theme, feature) (theme->format_version >= feature) debian/patches/require_modmask.patch0000664000000000000000000000164212517210170015026 0ustar Description: keybindings: don't grab keybindings without modmask Origin: upstream, https://git.gnome.org/browse/metacity/commit/?id=5aeae2fcc6763839 Last-Update: 2015-04-09 Index: metacity-2.34.13/src/core/keybindings.c =================================================================== --- metacity-2.34.13.orig/src/core/keybindings.c 2015-04-26 12:21:10.096479979 -0400 +++ metacity-2.34.13/src/core/keybindings.c 2015-04-26 12:21:10.092479946 -0400 @@ -685,6 +685,15 @@ * X provides no better way to do this. */ + if (modmask == 0) + { + meta_topic (META_DEBUG_KEYBINDINGS, + "Will not %s keybinding %s without modmask\n", + grab ? "grab" : "ungrab", + keysym_name (keysym)); + return; + } + meta_topic (META_DEBUG_KEYBINDINGS, "%s keybinding %s keycode %d mask 0x%x on 0x%lx\n", grab ? "Grabbing" : "Ungrabbing", debian/patches/03_gtop_error.patch0000664000000000000000000000115712277143773014345 0ustar --- metacity-2.28.0/src/core/window-props.c 2009-09-08 22:55:35.000000000 +0200 +++ metacity-2.28.0-tomaz/src/core/window-props.c 2010-02-16 11:38:50.000000000 +0100 @@ -337,8 +337,15 @@ glibtop_get_proc_uid (&process_details, process); - *result = process_details.uid; - return TRUE; + if (process_details.flags & (1L << GLIBTOP_PROC_UID_UID) ) + { + *result = process_details.uid; + return TRUE; + } + else + { + return FALSE; + } #else /* I don't know, maybe we could do something hairy like see whether * /proc/$PID exists and who owns it, in case they have procfs. debian/patches/22_fix_above_tab_switching.patch0000664000000000000000000000150212277143773017025 0ustar Description: For Above_Tab, don't compare keysym (fixes group switching) Author: Jeffrey Knockel Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/907640 Bug: https://bugzilla.gnome.org/show_bug.cgi?id=692437 --- metacity-2.34.13.orig/src/core/keybindings.c +++ metacity-2.34.13/src/core/keybindings.c @@ -503,7 +503,9 @@ display_get_keybinding_action (MetaDispl i = display->n_key_bindings - 1; while (i >= 0) { - if (display->key_bindings[i].keysym == keysym && + if ((display->key_bindings[i].keysym == keysym || + /* Don't need to compare keysym if META_KEY_ABOVE_TAB */ + display->key_bindings[i].keysym == META_KEY_ABOVE_TAB) && display->key_bindings[i].keycode == keycode && display->key_bindings[i].mask == mask) { debian/patches/100_fade_on_long_title.patch0000664000000000000000000000445012277143773016053 0ustar From: Omer Akram Author: Marco Trevisan Subject: Cut with fading the Bar title when it's longer than the decoration bar. Origin: vendor https://code.launchpad.net/~om26er/ubuntu/natty/metacity/metacity-fix-717216 Bug: https://bugzilla.gnome.org/show_bug.cgi?id=642108 Bug-Ubuntu: https://launchpad.net/bugs/717216 Index: metacity-2.34.1/src/ui/theme.c =================================================================== --- metacity-2.34.1.orig/src/ui/theme.c 2011-08-18 00:10:05.579953821 -0400 +++ metacity-2.34.1/src/ui/theme.c 2011-08-18 00:10:32.500603133 -0400 @@ -3858,6 +3858,33 @@ rx = parse_x_position_unchecked (op->data.title.x, env); ry = parse_y_position_unchecked (op->data.title.y, env); + if (rx - env->rect.x + env->title_width >= env->rect.width) + { + const double alpha_margin = 30.0; + int text_space = env->rect.x + env->rect.width - + (rx - env->rect.x) - env->right_width; + + double startalpha = 1.0 - (alpha_margin/((double)text_space)); + + cairo_pattern_t *linpat; + linpat = cairo_pattern_create_linear (rx, ry, text_space, + env->title_height); + cairo_pattern_add_color_stop_rgb (linpat, 0, color.red/65535.0, + color.green/65535.0, + color.blue/65535.0); + cairo_pattern_add_color_stop_rgb (linpat, startalpha, + color.red/65535.0, + color.green/65535.0, + color.blue/65535.0); + cairo_pattern_add_color_stop_rgba (linpat, 1, color.red/65535.0, + color.green/65535.0, + color.blue/65535.0, 0); + cairo_set_source(cr, linpat); + cairo_pattern_destroy(linpat); + } else { + gdk_cairo_set_source_color (cr, &color); + } + cairo_move_to (cr, rx, ry); pango_cairo_show_layout (cr, info->title_layout); } debian/patches/20_do-not-place-windows-over-the-launcher.patch0000664000000000000000000000402712277143773021461 0ustar Author: Olivier Tilloy Description: Do not initially position windows over the launcher. Bug: https://bugs.launchpad.net/unity-2d/+bug/688816 Index: metacity-2.30.3/src/core/place.c =================================================================== --- metacity-2.30.3.orig/src/core/place.c 2010-09-04 18:09:53.000000000 +0200 +++ metacity-2.30.3/src/core/place.c 2011-05-20 18:00:42.809514001 +0200 @@ -138,6 +138,32 @@ current = meta_screen_get_current_xinerama (window->screen); meta_window_get_work_area_for_xinerama (window, current->number, &work_area); + /* Restrict the work area further to take into account possible dock windows + that haven’t reserved struts. This is for example the case of a launcher + that sits on the edge of the screen with an intellihide behaviour. */ + tmp = windows; + while (tmp != NULL) + { + MetaWindow *w = tmp->data; + if (w->type == META_WINDOW_DOCK && w->struts == NULL) + { + MetaRectangle rect; + meta_window_get_outer_rect (w, &rect); + /* Note: this caters only for the case of a dock on the left edge of + the screen. Other cases (right, top, bottom) are not handled at + the moment. */ + if (rect.x == work_area.x && rect.width < work_area.width && + rect.height > rect.width) + { + if (rect.x + rect.width > work_area.x) + { + work_area.x = rect.x + rect.width; + } + } + } + tmp = tmp->next; + } + cascade_x = MAX (0, work_area.x); cascade_y = MAX (0, work_area.y); @@ -389,13 +415,13 @@ switch (other->type) { - case META_WINDOW_DOCK: case META_WINDOW_SPLASHSCREEN: case META_WINDOW_DESKTOP: case META_WINDOW_DIALOG: case META_WINDOW_MODAL_DIALOG: break; + case META_WINDOW_DOCK: case META_WINDOW_NORMAL: case META_WINDOW_UTILITY: case META_WINDOW_TOOLBAR: debian/patches/01_focus_new_window.patch0000664000000000000000000000467712277143773015552 0ustar Debian #515577 GNOME #534752 --- a/src/core/window.c +++ b/src/core/window.c @@ -2045,6 +2045,10 @@ windows_overlap (const MetaWindow *w1, const MetaWindow *w2) { MetaRectangle w1rect, w2rect; + + if (w1->minimized || w2->minimized) + return FALSE; + meta_window_get_outer_rect (w1, &w1rect); meta_window_get_outer_rect (w2, &w2rect); return meta_rectangle_overlap (&w1rect, &w2rect); @@ -2099,6 +2103,7 @@ gboolean takes_focus_on_map; gboolean place_on_top_on_map; gboolean needs_stacking_adjustment; + gboolean will_be_covered; MetaWindow *focus_window; guint32 timestamp; @@ -2116,6 +2121,7 @@ did_show = FALSE; window_state_on_map (window, &takes_focus_on_map, &place_on_top_on_map); needs_stacking_adjustment = FALSE; + will_be_covered = window_would_be_covered (window); meta_topic (META_DEBUG_WINDOW_STATE, "Window %s %s focus on map, and %s place on top on map.\n", @@ -2136,7 +2142,7 @@ if ( focus_window != NULL && window->showing_for_first_time && ( (!place_on_top_on_map && !takes_focus_on_map) || - window_would_be_covered (window) ) + will_be_covered ) ) { if (meta_window_is_ancestor_of_transient (focus_window, window)) { @@ -2220,21 +2226,21 @@ * in the stack when it doesn't overlap it confusingly places * that new window below a lot of other windows. */ - if (overlap || + if (!will_be_covered && (overlap || (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK && - meta_prefs_get_raise_on_click ())) + meta_prefs_get_raise_on_click ()))) meta_window_stack_just_below (window, focus_window); - /* If the window will be obscured by the focus window, then the - * user might not notice the window appearing so set the - * demands attention hint. + /* If the window will be obscured by the focus window or a window set to + * always on top, then the user might not notice the window appearing so + * set the demands attention hint. * * We set the hint ourselves rather than calling * meta_window_set_demands_attention() because that would cause * a recalculation of overlap, and a call to set_net_wm_state() * which we are going to call ourselves here a few lines down. */ - if (overlap) + if (overlap || will_be_covered) window->wm_state_demands_attention = TRUE; } debian/patches/16-capture-before-unmap.patch0000664000000000000000000002703212277143773016126 0ustar Description: Add an optional feature that makes metacity save in a window property a pixmap of each window before it is unmapped. Author: Ugo Riboni Forwarded: not-needed Bug: https://bugs.launchpad.net/unity-2d/+bug/696864 Index: metacity-2.34.1/src/compositor/compositor-xrender.c =================================================================== --- metacity-2.34.1.orig/src/compositor/compositor-xrender.c 2011-09-16 21:05:22.280001668 +0100 +++ metacity-2.34.1/src/compositor/compositor-xrender.c 2011-09-16 21:05:27.880001566 +0100 @@ -35,6 +35,7 @@ #include +#include "prefs.h" #include "display.h" #include "screen.h" #include "frame.h" @@ -967,7 +968,7 @@ if (!cw->shadow) { double opacity = SHADOW_OPACITY; - if (cw->opacity != (guint) OPAQUE) + if (meta_prefs_get_compositor_effects() && cw->opacity != (guint) OPAQUE) opacity = opacity * ((double) cw->opacity) / ((double) OPAQUE); cw->shadow = shadow_picture (display, screen, cw->shadow_type, @@ -1298,7 +1299,8 @@ XFixesDestroyRegion (xdisplay, shadow_clip); } - if ((cw->opacity != (guint) OPAQUE) && !(cw->alpha_pict)) + if (meta_prefs_get_compositor_effects() && + (cw->opacity != (guint) OPAQUE) && !(cw->alpha_pict)) { cw->alpha_pict = solid_picture (display, screen, FALSE, (double) cw->opacity / OPAQUE, @@ -2607,7 +2609,7 @@ info->overlays = 0; info->clip_changed = TRUE; - info->have_shadows = (g_getenv("META_DEBUG_NO_SHADOW") == NULL); + info->have_shadows = meta_prefs_get_compositor_effects() && (g_getenv("META_DEBUG_NO_SHADOW") == NULL); if (info->have_shadows) { meta_verbose ("Enabling shadows\n"); @@ -2995,6 +2997,35 @@ #endif } +static void +prefs_changed_callback (MetaPreference pref, + gpointer data) +{ + MetaCompositorXRender *compositor; + MetaDisplay *display; + GSList *index; + + if (pref != META_PREF_COMPOSITOR_EFFECTS) + return; + + compositor = (MetaCompositorXRender *) data; + if (compositor == NULL) + return; + + display = compositor->display; + + for (index = meta_display_get_screens (display); index; index = index->next) + { + MetaScreen *screen = index->data; + if (screen == NULL) + continue; + + MetaCompScreen *screen_info = meta_screen_get_compositor_data (screen); + if (screen_info != NULL) + screen_info->have_shadows = meta_prefs_get_compositor_effects (); + } +} + static MetaCompositor comp_info = { xrender_destroy, xrender_manage_screen, @@ -3068,6 +3099,8 @@ xrc->enabled = TRUE; g_timeout_add (2000, (GSourceFunc) timeout_debug, xrc); + meta_prefs_add_listener (prefs_changed_callback, xrc); + return compositor; #else return NULL; Index: metacity-2.34.1/src/core/atomnames.h =================================================================== --- metacity-2.34.1.orig/src/core/atomnames.h 2011-09-16 21:05:22.240001667 +0100 +++ metacity-2.34.1/src/core/atomnames.h 2011-09-16 21:05:27.880001566 +0100 @@ -70,6 +70,7 @@ item(TIMESTAMP) item(VERSION) item(ATOM_PAIR) +item(_METACITY_WINDOW_CAPTURE) /* Oddities: These are used, and we need atoms for them, * but when we need all _NET_WM hints (i.e. when we're making Index: metacity-2.34.1/src/core/prefs.c =================================================================== --- metacity-2.34.1.orig/src/core/prefs.c 2011-09-16 21:05:27.850001570 +0100 +++ metacity-2.34.1/src/core/prefs.c 2011-09-16 21:05:27.880001566 +0100 @@ -96,6 +96,8 @@ static char *cursor_theme = NULL; static int cursor_size = 24; static gboolean compositing_manager = FALSE; +static gboolean compositor_effects = TRUE; +static gboolean capture_before_unmap = FALSE; static gboolean resize_with_right_button = FALSE; static gboolean force_fullscreen = TRUE; static gboolean hide_decorator_tooltip = FALSE; @@ -425,6 +427,16 @@ &show_maximized_titlebars, FALSE, }, + { "/apps/metacity/general/compositor_effects", + META_PREF_COMPOSITOR_EFFECTS, + &compositor_effects, + TRUE, + }, + { "/apps/metacity/general/capture_before_unmap", + META_PREF_CAPTURE_BEFORE_UNMAP, + &capture_before_unmap, + FALSE, + }, { NULL, 0, NULL, FALSE }, }; @@ -1773,6 +1785,12 @@ case META_PREF_COMPOSITING_MANAGER: return "COMPOSITING_MANAGER"; + + case META_PREF_COMPOSITOR_EFFECTS: + return "COMPOSITOR_EFFECTS"; + + case META_PREF_CAPTURE_BEFORE_UNMAP: + return "CAPTURE_BEFORE_UNMAP"; case META_PREF_RESIZE_WITH_RIGHT_BUTTON: return "RESIZE_WITH_RIGHT_BUTTON"; @@ -2780,6 +2798,18 @@ #endif } +gboolean +meta_prefs_get_compositor_effects (void) +{ + return compositor_effects; +} + +gboolean +meta_prefs_get_capture_before_unmap (void) +{ + return capture_before_unmap; +} + #ifndef HAVE_GCONF static void init_button_layout(void) Index: metacity-2.34.1/src/core/screen.c =================================================================== --- metacity-2.34.1.orig/src/core/screen.c 2011-09-16 21:05:22.250001667 +0100 +++ metacity-2.34.1/src/core/screen.c 2011-09-16 21:05:27.880001566 +0100 @@ -1280,7 +1280,9 @@ entries[i].key = (MetaTabEntryKey) window->xwindow; entries[i].title = window->title; - win_pixbuf = get_window_pixbuf (window, &width, &height); + win_pixbuf = NULL; + if (meta_prefs_get_compositor_effects()) + win_pixbuf = get_window_pixbuf (window, &width, &height); if (win_pixbuf == NULL) entries[i].icon = g_object_ref (window->icon); else Index: metacity-2.34.1/src/core/window.c =================================================================== --- metacity-2.34.1.orig/src/core/window.c 2011-09-16 21:05:27.700001571 +0100 +++ metacity-2.34.1/src/core/window.c 2011-09-16 21:06:30.880000450 +0100 @@ -973,6 +973,47 @@ } } +static void +save_pixmap_for_window(MetaWindow *window) +{ + MetaDisplay *display = meta_window_get_display(window); + if (display == NULL) + return; + + MetaCompositor *compositor = meta_display_get_compositor(display); + if (compositor != NULL) { + Pixmap pixmap = meta_compositor_get_window_pixmap(compositor, window); + if (pixmap == None) + return; + + Window xwindow = meta_window_get_xwindow(window); + meta_error_trap_push (display); + int success = XChangeProperty (meta_display_get_xdisplay(display), + xwindow, + display->atom__METACITY_WINDOW_CAPTURE, + XA_PIXMAP, + 32, PropModeReplace, (guchar*) &pixmap, 1); + meta_error_trap_pop (display, FALSE); + if (!success) + meta_warning("Failed to save capture property on window %lu\n", xwindow); + } +} + +static void +remove_pixmap_for_window(MetaWindow *window) +{ + MetaDisplay *display = meta_window_get_display(window); + if (display == NULL) + return; + + Window xwindow = meta_window_get_xwindow(window); + meta_error_trap_push (display); + XDeleteProperty(meta_display_get_xdisplay(display), + xwindow, + display->atom__METACITY_WINDOW_CAPTURE); + meta_error_trap_pop (display, FALSE); +} + void meta_window_free (MetaWindow *window, guint32 timestamp) @@ -981,6 +1022,10 @@ meta_verbose ("Unmanaging 0x%lx\n", window->xwindow); + /* As a precaution remove the property holding the id of the + captured pixmap first, so it can't be accessed anymore. */ + remove_pixmap_for_window(window); + if (window->display->compositor) meta_compositor_free_window (window->display->compositor, window); @@ -1480,6 +1525,9 @@ { gboolean on_workspace; + if (!showing && meta_prefs_get_capture_before_unmap()) + save_pixmap_for_window(window); + on_workspace = meta_window_located_on_workspace (window, window->screen->active_workspace); @@ -1524,6 +1572,15 @@ } else { + /* Remove the property with the captured pixmap id before + we actually proceed to show the window, as the pixmap will + be destroyed by the compositor as soon as the window is + mapped. This will leave a small gap in which neither the + actual window pixmap nor the property holding the captured + pixmap are available, but it's safer than having the + property reference a pixmap that doesn't exist anymore. */ + remove_pixmap_for_window(window); + meta_window_show (window); } } Index: metacity-2.34.1/src/include/prefs.h =================================================================== --- metacity-2.34.1.orig/src/include/prefs.h 2011-09-16 21:05:27.860001569 +0100 +++ metacity-2.34.1/src/include/prefs.h 2011-09-16 21:05:27.880001566 +0100 @@ -59,6 +59,8 @@ META_PREF_CURSOR_THEME, META_PREF_CURSOR_SIZE, META_PREF_COMPOSITING_MANAGER, + META_PREF_COMPOSITOR_EFFECTS, + META_PREF_CAPTURE_BEFORE_UNMAP, META_PREF_RESIZE_WITH_RIGHT_BUTTON, META_PREF_FORCE_FULLSCREEN, META_PREF_HIDE_DECORATOR_TOOLTIP, @@ -120,6 +122,8 @@ int meta_prefs_get_cursor_size (void); gboolean meta_prefs_get_compositing_manager (void); gboolean meta_prefs_get_force_fullscreen (void); +gboolean meta_prefs_get_compositor_effects (void); +gboolean meta_prefs_get_capture_before_unmap (void); /** * Sets whether the compositor is turned on. Index: metacity-2.34.1/src/metacity.schemas.in.in =================================================================== --- metacity-2.34.1.orig/src/metacity.schemas.in.in 2011-09-16 21:05:27.860001569 +0100 +++ metacity-2.34.1/src/metacity.schemas.in.in 2011-09-16 21:05:27.880001566 +0100 @@ -386,6 +386,43 @@ + + + /schemas/apps/metacity/general/compositor_effects + /apps/metacity/general/compositor_effects + metacity + bool + true + + Compositor effects + + Determines if compositor-related effects are enabled or not. + More specifically, it disables the shadows below windows, the + support for windows opacity and the windows previews in the + alt+tab window switcher. + It does not have any effect if compositing_manager is disabled. + + + + + + /schemas/apps/metacity/general/capture_before_unmap + /apps/metacity/general/capture_before_unmap + metacity + bool + false + + Capture Before Unmap + + Determines whether or not before a window is unmapped (e.g. when + it is sent to another workspace or minimized) a pixmap of the + current state of the window is captured and stored in a property + on the window itself. This allows interested clients (e.g. + workspace switchers) to be able to display previews of any window. + Note that this will only work if compositing_manager is enabled too. + + + /schemas/apps/metacity/workspace_names/name debian/patches/17-workspace-switcher-cycle.patch0000664000000000000000000001365212277143773017032 0ustar Index: metacity-2.34.1/src/core/prefs.c =================================================================== --- metacity-2.34.1.orig/src/core/prefs.c 2011-08-18 00:10:11.320092262 -0400 +++ metacity-2.34.1/src/core/prefs.c 2011-08-18 00:10:19.830297517 -0400 @@ -102,6 +102,7 @@ static gboolean force_fullscreen = TRUE; static gboolean hide_decorator_tooltip = FALSE; static gboolean show_maximized_titlebars = TRUE; +static gboolean workspace_switcher_keyboard_cycle = FALSE; static MetaVisualBellType visual_bell_type = META_VISUAL_BELL_FULLSCREEN_FLASH; static MetaButtonLayout button_layout; @@ -437,6 +438,11 @@ &capture_before_unmap, FALSE, }, + { "/apps/metacity/general/workspace_switcher_keyboard_cycle", + META_PREF_WORKSPACE_SWITCHER_KEYBOARD_CYCLE, + &workspace_switcher_keyboard_cycle, + FALSE, + }, { NULL, 0, NULL, FALSE }, }; @@ -1803,6 +1809,9 @@ case META_PREF_SHOW_MAXIMIZED_TITLEBARS: return "META_PREF_SHOW_MAXIMIZED_TITLEBARS"; + + case META_PREF_WORKSPACE_SWITCHER_KEYBOARD_CYCLE: + return "WORKSPACE_SWITCHER_KEYBOARD_CYCLE"; } return "(unknown)"; @@ -2758,6 +2767,12 @@ return compositing_manager; } +gboolean +meta_prefs_get_workspace_switcher_keyboard_cycle (void) +{ + return workspace_switcher_keyboard_cycle; +} + guint meta_prefs_get_mouse_button_resize (void) { Index: metacity-2.34.1/src/core/workspace.c =================================================================== --- metacity-2.34.1.orig/src/core/workspace.c 2011-08-18 00:09:43.479420855 -0400 +++ metacity-2.34.1/src/core/workspace.c 2011-08-18 00:10:19.830297517 -0400 @@ -816,8 +816,9 @@ { MetaWorkspaceLayout layout; int i, current_space, num_workspaces; - gboolean ltr; + gboolean ltr, cycle; + cycle = meta_prefs_get_workspace_switcher_keyboard_cycle (); current_space = meta_workspace_index (workspace); num_workspaces = meta_screen_get_n_workspaces (workspace->screen); meta_screen_calc_workspace_layout (workspace->screen, num_workspaces, @@ -844,14 +845,52 @@ break; } - if (layout.current_col < 0) - layout.current_col = 0; - if (layout.current_col >= layout.cols) - layout.current_col = layout.cols - 1; - if (layout.current_row < 0) - layout.current_row = 0; - if (layout.current_row >= layout.rows) - layout.current_row = layout.rows - 1; + if (cycle) + { + /* right to left */ + if (layout.current_col < 0) + { + layout.current_col = layout.cols - 1; + if (layout.rows > 1) + { + /* first row */ + if (layout.current_row == 0) + layout.current_row = layout.rows - 1; + else + layout.current_row -= 1; + } + } + + /* left to right */ + if (layout.current_col >= layout.cols) + { + layout.current_col = 0; + + if (layout.rows > 1) + { + /* last row */ + if (layout.current_row == (layout.rows -1)) + layout.current_row = 0; + else + layout.current_row += 1; + } + } + if (layout.current_row < 0) + layout.current_row = 0; + if (layout.current_row >= layout.rows) + layout.current_row = layout.rows - 1; + } + else + { + if (layout.current_col < 0) + layout.current_col = 0; + if (layout.current_col >= layout.cols) + layout.current_col = layout.cols - 1; + if (layout.current_row < 0) + layout.current_row = 0; + if (layout.current_row >= layout.rows) + layout.current_row = layout.rows - 1; + } i = layout.grid[layout.current_row * layout.cols + layout.current_col]; Index: metacity-2.34.1/src/include/prefs.h =================================================================== --- metacity-2.34.1.orig/src/include/prefs.h 2011-08-18 00:10:11.330092500 -0400 +++ metacity-2.34.1/src/include/prefs.h 2011-08-18 00:10:19.830297517 -0400 @@ -64,7 +64,8 @@ META_PREF_RESIZE_WITH_RIGHT_BUTTON, META_PREF_FORCE_FULLSCREEN, META_PREF_HIDE_DECORATOR_TOOLTIP, - META_PREF_SHOW_MAXIMIZED_TITLEBARS + META_PREF_SHOW_MAXIMIZED_TITLEBARS, + META_PREF_WORKSPACE_SWITCHER_KEYBOARD_CYCLE } MetaPreference; typedef void (* MetaPrefsChangedFunc) (MetaPreference pref, @@ -124,6 +125,8 @@ gboolean meta_prefs_get_force_fullscreen (void); gboolean meta_prefs_get_compositor_effects (void); gboolean meta_prefs_get_capture_before_unmap (void); +gboolean meta_prefs_get_workspace_switcher_keyboard_cycle (void); + /** * Sets whether the compositor is turned on. Index: metacity-2.34.1/src/metacity.schemas.in.in =================================================================== --- metacity-2.34.1.orig/src/metacity.schemas.in.in 2011-08-18 00:10:11.330092500 -0400 +++ metacity-2.34.1/src/metacity.schemas.in.in 2011-08-18 00:10:19.830297517 -0400 @@ -337,6 +337,26 @@ + /schemas/apps/metacity/general/workspace_switcher_keyboard_cycle + /apps/metacity/general/workspace_switcher_keyboard_cycle + metacity + bool + false + + Workspace Switcher Keyboard Cycle + + Determines if the workspace switcher enables cycling + of workspaces using keyboard shortcuts. (typically right and + left arrow keys). If true and single row layout, keys will + cycle from last to first and first to last workspace when + pressed on first or last workspace. If true and multi-row + layout, keys will cycle left to right, top to bottom + and vice versa. + + + + + /schemas/apps/metacity/general/audible_bell /apps/metacity/general/audible_bell metacity debian/patches/git_support_new_schemas.patch0000664000000000000000000000374112277143773016615 0ustar From 67165f516f87adc1b20f3339294299565f6db56d Mon Sep 17 00:00:00 2001 From: Dmitry Shachnev Date: Thu, 11 Apr 2013 14:34:49 +0000 Subject: Add support for switch-applications keybindings In gsettings-desktop-schemas 3.8, there is not shortcut for switch-windows, and Alt+Tab points to switch-applications by default. As we do not support switching applications, but want Alt+Tab to work, just bind switch-applications to the same action as switch-windows is currently bound to (and the same for -backward). https://bugzilla.gnome.org/show_bug.cgi?id=697801 --- diff --git a/src/50-metacity-navigation.xml.in b/src/50-metacity-navigation.xml.in index fc0b457..597cc47 100644 --- a/src/50-metacity-navigation.xml.in +++ b/src/50-metacity-navigation.xml.in @@ -30,6 +30,9 @@ _description="Move window one workspace down" /> + + #endif -static int destroying_windows_disallowed = 0; +#define AUTO_MAXIMIZE_MINIMUM_COVERAGE 0.75 +static int destroying_windows_disallowed = 0; static void update_sm_hints (MetaWindow *window); static void update_net_frame_extents (MetaWindow *window); @@ -2696,6 +2697,30 @@ } } +void +meta_window_auto_maximize (MetaWindow *window) +{ + const MetaXineramaScreenInfo* info; + int screen_surface, window_surface; + double coverage; + + if (window->type != META_WINDOW_NORMAL || !window->has_maximize_func) + return; + + if (window->maximized_horizontally || window->maximized_vertically) + return; + + info = meta_screen_get_xinerama_for_window (window->display->active_screen, window); + g_return_if_fail (info); + screen_surface = info->rect.width * info->rect.height; + g_return_if_fail (screen_surface != 0); + window_surface = window->rect.width * window->rect.height; + coverage = (double)(window_surface) / screen_surface; + + if (coverage > AUTO_MAXIMIZE_MINIMUM_COVERAGE && coverage <= 1.0) + meta_window_maximize (window, META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_VERTICAL); +} + static void unmaximize_window_before_freeing (MetaWindow *window) { Index: metacity-2.34.1/src/include/prefs.h =================================================================== --- metacity-2.34.1.orig/src/include/prefs.h 2011-08-18 00:10:19.830297517 -0400 +++ metacity-2.34.1/src/include/prefs.h 2011-08-18 00:10:26.660462267 -0400 @@ -65,7 +65,8 @@ META_PREF_FORCE_FULLSCREEN, META_PREF_HIDE_DECORATOR_TOOLTIP, META_PREF_SHOW_MAXIMIZED_TITLEBARS, - META_PREF_WORKSPACE_SWITCHER_KEYBOARD_CYCLE + META_PREF_AUTO_MAXIMIZE_WINDOWS, + META_PREF_WORKSPACE_SWITCHER_KEYBOARD_CYCLE, } MetaPreference; typedef void (* MetaPrefsChangedFunc) (MetaPreference pref, @@ -127,6 +128,7 @@ gboolean meta_prefs_get_capture_before_unmap (void); gboolean meta_prefs_get_workspace_switcher_keyboard_cycle (void); +gboolean meta_prefs_get_auto_maximize_windows (void); /** * Sets whether the compositor is turned on. Index: metacity-2.34.1/src/metacity.schemas.in.in =================================================================== --- metacity-2.34.1.orig/src/metacity.schemas.in.in 2011-08-18 00:10:19.830297517 -0400 +++ metacity-2.34.1/src/metacity.schemas.in.in 2011-08-18 00:10:26.660462267 -0400 @@ -357,6 +357,21 @@ + /schemas/apps/metacity/general/auto_maximize_windows + /apps/metacity/general/auto_maximize_windows + metacity + bool + false + + Automatically Maximize Windows + + Determines if windows should be automatically maximized when shown + if they already cover most of the screen. + + + + + /schemas/apps/metacity/general/audible_bell /apps/metacity/general/audible_bell metacity debian/patches/05_raise_on_click_for_click_mode.patch0000664000000000000000000000110012277143773020134 0ustar Description: Force raise on click option. Bug: https://bugs.launchpad.net/bugs/44710 Index: metacity-2.34.3/src/core/prefs.c =================================================================== --- metacity-2.34.3.orig/src/core/prefs.c 2012-02-15 12:31:44.000000000 -0500 +++ metacity-2.34.3/src/core/prefs.c 2012-08-22 17:47:34.508272395 -0400 @@ -906,7 +906,7 @@ /* Force raise_on_click on for click-to-focus, as requested by Havoc * in #326156. */ - return raise_on_click || focus_mode == G_DESKTOP_FOCUS_MODE_CLICK; + return raise_on_click; } const char* debian/patches/102_workarea.patch0000664000000000000000000001041512277143773014053 0ustar # Description: Add _UNITY_NET_WORKAREA_REGION support # Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/798156 Index: metacity-2.34.1/src/core/atomnames.h =================================================================== --- metacity-2.34.1.orig/src/core/atomnames.h 2012-02-22 12:44:18.601806598 +0800 +++ metacity-2.34.1/src/core/atomnames.h 2012-02-22 12:44:18.809807626 +0800 @@ -158,6 +158,7 @@ item(_NET_WM_STATE_STICKY) item(_NET_WM_FULLSCREEN_MONITORS) item(_NET_RESTACK_WINDOW) +item(_UNITY_NET_WORKAREA_REGION) /* eof atomnames.h */ Index: metacity-2.34.1/src/core/screen.c =================================================================== --- metacity-2.34.1.orig/src/core/screen.c 2012-02-22 12:44:18.605806614 +0800 +++ metacity-2.34.1/src/core/screen.c 2012-02-22 12:44:18.809807626 +0800 @@ -1942,9 +1942,39 @@ XA_CARDINAL, 32, PropModeReplace, (guchar*) data, num_workspaces*4); g_free (data); + data = NULL; meta_error_trap_pop (screen->display, FALSE); } +static void +set_work_area_region_hint (MetaScreen *screen) +{ + /* Also set _UNITY_NET_WORK_AREA_REGION hint */ + int i = 0; + Region sr = XCreateRegion (); + unsigned long *dataRegion = NULL; + + meta_workspace_get_work_area_region_all_xineramas ((MetaWorkspace *) screen->workspaces->data, sr); + + dataRegion = g_new0 (unsigned long, 4 * sr->numRects); + + for (i = 0; i < sr->numRects; i++) + { + dataRegion[i * 4 + 0] = sr->rects[i].x1; + dataRegion[i * 4 + 1] = sr->rects[i].y1; + dataRegion[i * 4 + 2] = sr->rects[i].x2 - sr->rects[i].x1; + dataRegion[i * 4 + 3] = sr->rects[i].y2 - sr->rects[i].y1; + } + + meta_error_trap_push (screen->display); + XChangeProperty(screen->display->xdisplay, screen->xroot, screen->display->atom__UNITY_NET_WORKAREA_REGION, + XA_CARDINAL, 32, PropModeReplace, (guchar*) dataRegion, sr->numRects * 4); + meta_error_trap_pop (screen->display, FALSE); + + g_free (dataRegion); + XDestroyRegion (sr); +} + static gboolean set_work_area_idle_func (MetaScreen *screen) { @@ -1954,6 +1984,7 @@ screen->work_area_idle = 0; set_work_area_hint (screen); + set_work_area_region_hint (screen); return FALSE; } Index: metacity-2.34.1/src/core/workspace.c =================================================================== --- metacity-2.34.1.orig/src/core/workspace.c 2012-02-22 12:44:18.625806717 +0800 +++ metacity-2.34.1/src/core/workspace.c 2012-02-22 12:44:18.813807646 +0800 @@ -773,6 +773,25 @@ *area = workspace->work_area_screen; } +void +meta_workspace_get_work_area_region_all_xineramas (MetaWorkspace *workspace, + Region region) +{ + int i = 0; + g_assert (region != NULL); + + ensure_work_areas_validated (workspace); + + for (; i < workspace->screen->n_xinerama_infos; i++) + { + XRectangle rect = { workspace->work_area_xinerama[i].x, + workspace->work_area_xinerama[i].y, + workspace->work_area_xinerama[i].width, + workspace->work_area_xinerama[i].height }; + XUnionRectWithRegion (&rect, region, region); + } +} + GList* meta_workspace_get_onscreen_region (MetaWorkspace *workspace) { Index: metacity-2.34.1/src/core/workspace.h =================================================================== --- metacity-2.34.1.orig/src/core/workspace.h 2009-04-23 09:25:45.000000000 +0800 +++ metacity-2.34.1/src/core/workspace.h 2012-02-22 12:46:51.650565537 +0800 @@ -34,6 +34,7 @@ #define META_WORKSPACE_H #include "window-private.h" +#include /* Negative to avoid conflicting with real workspace * numbers @@ -91,6 +92,8 @@ MetaRectangle *area); void meta_workspace_get_work_area_all_xineramas (MetaWorkspace *workspace, MetaRectangle *area); +void meta_workspace_get_work_area_region_all_xineramas (MetaWorkspace *workspace, + Region region); GList* meta_workspace_get_onscreen_region (MetaWorkspace *workspace); GList* meta_workspace_get_onxinerama_region (MetaWorkspace *workspace, int which_xinerama); debian/patches/06_Add_UXD_shadows_and_borders.patch0000664000000000000000000003253612277143773017475 0ustar From a5442fe19432509eda44901093b45e97f72e04c0 Mon Sep 17 00:00:00 2001 From: Sam Spilsbury Date: Thu, 13 Jan 2011 11:59:40 +0800 Subject: [PATCH] Add UXD shadows and borders --- src/ui/theme-parser.c | 520 ++++++++++++++++++++------------ src/ui/theme.c | 63 ++++ src/ui/theme.h | 112 ++++++-- 3 files changed, 482 insertions(+), 215 deletions(-) Index: metacity-2.34.1/src/ui/theme-parser.c =================================================================== --- metacity-2.34.1.orig/src/ui/theme-parser.c 2011-04-23 12:10:04.000000000 -0400 +++ metacity-2.34.1/src/ui/theme-parser.c 2011-08-18 00:02:30.689002059 -0400 @@ -67,6 +67,8 @@ STATE_FRAME_STYLE, STATE_PIECE, STATE_BUTTON, + STATE_SHADOW, + STATE_PADDING, /* style set */ STATE_FRAME_STYLE_SET, STATE_FRAME, @@ -173,6 +175,20 @@ ParseInfo *info, GError **error); +static void parse_shadow_element (GMarkupParseContext *context, + const gchar *element_name, + const gchar **attribute_names, + const gchar **attribute_values, + ParseInfo *info, + GError **error); + +static void parse_padding_element (GMarkupParseContext *context, + const gchar *element_name, + const gchar **attribute_names, + const gchar **attribute_values, + ParseInfo *info, + GError **error); + static void parse_menu_icon_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, @@ -2935,9 +2951,76 @@ meta_draw_op_list_ref (op_list); info->op_list = op_list; } - + push_state (info, STATE_BUTTON); } + else if (ELEMENT_IS ("shadow")) + { + const char *shadow_radius = NULL; + const char *shadow_opacity = NULL; + const char *shadow_color = NULL; + const char *shadow_x_offset = NULL; + const char *shadow_y_offset = NULL; + double shadow_radius_v, shadow_opacity_v; + int shadow_x_offset_v, shadow_y_offset_v; + MetaColorSpec *shadow_color_v; + + if (!locate_attributes (context, element_name, attribute_names, attribute_values, + error, + "radius", &shadow_radius, + "opacity", &shadow_opacity, + "color", &shadow_color, + "x_offset", &shadow_x_offset, + "y_offset", &shadow_y_offset, + NULL)) + return; + + parse_double (shadow_radius, &shadow_radius_v, context, error); + parse_double (shadow_opacity, &shadow_opacity_v, context, error); + parse_positive_integer (shadow_x_offset, &shadow_x_offset_v, context, info->theme, error); + parse_positive_integer (shadow_y_offset, &shadow_y_offset_v, context, info->theme, error); + shadow_color_v = parse_color (info->theme, shadow_color, error); + + if (!info->style->shadow_properties) + info->style->shadow_properties = meta_shadow_properties_new (); + + info->style->shadow_properties->unity_shadow_radius = shadow_radius_v; + info->style->shadow_properties->unity_shadow_opacity = shadow_opacity_v; + info->style->shadow_properties->unity_shadow_x_offset = shadow_x_offset_v; + info->style->shadow_properties->unity_shadow_y_offset = shadow_y_offset_v; + info->style->shadow_properties->unity_shadow_color = shadow_color_v; + + push_state (info, STATE_SHADOW); + + } + else if (ELEMENT_IS ("padding")) + { + const char *left = NULL; + const char *bottom = NULL; + const char *right = NULL; + int left_v, right_v, bottom_v; + + if (!locate_attributes (context, element_name, attribute_names, attribute_values, + error, + "left", &left, + "right", &right, + "bottom", &bottom, + NULL)) + return; + + parse_positive_integer (left, &left_v, context, info->theme, error); + parse_positive_integer (right, &right_v, context, info->theme, error); + parse_positive_integer (bottom, &bottom_v, context, info->theme, error); + + if (!info->style->invisible_grab_area_properties) + info->style->invisible_grab_area_properties = meta_invisible_grab_area_properties_new (); + + info->style->invisible_grab_area_properties->left = left_v; + info->style->invisible_grab_area_properties->right = right_v; + info->style->invisible_grab_area_properties->bottom = bottom_v; + + push_state (info, STATE_PADDING); + } else { set_error (error, context, @@ -3216,6 +3299,38 @@ } static void +parse_shadow_element (GMarkupParseContext *context, + const gchar *element_name, + const gchar **attribute_names, + const gchar **attribute_values, + ParseInfo *info, + GError **error) +{ + g_return_if_fail (peek_state (info) == STATE_SHADOW); + + set_error (error, context, + G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE, + _("Element <%s> is not allowed below <%s>"), + element_name, "shadow"); +} + +static void +parse_padding_element (GMarkupParseContext *context, + const gchar *element_name, + const gchar **attribute_names, + const gchar **attribute_values, + ParseInfo *info, + GError **error) +{ + g_return_if_fail (peek_state (info) == STATE_PADDING); + + set_error (error, context, + G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE, + _("Element <%s> is not allowed below <%s>"), + element_name, "padding"); +} + +static void parse_menu_icon_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, @@ -3366,6 +3481,16 @@ attribute_names, attribute_values, info, error); break; + case STATE_SHADOW: + parse_shadow_element (context, element_name, + attribute_names, attribute_values, + info, error); + break; + case STATE_PADDING: + parse_padding_element (context, element_name, + attribute_names, attribute_values, + info, error); + break; case STATE_MENU_ICON: parse_menu_icon_element (context, element_name, attribute_names, attribute_values, @@ -3635,6 +3760,14 @@ } pop_state (info); break; + case STATE_SHADOW: + g_assert (info->style); + pop_state (info); + break; + case STATE_PADDING: + g_assert (info->style); + pop_state (info); + break; case STATE_MENU_ICON: g_assert (info->theme); if (info->op_list != NULL) @@ -3859,6 +3992,12 @@ case STATE_BUTTON: NO_TEXT ("button"); break; + case STATE_SHADOW: + NO_TEXT ("shadow"); + break; + case STATE_PADDING: + NO_TEXT ("padding"); + break; case STATE_MENU_ICON: NO_TEXT ("menu_icon"); break; Index: metacity-2.34.1/src/ui/theme.c =================================================================== --- metacity-2.34.1.orig/src/ui/theme.c 2011-03-08 04:31:53.000000000 -0500 +++ metacity-2.34.1/src/ui/theme.c 2011-08-18 00:02:30.699002293 -0400 @@ -1088,6 +1088,51 @@ g_free (spec); } +MetaShadowProperties* +meta_shadow_properties_new (void) +{ + MetaShadowProperties *properties; + + properties = g_new0 (MetaShadowProperties, 1); + + if (properties) + { + properties->unity_shadow_radius = 0.0f; + properties->unity_shadow_x_offset = 0; + properties->unity_shadow_y_offset = 0; + properties->unity_shadow_color = NULL; + } + + return properties; +} + +void +meta_shadow_properties_free (MetaShadowProperties *properties) +{ + g_return_if_fail (properties != NULL); + + meta_color_spec_free (properties->unity_shadow_color); + g_free (properties); +} + +MetaInvisibleGrabAreaProperties* +meta_invisible_grab_area_properties_new (void) +{ + MetaInvisibleGrabAreaProperties *properties; + + properties = g_new0 (MetaInvisibleGrabAreaProperties, 1); + + return properties; +} + +void +meta_invisible_grab_area_properties_free (MetaInvisibleGrabAreaProperties *properties) +{ + g_return_if_fail (properties != NULL); + + g_free (properties); +} + MetaColorSpec* meta_color_spec_new (MetaColorSpecType type) { @@ -4186,6 +4231,12 @@ if (style->parent) meta_frame_style_unref (style->parent); + if (style->shadow_properties) + meta_shadow_properties_free (style->shadow_properties); + + if (style->invisible_grab_area_properties) + meta_invisible_grab_area_properties_free (style->invisible_grab_area_properties); + DEBUG_FILL_STRUCT (style); g_free (style); } @@ -4680,6 +4731,18 @@ button_states, mini_icon, icon); } +MetaShadowProperties * +meta_frame_style_get_shadow_properties (MetaFrameStyle *style) +{ + return style->shadow_properties; +} + + +MetaInvisibleGrabAreaProperties * meta_frame_style_get_invisible_grab_area_properties (MetaFrameStyle *style) +{ + return style->invisible_grab_area_properties; +} + MetaFrameStyleSet* meta_frame_style_set_new (MetaFrameStyleSet *parent) { Index: metacity-2.34.1/src/ui/theme.h =================================================================== --- metacity-2.34.1.orig/src/ui/theme.h 2011-03-08 04:31:53.000000000 -0500 +++ metacity-2.34.1/src/ui/theme.h 2011-08-18 00:02:30.699002293 -0400 @@ -34,7 +34,7 @@ typedef struct _MetaDrawOp MetaDrawOp; typedef struct _MetaDrawOpList MetaDrawOpList; typedef struct _MetaGradientSpec MetaGradientSpec; -typedef struct _MetaAlphaGradientSpec MetaAlphaGradientSpec; +typedef struct _MetaAlphaGradientSpec MetaAlphaGradientSpec; typedef struct _MetaColorSpec MetaColorSpec; typedef struct _MetaFrameLayout MetaFrameLayout; typedef struct _MetaButtonSpace MetaButtonSpace; @@ -42,6 +42,54 @@ typedef struct _MetaTheme MetaTheme; typedef struct _MetaPositionExprEnv MetaPositionExprEnv; typedef struct _MetaDrawInfo MetaDrawInfo; +typedef struct _MetaShadowProperties MetaShadowProperties; +typedef struct _MetaInvisibleGrabAreaProperties MetaInvisibleGrabAreaProperties; + +struct _MetaShadowProperties +{ + /** + * Radius of the shadow + */ + double unity_shadow_radius; + + /** + * Opacity of the shadow + */ + double unity_shadow_opacity; + + /** + * Color of the shadow + */ + MetaColorSpec *unity_shadow_color; + /** + * Shadow X Offset + */ + guint8 unity_shadow_x_offset; + /** + * Shadow Y Offset + */ + guint8 unity_shadow_y_offset; +}; + +struct _MetaInvisibleGrabAreaProperties +{ + /** + * Left padding + */ + guint8 left; + /** + * Right padding + */ + guint8 right; + /** + * Bottom padding + */ + guint8 bottom; + /** + * Top padding + */ + guint8 top; +}; #define META_THEME_ERROR (g_quark_from_static_string ("meta-theme-error")) @@ -698,6 +746,15 @@ * Transparency of the window background. 0=transparent; 255=opaque. */ guint8 window_background_alpha; + /** + * Shadow + */ + MetaShadowProperties *shadow_properties; + /** + * Padding (eg invisible grab area) + */ + MetaInvisibleGrabAreaProperties *invisible_grab_area_properties; + }; /* Kinds of frame... @@ -951,6 +1008,11 @@ int n_alphas); void meta_alpha_gradient_spec_free (MetaAlphaGradientSpec *spec); +MetaShadowProperties* meta_shadow_properties_new (void); +void meta_shadow_properties_free (MetaShadowProperties *); + +MetaInvisibleGrabAreaProperties* meta_invisible_grab_area_properties_new (void); +void meta_invisible_grab_area_properties_free (MetaInvisibleGrabAreaProperties *); MetaFrameStyle* meta_frame_style_new (MetaFrameStyle *parent); void meta_frame_style_ref (MetaFrameStyle *style); @@ -988,6 +1050,8 @@ GdkPixbuf *mini_icon, GdkPixbuf *icon); +MetaShadowProperties * meta_frame_style_get_shadow_properties (MetaFrameStyle *style); +MetaInvisibleGrabAreaProperties * meta_frame_style_get_invisible_grab_area_properties (MetaFrameStyle *style); gboolean meta_frame_style_validate (MetaFrameStyle *style, guint current_theme_version, debian/metacity-common.manpages0000664000000000000000000000015112277143773014024 0ustar debian/metacity.1 debian/metacity-message.1 debian/metacity-theme-viewer.1 debian/metacity-window-demo.1 debian/metacity.postinst0000664000000000000000000000067412277143773012640 0ustar #!/bin/sh set -e action="$1" if [ "$action" = configure ]; then # register the alternatives of x-window-manager manually # because dh_installwm doesn't register manpage as slave yet. update-alternatives --install /usr/bin/x-window-manager \ x-window-manager /usr/bin/metacity 60 \ --slave /usr/share/man/man1/x-window-manager.1.gz \ x-window-manager.1.gz /usr/share/man/man1/metacity.1.gz fi #DEBHELPER# debian/metacity.install0000664000000000000000000000003712277143773012414 0ustar usr/bin usr/share/applications debian/metacity-common.catalog0000664000000000000000000000011712277143773013645 0ustar PUBLIC "-//MetacityTheme//DTD MetacityTheme 1.0//EN//XML" "metacity-theme.dtd" debian/copyright0000664000000000000000000000556612277143773011154 0ustar This package was debianized by Thom May on Sun, 10 Feb 2002 12:03:22 +0000. It was downloaded from http://ftp.gnome.org/pub/GNOME/sources/metacity/ Upstream Author: Havoc Pennington Copyright: Copyright © 2001-2008 Havoc Pennington, Red Hat, Inc., and others Copyright © 2002 The Gnome Foundation Copyright © 2007 The GNOME Project Copyright © 2002 Ross Burton Copyright © 2004-2006 Elijah Newren Copyright © 2001 Dominik Vogt, Matthias Clasen, and fvwm2 team Copyright © 2003-2004 Rob Adams Copyright © 2002 Sun Microsystems, Inc. Copyright © 1986-1998 The Open Group Copyright © 1987 Digital Equipment Corporation Copyright © 2001 Anders Carlsson Copyright © 2008 Thomas Thurman Copyright © 1995-2000 GTK+ Team Copyright © 1988 Wyse Technology, Inc., Copyright © 2008 Iain Holmes Copyright © 2000-2001 Eazel, Inc. Copyright © 2001 Ximian, Inc. Copyright © 2002 Gaute Lindkvist Copyright © 2002 James M. Cape Copyright © 2002 Garrett LeSage Copyright © 2002 Tuomas Kuosmanen Copyright © 2002 Jorn Baayen Copyright © 1997-2000 Dan Pascu and Alfredo Kojima Copyright © 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald Copyright © 1998 Tim Janik Copyright © 1999-2007 Free Software Foundation, Inc. Copyright © 1995-1997 Ulrich Drepper Copyright © 1994 X Consortium Copyright © 2004-2008 Rodney Dawes Copyright © 2004 Scott James Remnant Copyright © 2002 Simos Xenitellis Copyright © 2003-2006 Miloslav Trmac Copyright © 2008 GNOME i18n Project for Vietnamese Copyright © 2003-2006 Sharif FarsiWeb, Inc. Copyright © 2003 Åsmund Skjæveland. Copyright © 2005-2006 Canonical Ltd. and Rosetta Contributors Copyright © 2004-2006 Adam Weinberger and the GNOME Foundation Copyright © 2004 Kakilik Project Copyright © Croatiann team License: This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This package 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL'. debian/watch0000664000000000000000000000014312277143773010234 0ustar version=3 http://ftp.gnome.org/pub/GNOME/sources/metacity/([\d\.]+[02468])/ metacity-(.*)\.tar\.xz debian/README.Debian0000664000000000000000000000153012277143773011245 0ustar Metacity Compositor =================== Since version 2.22 Metacity includes a simple compositor. It's only intended to add a set of non-customisable simple effects. Currently these include a drop-shadow around windows, and thumbnail previews in the window switcher dialog. Contrary to Compiz, the Metacity compositor uses the XRender extension to draw to the screen. This means that no 3D acceleration is needed. This should in theory make it suitable to run on a larger selection of hardware, but only if your video driver implements sufficient Render performance. The compositor can be enabled on the fly by setting the gconf key /apps/metacity/general/compositing_manager to true by using gconf-editor or gconftool-2. Before enabling the compositor, you need to make sure your X server configuration has the composite extension loaded and enabled. debian/metacity.10000664000000000000000000000360112277143773011106 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH METACITY 1 "19 August 2002" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME METACITY \- minimal GTK2 Window Manager .SH SYNOPSIS .B metacity [\-\-sm\-disable] [\-\-sm\-save\-file=\fIFILENAME\fP] [\-\-display=\fIDISPLAY\fP] [\-\-replace] .SH DESCRIPTION This manual page documents briefly the .B metacity\fP. This manual page was written for the Debian distribution because the original program does not have a manual page. .PP .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. \fBmetacity\fP is a minimal X window manager that tries to be as crack free as possible. It supports sloppy focussing and multiple desktops. .SH OPTIONS .TP .B \-\-sm\-disable Disable the session management. .TP .B \-\-sm\-save\-file=FILENAME Save a session to \fIFILENAME\fP. .TP .B \-\-display=DISPLAY Connect to X display \fIDISPLAY\fP. .TP .B \-\-replace a window manager which is running is replaced by \fBmetacity\fP. .TP .B \-h, \-\-help Show summary of options. .SH SEE ALSO .BR metacity-message (1) .SH AUTHOR This manual page was written by Akira TAGOH , for the Debian GNU/Linux system (but may be used by others). The original manual page was written by Thom May . debian/rules0000775000000000000000000000116112277143773010264 0ustar #!/usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/gnome.mk include /usr/share/cdbs/1/rules/utils.mk include /usr/share/cdbs/1/rules/autoreconf.mk include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk include /usr/share/gnome-pkg-tools/1/rules/gnome-version.mk -include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk DEB_CONFIGURE_EXTRA_FLAGS += --enable-startup-notification=yes DEB_DH_MAKESHLIBS_ARGS_libmetacity-private0a += -V 'libmetacity-private0a (>= 1:2.34.0)' DEB_INSTALL_DOCS_metacity += doc/theme-format.txt LDFLAGS += -Wl,-z,defs -Wl,-O1 -Wl,--as-needed