Comprehensively rename to Mutter

Code:
All references in the code not related to themes, keybindings, or
GConf were changed from 'metacity' to 'mutter'. This includes, among other
things, strings, comments, the atoms used in the message protocol, and
the envvars used for debugging. The GConf schema file was reduced to
the 3 settings new to mutter.

The overall version was brought up to 2.27 to match current gnome.

Structure:
All files named '*metacity*' were renamed '*mutter*' with appropriate
changes in the automake system.  Files removed are
doc/creating_themes, src/themes, doc/metacity-theme.dtd,
metacity.doap.  These files will eventually end up in an external
gnome-wm-data module.

Installation location:
On the filesystem the mutter-plugindir was change from
$(libdir)/metacity/plugins/clutter to just $(libdir)/mutter/plugins.
The mutter-plugins.pc.in reflects these changes.

Note:
mutter.desktop.in and mutter-wm.desktop both continue to have
X-GNOME-WMSettingsModule=metacity set.  This allows
gnome-control-center to continue using libmetacity.so for
configuration.  This is fine since most the general keybindings and wm
settings are being read from /apps/metacity/* in gconf.
This commit is contained in:
Jon Nettleton 2009-06-10 12:29:20 +02:00 committed by Owen W. Taylor
parent 9127993d84
commit 51a6467968
218 changed files with 536 additions and 8022 deletions

84
README
View File

@ -12,7 +12,7 @@ The stable releases so far are 2.4.x, 2.6.x, 2.8.[01], 2.8.1.x, 2.8.5-,
Unstable branches are 2.3.x, 2.5.x, 2.8.2-4, 2.9.x, 2.11.x, 2.13.x, Unstable branches are 2.3.x, 2.5.x, 2.8.2-4, 2.9.x, 2.11.x, 2.13.x,
2.15.x, 2.17.x. 2.15.x, 2.17.x.
COMPILING METACITY COMPILING MUTTER
=== ===
You need GTK+ 2.2. For startup notification to work you need You need GTK+ 2.2. For startup notification to work you need
@ -20,6 +20,7 @@ libstartup-notification at
http://www.freedesktop.org/software/startup-notification/ or on the http://www.freedesktop.org/software/startup-notification/ or on the
GNOME ftp site. You also need GConf 1.2 (unless building a funky GNOME ftp site. You also need GConf 1.2 (unless building a funky
extra-small embedded metacity with --disable-gconf, see below). extra-small embedded metacity with --disable-gconf, see below).
You need Clutter 0.9.3. You need gobject-introspection 0.6.3.
REPORTING BUGS AND SUBMITTING PATCHES REPORTING BUGS AND SUBMITTING PATCHES
=== ===
@ -36,47 +37,11 @@ Feel free to send patches too; Metacity is relatively small and
simple, so if you find a bug or want to add a feature it should be simple, so if you find a bug or want to add a feature it should be
pretty easy. Send me mail, or put the patch in bugzilla. pretty easy. Send me mail, or put the patch in bugzilla.
See the HACKING file for some notes on hacking Metacity. See the HACKING file for some notes on hacking Mutter.
SHRINKING METACITY MUTTER FEATURES
=== ===
Not that metacity is huge, but a substantial amount of code is in
preferences handling, in static strings that aren't essential, and in
the theme engine.
You can strip about 70K from the metacity binary by compiling with
options such as:
--disable-gconf
--disable-sm
--disable-verbose
--disable-startup-notification
However the result is no good for desktop use, all prefs have to be
hardcoded in the binary, for example. If you wanted to make a really
small metacity, here's some additional stuff you might consider
implementing:
- add --disable-themes, which would replace theme.c and theme-parser.c
with a hardcoded implementation of the interface in theme.h,
should save about 80K. This should be fairly easy.
- add --disable-gtk, which would implement the interface in ui.h
without using GTK. This one is easier than you think because the
main part of the window manager doesn't use GTK directly, but is
still fairly hard to do. You would probably have to give up some
of the features, such as window menus, as menus are pretty complex
to implement well. So time may be better spent adding a GTK
configure script feature to build GTK with only a small core set of
functionality.
METACITY FEATURES
===
- Boring window manager for the adult in you. Many window managers
are like Marshmallow Froot Loops; Metacity is like Cheerios.
- Uses GTK+ 2.0 for drawing window frames. This means colors, fonts, - Uses GTK+ 2.0 for drawing window frames. This means colors, fonts,
etc. come from GTK+ theme. etc. come from GTK+ theme.
@ -132,8 +97,6 @@ METACITY FEATURES
Also try the GNOME keyboard shortcuts control panel, or Also try the GNOME keyboard shortcuts control panel, or
gconf-editor. gconf-editor.
See metacity.schemas for all available bindings.
- Window keybindings: - Window keybindings:
Alt-space window menu Alt-space window menu
@ -185,13 +148,13 @@ METACITY FEATURES
- Session management: - Session management:
Metacity connects to the session manager and will set itself up to Mutter connects to the session manager and will set itself up to
be respawned. It theoretically restores sizes/positions/workspace be respawned. It theoretically restores sizes/positions/workspace
for session-aware applications. for session-aware applications.
- Metacity implements much of the EWMH window manager specification - Mutter implements much of the EWMH window manager specification
from freedesktop.org, as well as the older ICCCM. Please refer to from freedesktop.org, as well as the older ICCCM. Please refer to
the COMPLIANCE file for information on metacity compliance with the COMPLIANCE file for information on mutter compliance with
these standards. these standards.
- Uses Pango to render text, so has cool i18n capabilities. - Uses Pango to render text, so has cool i18n capabilities.
@ -210,7 +173,7 @@ METACITY FEATURES
- handles the window manager selection from the ICCCM. Will exit if - handles the window manager selection from the ICCCM. Will exit if
another WM claims it, and can claim it from another WM if you pass another WM claims it, and can claim it from another WM if you pass
the --replace argument. So if you're running another the --replace argument. So if you're running another
ICCCM-compliant WM, you can run "metacity --replace" to replace it ICCCM-compliant WM, you can run "mutter --replace" to replace it
with Metacity. with Metacity.
- does basic colormap handling - does basic colormap handling
@ -220,7 +183,7 @@ METACITY FEATURES
HOW TO ADD EXTERNAL FEATURES HOW TO ADD EXTERNAL FEATURES
=== ===
You can write a metacity "plugin" such as a pager, window list, icon You can write a mutter "plugin" such as a pager, window list, icon
box, task menu, or even things like "window matching" using the box, task menu, or even things like "window matching" using the
Extended Window Manager Hints. See http://www.freedesktop.org for the Extended Window Manager Hints. See http://www.freedesktop.org for the
EWMH specification. An easy-to-use library called "libwnck" is EWMH specification. An easy-to-use library called "libwnck" is
@ -228,10 +191,10 @@ available that uses the EWMH and is specifically designed for writing
WM accessories. WM accessories.
You might be interested in existing accessories such as "Devil's Pie" You might be interested in existing accessories such as "Devil's Pie"
by Ross Burton, which add features to Metacity (or other by Ross Burton, which add features to Mutter (or other
EWMH-compliant WMs). EWMH-compliant WMs).
METACITY BUGS, NON-FEATURES, AND CAVEATS MUTTER BUGS, NON-FEATURES, AND CAVEATS
=== ===
See bugzilla: http://bugzilla.gnome.org/query.cgi See bugzilla: http://bugzilla.gnome.org/query.cgi
@ -270,26 +233,15 @@ A: If it makes sense to turn on unconditionally, or is genuinely a
http://pobox.com/~hp/free-software-ui.html http://pobox.com/~hp/free-software-ui.html
http://pobox.com/~hp/features.html http://pobox.com/~hp/features.html
Q: Will Metacity be part of GNOME? Q: Will Mutter be part of GNOME?
A: It is officially part of GNOME as of GNOME 2.2. Prior to that, A: It is not officially part of GNOME as of GNOME 2.27. We are
it was unofficially shipped as the default GNOME WM by several hoping to have mutter officially included as of GNOME 2.28.
OS vendors.
Q: Is Metacity a Red Hat project? Q: Why does Mutter remember the workspace/position of some apps
A: Metacity's original creation was in no way funded, endorsed, or
encouraged by Red Hat, Inc. - I'm guessing Red Hat would not
consider "insufficient number of window managers for Linux" an
urgent problem. Just a wild guess though.
Now that metacity is the default WM however, Red Hat supports some
bugfixing and other work.
Q: Why does Metacity remember the workspace/position of some apps
but not others across logout/login? but not others across logout/login?
A: Metacity only stores sizes/positions for apps that are session A: Mutter only stores sizes/positions for apps that are session
managed. As far as I can determine, there is no way to attempt to managed. As far as I can determine, there is no way to attempt to
remember workspace/position for non-session-aware apps without remember workspace/position for non-session-aware apps without
causing a lot of weird effects. causing a lot of weird effects.
@ -304,7 +256,7 @@ A: Metacity only stores sizes/positions for apps that are session
place. And in fact I see a lot of bugs like this in window managers place. And in fact I see a lot of bugs like this in window managers
that try to handle non-session-aware apps. that try to handle non-session-aware apps.
However, for session-aware apps, Metacity can tell that the However, for session-aware apps, Mutter can tell that the
application instance is from the session and thus restore it application instance is from the session and thus restore it
reliably, assuming the app properly restores the windows it had reliably, assuming the app properly restores the windows it had
open on session save. open on session save.
@ -456,7 +408,7 @@ A: There are quite a few, though many opportunities remain. Sometimes
- and much more. - and much more.
Q: I think metacity sucks. Q: I think mutter sucks.
A: Feel free to use any WM you like. The reason metacity follows the A: Feel free to use any WM you like. The reason metacity follows the
ICCCM and EWMH specifications is that it makes metacity a modular, ICCCM and EWMH specifications is that it makes metacity a modular,

View File

@ -4,7 +4,7 @@
srcdir=`dirname $0` srcdir=`dirname $0`
test -z "$srcdir" && srcdir=. test -z "$srcdir" && srcdir=.
PKG_NAME="metacity" PKG_NAME="mutter"
REQUIRED_AUTOMAKE_VERSION=1.10 REQUIRED_AUTOMAKE_VERSION=1.10
(test -f $srcdir/configure.in \ (test -f $srcdir/configure.in \

View File

@ -1,19 +1,18 @@
AC_PREREQ(2.50) AC_PREREQ(2.50)
m4_define([metacity_major_version], [2]) m4_define([mutter_major_version], [2])
m4_define([metacity_minor_version], [27]) m4_define([mutter_minor_version], [27])
# Fibonacci sequence for micro version numbering: # Fibonacci sequence for micro version numbering:
# 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987 # 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987
m4_define([metacity_micro_version], [0]) m4_define([mutter_micro_version], [0])
m4_define([mutter_version],[0.7])
m4_define([metacity_version], m4_define([mutter_version],
[metacity_major_version.metacity_minor_version.metacity_micro_version~mutter_version]) [mutter_major_version.mutter_minor_version.mutter_micro_version])
m4_define([metacity_clutter_plugin_api_version], [2]) m4_define([mutter_plugin_api_version], [2])
AC_INIT([metacity], [metacity_version], AC_INIT([mutter], [mutter_version],
[http://bugzilla.gnome.org/enter_bug.cgi?product=metacity]) [http://bugzilla.gnome.org/enter_bug.cgi?product=mutter])
AC_CONFIG_SRCDIR(src/core/display.c) AC_CONFIG_SRCDIR(src/core/display.c)
AC_CONFIG_HEADERS(config.h) AC_CONFIG_HEADERS(config.h)
@ -21,22 +20,22 @@ AC_CONFIG_HEADERS(config.h)
AM_INIT_AUTOMAKE AM_INIT_AUTOMAKE
AM_MAINTAINER_MODE AM_MAINTAINER_MODE
METACITY_MAJOR_VERSION=metacity_major_version MUTTER_MAJOR_VERSION=mutter_major_version
METACITY_MINOR_VERSION=metacity_minor_version MUTTER_MINOR_VERSION=mutter_minor_version
METACITY_MICRO_VERSION=metacity_micro_version MUTTER_MICRO_VERSION=mutter_micro_version
METACITY_CLUTTER_PLUGIN_API_VERSION=metacity_clutter_plugin_api_version MUTTER_PLUGIN_API_VERSION=mutter_plugin_api_version
AC_SUBST(METACITY_MAJOR_VERSION) AC_SUBST(MUTTER_MAJOR_VERSION)
AC_SUBST(METACITY_MINOR_VERSION) AC_SUBST(MUTTER_MINOR_VERSION)
AC_SUBST(METACITY_MICRO_VERSION) AC_SUBST(MUTTER_MICRO_VERSION)
AC_SUBST(METACITY_CLUTTER_PLUGIN_API_VERSION) AC_SUBST(MUTTER_PLUGIN_API_VERSION)
MUTTER_PLUGIN_DIR="$libdir/$PACKAGE/plugins/clutter" MUTTER_PLUGIN_DIR="$libdir/$PACKAGE/plugins"
AC_SUBST(MUTTER_PLUGIN_DIR) AC_SUBST(MUTTER_PLUGIN_DIR)
# Honor aclocal flags # Honor aclocal flags
AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}") AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}")
GETTEXT_PACKAGE=metacity GETTEXT_PACKAGE=mutter
AC_SUBST(GETTEXT_PACKAGE) AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain]) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain])
@ -123,7 +122,7 @@ if test "x$GCC" = "xyes"; then
fi fi
changequote([,])dnl changequote([,])dnl
METACITY_PC_MODULES='gtk+-2.0 >= 2.10.0 pango >= 1.2.0' MUTTER_PC_MODULES='gtk+-2.0 >= 2.10.0 pango >= 1.2.0'
AC_ARG_ENABLE(gconf, AC_ARG_ENABLE(gconf,
AC_HELP_STRING([--disable-gconf], AC_HELP_STRING([--disable-gconf],
@ -132,12 +131,12 @@ AC_ARG_ENABLE(gconf,
if test x$enable_gconf = xyes; then if test x$enable_gconf = xyes; then
AC_DEFINE(HAVE_GCONF,1,[Build with gconf support]) AC_DEFINE(HAVE_GCONF,1,[Build with gconf support])
METACITY_PC_MODULES="$METACITY_PC_MODULES gconf-2.0 >= 1.2.0" MUTTER_PC_MODULES="$MUTTER_PC_MODULES gconf-2.0 >= 1.2.0"
fi fi
AC_ARG_ENABLE(verbose-mode, AC_ARG_ENABLE(verbose-mode,
AC_HELP_STRING([--disable-verbose-mode], AC_HELP_STRING([--disable-verbose-mode],
[disable metacity's ability to do verbose logging, for embedded/size-sensitive custom builds]),, [disable mutter's ability to do verbose logging, for embedded/size-sensitive custom builds]),,
enable_verbose_mode=yes) enable_verbose_mode=yes)
if test x$enable_verbose_mode = xyes; then if test x$enable_verbose_mode = xyes; then
@ -146,42 +145,42 @@ fi
AC_ARG_ENABLE(sm, AC_ARG_ENABLE(sm,
AC_HELP_STRING([--disable-sm], AC_HELP_STRING([--disable-sm],
[disable metacity's session management support, for embedded/size-sensitive custom non-GNOME builds]),, [disable mutter's session management support, for embedded/size-sensitive custom non-GNOME builds]),,
enable_sm=auto) enable_sm=auto)
AC_ARG_ENABLE(startup-notification, AC_ARG_ENABLE(startup-notification,
AC_HELP_STRING([--disable-startup-notification], AC_HELP_STRING([--disable-startup-notification],
[disable metacity's startup notification support, for embedded/size-sensitive custom non-GNOME builds]),, [disable mutter's startup notification support, for embedded/size-sensitive custom non-GNOME builds]),,
enable_startup_notification=auto) enable_startup_notification=auto)
AC_ARG_ENABLE(compositor, AC_ARG_ENABLE(compositor,
AC_HELP_STRING([--disable-compositor], AC_HELP_STRING([--disable-compositor],
[disable metacity's compositing manager]),, [disable mutter's compositing manager]),,
enable_compositor=auto) enable_compositor=auto)
AC_ARG_WITH(clutter, AC_ARG_ENABLE(clutter,
AC_HELP_STRING([--with-clutter], AC_HELP_STRING([--without-clutter],
[Use clutter for compositing]),, [disable the use of clutter for compositing]),,
with_clutter=auto) with_clutter=auto)
AC_ARG_WITH(introspection, AC_ARG_ENABLE(introspection,
AC_HELP_STRING([--with-introspection], AC_HELP_STRING([--without-introspection],
[Use GObject introspection]),, [disable the use of GObject introspection]),,
with_introspection=auto) with_introspection=auto)
AC_ARG_ENABLE(xsync, AC_ARG_ENABLE(xsync,
AC_HELP_STRING([--disable-xsync], AC_HELP_STRING([--disable-xsync],
[disable metacity's use of the XSync extension]),, [disable mutter's use of the XSync extension]),,
enable_xsync=auto) enable_xsync=auto)
AC_ARG_ENABLE(render, AC_ARG_ENABLE(render,
AC_HELP_STRING([--disable-render], AC_HELP_STRING([--disable-render],
[disable metacity's use of the RENDER extension]),, [disable mutter's use of the RENDER extension]),,
enable_render=auto) enable_render=auto)
AC_ARG_ENABLE(shape, AC_ARG_ENABLE(shape,
AC_HELP_STRING([--disable-shape], AC_HELP_STRING([--disable-shape],
[disable metacity's use of the shaped window extension]),, [disable mutter's use of the shaped window extension]),,
enable_shape=auto) enable_shape=auto)
## try definining HAVE_BACKTRACE ## try definining HAVE_BACKTRACE
@ -193,8 +192,8 @@ AM_GLIB_GNU_GETTEXT
# GOptionEntry requires glib-2.6.0 # GOptionEntry requires glib-2.6.0
PKG_CHECK_MODULES(ALL, glib-2.0 >= 2.6.0) PKG_CHECK_MODULES(ALL, glib-2.0 >= 2.6.0)
# gtk_window_set_icon_name requires gtk2+-2.60 # gtk_window_set_icon_name requires gtk2+-2.60
PKG_CHECK_MODULES(METACITY_MESSAGE, gtk+-2.0 >= 2.6.0) PKG_CHECK_MODULES(MUTTER_MESSAGE, gtk+-2.0 >= 2.6.0)
PKG_CHECK_MODULES(METACITY_WINDOW_DEMO, gtk+-2.0 >= 2.6.0) PKG_CHECK_MODULES(MUTTER_WINDOW_DEMO, gtk+-2.0 >= 2.6.0)
if $PKG_CONFIG --atleast-version 1.2.0 pangoxft; then if $PKG_CONFIG --atleast-version 1.2.0 pangoxft; then
echo "pangoxft found" echo "pangoxft found"
@ -226,7 +225,7 @@ fi
if test x$have_startup_notification = xyes; then if test x$have_startup_notification = xyes; then
echo "Building with libstartup-notification" echo "Building with libstartup-notification"
METACITY_PC_MODULES="$METACITY_PC_MODULES libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION" MUTTER_PC_MODULES="$MUTTER_PC_MODULES libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION"
AC_DEFINE(HAVE_STARTUP_NOTIFICATION, , [Building with startup notification support]) AC_DEFINE(HAVE_STARTUP_NOTIFICATION, , [Building with startup notification support])
else else
echo "Building without libstartup-notification" echo "Building without libstartup-notification"
@ -249,9 +248,10 @@ fi
if test x$with_clutter = xyes; then if test x$with_clutter = xyes; then
have_xcomposite=yes have_xcomposite=yes
have_clutter=yes have_clutter=yes
echo "CompositeExt support and Clutter forced on"
elif test x$with_clutter = xauto; then elif test x$with_clutter = xauto; then
have_clutter=no echo "Building clutter compositing manager by default now."
have_xcomposite=yes
have_clutter=yes
else else
have_clutter=no have_clutter=no
fi fi
@ -268,7 +268,7 @@ if test x$have_xcomposite = xyes; then
fi fi
if test x$have_xcomposite = xyes; then if test x$have_xcomposite = xyes; then
METACITY_PC_MODULES="$METACITY_PC_MODULES xcomposite >= $XCOMPOSITE_VERSION xfixes xrender xdamage" MUTTER_PC_MODULES="$MUTTER_PC_MODULES xcomposite >= $XCOMPOSITE_VERSION xfixes xrender xdamage"
AC_DEFINE(HAVE_COMPOSITE_EXTENSIONS, 1, [Building with compositing manager support]) AC_DEFINE(HAVE_COMPOSITE_EXTENSIONS, 1, [Building with compositing manager support])
echo "Building with compositing manager" echo "Building with compositing manager"
@ -300,7 +300,7 @@ if test x$have_xcomposite = xno; then
if test x$have_xrender = xyes; then if test x$have_xrender = xyes; then
echo "Building with Render" echo "Building with Render"
METACITY_PC_MODULES="$METACITY_PC_MODULES xrender >= $XRENDER_VERSION" MUTTER_PC_MODULES="$MUTTER_PC_MODULES xrender >= $XRENDER_VERSION"
fi fi
fi ## have_composite fi ## have_composite
@ -311,17 +311,17 @@ fi
CLUTTER_PACKAGE=clutter-0.9 CLUTTER_PACKAGE=clutter-0.9
AC_SUBST(CLUTTER_PACKAGE) AC_SUBST(CLUTTER_PACKAGE)
if test x$have_clutter = xyes; then if test x$have_clutter = xyes; then
METACITY_PC_MODULES="$METACITY_PC_MODULES $CLUTTER_PACKAGE " MUTTER_PC_MODULES="$MUTTER_PC_MODULES $CLUTTER_PACKAGE "
PKG_CHECK_MODULES(CLUTTER, $CLUTTER_PACKAGE) PKG_CHECK_MODULES(CLUTTER, $CLUTTER_PACKAGE)
AC_DEFINE(WITH_CLUTTER, , [Building with Clutter compositor]) AC_DEFINE(WITH_CLUTTER, , [Building with Clutter compositor])
dnl Check for the clutter-glx-texture-pixmap header dnl Check for the clutter-glx-texture-pixmap header
metacity_save_cppflags="$CPPFLAGS" mutter_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $CLUTTER_CFLAGS" CPPFLAGS="$CPPFLAGS $CLUTTER_CFLAGS"
AC_CHECK_HEADER([clutter/glx/clutter-glx-texture-pixmap.h], AC_CHECK_HEADER([clutter/glx/clutter-glx-texture-pixmap.h],
[have_glx_texture_pixmap=yes], [have_glx_texture_pixmap=yes],
[have_glx_texture_pixmap=no]) [have_glx_texture_pixmap=no])
CPPFLAGS="$metacity_save_cppflags" CPPFLAGS="$mutter_save_cppflags"
if test x$have_glx_texture_pixmap = xyes; then if test x$have_glx_texture_pixmap = xyes; then
AC_DEFINE(HAVE_GLX_TEXTURE_PIXMAP, , AC_DEFINE(HAVE_GLX_TEXTURE_PIXMAP, ,
@ -332,7 +332,7 @@ fi
if test x$with_introspection != xno; then if test x$with_introspection != xno; then
PKG_CHECK_MODULES(INTROSPECTION, gobject-introspection-1.0, have_introspection=yes, have_introspection=no) PKG_CHECK_MODULES(INTROSPECTION, gobject-introspection-1.0, have_introspection=yes, have_introspection=no)
if test x$have_introspection=xyes; then if test x$have_introspection=xyes; then
METACITY_PC_MODULES="$METACITY_PC_MODULES gobject-introspection-1.0" MUTTER_PC_MODULES="$MUTTER_PC_MODULES gobject-introspection-1.0"
AC_DEFINE(HAVE_INTROSPECTION, 1, [Define if GObject introspection is available]) AC_DEFINE(HAVE_INTROSPECTION, 1, [Define if GObject introspection is available])
G_IR_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` G_IR_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
AC_SUBST(G_IR_SCANNER) AC_SUBST(G_IR_SCANNER)
@ -358,23 +358,23 @@ if $PKG_CONFIG xcursor; then
if test x$have_xcursor = xyes; then if test x$have_xcursor = xyes; then
echo "Building with Xcursor" echo "Building with Xcursor"
METACITY_PC_MODULES="$METACITY_PC_MODULES xcursor" MUTTER_PC_MODULES="$MUTTER_PC_MODULES xcursor"
AC_DEFINE(HAVE_XCURSOR, , [Building with Xcursor support]) AC_DEFINE(HAVE_XCURSOR, , [Building with Xcursor support])
fi fi
PKG_CHECK_MODULES(METACITY, $METACITY_PC_MODULES) PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
AC_PATH_XTRA AC_PATH_XTRA
ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
# Check for Xinerama extension (Solaris impl or Xfree impl) # Check for Xinerama extension (Solaris impl or Xfree impl)
metacity_save_cppflags="$CPPFLAGS" mutter_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $X_CFLAGS" CPPFLAGS="$CPPFLAGS $X_CFLAGS"
AC_ARG_ENABLE(xinerama, AC_ARG_ENABLE(xinerama,
AC_HELP_STRING([--disable-xinerama], AC_HELP_STRING([--disable-xinerama],
[disable metacity's use of the Xinerama extension]), [disable mutter's use of the Xinerama extension]),
try_xinerama=$enable_xinerama,try_xinerama=yes) try_xinerama=$enable_xinerama,try_xinerama=yes)
use_solaris_xinerama=no use_solaris_xinerama=no
@ -420,7 +420,7 @@ if test "${try_xinerama}" != no; then
esac esac
fi fi
CPPFLAGS="$metacity_save_cppflags" CPPFLAGS="$mutter_save_cppflags"
SHAPE_LIBS= SHAPE_LIBS=
found_shape=no found_shape=no
@ -491,21 +491,21 @@ if test "x$found_xsync" = "xyes"; then
AC_DEFINE(HAVE_XSYNC, , [Have the Xsync extension library]) AC_DEFINE(HAVE_XSYNC, , [Have the Xsync extension library])
fi fi
METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm" MUTTER_LIBS="$MUTTER_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" MUTTER_MESSAGE_LIBS="$MUTTER_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
METACITY_WINDOW_DEMO_LIBS="$METACITY_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" MUTTER_WINDOW_DEMO_LIBS="$MUTTER_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
METACITY_PROPS_LIBS="$METACITY_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" MUTTER_PROPS_LIBS="$MUTTER_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
found_sm=no found_sm=no
case "$METACITY_LIBS" in case "$MUTTER_LIBS" in
*-lSM*) *-lSM*)
found_sm=yes found_sm=yes
;; ;;
*) *)
AC_CHECK_LIB(SM, SmcSaveYourselfDone, AC_CHECK_LIB(SM, SmcSaveYourselfDone,
[AC_CHECK_HEADERS(X11/SM/SMlib.h, [AC_CHECK_HEADERS(X11/SM/SMlib.h,
METACITY_LIBS="-lSM -lICE $METACITY_LIBS" found_sm=yes)], MUTTER_LIBS="-lSM -lICE $MUTTER_LIBS" found_sm=yes)],
, $METACITY_LIBS) , $MUTTER_LIBS)
;; ;;
esac esac
@ -572,14 +572,12 @@ GNOME_DOC_INIT([0.8.0])
AC_CONFIG_FILES([ AC_CONFIG_FILES([
Makefile Makefile
doc/Makefile doc/Makefile
doc/creating_themes/Makefile
doc/man/Makefile doc/man/Makefile
src/Makefile src/Makefile
src/wm-tester/Makefile src/wm-tester/Makefile
src/libmetacity-private.pc src/libmutter-private.pc
src/metacity-plugins.pc src/mutter-plugins.pc
src/tools/Makefile src/tools/Makefile
src/themes/Makefile
src/compositor/mutter/plugins/Makefile src/compositor/mutter/plugins/Makefile
po/Makefile.in po/Makefile.in
]) ])
@ -596,14 +594,14 @@ fi
if test x$enable_verbose_mode = xno; then if test x$enable_verbose_mode = xno; then
echo "*** WARNING WARNING WARNING WARNING WARNING" echo "*** WARNING WARNING WARNING WARNING WARNING"
echo "*** Building without verbose mode" echo "*** Building without verbose mode"
echo "*** This means there's no way to debug metacity problems." echo "*** This means there's no way to debug mutter problems."
echo "*** Please build normal desktop versions of metacity" echo "*** Please build normal desktop versions of mutter"
echo "*** with verbose mode enabled so users can use it when they report bugs." echo "*** with verbose mode enabled so users can use it when they report bugs."
fi fi
dnl ========================================================================== dnl ==========================================================================
echo " echo "
metacity-$VERSION: mutter-$VERSION:
prefix: ${prefix} prefix: ${prefix}
source code location: ${srcdir} source code location: ${srcdir}
@ -624,12 +622,12 @@ metacity-$VERSION:
Clutter: ${have_clutter} Clutter: ${have_clutter}
" "
METACITY_MINOR_VERSION=metacity_minor_version MUTTER_MINOR_VERSION=mutter_minor_version
if test $(( $(echo $METACITY_MINOR_VERSION) %2)) == "1"; then if test $(( $(echo $MUTTER_MINOR_VERSION) %2)) == "1"; then
stable_version=$(( ($METACITY_MINOR_VERSION / 2) * 2)) stable_version=$(( ($MUTTER_MINOR_VERSION / 2) * 2))
echo "This is the UNSTABLE branch of metacity" echo "This is the UNSTABLE branch of mutter"
echo -n "Use 2.$stable_version.x for stable " echo -n "Use 2.$stable_version.x for stable "
echo "(gnome-2-$stable_version branch in Subversion)" echo "(gnome-2-$stable_version branch in Subversion)"
else else
echo "This is the stable branch of metacity" echo "This is the stable branch of mutter"
fi fi

View File

@ -1,4 +1,4 @@
SUBDIRS = man creating_themes SUBDIRS = man
EXTRA_DIST=theme-format.txt metacity-theme.dtd dialogs.txt code-overview.txt \ EXTRA_DIST=theme-format.txt dialogs.txt code-overview.txt \
how-to-get-focus-right.txt how-to-get-focus-right.txt

View File

@ -42,5 +42,5 @@ options you can set are:
menus zooming, dialogues being semi-transparent, and so on. Try it menus zooming, dialogues being semi-transparent, and so on. Try it
and see whether you like it. and see whether you like it.
If you have any problems, ask on metacity-devel-list@gnome.org, or If you have any problems, ask on mutter-devel-list@gnome.org, or
#gnome-hackers on gimpnet, or come and find me (tthurman at gnome) and ask. #gnome-hackers on gimpnet, or come and find me (tthurman at gnome) and ask.

View File

@ -1,286 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://docbook.org/docbook/xml/4.5/docbookx.dtd" [
]>
<book id="index">
<bookinfo>
<title>Understanding Metacity Themes</title>
<authorgroup>
<author>
<firstname>Thomas</firstname>
<surname>Thurman</surname>
</author>
</authorgroup>
<abstract>
<para>
We very much appreciate any reports of inaccuracies or other errors in
this document. Contributions are also most welcome. Post your
suggestions, critiques or addenda to the <ulink
url="mailto:tthurman@gnome.org">team</ulink>.</para>
</abstract>
<copyright>
<year>2008</year>
<holder>Thomas Thurman</holder>
</copyright>
<legalnotice>
<para>
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
You may obtain a copy of the GNU Free Documentation License from the Free Software Foundation by visiting their Web site or by writing to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</para>
</legalnotice>
</bookinfo>
<chapter id="sec-introduction">
<title>Introduction</title>
<para>This is an article about how to theme Metacity. It is a work in progress, and I have had to dig deeply to find some answers; I may well have made mistakes and I welcome corrections and suggestions.</para>
<para>GNOME lets you theme a bunch of different things, but we're only talking about <literal>window border</literal> themes here, which some people call Metacity themes; <ulink url="http://en.wikipedia.org/wiki/Metacity#Themes">Wikipedia begins a sentence</ulink> with &quot;Despite the incomplete state of Metacity theme development documentation&quot;, and though there <emphasis>is</emphasis> <ulink url="http://svn.gnome.org/viewvc/metacity/trunk/doc/theme-format.txt?view=markup">documentation in the source</ulink>, apparently not many people find it, and it's written more for programmers than theme designers. Glynn Foster also wrote <ulink url="http://developer.gnome.org/doc/tutorials/metacity/metacity-themes.html">a very good introduction to Metacity themes</ulink> (<ulink url="http://home.arcor.de/rybaczyk/documents/tutorials/metacity/metacity-themes.de.html">[de]</ulink>) six years ago, but things have changed a little since then. <ulink url="http://lists.freedesktop.org/archives/compiz/2006-September/000445.html">Metacity themes can also be used by Compiz</ulink>, and perhaps by other window managers for all I know.</para>
<para>So, a Metacity theme is a set of instructions about how to &quot;decorate&quot; (draw the borders around) a window. Presumably you don't want to style all windows identically, so the format lets you specify details for different kinds of window:</para>
<para>
<variablelist>
<varlistentry>
<term>state:</term><listitem><para>Every window must be in exactly one of these states: <literal>normal</literal>, <literal>dialog</literal>, <literal>modal dialog</literal> (i.e. a dialogue which means you can't interact with the rest of the program while it's up), <literal>menu</literal> (torn off from the main application, not that people do that much these days), <literal>utility</literal> (that is, palettes and toolboxes and things), and <literal>border</literal>. X also allows a window to explicitly ask to be undecorated, but of course we don't provide for those in a list of decoration instructions.</para></listitem>
</varlistentry>
<varlistentry>
<term>focused</term><listitem><para>Every window is either the active window (which X people call &quot;focused&quot;), or it isn't.</para></listitem>
</varlistentry>
<varlistentry>
<term>maximized</term><listitem><para>Every window is either (fully) maximised (horizontal and vertical only don't count), or it isn't.</para></listitem>
</varlistentry>
<varlistentry>
<term>shaded</term><listitem><para>Every window is either rolled up to show just its titlebar (which techies call &quot;shaded&quot; for some reason I can't fathom), or it isn't.</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
<itemizedlist>
<listitem><para><emphasis>If a window is not fully maximised and not shaded,</emphasis> it either allows horizontal resizing, or it doesn't.</para></listitem>
<listitem><para><emphasis>If a window is not fully maximised and not shaded,</emphasis> it either allows vertical resizing, or it doesn't.</para></listitem>
</itemizedlist>
</para>
</chapter>
<chapter>
<title>What's in the file</title>
<para>The files must be called either</para>
<para>
<itemizedlist>
<listitem><para>~/.themes/<varname>N</varname>/metacity-1/metacity-theme-<varname>V</varname>.xml
for a theme used only by you, or</para></listitem>
<listitem><para>/usr/share/themes/<varname>N</varname>/metacity-1/metacity-theme-<varname>V</varname>.xml
for a theme installed for all users.</para></listitem>
</itemizedlist>
</para>
<para>where <varname>N</varname> is the name of the theme and <varname>V</varname> is the version of the format. Version 2, <ulink url="http://svn.gnome.org/viewvc/metacity?view=revision&amp;revision=2973">introduced in October 2006</ulink>, adds a few extra features, but it's rarely used. Version 1 is the original format. The formats are fixed once they're stable for both backwards and forwards compatibility; <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=482165">new features</ulink> can't be added without introducing a new version number, which is why improvements come out rarely and in large clumps. <literal>metacity-1</literal> in the names is a fossil and doesn't mean version 1 of anything.</para>
<para>The metacity-theme-V.xml files are <ulink url="http://blogs.gnome.org/tthurman/2008/02/14/gmarkup/">GMarkup files</ulink>, which are very similar to XML. For now, you actually have to write these in a text editor or something; you can either start with a blank page, or modify a theme someone else has made. (I am thinking of writing a general theme editor program, but that'll have to wait until I've reduced Metacity's open bug queue a little.) If you want to see a fully-fledged one, you can look at <ulink url="http://svn.gnome.org/viewvc/metacity/trunk/src/themes/Atlanta/metacity-theme-1.xml?view=markup">the current version of &quot;Atlanta&quot;</ulink>, one of the simplest themes, but even that is quite complicated-looking at first.</para>
<para>So, let's talk about what actually goes inside the files. As in any XML file, &lt;!-<!-- x -->- &#8230; <!-- x -->&gt; are comments. At its most basic, it would go:</para>
<para>
<programlisting>
&lt;metacity_theme&gt;
&lt;!-<!-- x -->- Helper stuff: -<!-- x -->-&gt;
&lt;info &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
&lt;constant &#8230;&gt; &lt;!-<!-- x -->- maybe; to be explained -<!-- x -->-&gt;
&lt;draw_ops &#8230;&gt; &lt;!-<!-- x -->- maybe; to be explained -<!-- x -->-&gt;
&lt;!-<!-- x -->- Things we build the top level onto: -<!-- x -->-&gt;
&lt;frame_geometry &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
&lt;frame_style &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
&lt;frame_style_set &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
&lt;!-<!-- x -->- And the top level: -<!-- x -->-&gt;
&lt;window type=&quot;normal&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;window type=&quot;dialog&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;window type=&quot;modal_dialog&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;window type=&quot;menu&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;window type=&quot;utility&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;window type=&quot;border&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;/metacity_theme&gt;
</programlisting>
</para>
</chapter>
<chapter>
<title>Matching windows</title>
<para>
<variablelist>
<varlistentry>
<term>window</term><listitem><para>You see that at the top level we have a list of &lt;window&gt; tags, one for each window state we discussed above. The style_set argument of each of these gives the name of a frame_style_set.</para></listitem>
</varlistentry>
<varlistentry>
<term>frame_style_set:</term><listitem><para>tells Metacity how to draw windows according to whether they're focused or not, maximised or not, shaded or not, and allowing resizing vertically, horizontally, both, or neither. It looks like this:</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
<programlisting>
&lt;frame_style_set&gt;
&lt;frame focus=&quot;F&quot; state=&quot;S&quot; resize=&quot;R&quot; style=&quot;N&quot;/&gt;
&lt;frame&#8230; /&gt;
&#8230;
&lt;/frame_style_set&gt;
</programlisting>
</para>
<para>where:</para>
<para>
<variablelist>
<varlistentry>
<term>F</term><listitem><para>is yes for focused, no for unfocused.</para></listitem>
</varlistentry>
<varlistentry>
<term>S</term><listitem><para>combines the shaded and maximized flags: normal, maximized, shaded, or maximized_and_shaded.</para></listitem>
</varlistentry>
<varlistentry>
<term>R</term><listitem><para>represents resize permissions that the window gives us: none, vertical, horizontal, or both. Frame settings for maximised windows, which can't be resized, don't have this attribute.</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
<varname>N</varname> is the name of a <literal>frame_style</literal> to apply to a window which has these attributes.</para>
<para>A <literal>frame_style_set</literal> tag may also have a &quot;parent&quot; tag, which should be the name of another <literal>frame_style_set</literal>. This means that if Metacity wants to know about a kind of window which that <literal>frame_style_set</literal> doesn't describe, it should look in the parent. Most of the more complicated tags in Metacity theme files also have a &quot;parent&quot; attribute which work the same way. This is particularly useful because, taken together, all the <literal>frame_style_set</literal>s in a theme file must be capable of matching every possible kind of window; if a window turns up that they can't match, there will be an error at runtime.</para>
<para>Let's recap what we've seen so far. The combination of a <literal>window</literal>, which matches a window's state (normal, dialog, and so forth), with an entry in the corresponding <literal>frame_style_set</literal>, which matches its focus, shadedness, maximisedness, and resize permissions where relevant, will allow you to make a list of rules to match any window against. The next piece of this puzzle lets you specify what Metacity should do with such windows once it's matched them.</para>
</chapter>
<chapter>
<title>Actually drawing stuff</title>
<para><literal>frame_style:</literal> This is probably the most complicated part of the whole system. A <literal>frame_style</literal> a series of <emphasis><literal>piece</literal></emphasis>s and <emphasis><literal>button</literal></emphasis>s. It looks like this:</para>
<para>
<programlisting>
&lt;frame_style name=&quot;&#8230;&quot; geometry=&quot;G&quot;&gt;
&lt;piece position=&quot;P&quot;&gt;
&lt;draw_ops&gt;
&lt;/draw_ops&gt;
&lt;/piece&gt;
&#8230;
&lt;button function=&quot;F&quot; state=&quot;S&quot; draw_ops=&quot;D&quot;/&gt;
&lt;draw_ops&gt;
&lt;/draw_ops&gt;
&lt;/button&gt;
&#8230;
&lt;/frame_style&gt;
</programlisting>
</para>
<para>The <literal>pieces</literal> are pieces of the window frame. When Metacity draws a window frame, it renders its various pieces always in the same order. The bolded parts are all the possible values of P:</para>
<para>
<itemizedlist>
<listitem><para>the <literal>entire_background</literal>, covering the whole frame</para></listitem>
<listitem><para>the <literal>titlebar</literal>, covering the entire background of the titlebar</para></listitem>
<listitem><para>the <literal>titlebar_middle</literal>, the part of the titlebar that doesn't touch its edges</para></listitem>
<listitem><para>the <literal>left_titlebar_edge</literal>, <literal>right_titlebar_edge</literal>, <literal>top_titlebar_edge</literal>, and <literal>bottom_titlebar_edge</literal></para></listitem>
<listitem><para>the <literal>title</literal>, just exactly that area which is covered by the text on the titlebar</para></listitem>
<listitem><para>the <literal>left_edge</literal>, <literal>right_edge</literal>, and <literal>bottom_edge</literal> of the frame (yes, there is no top_edge: it's identical to top_titlebar_edge, isn't it?)</para></listitem>
<listitem><para>the <literal>overlay</literal>, which covers everything&#8211; the same as entire_background, but done last instead of first.</para></listitem>
</itemizedlist>
</para>
<para><emphasis>What</emphasis> Metacity draws in these pieces is decided by the theme. If a <literal>frame_style</literal> or its parents don't specify a particular piece, nothing will be drawn for that piece. You have two ways to specify what to draw: one is that the <literal>piece</literal> tag can have a <literal>draw_ops</literal> tag inside it which lists a sequence of drawing operations in Metacity's custom format. <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=107012">You might ask why we don't use SVG</ulink>; one answer is that SVG support wasn't very strong when this format was designed, and another answer is that these days you can use SVG all you like; just include it as an image and Metacity will know what to do.</para>
<para>An alternative to including a draw_ops tag inside a piece tag is to add a draw_ops attribute to the piece tag. Then you can add a draw_ops tag at top level (inside the metacity_theme tag) with a name attribute, and Metacity will use that. This is useful if you use similar draw_ops over and over.</para>
<para>I'm not going to document draw_ops at present, because this is already very long. I will write it up later and link it from here.</para>
<para>The <literal>button</literal> tag tells Metacity how, but not where, to draw buttons. Buttons are drawn after all the pieces are finished, and the way to draw them is also given using draw_ops. You ought to provide buttons for all the possible kinds of button; if you don't give one it won't be drawn, which is unfortunate for the user who wants to use it:</para>
<para>
<itemizedlist>
<listitem><para><literal>left_left_background</literal>, <literal>left_middle_background</literal>, and <literal>left_right_background</literal> don't represent buttons as such, but the background behind them, assuming there can be at most three buttons on the left. These days there can be more, so the extra ones also use left_middle_background.</para></listitem>
<listitem><para><literal>right_left_background</literal>, <literal>right_middle_background</literal>, and <literal>right_right_background</literal> similarly.</para></listitem>
<listitem><para><literal>close</literal>, <literal>minimize</literal>, <literal>maximize</literal> are the obvious original three buttons.</para></listitem>
<listitem><para><literal>menu</literal> is the menu button you can click to get a list of actions you can perform on the window.</para></listitem>
<listitem><para><literal>shade</literal>, <literal>above</literal>, <literal>stick</literal> are similar to the original buttons but only allowed in version 2</para></listitem>
<listitem><para><literal>unshade</literal>, <literal>unabove</literal>, <literal>unstick</literal> are the toggled versions of these buttons. Again, version 2 only.</para></listitem>
</itemizedlist>
</para>
<para>The reason there are toggled versions of shade, above, and stick, and not maximize, is that by the time you get this far you've probably already decided whether you're drawing a maximised window. So if you <emphasis>are</emphasis> drawing a maximised window, you can make the button called &quot;maximize&quot; look how you want the restore button to be; otherwise, make it look like you want the maximise button to be.</para>
<para>For each button tag you should also set a &quot;state&quot; attribute; this time the state is either <literal>normal</literal> (the way you see it most of the time), <literal>pressed</literal>, or <literal>prelight</literal> (this makes the buttons subtly light up when you hover over them). You only really need &quot;normal&quot;, but the others are good to have too.</para>
<para>The &quot;geometry&quot; attribute of a <literal>frame_style</literal> tag is the name of a&#8230;</para>
</chapter>
<chapter>
<title>Geometry</title>
<para>The <literal>geometry</literal> tag defines the sizes of things around the window. It is important, but not easy to explain, and again this file has gone on too long. I'll write it up later.</para>
</chapter>
<chapter>
<title>Other things which lie around a file</title>
<para>The most important other thing in a theme file is the metadata held in the <literal>info</literal> tag. This contains a set of tags each of which contains some text explaining something about the theme itself, in a sort of <ulink url="http://en.wikipedia.org/wiki/Dublin_Core">Dublin Core</ulink> sort of way. (Next time around, we should probably use the actual Dublin Core.) The tags are <literal>name</literal>, <literal>author</literal>, <literal>copyright</literal>, <literal>date</literal>, and <literal>description</literal>.</para>
<para>Version 1 of the format had a <literal>menu_icon</literal> tag at top level, which let themes specify the icons beside options in the menu you get from the menu icon. This has become redundant; the icons are taken from the icon theme! The tag can still be used in all formats, but does nothing and is deprecated.</para>
<para>Version 2 of the format has a <literal>fallback</literal> tag at top level, which let the theme specify what icon a window should be considered to have if it doesn't provide an icon of its own. This should also be taken from the icon theme, <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=524343">if anyone fancies fixing it</ulink>, and the tag should also then be deprecated. It shouldn't be hard.</para>
</chapter>
<chapter>
<title>When you're working on a theme</title>
<para>When you're editing a theme, you can view it without using it on the whole desktop using
<command>metacity-theme-viewer YourThemeName</command></para>
<para>and view it on the whole desktop using
<command>gconftool -<!-- x -->-type=string -<!-- x -->-set /apps/metacity/general/theme YourThemeName</command></para>
<para>Whenever you change the selected theme in GConf, Metacity will load the newly-chosen theme. This is how control-center does it. But when you change a theme, as you're working on it, you might want to ask Metacity to reload the theme which is currently used on the whole desktop to reflect your changes. You can do this using the little-known <command>metacity-message</command> program, with the command <literal>metacity-message reload-theme</literal>. This works by sending the ClientMessage <literal>_METACITY_RELOAD_THEME_MESSAGE</literal> to the root window, in case you're interested.</para>
<para>Once you're done with your theme, consider submitting it to <ulink url="http://art.gnome.org/themes/metacity/">the art.gnome.org site</ulink>, or <ulink url="http://www.gnome-look.org/index.php?xcontentmode=101">the gnome-look site</ulink>.</para>
</chapter>
<chapter>
<title>The future</title>
<para>Please feel free to link to this so people don't have to keep asking the basic questions and can start asking the deeper ones. One of the important deeper ones is: where should we go in the future? Since this format is becoming something of a de facto standard between window managers, should we set up some kind of freedesktop.org standards discussion? Would it be useful to spin off Metacity's theme parsing code into a separate, LGPL-licensed library so that other applications could use it more easily?</para>
<para>What would a version 3 of this format look like? Could we simplify the window / frame_style_set system? (I can imagine abolishing both, and being able to write <literal>&lt;frame_style for=&quot;normal+unfocused+maximized&quot;&gt;&#8230;</literal> and having Metacity assume it applied to all resize permissions and shadednesses.) Maybe we should try to do everything with SVG we can? Getting more wild and handwavey, is it worth keeping XML-like? Maybe if other window managers were dealing with the files, .ini-style files would be more universally useful? Or perhaps not. And then of course we need a decent graphical editor for it. I have a few ideas, but if anyone fancies jumping in...</para>
</chapter>
</book>

View File

@ -1,24 +0,0 @@
### This part of Makefile.am can be customized by you.
# gnome-doc-utils standard variables:
include $(top_srcdir)/gnome-doc-utils.make
dist-hook: doc-dist-hook
# The name of the directory in /usr/share/gnome/help/,
# and the name of the main .xml file:
DOC_MODULE = creating-metacity-themes
# The names of any files included via entity declarations.
DOC_ENTITIES =
# The names of any files included by xincluded (preferred):
DOC_INCLUDES =
# The names of any pictures:
DOC_FIGURES =
# The names of any locales for which documentation translations exist:
DOC_LINGUAS =

View File

@ -1,4 +1,4 @@
man_MANS = metacity.1 metacity-theme-viewer.1 \ man_MANS = mutter.1 mutter-theme-viewer.1 \
metacity-window-demo.1 metacity-message.1 mutter-window-demo.1 mutter-message.1
EXTRA_DIST = $(man_MANS) EXTRA_DIST = $(man_MANS)

View File

@ -12,7 +12,7 @@
.\" > Right I know. any licenses that is DFSG-free, I'm ok with whatever, .\" > Right I know. any licenses that is DFSG-free, I'm ok with whatever,
.\" > since I have contributed that for Debian. so GPL is no problem for me. .\" > since I have contributed that for Debian. so GPL is no problem for me.
.\" ----- .\" -----
.TH METACITY\-MESSAGE 1 "28 August 2002" .TH MUTTER\-MESSAGE 1 "28 August 2002"
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@ -26,24 +26,24 @@
.\" .sp <n> insert n+1 empty lines .\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7) .\" for manpage-specific macros, see man(7)
.SH NAME .SH NAME
METACITY\-MESSAGE \- a command to send a message to Metacity MUTTER\-MESSAGE \- a command to send a message to Mutter
.SH SYNOPSIS .SH SYNOPSIS
.B METACITY\-MESSAGE .B MUTTER\-MESSAGE
[restart|reload\-theme|enable\-keybindings|disable\-keybindings] [restart|reload\-theme|enable\-keybindings|disable\-keybindings]
.SH DESCRIPTION .SH DESCRIPTION
This manual page documents briefly the This manual page documents briefly the
.B metacity\-message\fP. .B mutter\-message\fP.
This manual page was written for the Debian distribution This manual page was written for the Debian distribution
because the original program does not have a manual page. because the original program does not have a manual page.
.PP .PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and .\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics, .\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively. .\" respectively.
\fBmetacity\-message\fP send a specified message to \fBmetacity\fP(1). \fBmutter\-message\fP send a specified message to \fBmutter\fP(1).
.SH OPTIONS .SH OPTIONS
.TP .TP
.B restart .B restart
Restart \fBmetacity\fP(1) which is running. Restart \fBmutter\fP(1) which is running.
.TP .TP
.B reload-theme .B reload-theme
Reload a theme which is specified on gconf database. Reload a theme which is specified on gconf database.
@ -54,7 +54,7 @@ Enable all of keybindings which is specified on gconf database.
.B disable-keybindings .B disable-keybindings
Disable all of keybindings which is specified on gconf database. Disable all of keybindings which is specified on gconf database.
.SH SEE ALSO .SH SEE ALSO
.BR metacity (1) .BR mutter (1)
.SH AUTHOR .SH AUTHOR
This manual page was written by Akira TAGOH <tagoh@debian.org>, This manual page was written by Akira TAGOH <tagoh@debian.org>,
for the Debian GNU/Linux system (but may be used by others). for the Debian GNU/Linux system (but may be used by others).

View File

@ -3,21 +3,21 @@
.\" .\"
.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>. .\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
.\" .\"
.TH METACITY-THEME-VIEWER 1 "1 June 2004" .TH MUTTER-THEME-VIEWER 1 "1 June 2004"
.SH NAME .SH NAME
metacity-theme-viewer \- view metacity themes mutter-theme-viewer \- view mutter themes
.SH SYNOPSIS .SH SYNOPSIS
.B metacity-theme-viewer .B mutter-theme-viewer
[ [
.I THEMENAME .I THEMENAME
] ]
.SH DESCRIPTION .SH DESCRIPTION
.\" Putting a newline after each sentence can generate better output. .\" Putting a newline after each sentence can generate better output.
.B metacity-theme-viewer .B mutter-theme-viewer
allows you to preview any installed Metacity theme. allows you to preview any installed Mutter theme.
.PP .PP
When designing a new Metacity theme, you can use When designing a new Mutter theme, you can use
.B metacity-theme-viewer .B mutter-theme-viewer
to measure the performance of a window frame option, and to preview to measure the performance of a window frame option, and to preview
the option. the option.
.SH OPTIONS .SH OPTIONS
@ -32,12 +32,12 @@ It is case-sensitive.
.I /usr/share/themes .I /usr/share/themes
system themes directory system themes directory
.TP .TP
.I /usr/share/themes/*/metacity-1/metacity-theme-1.xml .I /usr/share/themes/*/mutter-1/mutter-theme-1.xml
theme specification file theme specification file
.SH AUTHOR .SH AUTHOR
This manual page was written by Jose M. Moya <josem@die.upm.es>, for This manual page was written by Jose M. Moya <josem@die.upm.es>, for
the Debian GNU/Linux system (but may be used by others). the Debian GNU/Linux system (but may be used by others).
.SH "SEE ALSO" .SH "SEE ALSO"
.\" Always quote multiple words for .SH .\" Always quote multiple words for .SH
.BR metacity (1), .BR mutter (1),
.BR metacity-window-demo (1). .BR mutter-window-demo (1).

View File

@ -3,11 +3,11 @@
.\" .\"
.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>. .\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
.\" .\"
.TH METACITY-WINDOW-DEMO 1 "1 June 2004" .TH MUTTER-WINDOW-DEMO 1 "1 June 2004"
.SH NAME .SH NAME
metacity-window-demo \- demo of window features mutter-window-demo \- demo of window features
.SH SYNOPSIS .SH SYNOPSIS
.B metacity-window-demo .B mutter-window-demo
.SH DESCRIPTION .SH DESCRIPTION
.\" Putting a newline after each sentence can generate better output. .\" Putting a newline after each sentence can generate better output.
This program demonstrates various kinds of windows that window This program demonstrates various kinds of windows that window
@ -21,5 +21,5 @@ the Debian GNU/Linux system (but may be used by others).
.SH "SEE ALSO" .SH "SEE ALSO"
.\" Always quote multiple words for .SH .\" Always quote multiple words for .SH
.BR x-window-manager (1), .BR x-window-manager (1),
.BR metacity (1), .BR mutter (1),
.BR metacity-theme-viewer (1). .BR mutter-theme-viewer (1).

View File

@ -2,7 +2,7 @@
.\" First parameter, NAME, should be all caps .\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1) .\" other parameters are allowed: see man(7), man(1)
.TH METACITY 1 "11 February 2006" .TH MUTTER 1 "11 February 2006"
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@ -16,25 +16,25 @@
.\" .sp <n> insert n+1 empty lines .\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7) .\" for manpage-specific macros, see man(7)
.SH NAME .SH NAME
METACITY \- minimal GTK2 Window Manager MUTTER \- Clutter based compositing GTK2 Window Manager
.SH SYNOPSIS .SH SYNOPSIS
.B metacity .B mutter
[\-\-display=\fIDISPLAY\fP] [\-\-replace] [\-\-sm\-client\-id=\fIID\fP] [\-\-sm\-disable] [\-\-sm\-save\-file=\fIFILENAME\fP] [\-\-version] [\-\-help] [\-\-display=\fIDISPLAY\fP] [\-\-replace] [\-\-sm\-client\-id=\fIID\fP] [\-\-sm\-disable] [\-\-sm\-save\-file=\fIFILENAME\fP] [\-\-version] [\-\-help]
.SH DESCRIPTION .SH DESCRIPTION
This manual page documents briefly This manual page documents briefly
.B metacity\fP. .B mutter\fP.
.PP .PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and .\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics, .\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively. .\" respectively.
\fBmetacity\fP is a minimal X window manager aimed at nontechnical users and is designed to integrate well with the GNOME desktop. \fBmetacity\fP lacks some features that may be expected by traditional UNIX or other technical users; these users may want to investigate other available window managers for use with GNOME or standalone. \fBmutter\fP is a minimal X window manager aimed at nontechnical users and is designed to integrate well with the GNOME desktop. \fBmutter\fP lacks some features that may be expected by traditional UNIX or other technical users; these users may want to investigate other available window managers for use with GNOME or standalone.
.SH OPTIONS .SH OPTIONS
.TP .TP
.B \-\-display=DISPLAY .B \-\-display=DISPLAY
Connect to X display \fIDISPLAY\fP. Connect to X display \fIDISPLAY\fP.
.TP .TP
.B \-\-replace .B \-\-replace
a window manager which is running is replaced by \fBmetacity\fP. Users are encouraged to change the GNOME window manager by running the new WM with the --replace or -replace option, and subsequently saving the session. a window manager which is running is replaced by \fBmutter\fP. Users are encouraged to change the GNOME window manager by running the new WM with the --replace or -replace option, and subsequently saving the session.
.TP .TP
.B \-\-sm\-client\-id=ID .B \-\-sm\-client\-id=ID
Specify a session management \fIID\fP. Specify a session management \fIID\fP.
@ -51,10 +51,10 @@ Print the version number.
.B \-?, \-\-help .B \-?, \-\-help
Show summary of options. Show summary of options.
.SH CONFIGURATION .SH CONFIGURATION
\fBmetacity\fP configuration can be found under \fIPreferences\fP->\fIWindows\fP and \fIPreferences\fP->\fIKeyboard Shortcuts\fP on the menu-panel. Advanced configuration can be achieved directly through gconf editing (gconf-editor or gconftool-2). \fBmutter\fP configuration can be found under \fIPreferences\fP->\fIWindows\fP and \fIPreferences\fP->\fIKeyboard Shortcuts\fP on the menu-panel. Advanced configuration can be achieved directly through gconf editing (gconf-editor or gconftool-2).
.SH SEE ALSO .SH SEE ALSO
.BR metacity-message (1) .BR mutter-message (1)
.SH AUTHOR .SH AUTHOR
The original manual page was written by Thom May <thom@debian.org>. It was updated by Akira TAGOH <tagoh@debian.org> The original manual page was written by Thom May <thom@debian.org>. It was updated by Akira TAGOH <tagoh@debian.org>
for the Debian GNU/Linux system (with permission to use by others), and then updated by Luke Morton and Philip O'Brien for the Debian GNU/Linux system (with permission to use by others), and then updated by Luke Morton and Philip O'Brien
for inclusion in metacity. for inclusion in mutter.

View File

@ -1,273 +0,0 @@
<!--
DTD for Metacity themes, as of Metacity 2.4.1
Author: Ross Burton <ross@burtonini.com>
Copyright (C) 2002 Ross Burton
Licensed under the GPL, version 2
-->
<!-- Top-level element -->
<!ELEMENT metacity_theme (info,(window|frame_style_set|frame_style|frame_geometry|constant|draw_ops|menu_icon)+)>
<!-- Theme metadata -->
<!ELEMENT info (name?|author?|copyright?|date?|description?)*>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT copyright (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ENTITY % xyrequired "
x CDATA #REQUIRED
y CDATA #REQUIRED
">
<!ENTITY % xyimplied "
x CDATA #IMPLIED
y CDATA #IMPLIED
">
<!ENTITY % widthheightrequired "
width CDATA #REQUIRED
height CDATA #REQUIRED
">
<!ENTITY % widthheightimplied "
width CDATA #IMPLIED
height CDATA #IMPLIED
">
<!ENTITY % boolean "(true|false)">
<!ENTITY % piece_positions "
(entire_background|titlebar|titlebar_middle|left_titlebar_edge|right_titlebar_edge|top_titlebar_edge|bottom_titlebar_edge|title|left_edge|right_edge|bottom_edge|overlay)
">
<!ENTITY % gtk-state "
state (normal|prelight|active|selected|insensitive) #REQUIRED
">
<!ENTITY % gtk-shadow "
shadow (none|in|out|etched_in|etched_out) #REQUIRED
">
<!-- The actual theme -->
<!ELEMENT window EMPTY>
<!ATTLIST window
type (normal|dialog|modal_dialog|menu|utility|border) #REQUIRED
style_set CDATA #REQUIRED
>
<!ELEMENT frame_style_set (frame+)>
<!ATTLIST frame_style_set
name CDATA #REQUIRED
parent CDATA #IMPLIED
>
<!ELEMENT frame EMPTY>
<!ATTLIST frame
focus (yes|no) #REQUIRED
state (normal|maximized|shaded|maximized_and_shaded) #REQUIRED
resize (both|horizontal|vertical|none) #IMPLIED
style CDATA #REQUIRED
>
<!ELEMENT frame_style (piece|button)*>
<!ATTLIST frame_style
name CDATA #REQUIRED
geometry CDATA #REQUIRED
parent CDATA #IMPLIED
>
<!ELEMENT piece (draw_ops?)>
<!ATTLIST piece
position %piece_positions; #REQUIRED
draw_ops CDATA #IMPLIED
>
<!ELEMENT button (draw_ops?)>
<!ATTLIST button
function (menu|minimize|maximize|close|left_left_background|left_middle_background|left_right_background|right_left_background|right_middle_background|right_right_background) #REQUIRED
state (normal|prelight|pressed) #REQUIRED
draw_ops CDATA #IMPLIED
>
<!ELEMENT frame_geometry (border|(aspect_ratio|distance))+>
<!ATTLIST frame_geometry
name CDATA #REQUIRED
parent CDATA #IMPLIED
title_scale (xx-small|x-small|small|medium|large|x-large|xx-large) #IMPLIED
has_title (true|false) 'true'
rounded_top_left %boolean; #IMPLIED
rounded_top_right %boolean; #IMPLIED
rounded_bottom_left %boolean; #IMPLIED
rounded_bottom_right %boolean; #IMPLIED
>
<!ELEMENT distance EMPTY>
<!ATTLIST distance
name (left_width|right_width|bottom_height|title_vertical_pad|right_titlebar_edge|left_titlebar_edge|button_width|button_height) #REQUIRED
value CDATA #REQUIRED
>
<!ELEMENT border EMPTY>
<!ATTLIST border
name CDATA #REQUIRED
top CDATA #REQUIRED
bottom CDATA #REQUIRED
left CDATA #REQUIRED
right CDATA #REQUIRED
>
<!ELEMENT aspect_ratio EMPTY>
<!ATTLIST aspect_ratio
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!ELEMENT draw_ops (line|rectangle|arc|tint|gradient|image|gtk_arrow|gtk_box|gtk_vline|icon|title|clip|include|tile)*>
<!-- not sure about this.. maybe it should be removed. see #3478 in theme-parser.c -->
<!ATTLIST draw_ops
name CDATA #IMPLIED
>
<!ELEMENT line EMPTY>
<!ATTLIST line
color CDATA #REQUIRED
x1 CDATA #REQUIRED
y1 CDATA #REQUIRED
x2 CDATA #REQUIRED
y2 CDATA #REQUIRED
width CDATA #IMPLIED
dash_on_length CDATA #IMPLIED
dash_off_length CDATA #IMPLIED
>
<!ELEMENT rectangle EMPTY>
<!ATTLIST rectangle
color CDATA #REQUIRED
%xyrequired;
%widthheightrequired;
filled %boolean; 'false'
>
<!ELEMENT arc EMPTY>
<!ATTLIST arc
color CDATA #REQUIRED
%xyrequired;
%widthheightrequired;
start_angle CDATA #REQUIRED
extent_angle CDATA #REQUIRED
filled %boolean; 'false'
>
<!ELEMENT icon EMPTY>
<!ATTLIST icon
%xyrequired;
width CDATA #REQUIRED
height CDATA #REQUIRED
alpha CDATA #IMPLIED
fill_type (tile|scale) 'scale'
>
<!ELEMENT image EMPTY>
<!ATTLIST image
filename CDATA #REQUIRED
colorize CDATA #IMPLIED
%xyrequired;
%widthheightrequired;
alpha CDATA #IMPLIED
fill_type (tile|scale) 'scale'
>
<!ELEMENT tile EMPTY>
<!ATTLIST tile
name CDATA #REQUIRED
%xyrequired;
%widthheightrequired;
tile_xoffset CDATA #IMPLIED
tile_yoffset CDATA #IMPLIED
tile_width CDATA #REQUIRED
tile_height CDATA #REQUIRED
>
<!ELEMENT clip EMPTY>
<!ATTLIST clip
%xyrequired;
%widthheightrequired;
>
<!ELEMENT title EMPTY>
<!ATTLIST title
color CDATA #REQUIRED
%xyrequired;
>
<!ELEMENT tint EMPTY>
<!ATTLIST tint
color CDATA #REQUIRED
%xyrequired;
%widthheightrequired;
alpha CDATA #REQUIRED
>
<!ELEMENT gtk_box EMPTY>
<!ATTLIST gtk_box
%gtk-state;
%gtk-shadow;
%xyrequired;
%widthheightrequired;
>
<!ELEMENT gtk_arrow EMPTY>
<!ATTLIST gtk_arrow
%gtk-state;
%gtk-shadow;
arrow (up|down|left|right) #REQUIRED
%xyrequired;
%widthheightrequired;
filed CDATA #IMPLIED
>
<!ELEMENT gtk_vline EMPTY>
<!ATTLIST gtk_vline
%gtk-state;
x CDATA #REQUIRED
y1 CDATA #REQUIRED
y2 CDATA #REQUIRED
>
<!ELEMENT gradient (color)+>
<!ATTLIST gradient
type (vertical|horizontal|diagonal) #REQUIRED
%xyrequired;
%widthheightrequired;
alpha CDATA #IMPLIED
>
<!ELEMENT color EMPTY>
<!ATTLIST color
value CDATA #REQUIRED
>
<!ELEMENT include EMPTY>
<!ATTLIST include
name CDATA #REQUIRED
%xyimplied;
%widthheightimplied;
>
<!ELEMENT constant EMPTY>
<!ATTLIST constant
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!ELEMENT menu_icon (draw_ops?)>
<!ATTLIST menu_icon
function (close|maximize|minimize|unmaximize) #REQUIRED
%gtk-state;
draw_ops CDATA #IMPLIED
>

View File

@ -1,710 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<Project
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns="http://usefulinc.com/ns/doap#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:admin="http://webns.net/mvcb/">
<name>The Metacity Window Manager</name>
<shortname>Metacity</shortname>
<!-- It's a blog. Metacity has no homepage. -->
<homepage rdf:resource="http://blogs.gnome.org/metacity/" />
<!-- The date when the source control was initialised. -->
<created>2001-05-30</created>
<shortdesc xml:lang="en">
Metacity is a simple compositing window manager that integrates nicely with GNOME 2.
</shortdesc>
<description xml:lang="en">
A window manager for GNOME, with a focus on simplicity and usability
rather than novelties or gimmicks. It uses GTK+ 2 for drawing window frames,
so that it inherits colours, fonts, and so on from the GTK+ theme. Its author
has characterised it as a &quot;boring window manager for the adult in you.
Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios.&quot;
</description>
<!-- I haven't found anything appropriate; I made this up. -->
<category>window-manager</category>
<wiki rdf:resource="http://live.gnome.org/Metacity" />
<bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=metacity" />
<screenshots rdf:resource="http://commons.wikimedia.org/wiki/Image:Metacity-screenshot.png" />
<mailing-list rdf:resource="http://mail.gnome.org/mailman/listinfo/metacity-devel-list" />
<programming-language>C</programming-language>
<license rdf:resource="http://usefulinc.com/doap/licenses/gpl" />
<download-page rdf:resource="http://download.gnome.org/sources/metacity/" />
<repository>
<SVNRepository>
<location rdf:resource="http://svn.gnome.org/svn/metacity" />
<browse rdf:resource="http://svn.gnome.org/viewvc/metacity/" />
</SVNRepository>
</repository>
<author>
<foaf:Person>
<foaf:name>Havoc Pennington</foaf:name>
</foaf:Person>
</author>
<maintainer>
<foaf:Person>
<foaf:name>Elijah Newren</foaf:name>
</foaf:Person>
</maintainer>
<maintainer>
<foaf:Person>
<foaf:name>Thomas Thurman</foaf:name>
<foaf:mbox rdf:resource="mailto:tthurman@gnome.org"/>
</foaf:Person>
</maintainer>
<release><Version>
<name>2.25.1 release</name>
<created>2008-09-01</created>
<branch></branch>
<revision>2.25.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.25.0 release</name>
<created>2008-08-18</created>
<branch></branch>
<revision>2.25.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.89 release</name>
<created>2008-08-04</created>
<branch></branch>
<revision>2.23.89</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.89.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.89.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.55 release</name>
<created>2008-07-14</created>
<branch></branch>
<revision>2.23.55</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.55.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.55.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.34 release</name>
<created>2008-06-16</created>
<branch></branch>
<revision>2.23.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.34 release</name>
<created>2008-06-16</created>
<branch></branch>
<revision>2.23.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.34 release</name>
<created>2008-06-02</created>
<branch></branch>
<revision>2.23.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.21 release</name>
<created>2008-05-26</created>
<branch></branch>
<revision>2.23.21</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.21.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.21.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.13 release</name>
<created>2008-04-27</created>
<branch></branch>
<revision>2.23.13</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.13.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.13.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.8 release</name>
<created>2008-04-22</created>
<branch></branch>
<revision>2.23.8</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.8.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.8.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.5 release</name>
<created>2008-04-06</created>
<branch></branch>
<revision>2.23.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.3 release</name>
<created>2008-03-21</created>
<branch></branch>
<revision>2.23.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.2 release</name>
<created>2008-03-07</created>
<branch></branch>
<revision>2.23.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.1 release</name>
<created>2008-03-06</created>
<branch></branch>
<revision>2.23.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.0 release</name>
<created>2008-02-26</created>
<branch></branch>
<revision>2.23.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.13 release</name>
<created>2008-02-11</created>
<branch></branch>
<revision>2.21.13</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.13.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.13.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.8 release</name>
<created>2008-02-03</created>
<branch></branch>
<revision>2.21.8</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.8.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.8.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.5 release</name>
<created>2007-12-19</created>
<branch></branch>
<revision>2.21.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.3 release</name>
<created>2007-12-14</created>
<branch></branch>
<revision>2.21.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.2 release</name>
<created>2007-11-17</created>
<branch></branch>
<revision>2.21.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.1 release</name>
<created>2007-11-11</created>
<branch></branch>
<revision>2.21.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.20.0 release</name>
<created>2007-09-15</created>
<branch></branch>
<revision>2.20.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.20/2.20.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.20/2.20.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.55 release</name>
<created>2007-08-07</created>
<branch></branch>
<revision>2.19.55</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.55.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.55.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.34 release</name>
<created>2007-07-22</created>
<branch></branch>
<revision>2.19.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.21 release</name>
<created>2007-06-18</created>
<branch></branch>
<revision>2.19.21</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.21.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.21.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.13 release</name>
<created>2007-06-10</created>
<branch></branch>
<revision>2.19.13</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.13.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.13.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.8 release</name>
<created>2007-06-04</created>
<branch></branch>
<revision>2.19.8</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.8.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.8.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.5 release</name>
<created>2007-04-23</created>
<branch></branch>
<revision>2.19.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.3 release</name>
<created>2007-04-16</created>
<branch></branch>
<revision>2.19.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.2 release</name>
<created>2007-04-09</created>
<branch></branch>
<revision>2.19.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.1 release</name>
<created>2007-04-04</created>
<branch></branch>
<revision>2.19.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.17.3 release</name>
<created>2006-12-10</created>
<branch></branch>
<revision>2.17.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.17.2 release</name>
<created>2006-11-06</created>
<branch></branch>
<revision>2.17.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.17.1 release</name>
<created>2006-10-16</created>
<branch></branch>
<revision>2.17.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.17.0 release</name>
<created>2006-10-07</created>
<branch></branch>
<revision>2.17.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.16.2 release</name>
<created>2006-09-18</created>
<branch></branch>
<revision>2.16.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.16.1 release</name>
<created>2006-09-11</created>
<branch></branch>
<revision>2.16.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.16.0 release</name>
<created>2006-09-04</created>
<branch></branch>
<revision>2.16.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.34 release</name>
<created>2006-08-21</created>
<branch></branch>
<revision>2.15.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.21 release</name>
<created>2006-08-07</created>
<branch></branch>
<revision>2.15.21</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.21.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.21.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.13 release</name>
<created>2006-07-24</created>
<branch></branch>
<revision>2.15.13</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.13.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.13.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.8 release</name>
<created>2006-07-10</created>
<branch></branch>
<revision>2.15.8</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.8.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.8.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.5 release</name>
<created>2006-06-12</created>
<branch></branch>
<revision>2.15.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.3 release</name>
<created>2006-05-15</created>
<branch></branch>
<revision>2.15.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.2 release</name>
<created>2006-04-25</created>
<branch></branch>
<revision>2.15.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.1 release</name>
<created>2006-04-25</created>
<branch></branch>
<revision>2.15.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.0 release</name>
<created>2006-04-24</created>
<branch></branch>
<revision>2.15.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.89 release</name>
<created>2006-02-13</created>
<branch></branch>
<revision>2.13.89</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.89.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.89.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.55 release</name>
<created>2006-01-30</created>
<branch></branch>
<revision>2.13.55</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.55.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.55.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.34 release</name>
<created>2006-01-20</created>
<branch></branch>
<revision>2.13.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.21 release</name>
<created>2006-01-16</created>
<branch></branch>
<revision>2.13.21</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.21.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.21.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.13 release</name>
<created>2006-01-10</created>
<branch></branch>
<revision>2.13.13</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.13.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.13.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.8 release</name>
<created>2006-01-02</created>
<branch></branch>
<revision>2.13.8</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.8.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.8.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.5 release</name>
<created>2005-12-12</created>
<branch></branch>
<revision>2.13.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.3 release</name>
<created>2005-11-22</created>
<branch></branch>
<revision>2.13.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.2 release</name>
<created>2005-11-19</created>
<branch></branch>
<revision>2.13.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.1 release</name>
<created>2005-11-14</created>
<branch></branch>
<revision>2.13.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.0 release</name>
<created>2005-10-24</created>
<branch></branch>
<revision>2.13.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.12.1 release</name>
<created>2005-10-03</created>
<branch></branch>
<revision>2.12.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.12.0 release</name>
<created>2005-09-05</created>
<branch></branch>
<revision>2.12.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.11.3 release</name>
<created>2005-08-22</created>
<branch></branch>
<revision>2.11.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.11.2 release</name>
<created>2005-08-08</created>
<branch></branch>
<revision>2.11.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.11.1 release</name>
<created>2005-07-24</created>
<branch></branch>
<revision>2.11.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.11.0 release</name>
<created>2005-07-12</created>
<branch></branch>
<revision>2.11.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.10.2 release</name>
<created>2005-06-27</created>
<branch></branch>
<revision>2.10.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.10.1 release</name>
<created>2005-04-11</created>
<branch></branch>
<revision>2.10.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.10.0 release</name>
<created>2005-03-07</created>
<branch></branch>
<revision>2.10.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.8.5 release</name>
<created>2004-09-13</created>
<branch></branch>
<revision>2.8.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.8.5 release</name>
<created>2004-09-13</created>
<branch></branch>
<revision>2.8.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.8.4 release</name>
<created>2004-08-29</created>
<branch></branch>
<revision>2.8.4</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.4.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.4.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.8.3 release</name>
<created>2004-08-15</created>
<branch></branch>
<revision>2.8.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.3.tar.bz2"/>
</Version></release>
<!-- earlier ones not yet documented, and will have to be added by hand -->
</Project>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<KeyListEntries _name="Desktop" wm_name="Metacity" package="metacity">
<KeyListEntry
name="/apps/metacity/global_keybindings/panel_run_dialog" />
<KeyListEntry
name="/apps/metacity/global_keybindings/panel_main_menu" />
<KeyListEntry
name="/apps/metacity/global_keybindings/run_command_screenshot" />
<KeyListEntry
name="/apps/metacity/global_keybindings/run_command_window_screenshot" />
<KeyListEntry
name="/apps/metacity/global_keybindings/run_command_terminal" />
</KeyListEntries>

View File

@ -1,269 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<KeyListEntries _name="Window Management" wm_name="Metacity" package="metacity">
<KeyListEntry
name="/apps/metacity/window_keybindings/activate_window_menu" />
<KeyListEntry
name="/apps/metacity/window_keybindings/toggle_fullscreen" />
<KeyListEntry
name="/apps/metacity/window_keybindings/toggle_maximized" />
<KeyListEntry
name="/apps/metacity/window_keybindings/maximize" />
<KeyListEntry
name="/apps/metacity/window_keybindings/unmaximize" />
<KeyListEntry
name="/apps/metacity/window_keybindings/toggle_shaded" />
<KeyListEntry
name="/apps/metacity/window_keybindings/close" />
<KeyListEntry
name="/apps/metacity/window_keybindings/minimize" />
<KeyListEntry
name="/apps/metacity/window_keybindings/begin_move" />
<KeyListEntry
name="/apps/metacity/window_keybindings/begin_resize" />
<KeyListEntry
name="/apps/metacity/window_keybindings/toggle_on_all_workspaces"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/raise_or_lower" />
<KeyListEntry
name="/apps/metacity/window_keybindings/raise" />
<KeyListEntry
name="/apps/metacity/window_keybindings/lower" />
<KeyListEntry
name="/apps/metacity/window_keybindings/maximize_vertically" />
<KeyListEntry
name="/apps/metacity/window_keybindings/maximize_horizontally" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_1"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_2"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_3"
value="2"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_4"
value="3"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_5"
value="4"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_6"
value="5"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_7"
value="6"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_8"
value="7"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_9"
value="8"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_10"
value="9"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_11"
value="10"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_12"
value="11"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_left"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_right"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_up"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/window_keybindings/move_to_workspace_down"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_windows" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_group" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_panels" />
<KeyListEntry
name="/apps/metacity/global_keybindings/cycle_windows" />
<KeyListEntry
name="/apps/metacity/global_keybindings/cycle_group" />
<KeyListEntry
name="/apps/metacity/global_keybindings/cycle_panels" />
<KeyListEntry
name="/apps/metacity/global_keybindings/show_desktop" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_1"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_2"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_3"
value="2"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_4"
value="3"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_5"
value="4"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_6"
value="5"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_7"
value="6"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_8"
value="7"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_9"
value="8"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_10"
value="9"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_11"
value="10"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_12"
value="11"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_left"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_right"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_up"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
<KeyListEntry
name="/apps/metacity/global_keybindings/switch_to_workspace_down"
value="1"
key="/apps/metacity/general/num_workspaces"
comparison="gt" />
</KeyListEntries>

View File

@ -1,14 +1,14 @@
lib_LTLIBRARIES = libmetacity-private.la lib_LTLIBRARIES = libmutter-private.la
SUBDIRS=wm-tester tools themes SUBDIRS=wm-tester tools
if WITH_CLUTTER if WITH_CLUTTER
SUBDIRS += compositor/mutter/plugins SUBDIRS += compositor/mutter/plugins
endif endif
INCLUDES=@METACITY_CFLAGS@ -I $(srcdir)/include -I$(srcdir)/compositor -DMETACITY_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMETACITY_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMETACITY_PKGDATADIR=\"$(pkgdatadir)\" -DMETACITY_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"metacity\" -DSN_API_NOT_YET_FROZEN=1 -DMETACITY_MAJOR_VERSION=$(METACITY_MAJOR_VERSION) -DMETACITY_MINOR_VERSION=$(METACITY_MINOR_VERSION) -DMETACITY_MICRO_VERSION=$(METACITY_MICRO_VERSION) -DMETACITY_CLUTTER_PLUGIN_API_VERSION=$(METACITY_CLUTTER_PLUGIN_API_VERSION) -DMETACITY_PKGLIBDIR=\"$(pkglibdir)\" -DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\" INCLUDES=@MUTTER_CFLAGS@ -I $(srcdir)/include -I$(srcdir)/compositor -DMUTTER_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMUTTER_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMUTTER_PKGDATADIR=\"$(pkgdatadir)\" -DMUTTER_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"mutter\" -DSN_API_NOT_YET_FROZEN=1 -DMUTTER_MAJOR_VERSION=$(MUTTER_MAJOR_VERSION) -DMUTTER_MINOR_VERSION=$(MUTTER_MINOR_VERSION) -DMUTTER_MICRO_VERSION=$(MUTTER_MICRO_VERSION) -DMUTTER_PLUGIN_API_VERSION=$(MUTTER_PLUGIN_API_VERSION) -DMUTTER_PKGLIBDIR=\"$(pkglibdir)\" -DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\"
metacity_SOURCES= \ mutter_SOURCES= \
core/async-getprop.c \ core/async-getprop.c \
core/async-getprop.h \ core/async-getprop.h \
core/alttabhandler.c \ core/alttabhandler.c \
@ -57,7 +57,7 @@ metacity_SOURCES= \
core/keybindings-private.h \ core/keybindings-private.h \
core/main.c \ core/main.c \
include/main.h \ include/main.h \
core/metacity-Xatomtype.h \ core/mutter-Xatomtype.h \
core/place.c \ core/place.c \
core/place.h \ core/place.h \
core/prefs.c \ core/prefs.c \
@ -107,7 +107,7 @@ metacity_SOURCES= \
include/all-keybindings.h include/all-keybindings.h
if WITH_CLUTTER if WITH_CLUTTER
metacity_SOURCES += \ mutter_SOURCES += \
compositor/mutter/compositor-mutter.c \ compositor/mutter/compositor-mutter.c \
compositor/mutter/mutter-shaped-texture.c \ compositor/mutter/mutter-shaped-texture.c \
compositor/mutter/mutter-shaped-texture.h \ compositor/mutter/mutter-shaped-texture.h \
@ -122,10 +122,10 @@ metacity_SOURCES += \
include/compositor-mutter.h include/compositor-mutter.h
endif endif
# by setting libmetacity_private_la_CFLAGS, the files shared with # by setting libmutter_private_la_CFLAGS, the files shared with
# metacity proper will be compiled with different names. # mutter proper will be compiled with different names.
libmetacity_private_la_CFLAGS = libmutter_private_la_CFLAGS =
libmetacity_private_la_SOURCES= \ libmutter_private_la_SOURCES= \
core/boxes.c \ core/boxes.c \
include/boxes.h \ include/boxes.h \
ui/gradient.c \ ui/gradient.c \
@ -140,12 +140,12 @@ libmetacity_private_la_SOURCES= \
ui/theme.c \ ui/theme.c \
ui/theme.h ui/theme.h
libmetacity_private_la_LDFLAGS = -no-undefined libmutter_private_la_LDFLAGS = -no-undefined
libmetacity_private_la_LIBADD = @METACITY_LIBS@ libmutter_private_la_LIBADD = @MUTTER_LIBS@
libmetacityincludedir = $(includedir)/metacity-1/metacity-private libmutterincludedir = $(includedir)/mutter/mutter-private
libmetacityinclude_base_headers = \ libmutterinclude_base_headers = \
include/alttabhandler.h \ include/alttabhandler.h \
include/boxes.h \ include/boxes.h \
ui/gradient.h \ ui/gradient.h \
@ -167,28 +167,19 @@ libmetacityinclude_base_headers = \
include/mutter-plugin.h include/mutter-plugin.h
# Excluded from scanning for introspection but installed # Excluded from scanning for introspection but installed
libmetacityinclude_extra_headers = \ libmutterinclude_extra_headers = \
include/atomnames.h include/atomnames.h
libmetacityinclude_HEADERS = \ libmutterinclude_HEADERS = \
$(libmetacityinclude_base_headers) \ $(libmutterinclude_base_headers) \
$(libmetacityinclude_extra_headers) $(libmutterinclude_extra_headers)
metacity_theme_viewer_SOURCES= \ mutter_theme_viewer_SOURCES= \
ui/theme-viewer.c ui/theme-viewer.c
schema_bindings_SOURCES = \ bin_PROGRAMS=mutter mutter-theme-viewer
core/schema-bindings.c \
metacity.schemas.in.in
schema_bindings_LDADD = @METACITY_LIBS@ api_version = $(MUTTER_MAJOR_VERSION).$(MUTTER_MINOR_VERSION)
metacity.schemas.in: schema_bindings ${srcdir}/metacity.schemas.in.in
@echo Generating keybinding schemas... ${srcdir}/metacity.schemas.in.in
${builddir}/schema_bindings ${srcdir}/metacity.schemas.in.in ${builddir}/metacity.schemas.in
bin_PROGRAMS=metacity metacity-theme-viewer
api_version = $(METACITY_MAJOR_VERSION).$(METACITY_MINOR_VERSION)
if WITH_INTROSPECTION if WITH_INTROSPECTION
# These files are in package-private directories, even though they may be used # These files are in package-private directories, even though they may be used
@ -200,9 +191,9 @@ gir_DATA = Meta-$(api_version).gir
typelibdir = $(pkglibdir) typelibdir = $(pkglibdir)
typelib_DATA = Meta-$(api_version).typelib typelib_DATA = Meta-$(api_version).typelib
# We need to strip out the attribute that would point back to libmetacity-introspect # We need to strip out the attribute that would point back to libmutter-introspect
# so that libgirepository looks for symbols in the executable instead # so that libgirepository looks for symbols in the executable instead
Meta-$(api_version).gir: $(G_IR_SCANNER) metacity $(libmetacityinclude_HEADERS) $(metacity_SOURCES) Meta-$(api_version).gir: $(G_IR_SCANNER) mutter $(libmutterinclude_HEADERS) $(mutter_SOURCES)
$(G_IR_SCANNER) \ $(G_IR_SCANNER) \
--namespace=Meta \ --namespace=Meta \
--nsversion=$(api_version) \ --nsversion=$(api_version) \
@ -213,9 +204,9 @@ Meta-$(api_version).gir: $(G_IR_SCANNER) metacity $(libmetacityinclude_HEADERS)
--pkg=clutter-0.9 \ --pkg=clutter-0.9 \
--pkg=gtk+-2.0 \ --pkg=gtk+-2.0 \
--include=xfixes-4.0 \ --include=xfixes-4.0 \
--program=./metacity \ --program=./mutter \
$(filter %.c,$(metacity_SOURCES)) \ $(filter %.c,$(mutter_SOURCES)) \
$(libmetacityinclude_base_headers) \ $(libmutterinclude_base_headers) \
$(INCLUDES) \ $(INCLUDES) \
-o $@ -o $@
@ -224,43 +215,39 @@ Meta-$(api_version).typelib: $(G_IR_COMPILER) Meta-$(api_version).gir
endif endif
EFENCE= EFENCE=
metacity_LDADD=@METACITY_LIBS@ libmetacity-private.la $(EFENCE) mutter_LDADD=@MUTTER_LIBS@ libmutter-private.la $(EFENCE)
metacity_LDFLAGS=-export-dynamic mutter_LDFLAGS=-export-dynamic
metacity_theme_viewer_LDADD= @METACITY_LIBS@ libmetacity-private.la mutter_theme_viewer_LDADD= @MUTTER_LIBS@ libmutter-private.la
testboxes_SOURCES=include/util.h core/util.c include/boxes.h core/boxes.c core/testboxes.c testboxes_SOURCES=include/util.h core/util.c include/boxes.h core/boxes.c core/testboxes.c
testgradient_SOURCES=ui/gradient.h ui/gradient.c ui/testgradient.c testgradient_SOURCES=ui/gradient.h ui/gradient.c ui/testgradient.c
testasyncgetprop_SOURCES=core/async-getprop.h core/async-getprop.c core/testasyncgetprop.c testasyncgetprop_SOURCES=core/async-getprop.h core/async-getprop.c core/testasyncgetprop.c
noinst_PROGRAMS=testboxes testgradient testasyncgetprop schema_bindings noinst_PROGRAMS=testboxes testgradient testasyncgetprop
testboxes_LDADD= @METACITY_LIBS@ libmetacity-private.la testboxes_LDADD= @MUTTER_LIBS@ libmutter-private.la
testgradient_LDADD= @METACITY_LIBS@ libmetacity-private.la testgradient_LDADD= @MUTTER_LIBS@ libmutter-private.la
testasyncgetprop_LDADD= @METACITY_LIBS@ libmetacity-private.la testasyncgetprop_LDADD= @MUTTER_LIBS@ libmutter-private.la
@INTLTOOL_DESKTOP_RULE@ @INTLTOOL_DESKTOP_RULE@
desktopfilesdir=$(datadir)/applications desktopfilesdir=$(datadir)/applications
desktopfiles_in_files=metacity.desktop.in desktopfiles_in_files=mutter.desktop.in
desktopfiles_files=$(desktopfiles_in_files:.desktop.in=.desktop) desktopfiles_files=$(desktopfiles_in_files:.desktop.in=.desktop)
desktopfiles_DATA = $(desktopfiles_files) desktopfiles_DATA = $(desktopfiles_files)
wmpropertiesdir=$(datadir)/gnome/wm-properties wmpropertiesdir=$(datadir)/gnome/wm-properties
wmproperties_in_files=metacity-wm.desktop.in wmproperties_in_files=mutter-wm.desktop.in
wmproperties_files=$(wmproperties_in_files:.desktop.in=.desktop) wmproperties_files=$(wmproperties_in_files:.desktop.in=.desktop)
wmproperties_DATA = $(wmproperties_files) wmproperties_DATA = $(wmproperties_files)
schemadir = @GCONF_SCHEMA_FILE_DIR@ schemadir = @GCONF_SCHEMA_FILE_DIR@
schema_in_files = metacity.schemas.in schema_in_files = mutter.schemas.in
schema_DATA = $(schema_in_files:.schemas.in=.schemas) schema_DATA = $(schema_in_files:.schemas.in=.schemas)
@INTLTOOL_XML_NOMERGE_RULE@ @INTLTOOL_XML_NOMERGE_RULE@
xmldir = @GNOME_KEYBINDINGS_KEYSDIR@
xml_in_files = 50-metacity-desktop-key.xml.in 50-metacity-key.xml.in
xml_DATA = $(xml_in_files:.xml.in=.xml)
@INTLTOOL_SCHEMAS_RULE@ @INTLTOOL_SCHEMAS_RULE@
if GCONF_SCHEMAS_INSTALL if GCONF_SCHEMAS_INSTALL
@ -276,14 +263,14 @@ VARIABLES=stock_maximize_data $(srcdir)/stock_maximize.png \
stock_delete_data $(srcdir)/stock_delete.png stock_delete_data $(srcdir)/stock_delete.png
BUILT_SOURCES = inlinepixbufs.h BUILT_SOURCES = inlinepixbufs.h
CLEANFILES = inlinepixbufs.h metacity.desktop metacity-wm.desktop metacity.schemas metacity.schemas.in 50-metacity-desktop-key.xml 50-metacity-key.xml CLEANFILES = inlinepixbufs.h mutter.desktop mutter-wm.desktop mutter.schemas
inlinepixbufs.h: $(IMAGES) inlinepixbufs.h: $(IMAGES)
$(GDK_PIXBUF_CSOURCE) --raw --build-list $(VARIABLES) >$(srcdir)/inlinepixbufs.h $(GDK_PIXBUF_CSOURCE) --raw --build-list $(VARIABLES) >$(srcdir)/inlinepixbufs.h
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libmetacity-private.pc metacity-plugins.pc pkgconfig_DATA = libmutter-private.pc mutter-plugins.pc
EXTRA_DIST=$(desktopfiles_files) \ EXTRA_DIST=$(desktopfiles_files) \
$(wmproperties_files) \ $(wmproperties_files) \
@ -291,7 +278,6 @@ EXTRA_DIST=$(desktopfiles_files) \
$(desktopfiles_in_files) \ $(desktopfiles_in_files) \
$(wmproperties_in_files) \ $(wmproperties_in_files) \
$(schema_in_files) \ $(schema_in_files) \
$(xml_in_files) \ libmutter-private.pc.in \
libmetacity-private.pc.in \ mutter-plugins.pc.in
metacity-plugins.pc.in

View File

@ -69,7 +69,7 @@ mutter_module_load (GTypeModule *gmodule)
(gpointer *)&register_type) && (gpointer *)&register_type) &&
info && register_type) info && register_type)
{ {
if (info->version_api != METACITY_CLUTTER_PLUGIN_API_VERSION) if (info->version_api != MUTTER_PLUGIN_API_VERSION)
g_warning ("Plugin API mismatch for [%s]", priv->path); g_warning ("Plugin API mismatch for [%s]", priv->path);
else else
{ {

View File

@ -3,7 +3,7 @@ pkglibdir=@MUTTER_PLUGIN_DIR@
if WITH_CLUTTER if WITH_CLUTTER
INCLUDES=@METACITY_CFLAGS@ -I $(top_srcdir)/src/include -DMETACITY_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMETACITY_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMETACITY_PKGDATADIR=\"$(pkgdatadir)\" -DMETACITY_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"metacity\" -DSN_API_NOT_YET_FROZEN=1 -DMETACITY_MAJOR_VERSION=$(METACITY_MAJOR_VERSION) -DMETACITY_MINOR_VERSION=$(METACITY_MINOR_VERSION) -DMETACITY_MICRO_VERSION=$(METACITY_MICRO_VERSION) -DMETACITY_CLUTTER_PLUGIN_API_VERSION=$(METACITY_CLUTTER_PLUGIN_API_VERSION) -DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\" INCLUDES=@MUTTER_CFLAGS@ -I $(top_srcdir)/src/include -DMUTTER_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMUTTER_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMUTTER_PKGDATADIR=\"$(pkgdatadir)\" -DMUTTER_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"mutter\" -DSN_API_NOT_YET_FROZEN=1 -DMUTTER_MAJOR_VERSION=$(MUTTER_MAJOR_VERSION) -DMUTTER_MINOR_VERSION=$(MUTTER_MINOR_VERSION) -DMUTTER_MICRO_VERSION=$(MUTTER_MICRO_VERSION) -DMUTTER_PLUGIN_API_VERSION=$(MUTTER_PLUGIN_API_VERSION) -DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\"
default_la_CFLAGS = -fPIC default_la_CFLAGS = -fPIC
default_la_SOURCES = default.c default_la_SOURCES = default.c
@ -14,7 +14,7 @@ pkglib_LTLIBRARIES = default.la
# post-install hook to remove the .la and .a files we are not interested in # post-install hook to remove the .la and .a files we are not interested in
# (There is no way to stop libtool generating static libs locally, and we # (There is no way to stop libtool generating static libs locally, and we
# cannot do this globally because of libmetacity-private.so). # cannot do this globally because of libmutter-private.so).
install-exec-hook: install-exec-hook:
-rm $(DESTDIR)$(pkglibdir)/*.a -rm $(DESTDIR)$(pkglibdir)/*.a
-rm $(DESTDIR)$(pkglibdir)/*.la -rm $(DESTDIR)$(pkglibdir)/*.la

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity visual bell */ /* Mutter visual bell */
/* /*
* Copyright (C) 2002 Sun Microsystems Inc. * Copyright (C) 2002 Sun Microsystems Inc.
@ -25,7 +25,7 @@
/** /**
* \file bell.c Ring the bell or flash the screen * \file bell.c Ring the bell or flash the screen
* *
* Sometimes, X programs "ring the bell", whatever that means. Metacity lets * Sometimes, X programs "ring the bell", whatever that means. Mutter lets
* the user configure the bell to be audible or visible (aka visual), and * the user configure the bell to be audible or visible (aka visual), and
* if it's visual it can be configured to be frame-flash or fullscreen-flash. * if it's visual it can be configured to be frame-flash or fullscreen-flash.
* We never get told about audible bells; X handles them just fine by itself. * We never get told about audible bells; X handles them just fine by itself.
@ -210,7 +210,12 @@ bell_flash_window_frame (MetaWindow *window)
g_assert (window->frame != NULL); g_assert (window->frame != NULL);
window->frame->is_flashing = 1; window->frame->is_flashing = 1;
meta_frame_queue_draw (window->frame); meta_frame_queue_draw (window->frame);
g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, 100, /* Since this idle is added after the Clutter clock source, with
* the same priority, it will be executed after it as well, so
* we are guaranteed to get at least one frame drawn in the
* flashed state, no matter how loaded we are.
*/
g_timeout_add_full (META_PRIORITY_REDRAW, 100,
bell_unflash_frame, window->frame, NULL); bell_unflash_frame, window->frame, NULL);
} }

View File

@ -3,7 +3,7 @@
/** /**
* \file bell.h Ring the bell or flash the screen * \file bell.h Ring the bell or flash the screen
* *
* Sometimes, X programs "ring the bell", whatever that means. Metacity lets * Sometimes, X programs "ring the bell", whatever that means. Mutter lets
* the user configure the bell to be audible or visible (aka visual), and * the user configure the bell to be audible or visible (aka visual), and
* if it's visual it can be configured to be frame-flash or fullscreen-flash. * if it's visual it can be configured to be frame-flash or fullscreen-flash.
* We never get told about audible bells; X handles them just fine by itself. * We never get told about audible bells; X handles them just fine by itself.
@ -54,7 +54,7 @@ void meta_bell_notify (MetaDisplay *display, XkbAnyEvent *xkb_ev);
/** /**
* Turns the bell to audible or visual. This tells X what to do, but * Turns the bell to audible or visual. This tells X what to do, but
* not Metacity; you will need to set the "visual bell" pref for that. * not Mutter; you will need to set the "visual bell" pref for that.
* *
* If the configure script found we had no XKB, this is a no-op. * If the configure script found we had no XKB, this is a no-op.
* *

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity size/position constraints */ /* Mutter size/position constraints */
/* /*
* Copyright (C) 2002, 2003 Red Hat, Inc. * Copyright (C) 2002, 2003 Red Hat, Inc.

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity size/position constraints */ /* Mutter size/position constraints */
/* /*
* Copyright (C) 2002 Red Hat, Inc. * Copyright (C) 2002 Red Hat, Inc.

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity interface used by GTK+ UI to talk to core */ /* Mutter interface used by GTK+ UI to talk to core */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity window deletion */ /* Mutter window deletion */
/* /*
* Copyright (C) 2001, 2002 Havoc Pennington * Copyright (C) 2001, 2002 Havoc Pennington
@ -71,7 +71,8 @@ sigchld_handler (MetaNexus *nexus, guint arg1, gpointer arg2, gpointer user_data
if (GPOINTER_TO_INT (arg2) == ours->dialog_pid) if (GPOINTER_TO_INT (arg2) == ours->dialog_pid)
{ {
if (arg1 == 1 /* pressed "force quit" */) if (arg1 == 1 /* pressed "force quit" */)
g_idle_add (delete_window_callback, user_data); g_idle_add_full (G_PRIORITY_DEFAULT,
delete_window_callback, user_data, NULL);
ours->dialog_pid = -1; /* forget it anyway */ ours->dialog_pid = -1; /* forget it anyway */
} }
@ -249,7 +250,7 @@ meta_window_present_delete_dialog (MetaWindow *window, guint32 timestamp)
GSList *tmp; GSList *tmp;
/* Activate transient for window that belongs to /* Activate transient for window that belongs to
* metacity-dialog * mutter-dialog
*/ */
windows = meta_display_list_windows (window->display); windows = meta_display_list_windows (window->display);
@ -260,7 +261,7 @@ meta_window_present_delete_dialog (MetaWindow *window, guint32 timestamp)
if (w->xtransient_for == window->xwindow && if (w->xtransient_for == window->xwindow &&
w->res_class && w->res_class &&
g_ascii_strcasecmp (w->res_class, "metacity-dialog") == 0) g_ascii_strcasecmp (w->res_class, "mutter-dialog") == 0)
{ {
meta_window_activate (w, timestamp); meta_window_activate (w, timestamp);
break; break;

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X display handler */ /* Mutter X display handler */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X display handler */ /* Mutter X display handler */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington
@ -403,7 +403,7 @@ meta_display_open (void)
#endif #endif
/* FIXME copy the checks from GDK probably */ /* FIXME copy the checks from GDK probably */
the_display->static_gravity_works = g_getenv ("METACITY_USE_STATIC_GRAVITY") != NULL; the_display->static_gravity_works = g_getenv ("MUTTER_USE_STATIC_GRAVITY") != NULL;
meta_bell_init (the_display); meta_bell_init (the_display);
@ -681,11 +681,11 @@ meta_display_open (void)
meta_prop_set_utf8_string_hint (the_display, meta_prop_set_utf8_string_hint (the_display,
the_display->leader_window, the_display->leader_window,
the_display->atom__NET_WM_NAME, the_display->atom__NET_WM_NAME,
"Metacity"); "Mutter");
meta_prop_set_utf8_string_hint (the_display, meta_prop_set_utf8_string_hint (the_display,
the_display->leader_window, the_display->leader_window,
the_display->atom__METACITY_VERSION, the_display->atom__MUTTER_VERSION,
VERSION); VERSION);
data[0] = the_display->leader_window; data[0] = the_display->leader_window;
@ -1434,7 +1434,7 @@ handle_net_restack_window (MetaDisplay* display,
/** /**
* This is the most important function in the whole program. It is the heart, * This is the most important function in the whole program. It is the heart,
* it is the nexus, it is the Grand Central Station of Metacity's world. * it is the nexus, it is the Grand Central Station of Mutter's world.
* When we create a MetaDisplay, we ask GDK to pass *all* events for *all* * When we create a MetaDisplay, we ask GDK to pass *all* events for *all*
* windows to this function. So every time anything happens that we might * windows to this function. So every time anything happens that we might
* want to know about, this function gets called. You see why it gets a bit * want to know about, this function gets called. You see why it gets a bit
@ -1663,7 +1663,7 @@ event_callback (XEvent *event,
gboolean unmodified; gboolean unmodified;
grab_mask = display->window_grab_modifiers; grab_mask = display->window_grab_modifiers;
if (g_getenv ("METACITY_DEBUG_BUTTON_GRABS")) if (g_getenv ("MUTTER_DEBUG_BUTTON_GRABS"))
grab_mask |= ControlMask; grab_mask |= ControlMask;
/* Two possible sources of an unmodified event; one is a /* Two possible sources of an unmodified event; one is a
@ -2235,7 +2235,7 @@ event_callback (XEvent *event,
* sentinel_counter variable declaration in display.h * sentinel_counter variable declaration in display.h
*/ */
if (event->xproperty.atom == if (event->xproperty.atom ==
display->atom__METACITY_SENTINEL) display->atom__MUTTER_SENTINEL)
{ {
meta_display_decrement_focus_sentinel (display); meta_display_decrement_focus_sentinel (display);
} }
@ -2346,13 +2346,13 @@ event_callback (XEvent *event,
} }
} }
else if (event->xclient.message_type == else if (event->xclient.message_type ==
display->atom__METACITY_RESTART_MESSAGE) display->atom__MUTTER_RESTART_MESSAGE)
{ {
meta_verbose ("Received restart request\n"); meta_verbose ("Received restart request\n");
meta_restart (); meta_restart ();
} }
else if (event->xclient.message_type == else if (event->xclient.message_type ==
display->atom__METACITY_RELOAD_THEME_MESSAGE) display->atom__MUTTER_RELOAD_THEME_MESSAGE)
{ {
meta_verbose ("Received reload theme request\n"); meta_verbose ("Received reload theme request\n");
meta_ui_set_current_theme (meta_prefs_get_theme (), meta_ui_set_current_theme (meta_prefs_get_theme (),
@ -2360,14 +2360,14 @@ event_callback (XEvent *event,
meta_display_retheme_all (); meta_display_retheme_all ();
} }
else if (event->xclient.message_type == else if (event->xclient.message_type ==
display->atom__METACITY_SET_KEYBINDINGS_MESSAGE) display->atom__MUTTER_SET_KEYBINDINGS_MESSAGE)
{ {
meta_verbose ("Received set keybindings request = %d\n", meta_verbose ("Received set keybindings request = %d\n",
(int) event->xclient.data.l[0]); (int) event->xclient.data.l[0]);
meta_set_keybindings_disabled (!event->xclient.data.l[0]); meta_set_keybindings_disabled (!event->xclient.data.l[0]);
} }
else if (event->xclient.message_type == else if (event->xclient.message_type ==
display->atom__METACITY_TOGGLE_VERBOSE) display->atom__MUTTER_TOGGLE_VERBOSE)
{ {
meta_verbose ("Received toggle verbose message\n"); meta_verbose ("Received toggle verbose message\n");
meta_set_verbose (!meta_is_verbose ()); meta_set_verbose (!meta_is_verbose ());
@ -3756,7 +3756,7 @@ meta_display_grab_window_buttons (MetaDisplay *display,
if (display->window_grab_modifiers != 0) if (display->window_grab_modifiers != 0)
{ {
gboolean debug = g_getenv ("METACITY_DEBUG_BUTTON_GRABS") != NULL; gboolean debug = g_getenv ("MUTTER_DEBUG_BUTTON_GRABS") != NULL;
int i; int i;
for (i = 1; i < 4; i++) for (i = 1; i < 4; i++)
{ {
@ -3798,7 +3798,7 @@ meta_display_ungrab_window_buttons (MetaDisplay *display,
if (display->window_grab_modifiers == 0) if (display->window_grab_modifiers == 0)
return; return;
debug = g_getenv ("METACITY_DEBUG_BUTTON_GRABS") != NULL; debug = g_getenv ("MUTTER_DEBUG_BUTTON_GRABS") != NULL;
i = 1; i = 1;
while (i < 4) while (i < 4)
{ {
@ -3995,7 +3995,7 @@ static gboolean is_syncing = FALSE;
* *
* \bug This is *only* called by meta_display_open, but by that time * \bug This is *only* called by meta_display_open, but by that time
* we have already turned syncing on or off on startup, and we don't * we have already turned syncing on or off on startup, and we don't
* have any way to do so while Metacity is running, so it's rather * have any way to do so while Mutter is running, so it's rather
* pointless. * pointless.
*/ */
gboolean gboolean
@ -4971,7 +4971,7 @@ meta_display_increment_focus_sentinel (MetaDisplay *display)
XChangeProperty (display->xdisplay, XChangeProperty (display->xdisplay,
((MetaScreen*) display->screens->data)->xroot, ((MetaScreen*) display->screens->data)->xroot,
display->atom__METACITY_SENTINEL, display->atom__MUTTER_SENTINEL,
XA_CARDINAL, XA_CARDINAL,
32, PropModeReplace, (guchar*) data, 1); 32, PropModeReplace, (guchar*) data, 1);

View File

@ -442,7 +442,7 @@ draw_box_animation (MetaScreen *screen,
g_return_if_fail (seconds_duration > 0.0); g_return_if_fail (seconds_duration > 0.0);
if (g_getenv ("METACITY_DEBUG_EFFECTS")) if (g_getenv ("MUTTER_DEBUG_EFFECTS"))
seconds_duration *= 10; /* slow things down */ seconds_duration *= 10; /* slow things down */
/* Create the animation context */ /* Create the animation context */

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X error handling */ /* Mutter X error handling */
/* /*
* Copyright (C) 2001 Havoc Pennington, error trapping inspired by GDK * Copyright (C) 2001 Havoc Pennington, error trapping inspired by GDK

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X event source for main loop */ /* Mutter X event source for main loop */
/* /*
* Copyright (C) 2001 Havoc Pennington (based on GDK code (C) Owen * Copyright (C) 2001 Havoc Pennington (based on GDK code (C) Owen

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X event source for main loop */ /* Mutter X event source for main loop */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X window decorations */ /* Mutter X window decorations */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X window decorations */ /* Mutter X window decorations */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity window group private header */ /* Mutter window group private header */
/* /*
* Copyright (C) 2002 Red Hat Inc. * Copyright (C) 2002 Red Hat Inc.

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity window groups */ /* Mutter window groups */
/* /*
* Copyright (C) 2002 Red Hat Inc. * Copyright (C) 2002 Red Hat Inc.

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity window icons */ /* Mutter window icons */
/* /*
* Copyright (C) 2002 Havoc Pennington * Copyright (C) 2002 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity window icons */ /* Mutter window icons */
/* /*
* Copyright (C) 2002 Havoc Pennington * Copyright (C) 2002 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity Keybindings */ /* Mutter Keybindings */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2002 Red Hat Inc. * Copyright (C) 2002 Red Hat Inc.
@ -2396,7 +2396,7 @@ error_on_command (int command_index,
command_index, command, message); command_index, command, message);
/* /*
metacity-dialog said: mutter-dialog said:
FIXME offer to change the value of the command's gconf key FIXME offer to change the value of the command's gconf key
*/ */

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity main() */ /* Mutter main() */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington
@ -26,14 +26,14 @@
* \file * \file
* Program startup. * Program startup.
* Functions which parse the command-line arguments, create the display, * Functions which parse the command-line arguments, create the display,
* kick everything off and then close down Metacity when it's time to go. * kick everything off and then close down Mutter when it's time to go.
*/ */
/** /**
* \mainpage * \mainpage
* Metacity - a boring window manager for the adult in you * Mutter - a boring window manager for the adult in you
* *
* Many window managers are like Marshmallow Froot Loops; Metacity * Many window managers are like Marshmallow Froot Loops; Mutter
* is like Cheerios. * is like Cheerios.
* *
* The best way to get a handle on how the whole system fits together * The best way to get a handle on how the whole system fits together
@ -85,13 +85,13 @@
static MetaExitCode meta_exit_code = META_EXIT_SUCCESS; static MetaExitCode meta_exit_code = META_EXIT_SUCCESS;
/** /**
* Handle on the main loop, so that we have an easy way of shutting Metacity * Handle on the main loop, so that we have an easy way of shutting Mutter
* down. * down.
*/ */
static GMainLoop *meta_main_loop = NULL; static GMainLoop *meta_main_loop = NULL;
/** /**
* If set, Metacity will spawn an identical copy of itself immediately * If set, Mutter will spawn an identical copy of itself immediately
* before quitting. * before quitting.
*/ */
static gboolean meta_restart_after_quit = FALSE; static gboolean meta_restart_after_quit = FALSE;
@ -100,7 +100,7 @@ static void prefs_changed_callback (MetaPreference pref,
gpointer data); gpointer data);
/** /**
* Prints log messages. If Metacity was compiled with backtrace support, * Prints log messages. If Mutter was compiled with backtrace support,
* also prints a backtrace (see meta_print_backtrace()). * also prints a backtrace (see meta_print_backtrace()).
* *
* \param log_domain the domain the error occurred in (we ignore this) * \param log_domain the domain the error occurred in (we ignore this)
@ -120,13 +120,13 @@ log_handler (const gchar *log_domain,
} }
/** /**
* Prints the version notice. This is shown when Metacity is called * Prints the version notice. This is shown when Mutter is called
* with the --version switch. * with the --version switch.
*/ */
static void static void
version (void) version (void)
{ {
g_print (_("metacity %s\n" g_print (_("mutter %s\n"
"Copyright (C) 2001-2008 Havoc Pennington, Red Hat, Inc., and others\n" "Copyright (C) 2001-2008 Havoc Pennington, Red Hat, Inc., and others\n"
"This is free software; see the source for copying conditions.\n" "This is free software; see the source for copying conditions.\n"
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"),
@ -136,7 +136,7 @@ version (void)
/** /**
* Prints a list of which configure script options were used to * Prints a list of which configure script options were used to
* build this copy of Metacity. This is actually always called * build this copy of Mutter. This is actually always called
* on startup, but it's all no-op unless we're in verbose mode * on startup, but it's all no-op unless we're in verbose mode
* (see meta_set_verbose). * (see meta_set_verbose).
*/ */
@ -189,7 +189,7 @@ meta_print_compilation_info (void)
* Prints the version number, the current timestamp (not the * Prints the version number, the current timestamp (not the
* build date), the locale, the character encoding, and a list * build date), the locale, the character encoding, and a list
* of configure script options that were used to build this * of configure script options that were used to build this
* copy of Metacity. This is actually always called * copy of Mutter. This is actually always called
* on startup, but it's all no-op unless we're in verbose mode * on startup, but it's all no-op unless we're in verbose mode
* (see meta_set_verbose). * (see meta_set_verbose).
*/ */
@ -204,7 +204,7 @@ meta_print_self_identity (void)
g_date_clear (&d, 1); g_date_clear (&d, 1);
g_date_set_time_t (&d, time (NULL)); g_date_set_time_t (&d, time (NULL));
g_date_strftime (buf, sizeof (buf), "%x", &d); g_date_strftime (buf, sizeof (buf), "%x", &d);
meta_verbose ("Metacity version %s running on %s\n", meta_verbose ("Mutter version %s running on %s\n",
VERSION, buf); VERSION, buf);
/* Locale and encoding. */ /* Locale and encoding. */
@ -217,7 +217,7 @@ meta_print_self_identity (void)
} }
/** /**
* The set of possible options that can be set on Metacity's * The set of possible options that can be set on Mutter's
* command line. This type exists so that meta_parse_options() can * command line. This type exists so that meta_parse_options() can
* write to an instance of it. * write to an instance of it.
*/ */
@ -246,14 +246,14 @@ typedef struct
/** /**
* Parses argc and argv and returns the * Parses argc and argv and returns the
* arguments that Metacity understands in meta_args. * arguments that Mutter understands in meta_args.
* *
* The strange call signature has to be written like it is so * The strange call signature has to be written like it is so
* that g_option_context_parse() gets a chance to modify argc and * that g_option_context_parse() gets a chance to modify argc and
* argv. * argv.
* *
* \param argc Pointer to the number of arguments Metacity was given * \param argc Pointer to the number of arguments Mutter was given
* \param argv Pointer to the array of arguments Metacity was given * \param argv Pointer to the array of arguments Mutter was given
* \param meta_args The result of parsing the arguments. * \param meta_args The result of parsing the arguments.
**/ **/
static GOptionContext * static GOptionContext *
@ -272,7 +272,7 @@ meta_parse_options (int *argc, char ***argv,
{ {
"replace", 0, 0, G_OPTION_ARG_NONE, "replace", 0, 0, G_OPTION_ARG_NONE,
&my_args.replace_wm, &my_args.replace_wm,
N_("Replace the running window manager with Metacity"), N_("Replace the running window manager with Mutter"),
NULL NULL
}, },
{ {
@ -343,7 +343,7 @@ meta_parse_options (int *argc, char ***argv,
GError *error = NULL; GError *error = NULL;
ctx = g_option_context_new (NULL); ctx = g_option_context_new (NULL);
g_option_context_add_main_entries (ctx, options, "metacity"); g_option_context_add_main_entries (ctx, options, "mutter");
#ifdef WITH_CLUTTER #ifdef WITH_CLUTTER
/* /*
@ -356,7 +356,7 @@ meta_parse_options (int *argc, char ***argv,
if (!g_option_context_parse (ctx, argc, argv, &error)) if (!g_option_context_parse (ctx, argc, argv, &error))
{ {
g_print ("metacity: %s\n", error->message); g_print ("mutter: %s\n", error->message);
exit(1); exit(1);
} }
@ -367,7 +367,7 @@ meta_parse_options (int *argc, char ***argv,
#ifdef WITH_CLUTTER #ifdef WITH_CLUTTER
/* Metacity is responsible for pulling events off the X queue, so Clutter /* Mutter is responsible for pulling events off the X queue, so Clutter
* doesn't need (and shouldn't) run its normal event source which polls * doesn't need (and shouldn't) run its normal event source which polls
* the X fd, but we do have to deal with dispatching events that accumulate * the X fd, but we do have to deal with dispatching events that accumulate
* in the clutter queue. This happens, for example, when clutter generate * in the clutter queue. This happens, for example, when clutter generate
@ -434,9 +434,9 @@ meta_clutter_init (GOptionContext *ctx, int *argc, char ***argv)
#endif #endif
/** /**
* Selects which display Metacity should use. It first tries to use * Selects which display Mutter should use. It first tries to use
* display_name as the display. If display_name is NULL then * display_name as the display. If display_name is NULL then
* try to use the environment variable METACITY_DISPLAY. If that * try to use the environment variable MUTTER_DISPLAY. If that
* also is NULL, use the default - :0.0 * also is NULL, use the default - :0.0
*/ */
static void static void
@ -445,9 +445,9 @@ meta_select_display (gchar *display_name)
gchar *envVar = ""; gchar *envVar = "";
if (display_name) if (display_name)
envVar = g_strconcat ("DISPLAY=", display_name, NULL); envVar = g_strconcat ("DISPLAY=", display_name, NULL);
else if (g_getenv ("METACITY_DISPLAY")) else if (g_getenv ("MUTTER_DISPLAY"))
envVar = g_strconcat ("DISPLAY=", envVar = g_strconcat ("DISPLAY=",
g_getenv ("METACITY_DISPLAY"), NULL); g_getenv ("MUTTER_DISPLAY"), NULL);
/* DO NOT FREE envVar, putenv() sucks */ /* DO NOT FREE envVar, putenv() sucks */
putenv (envVar); putenv (envVar);
} }
@ -560,9 +560,9 @@ main (int argc, char **argv)
g_printerr ("Failed to register SIGCHLD handler: %s\n", g_printerr ("Failed to register SIGCHLD handler: %s\n",
g_strerror (errno)); g_strerror (errno));
if (g_getenv ("METACITY_VERBOSE")) if (g_getenv ("MUTTER_VERBOSE"))
meta_set_verbose (TRUE); meta_set_verbose (TRUE);
if (g_getenv ("METACITY_DEBUG")) if (g_getenv ("MUTTER_DEBUG"))
meta_set_debugging (TRUE); meta_set_debugging (TRUE);
if (g_get_home_dir ()) if (g_get_home_dir ())
@ -574,7 +574,7 @@ main (int argc, char **argv)
meta_print_self_identity (); meta_print_self_identity ();
bindtextdomain (GETTEXT_PACKAGE, METACITY_LOCALEDIR); bindtextdomain (GETTEXT_PACKAGE, MUTTER_LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE); textdomain (GETTEXT_PACKAGE);
@ -606,7 +606,7 @@ main (int argc, char **argv)
#endif /* WITH_CLUTTER */ #endif /* WITH_CLUTTER */
#ifdef HAVE_INTROSPECTION #ifdef HAVE_INTROSPECTION
g_irepository_prepend_search_path (METACITY_PKGLIBDIR); g_irepository_prepend_search_path (MUTTER_PKGLIBDIR);
if (meta_args.introspect) if (meta_args.introspect)
{ {
GError *error = NULL; GError *error = NULL;
@ -631,7 +631,7 @@ main (int argc, char **argv)
} }
#endif #endif
meta_set_syncing (meta_args.sync || (g_getenv ("METACITY_SYNC") != NULL)); meta_set_syncing (meta_args.sync || (g_getenv ("MUTTER_SYNC") != NULL));
if (meta_args.print_version) if (meta_args.print_version)
version (); version ();
@ -674,7 +674,7 @@ main (int argc, char **argv)
#endif #endif
if (g_getenv ("METACITY_G_FATAL_WARNINGS") != NULL) if (g_getenv ("MUTTER_G_FATAL_WARNINGS") != NULL)
g_log_set_always_fatal (G_LOG_LEVEL_MASK); g_log_set_always_fatal (G_LOG_LEVEL_MASK);
meta_ui_set_current_theme (meta_prefs_get_theme (), FALSE); meta_ui_set_current_theme (meta_prefs_get_theme (), FALSE);
@ -692,7 +692,7 @@ main (int argc, char **argv)
GError *err = NULL; GError *err = NULL;
GDir *themes_dir = NULL; GDir *themes_dir = NULL;
if (!(themes_dir = g_dir_open (METACITY_DATADIR"/themes", 0, &err))) if (!(themes_dir = g_dir_open (MUTTER_DATADIR"/themes", 0, &err)))
{ {
meta_fatal (_("Failed to scan themes directory: %s\n"), err->message); meta_fatal (_("Failed to scan themes directory: %s\n"), err->message);
g_error_free (err); g_error_free (err);
@ -711,7 +711,7 @@ main (int argc, char **argv)
if (!meta_ui_have_a_theme ()) if (!meta_ui_have_a_theme ())
meta_fatal (_("Could not find a theme! Be sure %s exists and contains the usual themes.\n"), meta_fatal (_("Could not find a theme! Be sure %s exists and contains the usual themes.\n"),
METACITY_DATADIR"/themes"); MUTTER_DATADIR"/themes");
/* Connect to SM as late as possible - but before managing display, /* Connect to SM as late as possible - but before managing display,
* or we might try to manage a window before we have the session * or we might try to manage a window before we have the session
@ -782,7 +782,7 @@ main (int argc, char **argv)
} }
/** /**
* Stops Metacity. This tells the event loop to stop processing; it is rather * Stops Mutter. This tells the event loop to stop processing; it is rather
* dangerous to use this rather than meta_restart() because this will leave * dangerous to use this rather than meta_restart() because this will leave
* the user with no window manager. We generally do this only if, for example, * the user with no window manager. We generally do this only if, for example,
* the session manager asks us to; we assume the session manager knows what * the session manager asks us to; we assume the session manager knows what
@ -800,10 +800,10 @@ meta_quit (MetaExitCode code)
} }
/** /**
* Restarts Metacity. In practice, this tells the event loop to stop * Restarts Mutter. In practice, this tells the event loop to stop
* processing, having first set the meta_restart_after_quit flag which * processing, having first set the meta_restart_after_quit flag which
* tells Metacity to spawn an identical copy of itself before quitting. * tells Mutter to spawn an identical copy of itself before quitting.
* This happens on receipt of a _METACITY_RESTART_MESSAGE client event. * This happens on receipt of a _MUTTER_RESTART_MESSAGE client event.
*/ */
void void
meta_restart (void) meta_restart (void)

View File

@ -1,7 +1,7 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/** /**
* \file metacity-Xatomtype.h Types for communicating with X about properties * \file mutter-Xatomtype.h Types for communicating with X about properties
* *
* This files defines crock C structures for calling XGetWindowProperty and * This files defines crock C structures for calling XGetWindowProperty and
* XChangeProperty. All fields must be longs as the semantics of property * XChangeProperty. All fields must be longs as the semantics of property

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity window placement */ /* Mutter window placement */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity window placement */ /* Mutter window placement */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity preferences */ /* Mutter preferences */
/* /*
* Copyright (C) 2001 Havoc Pennington, Copyright (C) 2002 Red Hat Inc. * Copyright (C) 2001 Havoc Pennington, Copyright (C) 2002 Red Hat Inc.
@ -57,7 +57,7 @@
#define KEY_TERMINAL_DIR "/desktop/gnome/applications/terminal" #define KEY_TERMINAL_DIR "/desktop/gnome/applications/terminal"
#define KEY_TERMINAL_COMMAND KEY_TERMINAL_DIR "/exec" #define KEY_TERMINAL_COMMAND KEY_TERMINAL_DIR "/exec"
#define KEY_OVERLAY_KEY "/apps/metacity/general/overlay_key" #define KEY_OVERLAY_KEY "/apps/mutter/general/overlay_key"
#define KEY_SCREEN_BINDINGS_PREFIX "/apps/metacity/global_keybindings" #define KEY_SCREEN_BINDINGS_PREFIX "/apps/metacity/global_keybindings"
#define KEY_WINDOW_BINDINGS_PREFIX "/apps/metacity/window_keybindings" #define KEY_WINDOW_BINDINGS_PREFIX "/apps/metacity/window_keybindings"
#define KEY_LIST_BINDINGS_SUFFIX "_list" #define KEY_LIST_BINDINGS_SUFFIX "_list"
@ -65,11 +65,11 @@
#define KEY_WORKSPACE_NAME_PREFIX "/apps/metacity/workspace_names/name_" #define KEY_WORKSPACE_NAME_PREFIX "/apps/metacity/workspace_names/name_"
#ifdef WITH_CLUTTER #ifdef WITH_CLUTTER
#define KEY_CLUTTER_DISABLED "/apps/metacity/general/clutter_disabled" #define KEY_CLUTTER_DISABLED "/apps/mutter/general/clutter_disabled"
#define KEY_CLUTTER_PLUGINS "/apps/metacity/general/clutter_plugins" #define KEY_CLUTTER_PLUGINS "/apps/mutter/general/clutter_plugins"
#endif #endif
#define KEY_LIVE_HIDDEN_WINDOWS "/apps/metacity/general/live_hidden_windows" #define KEY_LIVE_HIDDEN_WINDOWS "/apps/mutter/general/live_hidden_windows"
#define KEY_NO_TAB_POPUP "/apps/metacity/general/no_tab_popup" #define KEY_NO_TAB_POPUP "/apps/metacity/general/no_tab_popup"
@ -328,7 +328,7 @@ typedef struct
/* FIXMEs: */ /* FIXMEs: */
/* @@@ Don't use NULL lines at the end; glib can tell you how big it is */ /* @@@ Don't use NULL lines at the end; glib can tell you how big it is */
/* @@@ /apps/metacity/general should be assumed if first char is not / */ /* @@@ /apps/mutter/general should be assumed if first char is not / */
/* @@@ Will it ever be possible to merge init and update? If not, why not? */ /* @@@ Will it ever be possible to merge init and update? If not, why not? */
static MetaEnumPreference preferences_enum[] = static MetaEnumPreference preferences_enum[] =
@ -429,13 +429,13 @@ static MetaBoolPreference preferences_bool[] =
FALSE, FALSE,
}, },
#ifdef WITH_CLUTTER #ifdef WITH_CLUTTER
{ "/apps/metacity/general/clutter_disabled", { "/apps/mutter/general/clutter_disabled",
META_PREF_CLUTTER_DISABLED, META_PREF_CLUTTER_DISABLED,
&clutter_disabled, &clutter_disabled,
FALSE, FALSE,
}, },
#endif #endif
{ "/apps/metacity/general/live_hidden_windows", { "/apps/mutter/general/live_hidden_windows",
META_PREF_LIVE_HIDDEN_WINDOWS, META_PREF_LIVE_HIDDEN_WINDOWS,
&live_hidden_windows, &live_hidden_windows,
FALSE, FALSE,
@ -1028,6 +1028,7 @@ meta_prefs_remove_listener (MetaPrefsChangedFunc func,
/* @@@ again, use glib's ability to tell you the size of the array */ /* @@@ again, use glib's ability to tell you the size of the array */
static gchar *gconf_dirs_we_are_interested_in[] = { static gchar *gconf_dirs_we_are_interested_in[] = {
"/apps/metacity", "/apps/metacity",
"/apps/mutter",
KEY_TERMINAL_DIR, KEY_TERMINAL_DIR,
KEY_GNOME_ACCESSIBILITY, KEY_GNOME_ACCESSIBILITY,
"/desktop/gnome/peripherals/mouse", "/desktop/gnome/peripherals/mouse",
@ -1243,7 +1244,7 @@ change_notify (GConfClient *client,
#endif #endif
else else
{ {
meta_topic (META_DEBUG_PREFS, "Key %s doesn't mean anything to Metacity\n", meta_topic (META_DEBUG_PREFS, "Key %s doesn't mean anything to Mutter\n",
key); key);
} }

View File

@ -1,195 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2008 Thomas Thurman
*
* This program 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 program 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 program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/
/** \file Schema bindings generator.
*
* This program simply takes the items given in the binding list in
* all-keybindings.h and turns them into a portion of
* the GConf .schemas file.
*
* FIXME: also need to make 50-metacity-desktop-key.xml
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <glib.h>
#include "config.h"
#define _(x) x
static void single_stanza (gboolean is_window, const char *name,
const char *default_value,
gboolean can_reverse,
const char *description);
char *about_keybindings, *about_reversible_keybindings;
char *source_filename, *target_filename;
FILE *source_file, *target_file;
static void
single_stanza (gboolean is_window, const char *name,
const char *default_value,
gboolean can_reverse,
const char *description)
{
char *keybinding_type = is_window? "window": "global";
char *escaped_default_value, *escaped_description;
if (description==NULL)
return; /* it must be undocumented, so it can't go in this table */
escaped_description = g_markup_escape_text (description, -1);
escaped_default_value = default_value==NULL? "disabled":
g_markup_escape_text (default_value, -1);
fprintf (target_file, " <schema>\n");
fprintf (target_file, " <key>/schemas/apps/metacity/%s_keybindings/%s</key>\n",
keybinding_type, name);
fprintf (target_file, " <applyto>/apps/metacity/%s_keybindings/%s</applyto>\n",
keybinding_type, name);
fprintf (target_file, " <owner>metacity</owner>\n");
fprintf (target_file, " <type>string</type>\n");
fprintf (target_file, " <default>%s</default>\n", escaped_default_value);
fprintf (target_file, " <locale name=\"C\">\n");
fprintf (target_file, " <short>%s</short>\n", description);
fprintf (target_file, " <long>%s</long>\n",
can_reverse? about_reversible_keybindings:
about_keybindings);
fprintf (target_file, " </locale>\n");
fprintf (target_file, " </schema>\n\n");
g_free (escaped_description);
if (default_value!=NULL)
g_free (escaped_default_value);
}
static void produce_bindings ();
static void
produce_bindings ()
{
/* 10240 is ridiculous overkill; we're writing the input file and
* the lines are always 80 chars or less.
*/
char buffer[10240];
source_file = fopen(source_filename, "r");
if (!source_file)
{
g_error ("Cannot compile without %s: %s\n",
source_filename, strerror (errno));
}
target_file = fopen(target_filename, "w");
if (!target_file)
{
g_error ("Cannot create %s: %s\n",
target_filename, strerror (errno));
}
while (fgets (buffer, sizeof (buffer), source_file))
{
if (strstr (buffer, "<!-- GENERATED -->"))
break;
fprintf (target_file, "%s", buffer);
}
if (!feof (source_file))
{
#define keybind(name, handler, param, flags, stroke, description) \
single_stanza ( \
flags & BINDING_PER_WINDOW, \
#name, \
stroke, \
flags & BINDING_REVERSES, \
description);
#include "all-keybindings.h"
#undef keybind
}
while (fgets (buffer, sizeof (buffer), source_file))
fprintf (target_file, "%s", buffer);
if (fclose (source_file)!=0)
{
g_error ("Cannot close %s: %s\n",
source_filename, strerror (errno));
}
if (fclose (target_file)!=0)
{
g_error ("Cannot close %s: %s\n",
target_filename, strerror (errno));
}
}
int
main (int argc, char **argv)
{
if (argc!=3)
{
g_error ("Syntax: %s <source.in.in> <target.in>\n", argv[0]);
}
source_filename = argv[1];
target_filename = argv[2];
/* Translators: Please don't translate "Control", "Shift", etc, since these
* are hardcoded (in gtk/gtkaccelgroup.c; it's not metacity's fault).
* "disabled" must also stay as it is.
*/
about_keybindings = g_markup_escape_text(_( \
"The format looks like \"<Control>a\" or <Shift><Alt>F1\".\n\n"\
"The parser is fairly liberal and allows "\
"lower or upper case, and also abbreviations such as \"<Ctl>\" and " \
"\"<Ctrl>\". If you set the option to the special string " \
"\"disabled\", then there will be no keybinding for this action."),
-1);
about_reversible_keybindings = g_markup_escape_text(_( \
"The format looks like \"<Control>a\" or <Shift><Alt>F1\".\n\n"\
"The parser is fairly liberal and allows "\
"lower or upper case, and also abbreviations such as \"<Ctl>\" and " \
"\"<Ctrl>\". If you set the option to the special string " \
"\"disabled\", then there will be no keybinding for this action.\n\n"\
"This keybinding may be reversed by holding down the \"shift\" key; "
"therefore, \"shift\" cannot be one of the keys it uses."),
-1);
produce_bindings ();
g_free (about_keybindings);
g_free (about_reversible_keybindings);
return 0;
}
/* eof schema-bindings.c */

View File

@ -1,7 +1,7 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/** /**
* \file screen-private.h Screens which Metacity manages * \file screen-private.h Screens which Mutter manages
* *
* Managing X screens. * Managing X screens.
* This file contains methods on this class which are available to * This file contains methods on this class which are available to

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X screen handler */ /* Mutter X screen handler */
/* /*
* Copyright (C) 2001, 2002 Havoc Pennington * Copyright (C) 2001, 2002 Havoc Pennington
@ -328,7 +328,7 @@ reload_xinerama_infos (MetaScreen *screen)
} }
#else #else
meta_topic (META_DEBUG_XINERAMA, meta_topic (META_DEBUG_XINERAMA,
"Metacity compiled without XFree86 Xinerama support\n"); "Mutter compiled without XFree86 Xinerama support\n");
#endif /* HAVE_XFREE_XINERAMA */ #endif /* HAVE_XFREE_XINERAMA */
#ifdef HAVE_SOLARIS_XINERAMA #ifdef HAVE_SOLARIS_XINERAMA
@ -387,7 +387,7 @@ reload_xinerama_infos (MetaScreen *screen)
} }
#else #else
meta_topic (META_DEBUG_XINERAMA, meta_topic (META_DEBUG_XINERAMA,
"Metacity compiled without Solaris Xinerama support\n"); "Mutter compiled without Solaris Xinerama support\n");
#endif /* HAVE_SOLARIS_XINERAMA */ #endif /* HAVE_SOLARIS_XINERAMA */
@ -396,7 +396,7 @@ reload_xinerama_infos (MetaScreen *screen)
*/ */
if (screen->n_xinerama_infos == 0) if (screen->n_xinerama_infos == 0)
{ {
if (g_getenv ("METACITY_DEBUG_XINERAMA")) if (g_getenv ("MUTTER_DEBUG_XINERAMA"))
{ {
meta_topic (META_DEBUG_XINERAMA, meta_topic (META_DEBUG_XINERAMA,
"Pretending a single monitor has two Xinerama screens\n"); "Pretending a single monitor has two Xinerama screens\n");
@ -1204,7 +1204,7 @@ set_desktop_viewport_hint (MetaScreen *screen)
return; return;
/* /*
* Metacity does not implement viewports, so this is a fixed 0,0 * Mutter does not implement viewports, so this is a fixed 0,0
*/ */
data[0] = 0; data[0] = 0;
data[1] = 0; data[1] = 0;
@ -2115,7 +2115,7 @@ meta_screen_queue_workarea_recalc (MetaScreen *screen)
meta_topic (META_DEBUG_WORKAREA, meta_topic (META_DEBUG_WORKAREA,
"Adding work area hint idle function\n"); "Adding work area hint idle function\n");
screen->work_area_idle = screen->work_area_idle =
g_idle_add_full (META_PRIORITY_WORK_AREA_HINT, g_idle_add_full (META_PRIORITY_BEFORE_REDRAW,
(GSourceFunc) set_work_area_idle_func, (GSourceFunc) set_work_area_idle_func,
screen, screen,
NULL); NULL);

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity Session Management */ /* Mutter Session Management */
/* /*
* Copyright (C) 2001 Havoc Pennington (some code in here from * Copyright (C) 2001 Havoc Pennington (some code in here from
@ -309,8 +309,8 @@ meta_session_init (const char *previous_client_id,
prop1.type = SmARRAY8; prop1.type = SmARRAY8;
prop1.num_vals = 1; prop1.num_vals = 1;
prop1.vals = &prop1val; prop1.vals = &prop1val;
prop1val.value = "metacity"; prop1val.value = "mutter";
prop1val.length = strlen ("metacity"); prop1val.length = strlen ("mutter");
/* twm sets getuid() for this, but the SM spec plainly /* twm sets getuid() for this, but the SM spec plainly
* says pw_name, twm is on crack * says pw_name, twm is on crack
@ -596,7 +596,7 @@ set_clone_restart_commands (void)
g_return_if_fail (client_id); g_return_if_fail (client_id);
i = 0; i = 0;
restartv[i] = "metacity"; restartv[i] = "mutter";
++i; ++i;
restartv[i] = "--sm-client-id"; restartv[i] = "--sm-client-id";
++i; ++i;
@ -617,7 +617,7 @@ set_clone_restart_commands (void)
/* Clone (no client ID) */ /* Clone (no client ID) */
i = 0; i = 0;
clonev[i] = "metacity"; clonev[i] = "mutter";
++i; ++i;
clonev[i] = NULL; clonev[i] = NULL;
@ -818,7 +818,7 @@ decode_text_from_utf8 (const char *text)
static void static void
save_state (void) save_state (void)
{ {
char *metacity_dir; char *mutter_dir;
char *session_dir; char *session_dir;
FILE *outfile; FILE *outfile;
GSList *windows; GSList *windows;
@ -837,19 +837,19 @@ save_state (void)
* we probably already have full_save_path figured out and therefore * we probably already have full_save_path figured out and therefore
* can just use the directory name from that. * can just use the directory name from that.
*/ */
metacity_dir = g_strconcat (g_get_user_config_dir (), mutter_dir = g_strconcat (g_get_user_config_dir (),
G_DIR_SEPARATOR_S "metacity", G_DIR_SEPARATOR_S "mutter",
NULL); NULL);
session_dir = g_strconcat (metacity_dir, session_dir = g_strconcat (mutter_dir,
G_DIR_SEPARATOR_S "sessions", G_DIR_SEPARATOR_S "sessions",
NULL); NULL);
if (mkdir (metacity_dir, 0700) < 0 && if (mkdir (mutter_dir, 0700) < 0 &&
errno != EEXIST) errno != EEXIST)
{ {
meta_warning (_("Could not create directory '%s': %s\n"), meta_warning (_("Could not create directory '%s': %s\n"),
metacity_dir, g_strerror (errno)); mutter_dir, g_strerror (errno));
} }
if (mkdir (session_dir, 0700) < 0 && if (mkdir (session_dir, 0700) < 0 &&
@ -871,14 +871,14 @@ save_state (void)
} }
/* The file format is: /* The file format is:
* <metacity_session id="foo"> * <mutter_session id="foo">
* <window id="bar" class="XTerm" name="xterm" title="/foo/bar" role="blah" type="normal" stacking="5"> * <window id="bar" class="XTerm" name="xterm" title="/foo/bar" role="blah" type="normal" stacking="5">
* <workspace index="2"/> * <workspace index="2"/>
* <workspace index="4"/> * <workspace index="4"/>
* <sticky/> <minimized/> <maximized/> * <sticky/> <minimized/> <maximized/>
* <geometry x="100" y="100" width="200" height="200" gravity="northwest"/> * <geometry x="100" y="100" width="200" height="200" gravity="northwest"/>
* </window> * </window>
* </metacity_session> * </mutter_session>
* *
* Note that attributes on <window> are the match info we use to * Note that attributes on <window> are the match info we use to
* see if the saved state applies to a restored window, and * see if the saved state applies to a restored window, and
@ -886,7 +886,7 @@ save_state (void)
* *
*/ */
fprintf (outfile, "<metacity_session id=\"%s\">\n", fprintf (outfile, "<mutter_session id=\"%s\">\n",
client_id); client_id);
windows = meta_display_list_windows (meta_get_display ()); windows = meta_display_list_windows (meta_get_display ());
@ -998,7 +998,7 @@ save_state (void)
g_slist_free (windows); g_slist_free (windows);
fputs ("</metacity_session>\n", outfile); fputs ("</mutter_session>\n", outfile);
out: out:
if (outfile) if (outfile)
@ -1016,7 +1016,7 @@ save_state (void)
} }
} }
g_free (metacity_dir); g_free (mutter_dir);
g_free (session_dir); g_free (session_dir);
} }
@ -1055,7 +1055,7 @@ static void text_handler (GMarkupParseContext *context,
gpointer user_data, gpointer user_data,
GError **error); GError **error);
static GMarkupParser metacity_session_parser = { static GMarkupParser mutter_session_parser = {
start_element_handler, start_element_handler,
end_element_handler, end_element_handler,
text_handler, text_handler,
@ -1076,7 +1076,7 @@ load_state (const char *previous_save_file)
char *session_file; char *session_file;
session_file = g_strconcat (g_get_user_config_dir (), session_file = g_strconcat (g_get_user_config_dir (),
G_DIR_SEPARATOR_S "metacity" G_DIR_SEPARATOR_S "mutter"
G_DIR_SEPARATOR_S "sessions" G_DIR_SEPARATOR_S, G_DIR_SEPARATOR_S "sessions" G_DIR_SEPARATOR_S,
previous_save_file, previous_save_file,
NULL); NULL);
@ -1089,9 +1089,9 @@ load_state (const char *previous_save_file)
{ {
char *canonical_session_file = session_file; char *canonical_session_file = session_file;
/* Maybe they were doing it the old way, with ~/.metacity */ /* Maybe they were doing it the old way, with ~/.mutter */
session_file = g_strconcat (g_get_home_dir (), session_file = g_strconcat (g_get_home_dir (),
G_DIR_SEPARATOR_S ".metacity" G_DIR_SEPARATOR_S ".mutter"
G_DIR_SEPARATOR_S "sessions" G_DIR_SEPARATOR_S "sessions"
G_DIR_SEPARATOR_S, G_DIR_SEPARATOR_S,
previous_save_file, previous_save_file,
@ -1122,7 +1122,7 @@ load_state (const char *previous_save_file)
parse_data.info = NULL; parse_data.info = NULL;
parse_data.previous_id = NULL; parse_data.previous_id = NULL;
context = g_markup_parse_context_new (&metacity_session_parser, context = g_markup_parse_context_new (&mutter_session_parser,
0, &parse_data, NULL); 0, &parse_data, NULL);
error = NULL; error = NULL;
@ -1173,7 +1173,7 @@ start_element_handler (GMarkupParseContext *context,
pd = user_data; pd = user_data;
if (strcmp (element_name, "metacity_session") == 0) if (strcmp (element_name, "mutter_session") == 0)
{ {
/* Get previous ID */ /* Get previous ID */
int i; int i;
@ -1192,7 +1192,7 @@ start_element_handler (GMarkupParseContext *context,
g_set_error (error, g_set_error (error,
G_MARKUP_ERROR, G_MARKUP_ERROR,
G_MARKUP_ERROR_PARSE, G_MARKUP_ERROR_PARSE,
_("<metacity_session> attribute seen but we already have the session ID")); _("<mutter_session> attribute seen but we already have the session ID"));
return; return;
} }
@ -1206,7 +1206,7 @@ start_element_handler (GMarkupParseContext *context,
G_MARKUP_ERROR, G_MARKUP_ERROR,
G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
_("Unknown attribute %s on <%s> element"), _("Unknown attribute %s on <%s> element"),
name, "metacity_session"); name, "mutter_session");
return; return;
} }
@ -1530,7 +1530,7 @@ get_possible_matches (MetaWindow *window)
retval = NULL; retval = NULL;
ignore_client_id = g_getenv ("METACITY_DEBUG_SM") != NULL; ignore_client_id = g_getenv ("MUTTER_DEBUG_SM") != NULL;
tmp = window_info_list; tmp = window_info_list;
while (tmp != NULL) while (tmp != NULL)
@ -1715,7 +1715,7 @@ regenerate_save_file (void)
if (client_id) if (client_id)
full_save_path = g_strconcat (g_get_user_config_dir (), full_save_path = g_strconcat (g_get_user_config_dir (),
G_DIR_SEPARATOR_S "metacity" G_DIR_SEPARATOR_S "mutter"
G_DIR_SEPARATOR_S "sessions" G_DIR_SEPARATOR_S, G_DIR_SEPARATOR_S "sessions" G_DIR_SEPARATOR_S,
client_id, client_id,
".ms", ".ms",

View File

@ -276,7 +276,7 @@ main (int argc, char **argv)
return 1; return 1;
} }
if (getenv ("METACITY_SYNC") != NULL) if (getenv ("MUTTER_SYNC") != NULL)
XSynchronize (xdisplay, True); XSynchronize (xdisplay, True);
XSetErrorHandler (x_error_handler); XSetErrorHandler (x_error_handler);

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity box operation testing program */ /* Mutter box operation testing program */
/* /*
* Copyright (C) 2005 Elijah Newren * Copyright (C) 2005 Elijah Newren

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity utilities */ /* Mutter utilities */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington
@ -81,14 +81,14 @@ static FILE* logfile = NULL;
static void static void
ensure_logfile (void) ensure_logfile (void)
{ {
if (logfile == NULL && g_getenv ("METACITY_USE_LOGFILE")) if (logfile == NULL && g_getenv ("MUTTER_USE_LOGFILE"))
{ {
char *filename = NULL; char *filename = NULL;
char *tmpl; char *tmpl;
int fd; int fd;
GError *err; GError *err;
tmpl = g_strdup_printf ("metacity-%d-debug-log-XXXXXX", tmpl = g_strdup_printf ("mutter-%d-debug-log-XXXXXX",
(int) getpid ()); (int) getpid ());
err = NULL; err = NULL;
@ -135,7 +135,7 @@ meta_set_verbose (gboolean setting)
{ {
#ifndef WITH_VERBOSE_MODE #ifndef WITH_VERBOSE_MODE
if (setting) if (setting)
meta_fatal (_("Metacity was compiled without support for verbose mode\n")); meta_fatal (_("Mutter was compiled without support for verbose mode\n"));
#else #else
if (setting) if (setting)
ensure_logfile (); ensure_logfile ();
@ -567,7 +567,7 @@ meta_show_dialog (const char *type,
argvl[i++] = screen_number_text; argvl[i++] = screen_number_text;
argvl[i++] = "--title"; argvl[i++] = "--title";
/* Translators: This is the title used on dialog boxes */ /* Translators: This is the title used on dialog boxes */
argvl[i++] = _("Metacity"); argvl[i++] = _("Mutter");
argvl[i++] = "--text"; argvl[i++] = "--text";
argvl[i++] = message; argvl[i++] = message;

View File

@ -1,7 +1,7 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/** /**
* \file window-private.h Windows which Metacity manages * \file window-private.h Windows which Mutter manages
* *
* Managing X windows. * Managing X windows.
* This file contains methods on this class which are available to * This file contains methods on this class which are available to

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X managed windows */ /* Mutter X managed windows */
/* /*
* Copyright (C) 2001 Havoc Pennington, Anders Carlsson * Copyright (C) 2001 Havoc Pennington, Anders Carlsson
@ -1419,7 +1419,7 @@ set_wm_state (MetaWindow *window,
meta_verbose ("Setting wm state %s on %s\n", meta_verbose ("Setting wm state %s on %s\n",
wm_state_to_string (state), window->desc); wm_state_to_string (state), window->desc);
/* Metacity doesn't use icon windows, so data[1] should be None /* Mutter doesn't use icon windows, so data[1] should be None
* according to the ICCCM 2.0 Section 4.1.3.1. * according to the ICCCM 2.0 Section 4.1.3.1.
*/ */
data[0] = state; data[0] = state;
@ -1987,9 +1987,9 @@ meta_window_queue (MetaWindow *window, guint queuebits)
const gint window_queue_idle_priority[NUMBER_OF_QUEUES] = const gint window_queue_idle_priority[NUMBER_OF_QUEUES] =
{ {
G_PRIORITY_DEFAULT_IDLE, /* CALC_SHOWING */ META_PRIORITY_BEFORE_REDRAW, /* CALC_SHOWING */
META_PRIORITY_RESIZE, /* MOVE_RESIZE */ META_PRIORITY_RESIZE, /* MOVE_RESIZE */
G_PRIORITY_DEFAULT_IDLE /* UPDATE_ICON */ META_PRIORITY_BEFORE_REDRAW /* UPDATE_ICON */
}; };
const GSourceFunc window_queue_idle_handler[NUMBER_OF_QUEUES] = const GSourceFunc window_queue_idle_handler[NUMBER_OF_QUEUES] =
@ -3332,7 +3332,7 @@ window_activate (MetaWindow *window,
} }
/* This function exists since most of the functionality in window_activate /* This function exists since most of the functionality in window_activate
* is useful for Metacity, but Metacity shouldn't need to specify a client * is useful for Mutter, but Mutter shouldn't need to specify a client
* type for itself. ;-) * type for itself. ;-)
*/ */
void void
@ -3863,10 +3863,10 @@ meta_window_move_resize_internal (MetaWindow *window,
need_configure_notify = TRUE; need_configure_notify = TRUE;
/* MapRequest events with a PPosition or UPosition hint with a frame /* MapRequest events with a PPosition or UPosition hint with a frame
* are moved by metacity without resizing; send a configure notify * are moved by mutter without resizing; send a configure notify
* in such cases. See #322840. (Note that window->constructing is * in such cases. See #322840. (Note that window->constructing is
* only true iff this call is due to a MapRequest, and when * only true iff this call is due to a MapRequest, and when
* PPosition/UPosition hints aren't set, metacity seems to send a * PPosition/UPosition hints aren't set, mutter seems to send a
* ConfigureNotify anyway due to the above code.) * ConfigureNotify anyway due to the above code.)
*/ */
if (window->constructing && window->frame && if (window->constructing && window->frame &&
@ -5707,7 +5707,7 @@ meta_window_notify_focus (MetaWindow *window,
* *
* My suggestion is to change it so that we clearly separate * My suggestion is to change it so that we clearly separate
* actual keyboard focus tracking using the xterm algorithm, * actual keyboard focus tracking using the xterm algorithm,
* and metacity's "pretend" focus window, and go through all * and mutter's "pretend" focus window, and go through all
* the code and decide which one should be used in each place; * the code and decide which one should be used in each place;
* a hard bit is deciding on a policy for that. * a hard bit is deciding on a policy for that.
* *
@ -6577,8 +6577,8 @@ set_allowed_actions_hint (MetaWindow *window)
data[i] = window->display->atom__NET_WM_ACTION_SHADE; data[i] = window->display->atom__NET_WM_ACTION_SHADE;
++i; ++i;
} }
/* sticky according to EWMH is different from metacity's sticky; /* sticky according to EWMH is different from mutter's sticky;
* metacity doesn't support EWMH sticky * mutter doesn't support EWMH sticky
*/ */
if (window->has_maximize_func) if (window->has_maximize_func)
{ {

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity Workspaces */ /* Mutter Workspaces */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X property convenience routines */ /* Mutter X property convenience routines */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington
@ -86,7 +86,7 @@ from The Open Group.
#include "util.h" #include "util.h"
#include "async-getprop.h" #include "async-getprop.h"
#include "ui.h" #include "ui.h"
#include "metacity-Xatomtype.h" #include "mutter-Xatomtype.h"
#include <X11/Xatom.h> #include <X11/Xatom.h>
#include <string.h> #include <string.h>
#include "window-private.h" #include "window-private.h"

View File

@ -200,7 +200,7 @@ keybind (toggle_recording, handle_toggle_recording, 0, 0, "<Control><Shift><Alt>
/* Yes, the param is offset by one. Historical reasons. (Maybe worth fixing /* Yes, the param is offset by one. Historical reasons. (Maybe worth fixing
* at some point.) The description is NULL here because the stanza is * at some point.) The description is NULL here because the stanza is
* irregularly shaped in metacity.schemas.in. This will probably be fixed * irregularly shaped in mutter.schemas.in. This will probably be fixed
* as well. * as well.
*/ */
keybind (run_command_1, handle_run_command, 0, 0, NULL, NULL) keybind (run_command_1, handle_run_command, 0, 0, NULL, NULL)

View File

@ -26,7 +26,7 @@
/** /**
* \file atomnames.h A list of atom names. * \file atomnames.h A list of atom names.
* *
* This is a list of the names of all the X atoms that Metacity uses. * This is a list of the names of all the X atoms that Mutter uses.
* Each is wrapped in a macro "item()" which is undefined here; the * Each is wrapped in a macro "item()" which is undefined here; the
* idea is that when you need to make a big list of all the X atoms, * idea is that when you need to make a big list of all the X atoms,
* you can define item(), include this file, and then undefine it * you can define item(), include this file, and then undefine it
@ -54,15 +54,15 @@ item(WM_WINDOW_ROLE)
item(UTF8_STRING) item(UTF8_STRING)
item(WM_ICON_SIZE) item(WM_ICON_SIZE)
item(_KWM_WIN_ICON) item(_KWM_WIN_ICON)
item(_METACITY_RESTART_MESSAGE) item(_MUTTER_RESTART_MESSAGE)
item(_METACITY_RELOAD_THEME_MESSAGE) item(_MUTTER_RELOAD_THEME_MESSAGE)
item(_METACITY_SET_KEYBINDINGS_MESSAGE) item(_MUTTER_SET_KEYBINDINGS_MESSAGE)
item(_METACITY_TOGGLE_VERBOSE) item(_MUTTER_TOGGLE_VERBOSE)
item(_GNOME_PANEL_ACTION) item(_GNOME_PANEL_ACTION)
item(_GNOME_PANEL_ACTION_MAIN_MENU) item(_GNOME_PANEL_ACTION_MAIN_MENU)
item(_GNOME_PANEL_ACTION_RUN_DIALOG) item(_GNOME_PANEL_ACTION_RUN_DIALOG)
item(_METACITY_SENTINEL) item(_MUTTER_SENTINEL)
item(_METACITY_VERSION) item(_MUTTER_VERSION)
item(WM_CLIENT_MACHINE) item(WM_CLIENT_MACHINE)
item(MANAGER) item(MANAGER)
item(TARGETS) item(TARGETS)

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity common types shared by core.h and ui.h */ /* Mutter common types shared by core.h and ui.h */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington
@ -287,8 +287,57 @@ struct _MetaButtonLayout
#define META_DEFAULT_ICON_NAME "window" #define META_DEFAULT_ICON_NAME "window"
/* Main loop priorities determine when activity in the GLib
* will take precendence over the others. Priorities are sometimes
* used to enforce ordering: give A a higher priority than B if
* A must occur before B. But that poses a problem since then
* if A occurs frequently enough, B will never occur.
*
* Anything we want to occur more or less immediately should
* have a priority of G_PRIORITY_DEFAULT. When we want to
* coelesce multiple things together, the appropriate place to
* do it is usually META_PRIORITY_BEFORE_REDRAW.
*
* (FIXME: Use a Clutter paint() function instead, to prevent
* starving the repaints)
*
* If something has a priority lower than the redraw priority
* (such as a default priority idle), then it may be arbitrarily
* delayed. This happens if the screen is updating rapidly: we
* are spending all our time either redrawing or waiting for a
* vblank-synced buffer swap. (When X is improved to allow
* clutter to do the buffer-swap asychronously, this will get
* better.)
*/
/* G_PRIORITY_DEFAULT:
* events
* many timeouts
*/
/* GTK_PRIORITY_RESIZE: (G_PRIORITY_HIGH_IDLE + 10) */
#define META_PRIORITY_RESIZE (G_PRIORITY_HIGH_IDLE + 15)
/* GTK_PRIORITY_REDRAW: (G_PRIORITY_HIGH_IDLE + 20) */
#define META_PRIORITY_BEFORE_REDRAW (G_PRIORITY_HIGH_IDLE + 40)
/* calc-showing idle
* update-icon idle
*/
/* CLUTTER_PRIORITY_REDRAW: (G_PRIORITY_HIGH_IDLE + 50) */
#define META_PRIORITY_REDRAW (G_PRIORITY_HIGH_IDLE + 50)
/* ==== Anything below here can be starved arbitrarily ==== */
/* G_PRIORITY_DEFAULT_IDLE:
* Mutter plugin unloading
* GConf notify idle
*/
/* Chosen to be below the GConf notify idle */
#define META_PRIORITY_PREFS_NOTIFY (G_PRIORITY_DEFAULT_IDLE + 10) #define META_PRIORITY_PREFS_NOTIFY (G_PRIORITY_DEFAULT_IDLE + 10)
#define META_PRIORITY_WORK_AREA_HINT (G_PRIORITY_DEFAULT_IDLE + 15)
/************************************************************/
#define POINT_IN_RECT(xcoord, ycoord, rect) \ #define POINT_IN_RECT(xcoord, ycoord, rect) \
((xcoord) >= (rect).x && \ ((xcoord) >= (rect).x && \

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity interface used by GTK+ UI to talk to core */ /* Mutter interface used by GTK+ UI to talk to core */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -113,7 +113,7 @@ void meta_display_end_grab_op (MetaDisplay *display,
guint32 timestamp); guint32 timestamp);
/* meta_display_set_input_focus_window is like XSetInputFocus, except /* meta_display_set_input_focus_window is like XSetInputFocus, except
* that (a) it can't detect timestamps later than the current time, * that (a) it can't detect timestamps later than the current time,
* since Metacity isn't part of the XServer, and thus gives erroneous * since Mutter isn't part of the XServer, and thus gives erroneous
* behavior in this circumstance (so don't do it), (b) it uses * behavior in this circumstance (so don't do it), (b) it uses
* display->last_focus_time since we don't have access to the true * display->last_focus_time since we don't have access to the true
* Xserver one, (c) it makes use of display->user_time since checking * Xserver one, (c) it makes use of display->user_time since checking

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X error handling */ /* Mutter X error handling */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity window groups */ /* Mutter window groups */
/* /*
* Copyright (C) 2002 Red Hat Inc. * Copyright (C) 2002 Red Hat Inc.

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity main */ /* Mutter main */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -108,7 +108,7 @@ struct _MutterPluginClass
MutterWindow *actor, MutterWindow *actor,
gulong events); gulong events);
/* General XEvent filter. This is fired *before* metacity itself handles /* General XEvent filter. This is fired *before* mutter itself handles
* an event. Return TRUE to block any further processing. * an event. Return TRUE to block any further processing.
*/ */
gboolean (*xevent_filter) (MutterPlugin *plugin, gboolean (*xevent_filter) (MutterPlugin *plugin,
@ -137,7 +137,7 @@ const MutterPluginInfo * mutter_plugin_get_info (MutterPlugin *plugin);
struct _MutterPluginVersion struct _MutterPluginVersion
{ {
/* /*
* Version information; the first three numbers match the Metacity version * Version information; the first three numbers match the Mutter version
* with which the plugin was compiled (see clutter-plugins/simple.c for sample * with which the plugin was compiled (see clutter-plugins/simple.c for sample
* code). * code).
*/ */
@ -159,10 +159,10 @@ struct _MutterPluginVersion
#define MUTTER_PLUGIN_DECLARE(ObjectName, object_name) \ #define MUTTER_PLUGIN_DECLARE(ObjectName, object_name) \
G_MODULE_EXPORT MutterPluginVersion mutter_plugin_version = \ G_MODULE_EXPORT MutterPluginVersion mutter_plugin_version = \
{ \ { \
METACITY_MAJOR_VERSION, \ MUTTER_MAJOR_VERSION, \
METACITY_MINOR_VERSION, \ MUTTER_MINOR_VERSION, \
METACITY_MICRO_VERSION, \ MUTTER_MICRO_VERSION, \
METACITY_CLUTTER_PLUGIN_API_VERSION \ MUTTER_PLUGIN_API_VERSION \
}; \ }; \
\ \
static GType g_define_type_id = 0; \ static GType g_define_type_id = 0; \

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity preferences */ /* Mutter preferences */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity resizing-terminal-window feedback */ /* Mutter resizing-terminal-window feedback */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity tab popup window */ /* Mutter tab popup window */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity interface for talking to GTK+ UI module */ /* Mutter interface for talking to GTK+ UI module */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington
@ -31,9 +31,6 @@
#include <glib.h> #include <glib.h>
#include <gdk-pixbuf/gdk-pixbuf.h> #include <gdk-pixbuf/gdk-pixbuf.h>
/* This is between GTK_PRIORITY_RESIZE (+10) and GTK_PRIORITY_REDRAW (+20) */
#define META_PRIORITY_RESIZE (G_PRIORITY_HIGH_IDLE + 15)
typedef struct _MetaUI MetaUI; typedef struct _MetaUI MetaUI;
typedef struct _MetaImageWindow MetaImageWindow; typedef struct _MetaImageWindow MetaImageWindow;

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity utilities */ /* Mutter utilities */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -1,6 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity X property convenience routines */ /* Mutter X property convenience routines */
/* /*
* Copyright (C) 2001 Havoc Pennington * Copyright (C) 2001 Havoc Pennington

View File

@ -4,9 +4,9 @@ libdir=@libdir@
includedir=@includedir@ includedir=@includedir@
libgnome_serverdir=@libexecdir@ libgnome_serverdir=@libexecdir@
Name: libmetacity-private Name: libmutter-private
Description: Metacity internals shared Description: Mutter internals shared
Requires: gtk+-2.0 Requires: gtk+-2.0
Version: @VERSION@ Version: @VERSION@
Libs: -L${libdir} -lmetacity-private Libs: -L${libdir} -lmutter-private
Cflags: -I${includedir}/metacity-1 Cflags: -I${includedir}/mutter

View File

@ -1,17 +0,0 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
mutterplugindir=@MUTTER_PLUGIN_DIR@
libgnome_serverdir=@libexecdir@
metacity_major_version=@METACITY_MAJOR_VERSION@
metacity_minor_version=@METACITY_MINOR_VERSION@
metacity_micro_version=@METACITY_MICRO_VERSION@
metacity_clutter_plugin_api_version=@METACITY_CLUTTER_PLUGIN_API_VERSION@
Name: metacity-plugins
Description: Dev parameters for mutter plugins
Requires: @CLUTTER_PACKAGE@
Version: @VERSION@
Libs: @CLUTTER_LIBS@
Cflags: @CLUTTER_CFLAGS@ -DWITH_CLUTTER -I${includedir}/metacity-1/metacity-private -DMETACITY_MAJOR_VERSION=${metacity_major_version} -DMETACITY_MINOR_VERSION=${metacity_minor_version} -DMETACITY_MICRO_VERSION=${metacity_micro_version} -DMETACITY_CLUTTER_PLUGIN_API_VERSION=${metacity_clutter_plugin_api_version} -DMUTTER_PLUGIN_DIR=\"${mutterplugindir}\"

View File

@ -1,639 +0,0 @@
<gconfschemafile>
<schemalist>
<!-- General preferences -->
<schema>
<key>/schemas/apps/metacity/general/overlay_key</key>
<applyto>/apps/metacity/general/overlay_key</applyto>
<owner>metacity</owner>
<type>string</type>
<default>&lt;Super_L&gt;</default>
<locale name="C">
<short>Modifier to use for extended window management operations</short>
<long>
This key will initiate the "overlay", which is a combination window
overview and application launching system. The default is intended
to be the "Windows key" on PC hardware.
It's expected that this binding either the default or set to
the empty string.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/mouse_button_modifier</key>
<applyto>/apps/metacity/general/mouse_button_modifier</applyto>
<owner>metacity</owner>
<type>string</type>
<default>&lt;Alt&gt;</default>
<locale name="C">
<short>Modifier to use for modified window click actions</short>
<long>
Clicking a window while holding down this modifier key
will move the window (left click), resize the window
(middle click), or show the window menu (right click).
The left and right operations may be swapped
using the "mouse_button_resize" key.
Modifier is expressed as "&lt;Alt&gt;" or "&lt;Super&gt;"
for example.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/resize_with_right_button</key>
<applyto>/apps/metacity/general/resize_with_right_button</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Whether to resize with the right button</short>
<long>
Set this to true to resize with the right button and show a menu
with the middle button while holding down the key given in
"mouse_button_modifier"; set it to false to make it work the
opposite way around.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/button_layout</key>
<applyto>/apps/metacity/general/button_layout</applyto>
<owner>metacity</owner>
<type>string</type>
<default>menu:minimize,maximize,close</default>
<locale name="C">
<short>Arrangement of buttons on the titlebar</short>
<long>
Arrangement of buttons on the titlebar. The
value should be a string, such as
"menu:minimize,maximize,spacer,close"; the colon separates the
left corner of the window from the right corner, and
the button names are comma-separated. Duplicate buttons
are not allowed. Unknown button names are silently ignored
so that buttons can be added in future metacity versions
without breaking older versions.
A special spacer tag can be used to insert some space between
two adjacent buttons.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/focus_mode</key>
<applyto>/apps/metacity/general/focus_mode</applyto>
<owner>metacity</owner>
<type>string</type>
<default>click</default>
<locale name="C">
<short>Window focus mode</short>
<long>
The window focus mode indicates how windows are activated.
It has three possible values; "click" means windows must
be clicked in order to focus them, "sloppy" means windows
are focused when the mouse enters the window, and "mouse" means
windows are focused when the mouse enters the window and
unfocused when the mouse leaves the window.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/focus_new_windows</key>
<applyto>/apps/metacity/general/focus_new_windows</applyto>
<owner>metacity</owner>
<type>string</type>
<default>smart</default>
<locale name="C">
<short>Control how new windows get focus</short>
<long>
This option provides additional control over how newly created
windows get focus. It has two possible values; "smart" applies
the user's normal focus mode, and "strict" results in windows
started from a terminal not being given focus.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/raise_on_click</key>
<applyto>/apps/metacity/general/raise_on_click</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>true</default>
<locale name="C">
<short>Whether raising should be a side-effect of other user
interactions</short>
<long>
Setting this option to false can lead to buggy behavior, so
users are strongly discouraged from changing it from the default
of true.
Many actions (e.g. clicking in the client area, moving or resizing the window)
normally raise the window as a side-effect. Setting this option to false, which
is strongly discouraged, will decouple raising from other user actions, and
ignore raise requests generated by applications. See
http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6.
Even when this option is false, windows can
still be raised by an alt-left-click anywhere on the window, a
normal click on the window decorations, or by special messages
from pagers, such as activation requests from tasklist applets.
This option is currently disabled in click-to-focus mode.
Note that the list of ways to raise windows when raise_on_click
is false does not include programmatic requests from
applications to raise windows; such requests will be ignored
regardless of the reason for the request. If you are an
application developer and have a user complaining that your
application does not work with this setting disabled, tell them
it is _their_ fault for breaking their window manager and that
they need to change this option back to true or live with the
"bug" they requested.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/action_double_click_titlebar</key>
<applyto>/apps/metacity/general/action_double_click_titlebar</applyto>
<owner>metacity</owner>
<type>string</type>
<default>toggle_maximize</default>
<locale name="C">
<short>Action on title bar double-click</short>
<long>
This option determines the effects of double-clicking on the
title bar. Current valid options are
'toggle_shade', which will shade/unshade the window,
'toggle_maximize' which will maximize/unmaximize the window,
'toggle_maximize_horizontally' and 'toggle_maximize_vertically'
which will maximize/unmaximize the window in that direction only,
'minimize' which will minimize the window,
'shade' which will roll the window up,
'menu' which will display the window menu,
'lower' which will put the window behind all the others,
and 'none' which will not do anything.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/action_middle_click_titlebar</key>
<applyto>/apps/metacity/general/action_middle_click_titlebar</applyto>
<owner>metacity</owner>
<type>string</type>
<default>lower</default>
<locale name="C">
<short>Action on title bar middle-click</short>
<long>
This option determines the effects of middle-clicking on the
title bar. Current valid options are
'toggle_shade', which will shade/unshade the window,
'toggle_maximize' which will maximize/unmaximize the window,
'toggle_maximize_horizontally' and 'toggle_maximize_vertically'
which will maximize/unmaximize the window in that direction only,
'minimize' which will minimize the window,
'shade' which will roll the window up,
'menu' which will display the window menu,
'lower' which will put the window behind all the others,
and 'none' which will not do anything.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/action_right_click_titlebar</key>
<applyto>/apps/metacity/general/action_right_click_titlebar</applyto>
<owner>metacity</owner>
<type>string</type>
<default>menu</default>
<locale name="C">
<short>Action on title bar right-click</short>
<long>
This option determines the effects of right-clicking on the
title bar. Current valid options are
'toggle_shade', which will shade/unshade the window,
'toggle_maximize' which will maximize/unmaximize the window,
'toggle_maximize_horizontally' and 'toggle_maximize_vertically'
which will maximize/unmaximize the window in that direction only,
'minimize' which will minimize the window,
'shade' which will roll the window up,
'menu' which will display the window menu,
'lower' which will put the window behind all the others,
and 'none' which will not do anything.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/auto_raise</key>
<applyto>/apps/metacity/general/auto_raise</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Automatically raises the focused window</short>
<long>
If set to true, and the focus mode is either "sloppy" or "mouse"
then the focused window will be automatically raised after a
delay specified by the auto_raise_delay key. This is not related
to clicking on a window to raise it, nor to entering a window
during drag-and-drop.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/auto_raise_delay</key>
<applyto>/apps/metacity/general/auto_raise_delay</applyto>
<owner>metacity</owner>
<type>int</type>
<default>500</default>
<locale name="C">
<short>Delay in milliseconds for the auto raise option</short>
<long>
The time delay before raising a window if auto_raise is set to
true. The delay is given in thousandths of a second.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/theme</key>
<applyto>/apps/metacity/general/theme</applyto>
<owner>metacity</owner>
<type>string</type>
<default>Clearlooks</default>
<locale name="C">
<short>Current theme</short>
<long>
The theme determines the appearance of window borders,
titlebar, and so forth.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/titlebar_uses_system_font</key>
<applyto>/apps/metacity/general/titlebar_uses_system_font</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Use standard system font in window titles</short>
<long>
If true, ignore the titlebar_font
option, and use the standard application font for window
titles.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/titlebar_font</key>
<applyto>/apps/metacity/general/titlebar_font</applyto>
<owner>metacity</owner>
<type>string</type>
<default>Sans Bold 10</default>
<locale name="C">
<short>Window title font</short>
<long>
A font description string describing a font for window
titlebars. The size from the description will only be used if the
titlebar_font_size option is set to 0. Also, this option is
disabled if the titlebar_uses_desktop_font option is set to true.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/num_workspaces</key>
<applyto>/apps/metacity/general/num_workspaces</applyto>
<owner>metacity</owner>
<type>int</type>
<default>4</default>
<locale name="C">
<short>Number of workspaces</short>
<long>
Number of workspaces. Must be more than zero, and has a fixed
maximum to prevent making the desktop unusable by accidentally
asking for too many workspaces.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/visual_bell</key>
<applyto>/apps/metacity/general/visual_bell</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Enable Visual Bell</short>
<long>
Turns on a visual indication when an application or the system
issues a 'bell' or 'beep'; useful for the hard-of-hearing and for
use in noisy environments.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/audible_bell</key>
<applyto>/apps/metacity/general/audible_bell</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>true</default>
<locale name="C">
<short>System Bell is Audible</short>
<long>
Determines whether applications or the system can generate
audible 'beeps'; may be used in conjunction with 'visual bell' to
allow silent 'beeps'.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/visual_bell_type</key>
<applyto>/apps/metacity/general/visual_bell_type</applyto>
<owner>metacity</owner>
<type>string</type>
<default>fullscreen</default>
<locale name="C">
<short>Visual Bell Type</short>
<long>
Tells Metacity how to implement the visual indication that the
system bell or another application 'bell' indicator has been
rung. Currently there are two valid values, "fullscreen", which
causes a fullscreen white-black flash, and "frame_flash" which
causes the titlebar of the application which sent the bell signal
to flash. If the application which sent the bell is unknown (as
is usually the case for the default "system beep"), the currently
focused window's titlebar is flashed.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/compositing_manager</key>
<applyto>/apps/metacity/general/compositing_manager</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Compositing Manager</short>
<long>
Determines whether Metacity is a compositing manager.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/clutter_disabled</key>
<applyto>/apps/metacity/general/clutter_disabled</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Clutter Disabled</short>
<long>
Determines whether Clutter compositing backend should be disabled.
Change to this option will not take effect until Metacity is
restarted.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/clutter_plugins</key>
<applyto>/apps/metacity/general/clutter_plugins</applyto>
<owner>metacity</owner>
<type>list</type>
<list_type>string</list_type>
<default>[default]</default>
<locale name="C">
<short>Clutter Plugins</short>
<long>
Plugins to load for the Clutter-based compositing manager.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/live_hidden_windows</key>
<applyto>/apps/metacity/general/live_hidden_windows</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Live Hidden Windows</short>
<long>
Determines whether hidden windows (i.e., minimized windows and
windows on other workspaces than the current one) should be kept
alive.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/workspace_names/name</key>
<applyto>/apps/metacity/workspace_names/name_1</applyto>
<applyto>/apps/metacity/workspace_names/name_2</applyto>
<applyto>/apps/metacity/workspace_names/name_3</applyto>
<applyto>/apps/metacity/workspace_names/name_4</applyto>
<applyto>/apps/metacity/workspace_names/name_5</applyto>
<applyto>/apps/metacity/workspace_names/name_6</applyto>
<applyto>/apps/metacity/workspace_names/name_7</applyto>
<applyto>/apps/metacity/workspace_names/name_8</applyto>
<applyto>/apps/metacity/workspace_names/name_9</applyto>
<applyto>/apps/metacity/workspace_names/name_10</applyto>
<applyto>/apps/metacity/workspace_names/name_11</applyto>
<applyto>/apps/metacity/workspace_names/name_12</applyto>
<applyto>/apps/metacity/workspace_names/name_13</applyto>
<applyto>/apps/metacity/workspace_names/name_14</applyto>
<applyto>/apps/metacity/workspace_names/name_15</applyto>
<applyto>/apps/metacity/workspace_names/name_16</applyto>
<owner>metacity</owner>
<type>string</type>
<default></default>
<locale name="C">
<short>Name of workspace</short>
<long>
The name of a workspace.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/reduced_resources</key>
<applyto>/apps/metacity/general/reduced_resources</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>If true, trade off usability for less resource usage</short>
<long>
If true, metacity will give the user less feedback by using
wireframes, avoiding animations, or other means. This is a
significant reduction in usability for many users, but may allow
legacy applications to continue working, and may also be a
useful tradeoff for terminal servers. However, the wireframe
feature is disabled when accessibility is on.
</long>
</locale>
</schema>
<!-- Keybindings -->
<schema>
<key>/schemas/apps/metacity/global_keybindings/run_command</key>
<applyto>/apps/metacity/global_keybindings/run_command_1</applyto>
<applyto>/apps/metacity/global_keybindings/run_command_2</applyto>
<applyto>/apps/metacity/global_keybindings/run_command_3</applyto>
<applyto>/apps/metacity/global_keybindings/run_command_4</applyto>
<applyto>/apps/metacity/global_keybindings/run_command_5</applyto>
<applyto>/apps/metacity/global_keybindings/run_command_6</applyto>
<applyto>/apps/metacity/global_keybindings/run_command_7</applyto>
<applyto>/apps/metacity/global_keybindings/run_command_8</applyto>
<applyto>/apps/metacity/global_keybindings/run_command_9</applyto>
<applyto>/apps/metacity/global_keybindings/run_command_10</applyto>
<applyto>/apps/metacity/global_keybindings/run_command_11</applyto>
<applyto>/apps/metacity/global_keybindings/run_command_12</applyto>
<owner>metacity</owner>
<type>string</type>
<default>disabled</default>
<locale name="C">
<short>Run a defined command</short>
<long>
The keybinding that runs the correspondingly-numbered
command in /apps/metacity/keybinding_commands
The format looks like "&lt;Control&gt;a" or
"&lt;Shift&gt;&lt;Alt&gt;F1".
The parser is fairly liberal and allows lower or upper case,
and also abbreviations such as "&lt;Ctl&gt;" and
"&lt;Ctrl&gt;". If you set the option to the special string
"disabled", then there will be no keybinding for this
action.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/keybinding_commands/command</key>
<applyto>/apps/metacity/keybinding_commands/command_1</applyto>
<applyto>/apps/metacity/keybinding_commands/command_2</applyto>
<applyto>/apps/metacity/keybinding_commands/command_3</applyto>
<applyto>/apps/metacity/keybinding_commands/command_4</applyto>
<applyto>/apps/metacity/keybinding_commands/command_5</applyto>
<applyto>/apps/metacity/keybinding_commands/command_6</applyto>
<applyto>/apps/metacity/keybinding_commands/command_7</applyto>
<applyto>/apps/metacity/keybinding_commands/command_8</applyto>
<applyto>/apps/metacity/keybinding_commands/command_9</applyto>
<applyto>/apps/metacity/keybinding_commands/command_10</applyto>
<applyto>/apps/metacity/keybinding_commands/command_11</applyto>
<applyto>/apps/metacity/keybinding_commands/command_12</applyto>
<owner>metacity</owner>
<type>string</type>
<default> </default>
<locale name="C">
<short>Commands to run in response to keybindings</short>
<long>
The /apps/metacity/global_keybindings/run_command_N
keys define keybindings that correspond to these commands.
Pressing the keybinding for run_command_N will
execute command_N.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/keybinding_commands/command_screenshot</key>
<applyto>/apps/metacity/keybinding_commands/command_screenshot</applyto>
<owner>metacity</owner>
<type>string</type>
<default>gnome-screenshot</default>
<locale name="C">
<short>The screenshot command</short>
<long>
The /apps/metacity/global_keybindings/run_command_screenshot
key defines a keybinding which causes the command specified
by this setting to be invoked.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/keybinding_commands/command_window_screenshot</key>
<applyto>/apps/metacity/keybinding_commands/command_window_screenshot</applyto>
<owner>metacity</owner>
<type>string</type>
<default>gnome-screenshot --window</default>
<locale name="C">
<short>The window screenshot command</short>
<long>
The /apps/metacity/global_keybindings/run_command_window_screenshot
key defines a keybinding which causes the command specified
by this setting to be invoked.
</long>
</locale>
</schema>
<!-- Schemas below are generated by schema-bindings.c when this file
becomes metacity.schemas.in
-->
<!-- GENERATED -->
<!-- Not used and/or crackrock -->
<schema>
<key>/schemas/apps/metacity/general/application_based</key>
<applyto>/apps/metacity/general/application_based</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>(Not implemented) Navigation works in terms of applications not windows</short>
<long>
If true, then Metacity works in terms of applications rather than
windows. The concept is a bit abstract, but in general an
application-based setup is more like the Mac and less like
Windows. When you focus a window in application-based mode, all
the windows in the application will be raised. Also, in
application-based mode, focus clicks are not passed through to
windows in other applications. Application-based mode is,
however, largely unimplemented at the moment.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/metacity/general/disable_workarounds</key>
<applyto>/apps/metacity/general/disable_workarounds</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable misfeatures that are required by old or broken
applications</short>
<long>
Some applications disregard specifications in ways that result in
window manager misfeatures. This option puts Metacity in a
rigorously correct mode, which gives a more consistent user
interface, provided one does not need to run any misbehaving
applications.
</long>
</locale>
</schema>
</schemalist>
</gconfschemafile>

17
src/mutter-plugins.pc.in Normal file
View File

@ -0,0 +1,17 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
plugindir=@MUTTER_PLUGIN_DIR@
libgnome_serverdir=@libexecdir@
mutter_major_version=@MUTTER_MAJOR_VERSION@
mutter_minor_version=@MUTTER_MINOR_VERSION@
mutter_micro_version=@MUTTER_MICRO_VERSION@
mutter_plugin_api_version=@MUTTER_PLUGIN_API_VERSION@
Name: mutter-plugins
Description: Dev parameters for mutter plugins
Requires: @CLUTTER_PACKAGE@
Version: @VERSION@
Libs: @CLUTTER_LIBS@
Cflags: @CLUTTER_CFLAGS@ -DWITH_CLUTTER -I${includedir}/mutter/mutter-private -DMUTTER_MAJOR_VERSION=${mutter_major_version} -DMUTTER_MINOR_VERSION=${mutter_minor_version} -DMUTTER_MICRO_VERSION=${mutter_micro_version} -DMUTTER_PLUGIN_API_VERSION=${mutter_plugin_api_version} -DMUTTER_PLUGIN_DIR=\"${plugindir}\"

View File

@ -1,16 +1,16 @@
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application
Encoding=UTF-8 Encoding=UTF-8
_Name=Metacity _Name=Mutter
Exec=metacity Exec=mutter
# name of loadable control center module # name of loadable control center module
X-GNOME-WMSettingsModule=metacity X-GNOME-WMSettingsModule=metacity
# name we put on the WM spec check window # name we put on the WM spec check window
X-GNOME-WMName=Metacity X-GNOME-WMName=Mutter
# back compat only # back compat only
X-GnomeWMSettingsLibrary=metacity X-GnomeWMSettingsLibrary=metacity
X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=metacity X-GNOME-Bugzilla-Product=mutter
X-GNOME-Bugzilla-Component=general X-GNOME-Bugzilla-Component=general
X-GNOME-Autostart-Phase=WindowManager X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager X-GNOME-Provides=windowmanager

View File

@ -1,17 +1,17 @@
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application
Encoding=UTF-8 Encoding=UTF-8
_Name=Metacity _Name=Mutter
Exec=metacity Exec=mutter
NoDisplay=true NoDisplay=true
# name of loadable control center module # name of loadable control center module
X-GNOME-WMSettingsModule=metacity X-GNOME-WMSettingsModule=metacity
# name we put on the WM spec check window # name we put on the WM spec check window
X-GNOME-WMName=Metacity X-GNOME-WMName=Mutter
# back compat only # back compat only
X-GnomeWMSettingsLibrary=metacity X-GnomeWMSettingsLibrary=metacity
X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=metacity X-GNOME-Bugzilla-Product=mutter
X-GNOME-Bugzilla-Component=general X-GNOME-Bugzilla-Component=general
X-GNOME-Autostart-Phase=WindowManager X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager X-GNOME-Provides=windowmanager

56
src/mutter.schemas.in Normal file
View File

@ -0,0 +1,56 @@
<gconfschemafile>
<schemalist>
<!-- General preferences -->
<schema>
<key>/schemas/apps/mutter/general/overlay_key</key>
<applyto>/apps/metacity/general/overlay_key</applyto>
<owner>metacity</owner>
<type>string</type>
<default>&lt;Super_L&gt;</default>
<locale name="C">
<short>Modifier to use for extended window management operations</short>
<long>
This key will initiate the "overlay", which is a combination window
overview and application launching system. The default is intended
to be the "Windows key" on PC hardware.
It's expected that this binding either the default or set to
the empty string.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/mutter/general/clutter_plugins</key>
<applyto>/apps/mutter/general/clutter_plugins</applyto>
<owner>mutter</owner>
<type>list</type>
<list_type>string</list_type>
<default>[default]</default>
<locale name="C">
<short>Clutter Plugins</short>
<long>
Plugins to load for the Clutter-based compositing manager.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/mutter/general/live_hidden_windows</key>
<applyto>/apps/mutter/general/live_hidden_windows</applyto>
<owner>mutter</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Live Hidden Windows</short>
<long>
Determines whether hidden windows (i.e., minimized windows and
windows on other workspaces than the current one) should be kept
alive.
</long>
</locale>
</schema>
</schemalist>
</gconfschemafile>

View File

@ -8,8 +8,8 @@ if test -z "$CLIENT_DISPLAY"; then
CLIENT_DISPLAY=:8 CLIENT_DISPLAY=:8
fi fi
if test -z "$METACITY_DISPLAY"; then if test -z "$MUTTER_DISPLAY"; then
export METACITY_DISPLAY=$CLIENT_DISPLAY export MUTTER_DISPLAY=$CLIENT_DISPLAY
fi fi
if test -z "$SCREENS"; then if test -z "$SCREENS"; then
@ -41,7 +41,7 @@ if test -n "$ICON_TEST"; then
fi fi
if test -n "$DEMO_TEST"; then if test -n "$DEMO_TEST"; then
TEST_CLIENT='./tools/metacity-window-demo' TEST_CLIENT='./tools/mutter-window-demo'
fi fi
if test -n "$XINERAMA"; then if test -n "$XINERAMA"; then
@ -68,7 +68,7 @@ if test -z "$ONLY_WM"; then
killall -9 xscope killall -9 xscope
echo "Launching xscope" echo "Launching xscope"
DISPLAY= $XSCOPE_DIR/xscope -o1 -i28 > xscoped-replies.txt & DISPLAY= $XSCOPE_DIR/xscope -o1 -i28 > xscoped-replies.txt &
export METACITY_DISPLAY=localhost:28 export MUTTER_DISPLAY=localhost:28
sleep 1 sleep 1
fi fi
@ -105,5 +105,5 @@ if test -z "$ONLY_WM"; then
fi fi
if test -z "$ONLY_SETUP"; then if test -z "$ONLY_SETUP"; then
METACITY_VERBOSE=1 METACITY_USE_LOGFILE=1 METACITY_DEBUG_BUTTON_GRABS=1 exec $DEBUG ./metacity $OPTIONS MUTTER_VERBOSE=1 MUTTER_USE_LOGFILE=1 MUTTER_DEBUG_BUTTON_GRABS=1 exec $DEBUG ./mutter $OPTIONS
fi fi

View File

@ -1,2 +0,0 @@
Makefile
Makefile.in

View File

@ -1,7 +0,0 @@
* Gorilla *
A metacity theme to accompany Scalable and Unscalable Gorilla nautilus
themes.
(c) 2001 Jakub 'jimmac' Steiner
Ported by Kenneth Christiansen

Binary file not shown.

Before

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 896 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 886 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 919 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 900 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 927 B

View File

@ -1,291 +0,0 @@
<?xml version="1.0"?>
<metacity_theme>
<info>
<name>Gorilla</name>
<author>Kenneth Christiansen &lt;kenneth@gnu.org&gt; Anders Carlsson &lt;andersca@gnu.org&gt;</author>
<copyright>&#194; Ximian, Inc, 2001</copyright>
<date>February 8, 2002</date>
<description>A port of the Gorilla theme by Jacub Steiner</description>
</info>
<!-- define constants -->
<constant name="IconTitleSpacing" value="2"/> <!-- Space between menu button and title -->
<constant name="ButtonWidth" value="18"/> <!-- Button width -->
<frame_geometry name="normal">
<distance name="left_width" value="6"/>
<distance name="right_width" value="6"/>
<distance name="bottom_height" value="6"/>
<distance name="left_titlebar_edge" value="8"/>
<distance name="right_titlebar_edge" value="8"/>
<aspect_ratio name="button" value="1.0"/>
<distance name="title_vertical_pad" value="0"/>
<border name="title_border" left="0" right="0" top="7" bottom="4"/>
<border name="button_border" left="0" right="0" top="9" bottom="0"/>
</frame_geometry>
<frame_geometry name="border" has_title="false">
<distance name="left_width" value="4"/>
<distance name="right_width" value="4"/>
<distance name="bottom_height" value="4"/>
<distance name="left_titlebar_edge" value="0"/>
<distance name="right_titlebar_edge" value="0"/>
<distance name="button_width" value="0"/>
<distance name="button_height" value="0"/>
<distance name="title_vertical_pad" value="4"/>
<border name="title_border" left="0" right="0" top="0" bottom="0"/>
<border name="button_border" left="0" right="0" top="0" bottom="0"/>
</frame_geometry>
<!-- Buttons -->
<draw_ops name="title_tile">
<line color="#494d59" x1="0" y1="0" x2="width" y2="0"/>
<line color="#515961" x1="0" y1="1" x2="width" y2="1"/>
</draw_ops>
<!-- Inactive style -->
<frame_style name="normal" geometry="normal">
<piece position="entire_background">
<draw_ops>
<rectangle color="black" x="1" y="1" width="width - 2" height="height - 2" filled="true"/>
<rectangle color="dark gray" x="3" y="3" width="width - 8" height="height - 7" filled="false"/>
<rectangle color="light gray" x="4" y="4" width="width - 9" height="height - 8" filled="false"/>
<rectangle color="light gray" x="5" y="5" width="width - 11" height="height - 10" filled="false"/>
<rectangle color="white" x="6" y="6" width="width - 13" height="height - 12" filled="false"/>
<rectangle color="gtk:bg[INSENSITIVE]" x="6" y="6" width="width - 12" height="height - 12" filled="true"/>
<line color="gtk:bg[INSENSITIVE]" x1="1" y1="1" x2="2" y2="2"/>
<line color="gtk:bg[INSENSITIVE]" x1="1" y1="height - 2" x2="1" y2="height"/>
<line color="gtk:bg[INSENSITIVE]" x1="width - 2" y1="1" x2="width - 1" y2="2"/>
<line color="gtk:bg[INSENSITIVE]" x1="width - 1" y1="height - 1" x2="width - 2" y2="height - 2"/>
</draw_ops>
</piece>
<piece position="title">
<draw_ops>
<title color="gray" x="IconTitleSpacing" y="0"/>
</draw_ops>
</piece>
<piece position="titlebar">
<draw_ops>
<rectangle color="black" x="6" y="6" width="width - 12" height="height - 10" filled="true"/>
<tile name="title_tile" tile_width="width" tile_height="2" x="8" y="8" width="width - 16" height="height - 14"/>
</draw_ops>
</piece>
<button function="close" state="normal">
<draw_ops>
<image filename="inactive-close-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="close" state="pressed">
<draw_ops>
<image filename="inactive-close-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="minimize" state="normal">
<draw_ops>
<image filename="inactive-minimize-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="minimize" state="pressed">
<draw_ops>
<image filename="inactive-minimize-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="maximize" state="normal">
<draw_ops>
<image filename="inactive-maximize-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="maximize" state="pressed">
<draw_ops>
<image filename="inactive-maximize-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="menu" state="normal">
<draw_ops>
<image filename="inactive-menu-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="menu" state="pressed">
<draw_ops>
<image filename="inactive-menu-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
</frame_style>
<!-- Active (focused) shaded style -->
<frame_style name="normal_shaded" geometry="normal" parent="normal">
</frame_style>
<!-- Active (focused) style -->
<frame_style name="focused" geometry="normal">
<piece position="entire_background">
<draw_ops>
<rectangle color="black" x="0" y="0" width="width" height="height" filled="true"/>
<rectangle color="dark gray" x="3" y="3" width="width - 8" height="height - 7" filled="false"/>
<rectangle color="light gray" x="4" y="4" width="width - 9" height="height - 8" filled="false"/>
<rectangle color="light gray" x="5" y="5" width="width - 11" height="height - 10" filled="false"/>
<rectangle color="white" x="6" y="6" width="width - 13" height="height - 12" filled="false"/>
<rectangle color="gtk:bg[NORMAL]" x="6" y="6" width="width - 12" height="height - 12" filled="true"/>
<line color="gtk:bg[NORMAL]" x1="0" y1="0" x2="1" y2="1"/>
<line color="gtk:bg[NORMAL]" x1="0" y1="height - 1" x2="1" y2="height"/>
<line color="gtk:bg[NORMAL]" x1="width - 1" y1="0" x2="width" y2="1"/>
<line color="gtk:bg[NORMAL]" x1="width" y1="height" x2="width - 1" y2="height - 1"/>
</draw_ops>
</piece>
<piece position="title">
<draw_ops>
<title color="white" x="IconTitleSpacing" y="0"/>
</draw_ops>
</piece>
<piece position="titlebar">
<draw_ops>
<rectangle color="black" x="6" y="6" width="width - 12" height="height - 10" filled="true"/>
<tile name="title_tile" tile_width="width" tile_height="2" x="8" y="8" width="width - 16" height="height - 14"/>
</draw_ops>
</piece>
<button function="close" state="normal">
<draw_ops>
<image filename="active-close-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="close" state="pressed">
<draw_ops>
<image filename="active-close-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="minimize" state="normal">
<draw_ops>
<image filename="active-minimize-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="minimize" state="pressed">
<draw_ops>
<image filename="active-minimize-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="maximize" state="normal">
<draw_ops>
<image filename="active-maximize-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="maximize" state="pressed">
<draw_ops>
<image filename="active-maximize-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="menu" state="normal">
<draw_ops>
<image filename="active-menu-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
<button function="menu" state="pressed">
<draw_ops>
<image filename="active-menu-button.png" x="0" y="0" width="width" height="height"/>
</draw_ops>
</button>
</frame_style>
<!-- Active (focused) shaded style -->
<frame_style name="focused_shaded" geometry="normal" parent="focused">
</frame_style>
<frame_style_set name="normal">
<frame focus="yes" state="shaded" style="focused_shaded"/>
<frame focus="yes" state="normal" resize="both" style="focused"/>
<frame focus="yes" state="maximized" style="focused"/>
<frame focus="yes" state="maximized_and_shaded" style="focused_shaded"/>
<frame focus="no" state="normal" resize="both" style="normal"/>
<frame focus="no" state="shaded" style="normal_shaded"/>
<frame focus="no" state="maximized" style="normal"/>
<frame focus="no" state="maximized_and_shaded" style="normal_shaded"/>
</frame_style_set>
<draw_ops name="blank">
<!-- nothing -->
</draw_ops>
<frame_style name="border" geometry="border" parent="normal">
<piece position="title" draw_ops="blank"/>
</frame_style>
<frame_style_set name="border">
<frame focus="yes" state="normal" resize="both" style="border"/>
<frame focus="no" state="normal" resize="both" style="border"/>
<frame focus="yes" state="maximized" style="border"/>
<frame focus="no" state="maximized" style="border"/>
<frame focus="yes" state="shaded" style="border"/>
<frame focus="no" state="shaded" style="border"/>
<frame focus="yes" state="maximized_and_shaded" style="border"/>
<frame focus="no" state="maximized_and_shaded" style="border"/>
</frame_style_set>
<window type="normal" style_set="normal"/>
<window type="dialog" style_set="normal"/>
<window type="modal_dialog" style_set="normal"/>
<window type="menu" style_set="normal"/>
<window type="utility" style_set="normal"/>
<window type="border" style_set="border"/>
<menu_icon function="maximize" state="normal">
<draw_ops>
<image filename="active-maximize-menu-icon.png"
x="(width - object_width) / 2"
y="(height - object_height) / 2"
width="object_width" height="object_height"/>
</draw_ops>
</menu_icon>
<menu_icon function="close" state="normal">
<draw_ops>
<image filename="active-close-menu-icon.png"
x="(width - object_width) / 2"
y="(height - object_height) / 2"
width="object_width" height="object_height"/>
</draw_ops>
</menu_icon>
<menu_icon function="minimize" state="normal">
<draw_ops>
<image filename="active-minimize-menu-icon.png"
x="(width - object_width) / 2"
y="(height - object_height) / 2"
width="object_width" height="object_height"/>
</draw_ops>
</menu_icon>
<menu_icon function="unmaximize" state="normal">
<draw_ops>
</draw_ops>
</menu_icon>
</metacity_theme>

View File

@ -1,350 +0,0 @@
<?xml version="1.0"?>
<metacity_theme>
<info>
<name>Default</name>
<author>Havoc Pennington &lt;hp@redhat.com&gt;</author>
<copyright>&#194; Havoc Pennington, 2002</copyright>
<date>February 3, 2002</date>
<description>Simple low-overhead default theme that comes with Metacity.</description>
</info>
<frame_geometry name="normal">
<distance name="left_width" value="6"/>
<distance name="right_width" value="6"/>
<distance name="bottom_height" value="7"/>
<distance name="left_titlebar_edge" value="6"/>
<distance name="right_titlebar_edge" value="6"/>
<aspect_ratio name="button" value="1.0"/>
<distance name="title_vertical_pad" value="3"/>
<border name="title_border" left="3" right="4" top="4" bottom="3"/>
<border name="button_border" left="0" right="0" top="1" bottom="1"/>
</frame_geometry>
<!-- strip borders off the normal geometry -->
<frame_geometry name="normal_small_borders" parent="normal">
<distance name="left_width" value="0"/>
<distance name="right_width" value="0"/>
<distance name="bottom_height" value="0"/>
<distance name="left_titlebar_edge" value="0"/>
<distance name="right_titlebar_edge" value="0"/>
</frame_geometry>
<frame_geometry name="utility" title_scale="xx-small">
<distance name="left_width" value="3"/>
<distance name="right_width" value="3"/>
<distance name="bottom_height" value="4"/>
<distance name="left_titlebar_edge" value="3"/>
<distance name="right_titlebar_edge" value="3"/>
<distance name="button_width" value="11"/>
<distance name="button_height" value="11"/>
<distance name="title_vertical_pad" value="1"/>
<border name="title_border" left="3" right="4" top="3" bottom="3"/>
<border name="button_border" left="0" right="0" top="1" bottom="1"/>
</frame_geometry>
<frame_geometry name="border" has_title="false">
<distance name="left_width" value="4"/>
<distance name="right_width" value="4"/>
<distance name="bottom_height" value="4"/>
<distance name="left_titlebar_edge" value="0"/>
<distance name="right_titlebar_edge" value="0"/>
<distance name="button_width" value="0"/>
<distance name="button_height" value="0"/>
<distance name="title_vertical_pad" value="4"/>
<border name="title_border" left="0" right="0" top="0" bottom="0"/>
<border name="button_border" left="0" right="0" top="0" bottom="0"/>
</frame_geometry>
<!-- define constants -->
<constant name="ArrowSpacer" value="8"/>
<constant name="MinArrowSize" value="7"/>
<constant name="ButtonIPad" value="6"/>
<constant name="ThickLineWidth" value="3"/>
<constant name="IconTitleSpacing" value="2"/>
<constant name="SpacerWidth" value="6"/>
<constant name="SpacerHeight" value="9"/>
<constant name="SpacerOffset" value="4"/>
<!-- Buttons -->
<draw_ops name="button_pressed_bg">
<gtk_box state="active" shadow="in" x="0" y="0" width="width" height="height"/>
</draw_ops>
<draw_ops name="menu_button">
<gtk_arrow state="normal" shadow="out" arrow="down"
x="ArrowSpacer `min` (width-MinArrowSize)/2"
y="ArrowSpacer `min` (height-MinArrowSize)/2"
width="(width-(ArrowSpacer*2)) `max` MinArrowSize"
height="(height-(ArrowSpacer*2)) `max` MinArrowSize"/>
</draw_ops>
<draw_ops name="menu_button_pressed">
<include name="menu_button"/>
</draw_ops>
<draw_ops name="minimize_button">
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad"
y1="height - ButtonIPad - ThickLineWidth + 1"
x2="width - ButtonIPad"
y2="height - ButtonIPad - ThickLineWidth + 1"
width="3"/> <!-- FIXME allow a constant here -->
</draw_ops>
<draw_ops name="minimize_button_pressed">
<include name="minimize_button"/>
</draw_ops>
<draw_ops name="maximize_button">
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-1" height="height-ButtonIPad*2-1"/>
<line color="gtk:fg[NORMAL]" width="3"
x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad" y2="ButtonIPad+1"/>
</draw_ops>
<draw_ops name="maximize_button_pressed">
<include name="maximize_button"/>
</draw_ops>
<draw_ops name="mini_window_icon">
<rectangle color="gtk:bg[NORMAL]" filled="true"
x="0" y="0" width="width-1" height="height-1"/>
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="0" y="0" width="width-1" height="height-1"/>
<line color="gtk:fg[NORMAL]" width="2"
x1="0" y1="1" x2="width" y2="1"/>
</draw_ops>
<draw_ops name="restore_button">
<include name="mini_window_icon"
x="ButtonIPad" y="ButtonIPad"
width="width - 5 - ButtonIPad"
height="height - 5 - ButtonIPad"/>
<include name="mini_window_icon"
x="3 + ButtonIPad" y="3 + ButtonIPad"
width="width - 5 - ButtonIPad"
height="height - 5 - ButtonIPad"/>
</draw_ops>
<draw_ops name="restore_button_pressed">
<include name="restore_button"/>
</draw_ops>
<draw_ops name="close_button">
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad" y1="ButtonIPad"
x2="width - ButtonIPad - 1" y2="height - ButtonIPad - 1"
width="1"/>
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad" y1="height - ButtonIPad - 1"
x2="width - ButtonIPad - 1" y2="ButtonIPad"
width="1"/>
</draw_ops>
<draw_ops name="close_button_pressed">
<include name="close_button"/>
</draw_ops>
<draw_ops name="outer_bevel">
<rectangle color="gtk:fg[NORMAL]"
x="0" y="0" width="width-1" height="height-1"/>
<line color="gtk:light[NORMAL]"
x1="1" y1="1" x2="1" y2="height-2"/>
<line color="gtk:light[NORMAL]"
x1="1" y1="1" x2="width-2" y2="1"/>
<line color="gtk:dark[NORMAL]"
x1="width-2" y1="1" x2="width-2" y2="height-2"/>
<line color="gtk:dark[NORMAL]"
x1="1" y1="height-2" x2="width-2" y2="height-2"/>
</draw_ops>
<draw_ops name="blank">
<!-- nothing -->
</draw_ops>
<draw_ops name="focus_outline">
<rectangle color="gtk:fg[NORMAL]"
x="left_width-1" y="top_height-1"
width="width-left_width-right_width+1"
height="height-top_height-bottom_height+1"/>
</draw_ops>
<draw_ops name="focus_background">
<include name="outer_bevel"/>
<include name="focus_outline"/>
</draw_ops>
<draw_ops name="background_unfocused">
<include name="outer_bevel"/>
<include name="focus_outline"/>
</draw_ops>
<draw_ops name="title_gradient">
<gradient type="diagonal" x="0" y="0" width="width-SpacerWidth" height="height">
<color value="blend/gtk:bg[NORMAL]/gtk:bg[SELECTED]/0.6"/>
<color value="gtk:bg[SELECTED]"/>
</gradient>
</draw_ops>
<draw_ops name="title_spacer">
<gtk_vline state="normal" x="width+1-SpacerWidth/2"
y1="SpacerOffset"
y2="height - SpacerOffset"/>
</draw_ops>
<draw_ops name="title_text_focused_with_icon">
<clip x="0" y="0" width="width-SpacerWidth" height="height"/>
<title color="gtk:fg[SELECTED]"
x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
y="((height - title_height) / 2) `max` 0"/>
<icon x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
y="(height-mini_icon_height) / 2"
width="mini_icon_width" height="mini_icon_height"/>
</draw_ops>
<draw_ops name="title_text_focused_no_icon">
<clip x="0" y="0" width="width-SpacerWidth" height="height"/>
<title color="gtk:fg[SELECTED]"
x="(0 `max` (width-title_width)) / 2"
y="((height - title_height) / 2) `max` 0"/>
</draw_ops>
<draw_ops name="title_text_with_icon">
<clip x="0" y="0" width="width-SpacerWidth" height="height"/>
<title color="gtk:fg[NORMAL]"
x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
y="((height - title_height) / 2) `max` 0"/>
<icon x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
y="(height-mini_icon_height) / 2"
width="mini_icon_width" height="mini_icon_height"/>
</draw_ops>
<draw_ops name="title_text_no_icon">
<clip x="0" y="0" width="width-SpacerWidth" height="height"/>
<title color="gtk:fg[NORMAL]"
x="(0 `max` (width-title_width)) / 2"
y="((height - title_height) / 2) `max` 0"/>
</draw_ops>
<draw_ops name="title_normal">
<include name="title_spacer"/>
<include name="title_text_with_icon"/>
</draw_ops>
<draw_ops name="title_focused">
<include name="title_gradient"/>
<include name="title_spacer"/>
<include name="title_text_focused_with_icon"/>
</draw_ops>
<draw_ops name="title_utility">
<include name="title_spacer"/>
<include name="title_text_no_icon"/>
</draw_ops>
<draw_ops name="title_utility_focused">
<include name="title_gradient"/>
<include name="title_spacer"/>
<include name="title_text_focused_no_icon"/>
</draw_ops>
<frame_style name="normal_unfocused" geometry="normal">
<piece position="entire_background" draw_ops="background_unfocused"/>
<piece position="title" draw_ops="title_normal"/>
<!-- we don't specify for prelight, so normal is used -->
<button function="left_left_background" state="pressed" draw_ops="button_pressed_bg"/>
<button function="left_middle_background" state="pressed" draw_ops="button_pressed_bg"/>
<button function="left_right_background" state="pressed" draw_ops="button_pressed_bg"/>
<button function="right_left_background" state="pressed" draw_ops="button_pressed_bg"/>
<button function="right_middle_background" state="pressed" draw_ops="button_pressed_bg"/>
<button function="right_right_background" state="pressed" draw_ops="button_pressed_bg"/>
<button function="close" state="normal" draw_ops="close_button"/>
<button function="close" state="pressed" draw_ops="close_button_pressed"/>
<button function="minimize" state="normal" draw_ops="minimize_button"/>
<button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/>
<button function="maximize" state="normal" draw_ops="maximize_button"/>
<button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/>
<button function="menu" state="normal" draw_ops="menu_button"/>
<button function="menu" state="pressed" draw_ops="menu_button_pressed"/>
</frame_style>
<frame_style name="normal_focused" geometry="normal" parent="normal_unfocused">
<piece position="entire_background" draw_ops="focus_background"/>
<piece position="title" draw_ops="title_focused"/>
</frame_style>
<frame_style name="maximized_unfocused" geometry="normal_small_borders" parent="normal_unfocused">
<piece position="entire_background" draw_ops="blank"/>
<button function="maximize" state="normal" draw_ops="restore_button"/>
<button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
</frame_style>
<frame_style name="maximized_focused" geometry="normal_small_borders" parent="normal_focused">
<piece position="entire_background" draw_ops="focus_outline"/>
<button function="maximize" state="normal" draw_ops="restore_button"/>
<button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
</frame_style>
<frame_style name="utility_unfocused" geometry="utility" parent="normal_unfocused">
<piece position="title" draw_ops="title_utility"/>
</frame_style>
<frame_style name="utility_focused" geometry="utility" parent="normal_focused">
<piece position="title" draw_ops="title_utility_focused"/>
</frame_style>
<frame_style name="border" geometry="border" parent="normal_unfocused">
<piece position="entire_background" draw_ops="outer_bevel"/>
<piece position="title" draw_ops="blank"/>
</frame_style>
<frame_style_set name="normal">
<frame focus="yes" state="normal" resize="both" style="normal_focused"/>
<frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
<frame focus="yes" state="maximized" style="maximized_focused"/>
<frame focus="no" state="maximized" style="maximized_unfocused"/>
<frame focus="yes" state="shaded" style="normal_focused"/>
<frame focus="no" state="shaded" style="normal_unfocused"/>
<frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/>
<frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/>
</frame_style_set>
<frame_style_set name="utility" parent="normal">
<frame focus="yes" state="normal" resize="both" style="utility_focused"/>
<frame focus="no" state="normal" resize="both" style="utility_unfocused"/>
<!-- this is a bunch of crack since utility windows shouldn't be maximized -->
<frame focus="yes" state="maximized" style="utility_focused"/>
<frame focus="no" state="maximized" style="utility_unfocused"/>
<frame focus="yes" state="shaded" style="utility_focused"/>
<frame focus="no" state="shaded" style="utility_unfocused"/>
<frame focus="yes" state="maximized_and_shaded" style="utility_focused"/>
<frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/>
</frame_style_set>
<frame_style_set name="border">
<frame focus="yes" state="normal" resize="both" style="border"/>
<frame focus="no" state="normal" resize="both" style="border"/>
<frame focus="yes" state="maximized" style="border"/>
<frame focus="no" state="maximized" style="border"/>
<frame focus="yes" state="shaded" style="border"/>
<frame focus="no" state="shaded" style="border"/>
<frame focus="yes" state="maximized_and_shaded" style="border"/>
<frame focus="no" state="maximized_and_shaded" style="border"/>
</frame_style_set>
<window type="normal" style_set="normal"/>
<window type="dialog" style_set="normal"/>
<window type="modal_dialog" style_set="normal"/>
<window type="menu" style_set="normal"/>
<window type="utility" style_set="utility"/>
<window type="border" style_set="border"/>
<menu_icon function="close" state="normal" draw_ops="close_button"/>
<menu_icon function="maximize" state="normal" draw_ops="maximize_button"/>
<menu_icon function="unmaximize" state="normal" draw_ops="restore_button"/>
<menu_icon function="minimize" state="normal" draw_ops="minimize_button"/>
</metacity_theme>

View File

@ -1,376 +0,0 @@
<?xml version="1.0"?>
<metacity_theme>
<info>
<name>Bright</name>
<author>Gaute Lindkvist &lt;lindkvis@linpro.no&gt;</author>
<copyright>&#194; Havoc Pennington, 2002 for Atlanta. &#194; Gaute Lindkvist, 2002 for modifications</copyright>
<date>February 3, 2002</date>
<description>Simple theme based on Havoc Pennington's Atlanta</description>
</info>
<frame_geometry name="normal">
<distance name="left_width" value="6"/>
<distance name="right_width" value="6"/>
<distance name="bottom_height" value="7"/>
<distance name="left_titlebar_edge" value="6"/>
<distance name="right_titlebar_edge" value="6"/>
<distance name="button_width" value="15"/>
<distance name="button_height" value="15"/>
<distance name="title_vertical_pad" value="4"/>
<border name="title_border" left="3" right="4" top="4" bottom="3"/>
<border name="button_border" left="1" right="2" top="2" bottom="1"/>
</frame_geometry>
<!-- strip borders off the normal geometry -->
<frame_geometry name="normal_small_borders" parent="normal">
<distance name="left_width" value="4"/>
<distance name="right_width" value="4"/>
<distance name="bottom_height" value="5"/>
<distance name="left_titlebar_edge" value="4"/>
<distance name="right_titlebar_edge" value="4"/>
</frame_geometry>
<frame_geometry name="utility" title_scale="xx-small">
<distance name="left_width" value="3"/>
<distance name="right_width" value="3"/>
<distance name="bottom_height" value="4"/>
<distance name="left_titlebar_edge" value="3"/>
<distance name="right_titlebar_edge" value="3"/>
<distance name="button_width" value="11"/>
<distance name="button_height" value="11"/>
<distance name="title_vertical_pad" value="1"/>
<border name="title_border" left="3" right="4" top="3" bottom="3"/>
<border name="button_border" left="0" right="0" top="1" bottom="1"/>
</frame_geometry>
<frame_geometry name="border" has_title="false">
<distance name="left_width" value="4"/>
<distance name="right_width" value="4"/>
<distance name="bottom_height" value="4"/>
<distance name="left_titlebar_edge" value="0"/>
<distance name="right_titlebar_edge" value="0"/>
<distance name="button_width" value="0"/>
<distance name="button_height" value="0"/>
<distance name="title_vertical_pad" value="4"/>
<border name="title_border" left="0" right="0" top="0" bottom="0"/>
<border name="button_border" left="0" right="0" top="0" bottom="0"/>
</frame_geometry>
<!-- define constants -->
<constant name="ArrowWidth" value="7"/>
<constant name="ArrowHeight" value="5"/>
<constant name="ButtonIPad" value="3"/>
<constant name="ThickLineWidth" value="3"/>
<constant name="IconTitleSpacing" value="2"/>
<constant name="SpacerWidth" value="7"/>
<constant name="SpacerHeight" value="11"/>
<!-- Buttons -->
<draw_ops name="button_normal_bg">
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="0" y="0" width="width-2" height="height-2"/>
<line color="#BBBBBB"
x1="1"
y1="height-1"
x2="width"
y2="height-1"
width="1"/>
<line color="#BBBBBB"
x1="width-1"
y1="1"
x2="width-1"
y2="height-1"
width="1"/>
<rectangle color="gtk:base[NORMAL]" filled="true"
x="1" y="1" width="width-3" height="height-3"/>
</draw_ops>
<draw_ops name="button_pressed_bg">
<gtk_box state="active" shadow="in" x="0" y="0" width="width" height="height"/>
</draw_ops>
<draw_ops name="menu_button">
<clip x="0" y="0" width="width" height="height"/>
<icon x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
y="(height-mini_icon_height) / 2"
width="mini_icon_width-1" height="mini_icon_height-1"/>
</draw_ops>
<draw_ops name="menu_button_normal">
<include name="menu_button"/>
</draw_ops>
<draw_ops name="menu_button_pressed">
<include name="menu_button"/>
</draw_ops>
<draw_ops name="minimize_button">
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad"
y1="height - ButtonIPad - ThickLineWidth + 1"
x2="width - ButtonIPad-1"
y2="height - ButtonIPad - ThickLineWidth + 1"
width="2"/> <!-- FIXME allow a constant here -->
</draw_ops>
<draw_ops name="minimize_button_normal">
<include name="button_normal_bg"/>
<include name="minimize_button"/>
</draw_ops>
<draw_ops name="minimize_button_pressed">
<include name="button_pressed_bg"/>
<include name="minimize_button"/>
</draw_ops>
<draw_ops name="maximize_button">
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-2" height="height-ButtonIPad*2-2"/>
<line color="gtk:fg[NORMAL]" width="2"
x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad-1" y2="ButtonIPad+1"/>
</draw_ops>
<draw_ops name="maximize_button_normal">
<include name="button_normal_bg"/>
<include name="maximize_button"/>
</draw_ops>
<draw_ops name="maximize_button_pressed">
<include name="button_pressed_bg"/>
<include name="maximize_button"/>
</draw_ops>
<draw_ops name="mini_window_icon">
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="0" y="0" width="width-3" height="height-3"/>
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="0" y="0" width="width-3" height="height-3"/>
<line color="gtk:fg[NORMAL]" width="1"
x1="0" y1="1" x2="width-1" y2="1"/>
</draw_ops>
<draw_ops name="restore_button">
<include name="mini_window_icon"
x="ButtonIPad" y="ButtonIPad"
width="width - 5 - ButtonIPad"
height="height - 5 - ButtonIPad"/>
<include name="mini_window_icon"
x="3 + ButtonIPad" y="3 + ButtonIPad"
width="width - 5 - ButtonIPad"
height="height - 5 - ButtonIPad"/>
</draw_ops>
<draw_ops name="restore_button_normal">
<include name="button_normal_bg"/>
<include name="restore_button"/>
</draw_ops>
<draw_ops name="restore_button_pressed">
<include name="button_pressed_bg"/>
<include name="restore_button"/>
</draw_ops>
<draw_ops name="close_button">
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad" y1="ButtonIPad"
x2="width - ButtonIPad - 2" y2="height - ButtonIPad - 2"/>
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad" y1="height - ButtonIPad - 2"
x2="width - ButtonIPad - 2" y2="ButtonIPad"/>
</draw_ops>
<draw_ops name="close_button_normal">
<include name="button_normal_bg"/>
<include name="close_button"/>
</draw_ops>
<draw_ops name="close_button_pressed">
<include name="button_pressed_bg"/>
<include name="close_button"/>
</draw_ops>
<draw_ops name="outer_bevel">
<rectangle color="gtk:fg[NORMAL]"
x="0" y="0" width="width-1" height="height-1"/>
<line color="gtk:light[NORMAL]"
x1="1" y1="1" x2="1" y2="height-2"/>
<line color="gtk:light[NORMAL]"
x1="1" y1="1" x2="width-2" y2="1"/>
<line color="gtk:dark[NORMAL]"
x1="width-2" y1="1" x2="width-2" y2="height-2"/>
<line color="gtk:dark[NORMAL]"
x1="1" y1="height-2" x2="width-2" y2="height-2"/>
</draw_ops>
<draw_ops name="blank">
<!-- nothing -->
</draw_ops>
<draw_ops name="focus_outline">
<rectangle color="gtk:fg[NORMAL]"
x="left_width-1" y="top_height-1"
width="width-left_width-right_width+1"
height="height-top_height-bottom_height+1"/>
</draw_ops>
<draw_ops name="focus_background">
<include name="outer_bevel"/>
<include name="focus_outline"/>
</draw_ops>
<draw_ops name="background_unfocused">
<include name="outer_bevel"/>
<include name="focus_outline"/>
</draw_ops>
<draw_ops name="title_box">
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="0" y="1" width="width-SpacerWidth+3" height="height-2"/>
<line color="#BBBBBB"
x1="2"
y1="height-2"
x2="width-SpacerWidth+2"
y2="height-2"
width="1"/>
<line color="#BBBBBB"
x1="width-5"
y1="2"
x2="width-SpacerWidth+2"
y2="height-2"
width="1"/>
<rectangle color="gtk:bg[SELECTED]" filled="true"
x="1" y="2" width="width-5" height="height-3"/>
</draw_ops>
<draw_ops name="title_spacer">
<gtk_vline state="normal" x="width+1-SpacerWidth/2"
y1="(height-SpacerHeight)/2"
y2="height - (height-SpacerHeight)/2"/>
</draw_ops>
<draw_ops name="title_text_focused_no_icon">
<clip x="3" y="2" width="width-SpacerWidth-2" height="height-4"/>
<title color="gtk:fg[SELECTED]"
x="(3 `max` (width-title_width)) / 2+2"
y="((height - title_height) / 2) `max` 0"/>
</draw_ops>
<draw_ops name="title_text_no_icon">
<clip x="3" y="2" width="width-SpacerWidth-2" height="height-4"/>
<title color="gtk:fg[NORMAL]"
x="(3 `max` (width-title_width)) / 2+2"
y="((height - title_height) / 2) `max` 0"/>
</draw_ops>
<draw_ops name="title_normal">
<include name="title_text_no_icon"/>
</draw_ops>
<draw_ops name="title_focused">
<include name="title_box"/>
<include name="title_text_focused_no_icon"/>
</draw_ops>
<draw_ops name="title_utility">
<include name="title_spacer"/>
<include name="title_text_no_icon"/>
</draw_ops>
<draw_ops name="title_utility_focused">
<include name="title_box"/>
<include name="title_spacer"/>
<include name="title_text_focused_no_icon"/>
</draw_ops>
<frame_style name="normal_unfocused" geometry="normal">
<piece position="entire_background" draw_ops="background_unfocused"/>
<piece position="title" draw_ops="title_normal"/>
<!-- we don't specify for prelight, so normal is used -->
<button function="close" state="normal" draw_ops="close_button_normal"/>
<button function="close" state="pressed" draw_ops="close_button_pressed"/>
<button function="minimize" state="normal" draw_ops="minimize_button_normal"/>
<button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/>
<button function="maximize" state="normal" draw_ops="maximize_button_normal"/>
<button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/>
<button function="menu" state="normal" draw_ops="menu_button_normal"/>
<button function="menu" state="pressed" draw_ops="menu_button_pressed"/>
</frame_style>
<frame_style name="normal_focused" geometry="normal" parent="normal_unfocused">
<piece position="entire_background" draw_ops="focus_background"/>
<piece position="title" draw_ops="title_focused"/>
</frame_style>
<frame_style name="maximized_unfocused" geometry="normal_small_borders" parent="normal_unfocused">
<piece position="entire_background" draw_ops="blank"/>
<button function="maximize" state="normal" draw_ops="restore_button_normal"/>
<button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
</frame_style>
<frame_style name="maximized_focused" geometry="normal_small_borders" parent="normal_focused">
<piece position="entire_background" draw_ops="focus_outline"/>
<button function="maximize" state="normal" draw_ops="restore_button_normal"/>
<button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
</frame_style>
<frame_style name="utility_unfocused" geometry="utility" parent="normal_unfocused">
<piece position="title" draw_ops="title_utility"/>
</frame_style>
<frame_style name="utility_focused" geometry="utility" parent="normal_focused">
<piece position="title" draw_ops="title_utility_focused"/>
</frame_style>
<frame_style name="border" geometry="border" parent="normal_unfocused">
<piece position="entire_background" draw_ops="outer_bevel"/>
<piece position="title" draw_ops="blank"/>
</frame_style>
<frame_style_set name="normal">
<frame focus="yes" state="normal" resize="both" style="normal_focused"/>
<frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
<frame focus="yes" state="maximized" style="maximized_focused"/>
<frame focus="no" state="maximized" style="maximized_unfocused"/>
<frame focus="yes" state="shaded" style="normal_focused"/>
<frame focus="no" state="shaded" style="normal_unfocused"/>
<frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/>
<frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/>
</frame_style_set>
<frame_style_set name="utility" parent="normal">
<frame focus="yes" state="normal" resize="both" style="utility_focused"/>
<frame focus="no" state="normal" resize="both" style="utility_unfocused"/>
<!-- this is a bunch of crack since utility windows shouldn't be maximized -->
<frame focus="yes" state="maximized" style="utility_focused"/>
<frame focus="no" state="maximized" style="utility_unfocused"/>
<frame focus="yes" state="shaded" style="utility_focused"/>
<frame focus="no" state="shaded" style="utility_unfocused"/>
<frame focus="yes" state="maximized_and_shaded" style="utility_focused"/>
<frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/>
</frame_style_set>
<frame_style_set name="border">
<frame focus="yes" state="normal" resize="both" style="border"/>
<frame focus="no" state="normal" resize="both" style="border"/>
<frame focus="yes" state="maximized" style="border"/>
<frame focus="no" state="maximized" style="border"/>
<frame focus="yes" state="shaded" style="border"/>
<frame focus="no" state="shaded" style="border"/>
<frame focus="yes" state="maximized_and_shaded" style="border"/>
<frame focus="no" state="maximized_and_shaded" style="border"/>
</frame_style_set>
<window type="normal" style_set="normal"/>
<window type="dialog" style_set="normal"/>
<window type="modal_dialog" style_set="normal"/>
<window type="menu" style_set="normal"/>
<window type="utility" style_set="utility"/>
<window type="border" style_set="border"/>
<menu_icon function="close" state="normal" draw_ops="close_button_normal"/>
<menu_icon function="maximize" state="normal" draw_ops="maximize_button_normal"/>
<menu_icon function="unmaximize" state="normal" draw_ops="restore_button_normal"/>
<menu_icon function="minimize" state="normal" draw_ops="minimize_button_normal"/>
</metacity_theme>

View File

@ -1,546 +0,0 @@
<?xml version="1.0"?>
<metacity_theme>
<info>
<name>Bright</name>
<author>Gaute Lindkvist &lt;lindkvis@linpro.no&gt;</author>
<copyright>&#194; Havoc Pennington, 2002 for Atlanta. &#194; Gaute Lindkvist, 2002 for modifications</copyright>
<date>February 3, 2002</date>
<description>Simple theme based on Havoc Pennington's Atlanta</description>
</info>
<frame_geometry name="normal">
<distance name="left_width" value="6"/>
<distance name="right_width" value="6"/>
<distance name="bottom_height" value="7"/>
<distance name="left_titlebar_edge" value="6"/>
<distance name="right_titlebar_edge" value="6"/>
<distance name="button_width" value="15"/>
<distance name="button_height" value="15"/>
<distance name="title_vertical_pad" value="4"/>
<border name="title_border" left="3" right="4" top="4" bottom="3"/>
<border name="button_border" left="1" right="2" top="2" bottom="1"/>
</frame_geometry>
<!-- strip borders off the normal geometry -->
<frame_geometry name="normal_small_borders" parent="normal">
<distance name="left_width" value="4"/>
<distance name="right_width" value="4"/>
<distance name="bottom_height" value="5"/>
<distance name="left_titlebar_edge" value="4"/>
<distance name="right_titlebar_edge" value="4"/>
</frame_geometry>
<frame_geometry name="utility" title_scale="xx-small">
<distance name="left_width" value="3"/>
<distance name="right_width" value="3"/>
<distance name="bottom_height" value="4"/>
<distance name="left_titlebar_edge" value="3"/>
<distance name="right_titlebar_edge" value="3"/>
<distance name="button_width" value="11"/>
<distance name="button_height" value="11"/>
<distance name="title_vertical_pad" value="1"/>
<border name="title_border" left="3" right="4" top="3" bottom="3"/>
<border name="button_border" left="0" right="0" top="1" bottom="1"/>
</frame_geometry>
<frame_geometry name="border" has_title="false">
<distance name="left_width" value="4"/>
<distance name="right_width" value="4"/>
<distance name="bottom_height" value="4"/>
<distance name="left_titlebar_edge" value="0"/>
<distance name="right_titlebar_edge" value="0"/>
<distance name="button_width" value="0"/>
<distance name="button_height" value="0"/>
<distance name="title_vertical_pad" value="4"/>
<border name="title_border" left="0" right="0" top="0" bottom="0"/>
<border name="button_border" left="0" right="0" top="0" bottom="0"/>
</frame_geometry>
<!-- define constants -->
<constant name="ArrowWidth" value="7"/>
<constant name="ArrowHeight" value="5"/>
<constant name="ButtonIPad" value="3"/>
<constant name="ThickLineWidth" value="3"/>
<constant name="IconTitleSpacing" value="2"/>
<constant name="SpacerWidth" value="7"/>
<constant name="SpacerHeight" value="11"/>
<!-- Buttons -->
<draw_ops name="button_normal_bg">
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="0" y="0" width="width-2" height="height-2"/>
<line color="#BBBBBB"
x1="1"
y1="height-1"
x2="width"
y2="height-1"
width="1"/>
<line color="#BBBBBB"
x1="width-1"
y1="1"
x2="width-1"
y2="height-1"
width="1"/>
<rectangle color="gtk:base[NORMAL]" filled="true"
x="1" y="1" width="width-3" height="height-3"/>
</draw_ops>
<draw_ops name="button_pressed_bg">
<gtk_box state="active" shadow="in" x="0" y="0" width="width" height="height"/>
</draw_ops>
<draw_ops name="menu_button">
<clip x="0" y="0" width="width" height="height"/>
<icon x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
y="(height-mini_icon_height) / 2"
width="mini_icon_width-1" height="mini_icon_height-1"/>
</draw_ops>
<draw_ops name="menu_button_normal">
<include name="menu_button"/>
</draw_ops>
<draw_ops name="menu_button_pressed">
<include name="menu_button"/>
</draw_ops>
<draw_ops name="minimize_button">
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad"
y1="height - ButtonIPad - ThickLineWidth + 1"
x2="width - ButtonIPad-1"
y2="height - ButtonIPad - ThickLineWidth + 1"
width="ThickLineWidth"/>
</draw_ops>
<draw_ops name="minimize_button_normal">
<include name="button_normal_bg"/>
<include name="minimize_button"/>
</draw_ops>
<draw_ops name="minimize_button_pressed">
<include name="button_pressed_bg"/>
<include name="minimize_button"/>
</draw_ops>
<draw_ops name="maximize_button">
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-2" height="height-ButtonIPad*2-2"/>
<line color="gtk:fg[NORMAL]" width="2"
x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad-1" y2="ButtonIPad+1"/>
</draw_ops>
<draw_ops name="maximize_button_normal">
<include name="button_normal_bg"/>
<include name="maximize_button"/>
</draw_ops>
<draw_ops name="maximize_button_pressed">
<include name="button_pressed_bg"/>
<include name="maximize_button"/>
</draw_ops>
<draw_ops name="mini_window_icon">
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="0" y="0" width="width-3" height="height-3"/>
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="0" y="0" width="width-3" height="height-3"/>
<line color="gtk:fg[NORMAL]" width="1"
x1="0" y1="1" x2="width-1" y2="1"/>
</draw_ops>
<draw_ops name="restore_button">
<include name="mini_window_icon"
x="ButtonIPad" y="ButtonIPad"
width="width - 5 - ButtonIPad"
height="height - 5 - ButtonIPad"/>
<include name="mini_window_icon"
x="3 + ButtonIPad" y="3 + ButtonIPad"
width="width - 5 - ButtonIPad"
height="height - 5 - ButtonIPad"/>
</draw_ops>
<draw_ops name="restore_button_normal">
<include name="button_normal_bg"/>
<include name="restore_button"/>
</draw_ops>
<draw_ops name="restore_button_pressed">
<include name="button_pressed_bg"/>
<include name="restore_button"/>
</draw_ops>
<draw_ops name="close_button">
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad" y1="ButtonIPad"
x2="width - ButtonIPad - 2" y2="height - ButtonIPad - 2"/>
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad" y1="height - ButtonIPad - 2"
x2="width - ButtonIPad - 2" y2="ButtonIPad"/>
</draw_ops>
<draw_ops name="shade_button">
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad"
y1="ButtonIPad"
x2="width - ButtonIPad-1"
y2="ButtonIPad"
width="ThickLineWidth"/>
</draw_ops>
<draw_ops name="unshade_button">
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad"
y1="ButtonIPad"
x2="width - ButtonIPad-1"
y2="ButtonIPad"
width="ThickLineWidth"/>
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="ButtonIPad"
y="ButtonIPad*2"
width="width - ButtonIPad*2-1"
height="height - ButtonIPad*3-1"/>
</draw_ops>
<draw_ops name="above_button">
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad"
y1="height/2"
x2="ButtonIPad + 2"
y2="height/2"
width="ThickLineWidth"/>
<line color="gtk:fg[NORMAL]"
x1="width - ButtonIPad-1"
y1="height/2"
x2="width - ButtonIPad-3"
y2="height/2"
width="ThickLineWidth"/>
<line color="gtk:fg[NORMAL]"
x1="width/2-1"
y1="height - ButtonIPad - 2"
x2="width/2+1"
y2="height - ButtonIPad - 2"
width="ThickLineWidth"/>
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad"
y1="ButtonIPad"
x2="width - ButtonIPad-1"
y2="ButtonIPad"
width="ThickLineWidth"/>
</draw_ops>
<draw_ops name="unabove_button">
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad"
y1="height/2"
x2="ButtonIPad + 2"
y2="height/2"
width="ThickLineWidth"/>
<line color="gtk:fg[NORMAL]"
x1="width - ButtonIPad-1"
y1="height/2"
x2="width - ButtonIPad-3"
y2="height/2"
width="ThickLineWidth"/>
<line color="gtk:fg[NORMAL]"
x1="width/2-1"
y1="height - ButtonIPad - 2"
x2="width/2+1"
y2="height - ButtonIPad - 2"
width="ThickLineWidth"/>
<line color="gtk:fg[NORMAL]"
x1="width/2-1"
y1="ButtonIPad"
x2="width/2+1"
y2="ButtonIPad"
width="ThickLineWidth"/>
</draw_ops>
<draw_ops name="stick_button">
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad" y1="ButtonIPad"
x2="ButtonIPad" y2="height - ButtonIPad - 2"/>
<line color="gtk:fg[NORMAL]"
x1="ButtonIPad" y1="height/2-1"
x2="width - ButtonIPad - 2" y2="height/2-1"/>
</draw_ops>
<draw_ops name="unstick_button">
<line color="gtk:fg[NORMAL]"
x1="width/2" y1="ButtonIPad"
x2="width/2" y2="height - ButtonIPad - 2"/>
<line color="gtk:fg[NORMAL]"
x1="width/2" y1="height/2-1"
x2="width - ButtonIPad - 2" y2="height/2-1"/>
<line color="gtk:fg[NORMAL]"
x1="width-ButtonIPad-2" y1="height/2-3"
x2="width-ButtonIPad-2" y2="height/2+2"/>
</draw_ops>
<draw_ops name="close_button_normal">
<include name="button_normal_bg"/>
<include name="close_button"/>
</draw_ops>
<draw_ops name="close_button_pressed">
<include name="button_pressed_bg"/>
<include name="close_button"/>
</draw_ops>
<draw_ops name="shade_button_normal">
<include name="button_normal_bg"/>
<include name="shade_button"/>
</draw_ops>
<draw_ops name="shade_button_pressed">
<include name="button_pressed_bg"/>
<include name="shade_button"/>
</draw_ops>
<draw_ops name="unshade_button_normal">
<include name="button_normal_bg"/>
<include name="unshade_button"/>
</draw_ops>
<draw_ops name="unshade_button_pressed">
<include name="button_pressed_bg"/>
<include name="unshade_button"/>
</draw_ops>
<draw_ops name="above_button_normal">
<include name="button_normal_bg"/>
<include name="above_button"/>
</draw_ops>
<draw_ops name="above_button_pressed">
<include name="button_pressed_bg"/>
<include name="above_button"/>
</draw_ops>
<draw_ops name="unabove_button_normal">
<include name="button_normal_bg"/>
<include name="unabove_button"/>
</draw_ops>
<draw_ops name="unabove_button_pressed">
<include name="button_pressed_bg"/>
<include name="unabove_button"/>
</draw_ops>
<draw_ops name="stick_button_normal">
<include name="button_normal_bg"/>
<include name="stick_button"/>
</draw_ops>
<draw_ops name="stick_button_pressed">
<include name="button_pressed_bg"/>
<include name="stick_button"/>
</draw_ops>
<draw_ops name="unstick_button_normal">
<include name="button_normal_bg"/>
<include name="unstick_button"/>
</draw_ops>
<draw_ops name="unstick_button_pressed">
<include name="button_pressed_bg"/>
<include name="unstick_button"/>
</draw_ops>
<draw_ops name="outer_bevel">
<rectangle color="gtk:fg[NORMAL]"
x="0" y="0" width="width-1" height="height-1"/>
<line color="gtk:light[NORMAL]"
x1="1" y1="1" x2="1" y2="height-2"/>
<line color="gtk:light[NORMAL]"
x1="1" y1="1" x2="width-2" y2="1"/>
<line color="gtk:dark[NORMAL]"
x1="width-2" y1="1" x2="width-2" y2="height-2"/>
<line color="gtk:dark[NORMAL]"
x1="1" y1="height-2" x2="width-2" y2="height-2"/>
</draw_ops>
<draw_ops name="blank">
<!-- nothing -->
</draw_ops>
<draw_ops name="focus_outline">
<rectangle color="gtk:fg[NORMAL]"
x="left_width-1" y="top_height-1"
width="width-left_width-right_width+1"
height="height-top_height-bottom_height+1"/>
</draw_ops>
<draw_ops name="focus_background">
<include name="outer_bevel"/>
<include name="focus_outline"/>
</draw_ops>
<draw_ops name="background_unfocused">
<include name="outer_bevel"/>
<include name="focus_outline"/>
</draw_ops>
<draw_ops name="title_box">
<rectangle color="gtk:fg[NORMAL]" filled="false"
x="0" y="1" width="width-SpacerWidth+3" height="height-2"/>
<line color="#BBBBBB"
x1="2"
y1="height-2"
x2="width-SpacerWidth+2"
y2="height-2"
width="1"/>
<line color="#BBBBBB"
x1="width-5"
y1="2"
x2="width-SpacerWidth+2"
y2="height-2"
width="1"/>
<rectangle color="gtk:bg[SELECTED]" filled="true"
x="1" y="2" width="width-5" height="height-3"/>
</draw_ops>
<draw_ops name="title_spacer">
<gtk_vline state="normal" x="width+1-SpacerWidth/2"
y1="(height-SpacerHeight)/2"
y2="height - (height-SpacerHeight)/2"/>
</draw_ops>
<draw_ops name="title_text_focused_no_icon">
<clip x="3" y="2" width="width-SpacerWidth-2" height="height-4"/>
<title color="gtk:fg[SELECTED]"
x="(3 `max` (width-title_width)) / 2+2"
y="((height - title_height) / 2) `max` 0"/>
</draw_ops>
<draw_ops name="title_text_no_icon">
<clip x="3" y="2" width="width-SpacerWidth-2" height="height-4"/>
<title color="gtk:fg[NORMAL]"
x="(3 `max` (width-title_width)) / 2+2"
y="((height - title_height) / 2) `max` 0"/>
</draw_ops>
<draw_ops name="title_normal">
<include name="title_text_no_icon"/>
</draw_ops>
<draw_ops name="title_focused">
<include name="title_box"/>
<include name="title_text_focused_no_icon"/>
</draw_ops>
<draw_ops name="title_utility">
<include name="title_spacer"/>
<include name="title_text_no_icon"/>
</draw_ops>
<draw_ops name="title_utility_focused">
<include name="title_box"/>
<include name="title_spacer"/>
<include name="title_text_focused_no_icon"/>
</draw_ops>
<frame_style name="normal_unfocused" geometry="normal">
<piece position="entire_background" draw_ops="background_unfocused"/>
<piece position="title" draw_ops="title_normal"/>
<!-- we don't specify for prelight, so normal is used -->
<button function="close" state="normal" draw_ops="close_button_normal"/>
<button function="close" state="pressed" draw_ops="close_button_pressed"/>
<button function="minimize" state="normal" draw_ops="minimize_button_normal"/>
<button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/>
<button function="maximize" state="normal" draw_ops="maximize_button_normal"/>
<button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/>
<button function="menu" state="normal" draw_ops="menu_button_normal"/>
<button function="menu" state="pressed" draw_ops="menu_button_pressed"/>
<button function="shade" state="normal" draw_ops="shade_button_normal"/>
<button function="shade" state="pressed" draw_ops="shade_button_pressed"/>
<button function="unshade" state="normal" draw_ops="unshade_button_normal"/>
<button function="unshade" state="pressed" draw_ops="unshade_button_pressed"/>
<button function="above" state="normal" draw_ops="above_button_normal"/>
<button function="above" state="pressed" draw_ops="above_button_pressed"/>
<button function="unabove" state="normal" draw_ops="unabove_button_normal"/>
<button function="unabove" state="pressed" draw_ops="unabove_button_pressed"/>
<button function="stick" state="normal" draw_ops="stick_button_normal"/>
<button function="stick" state="pressed" draw_ops="stick_button_pressed"/>
<button function="unstick" state="normal" draw_ops="unstick_button_normal"/>
<button function="unstick" state="pressed" draw_ops="unstick_button_pressed"/>
</frame_style>
<frame_style name="normal_focused" geometry="normal" parent="normal_unfocused">
<piece position="entire_background" draw_ops="focus_background"/>
<piece position="title" draw_ops="title_focused"/>
</frame_style>
<frame_style name="maximized_unfocused" geometry="normal_small_borders" parent="normal_unfocused">
<piece position="entire_background" draw_ops="blank"/>
<button function="maximize" state="normal" draw_ops="restore_button_normal"/>
<button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
</frame_style>
<frame_style name="maximized_focused" geometry="normal_small_borders" parent="normal_focused">
<piece position="entire_background" draw_ops="focus_outline"/>
<button function="maximize" state="normal" draw_ops="restore_button_normal"/>
<button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
</frame_style>
<frame_style name="utility_unfocused" geometry="utility" parent="normal_unfocused">
<piece position="title" draw_ops="title_utility"/>
</frame_style>
<frame_style name="utility_focused" geometry="utility" parent="normal_focused">
<piece position="title" draw_ops="title_utility_focused"/>
</frame_style>
<frame_style name="border" geometry="border" parent="normal_unfocused">
<piece position="entire_background" draw_ops="outer_bevel"/>
<piece position="title" draw_ops="blank"/>
</frame_style>
<frame_style_set name="normal">
<frame focus="yes" state="normal" resize="both" style="normal_focused"/>
<frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
<frame focus="yes" state="maximized" style="maximized_focused"/>
<frame focus="no" state="maximized" style="maximized_unfocused"/>
<frame focus="yes" state="shaded" style="normal_focused"/>
<frame focus="no" state="shaded" style="normal_unfocused"/>
<frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/>
<frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/>
</frame_style_set>
<frame_style_set name="utility" parent="normal">
<frame focus="yes" state="normal" resize="both" style="utility_focused"/>
<frame focus="no" state="normal" resize="both" style="utility_unfocused"/>
<!-- this is a bunch of crack since utility windows shouldn't be maximized -->
<frame focus="yes" state="maximized" style="utility_focused"/>
<frame focus="no" state="maximized" style="utility_unfocused"/>
<frame focus="yes" state="shaded" style="utility_focused"/>
<frame focus="no" state="shaded" style="utility_unfocused"/>
<frame focus="yes" state="maximized_and_shaded" style="utility_focused"/>
<frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/>
</frame_style_set>
<frame_style_set name="border">
<frame focus="yes" state="normal" resize="both" style="border"/>
<frame focus="no" state="normal" resize="both" style="border"/>
<frame focus="yes" state="maximized" style="border"/>
<frame focus="no" state="maximized" style="border"/>
<frame focus="yes" state="shaded" style="border"/>
<frame focus="no" state="shaded" style="border"/>
<frame focus="yes" state="maximized_and_shaded" style="border"/>
<frame focus="no" state="maximized_and_shaded" style="border"/>
</frame_style_set>
<window type="normal" style_set="normal"/>
<window type="dialog" style_set="normal"/>
<window type="modal_dialog" style_set="normal"/>
<window type="menu" style_set="normal"/>
<window type="utility" style_set="utility"/>
<window type="border" style_set="border"/>
<menu_icon function="close" state="normal" draw_ops="close_button_normal"/>
<menu_icon function="maximize" state="normal" draw_ops="maximize_button_normal"/>
<menu_icon function="unmaximize" state="normal" draw_ops="restore_button_normal"/>
<menu_icon function="minimize" state="normal" draw_ops="minimize_button_normal"/>
</metacity_theme>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 B

Some files were not shown because too many files have changed in this diff Show More