[compiz] [ANNOUNCE] compiz-0.8.0

Danny Baumann dannybaumann at web.de
Fri Feb 20 09:46:44 PST 2009

A new compiz release 0.8.0 is now available from:


    which can be verified with:

        52c30ac2ca0dfe2ba2d027d80ee6be038a844958  compiz-0.8.0.tar.gz

        (signed by )

  Additionally, a git clone of the source tree:

        git clone git://git.compiz.org/compiz/core

    will include a signed compiz-0.8.0 tag which points to a commit

    which can be verified with:
        git verify-tag compiz-0.8.0

    and can be checked out with a command such as:
        git checkout -b build compiz-0.8.0


New plugin "commands" that handles the bindings for arbitrary commands
previously were handled in core. In addition to the previously present
bindings button and edge bindings were added as well.

New plugin "gnomecompat" which handles bindings that are exclusively
in the Gnome desktop environment and removed the corresponding bindings
from core. This change fixes main menu and run dialog bindings for KDE
as those previously were conflicting between compiz and KDE. Gnome users
upgrading should make sure to enable this plugin.

Added support for _NET_WM_FULLSCREEN_MONITORS EWMH hint.

Added support for reading the icon hint from the WM_HINTS property if
_NET_WM_ICON is not available.

Update Gnome support for Gnome 2.24.

Added options to scale plugin that allow "toggle type" behaviour for
key and button bindings.

Several memory leak fixes.

Adjusted gtk-window-decorator for newer libmetacity-private versions.

Fixed gtk-window-decorator display for RTL languages.

Adjusted kde4-window-decorator for KDE 4.2 API.

Large number of minor bug fixes, especially in resize handling and
stacking code.

Translation updates



Changes since compiz-0.7.8:

C-F Language team (6):
      l10n updates
      l10n updates
      l10n updates
      l10n updates
      l10n updates
      l10n updates

Christopher Williams (1):
      Fix compatibility with newer libmetacity-private versions.
GtkStyle is colormap specific, so we can't use a new colormap each time
we create a pixmap.

Danny Baumann (114):
      Post release version increment.
      Fix a number of potential memleaks in XGetWindowProperty return
value handling.
      Update switcher window internal state on map.
      Fix potential memleak.
      Make sure geometry rectangle is kept inside the screen area.
      Make viewportForGeometry not take the current viewport into
      Make sure window decorations aren't hidden under panels during
      Ensure windows fit in the work area when placing them by calling
the window sizing validation function.
      Ignore _NET_WM_STATE_HIDDEN property changes as suggested by EWMH.
      Change state property only on managed windows.
      Use changeWindowState function.
      Make sure window state property is correct when mapping windows.
      Also treat utility, menu and toolbar windows as group transients.
      Handle desktops a bit better.
      We want to prevent focus for windows that are not on the current
      active_window_changed only updates d->active if decorations are
present, so setting d->active before creating decorations may lead to
incorrect results.
      Validate size before placing and make sure the size validation
function only respects USPosition if the window fits on the work area.
      After adding windows on startup, re-sync the internal stack order
with X.
      Consume X key press event for arrow key presses in scale mode.
That makes sure that bindings of other plugins are not trigger
accidentially. The scenario for that is e.g. Scale being bound to Ctrl
+Shift+Up and some other binding being bound to Ctrl+Shift+Left/Right.
      Added options for making scale's key and button bindings adding as
toggle switches.
      Check focusWindow function before focussing a window due to click
or enter event.
      Drop type check in resize validation function.
      Don't set demands_attention state if the window explicitly
requested not to get focus.
      Also check focusWindow function when processing focus request
client messages.
      Revert "Also check focusWindow function when processing focus
request client messages."
      Sync validated size on initial map to X before placement to make
sure the window placement function picks up the new size.
      We have 5 options, not 4.
      Load scale after fade.
      Always set the LIBGL_ALWAYS_INDIRECT environment variable to 1 if
indirect rendering was requested.
      Fix typo.
      Added support for reading icons from old-school icon pixmaps if
_NET_WM_ICON is not present.
      Raise window on move/resize initiation in raise-on-click mode.
      Fix typo.
      Fix fix formatting for RTL languages.
      Invert button layout for RTL languages.
      Align window menu to the right for RTL languages.
      Fix whitespace.
      Handle "cleared WM hints" case properly.
      Also save process ID to session manager.
      Bring desktop files in line with gnome-session 2.24 changes.
      Enforce 'toggle' mode for key bindings without modifiers.
Rationale is that 'non toggle' mode can only be sensibly use with
modifiers held down. It can't be used with holding a key only due to
      Don't try to place windows over unmanaged parents.
      SM spec says that SmUserID is a required property.
      Always register as "compiz" to the SM, even if that does not match
the binary name.
      Plug minor memory leak.
      Plug small memory leak.
      Allow "toggle maximize horizontally" and "toggle maximize
vertically" as
      Update Gnome WM applet for gtk-window-decorator changes.
      Make strings translatable.
      Use glib i18n header file and compiz text domain.
      Cleanup: Use glib i18n headers.
      Ignore desktop hints set by previous WM by default.
      Respect DESTDIR for desktop file installation.
      Screens are not necessarily initialized at InitDisplay time.
      Screens are not necessarily initialized at InitDisplay time.
      Try to keep windows on their viewports on screen size changes.
      Make sure active fullscreen windows are always on top.
      Move hide_skip_taskbar_windows option out of keybindings group.
      Use "any" as default match for alpha blur.
      Always show error messages generated by dlopen().
      Set PAINT_WINDOW_TRANSLUCENT_MASK when modifying opacity.
      Load obs after blur so blur sees PAINT_WINDOW_TRANSLUCENT_MASK set
      Apply fixed placement rules even for unmovable windows.
      Bring fullscreen rectangle calculation in line with EWMH.
      Make sure active fullscreen windows are always on top.
      Move hide_skip_taskbar_windows option out of keybindings group.
      Use "any" as default match for alpha blur.
      Set PAINT_WINDOW_TRANSLUCENT_MASK when modifying opacity.
      Load obs after blur so blur sees PAINT_WINDOW_TRANSLUCENT_MASK set
      Apply fixed placement rules even for unmovable windows.
      Check return value of XGetWindowAttributes().
      Clear CWWidth/CWHeight for maximized windows before constraining
      Make sure we never decorate desktop and dock windows.
      Only clip struts to output devices they're visible on.
      Stick strictly to the spec when calculation strut sizes.
      Sanity check work area after applying struts.
      Reduce indention depth.
      Fix off-by-one errors in in-output check.
      Plasma::PanelSvg was renamed to Plasma::FrameSvg in KDE 4.2.
      Adapt for new krunner DBus interface in KDE 4.2.
      Implement KDecorationBridge unstable API, needed for KDE 4.2.
      Keep window above other fullscreen windows if its fullscreen state
      Skip frame windows when adding window stack changes.
      Prettify usage output.
      Add obs metadata file to POTFILES.in.
      Map windows that requested not to get focus on top. Rationale is
that when not mapping them on top, chances are high the user won't
notice the appearance of a new window.
      Added commands plugin which provides bindings for arbitrary
      Remove command binding support from core.
      Add commands.xml.in to POTFILES.in.
      Add Gnome compatibility plugin that receives key bindings only
relevant for Gnome.
      Remove Gnome specific key binding support from core.
      Remove run dialog and main menu action support from decorators.
      Update key binding description to gnomecompat plugin addition.
      Bump ABIVERSION.
      Also remove Gnome specific bindings from metadata.
      Fix panel actions not being executed properly.
      Only auto-maximize windows that have a title bar and are allowed
to be maximized.
      Move window position validation to validateWindowResizeRequest
      Fix window resize validation. - Don't do any validation if window
geometry wasn't actually changed. - Fix calculations for windows that
had the left and/or top edges offscreen before the validation.
Reference: http://bugs.freedesktop.org/show_bug.cgi?id=19516
      Fix whitespace.
      Revert "Do not change input focus when EnterNotify event is
generated from"
      Also set foreground color for switcher.
      Only use desktop from startup properties if it's actually set.
      Try to load core plugin before attempting to dlopen() files in
order to
      Add --debug command line switch.
      Add debug output for "plugin not readable" errors.
      Rename short descriptions of command bindings from 1...12 to
0...11. While 1...12 makes more sense, it breaks the translation strings
of the last binding, which is not acceptable at this point.
      Update translation files to get "Run command 0" translated again.
      Set libwnck client type to "pager" so "move to desktop x" works
      Add NEWS entry and bump version for 0.8.0 release.

David Reveman (1):
      Fix placement of windows that can't fit in workspace.

Dennis Kasprzyk (1):
      Use only visible windows for "unredirect fullscreen windows" test.

Erkin Bahceci (5):
      Fix reading of floats in metadata for some locales.
      Don't damage window region on minimize/shade ending.
      Add category, group, subgroup info to metadata.
      Optionally get default plugins from configure param.
      Avoid conflict with Animation by suppressing fading.

Guillaume Seguin (1):
      Update Makefile.am for new releases location

Jigish Gohil (1):
      remove zoom from POTFILES.in too

Kristian Lyngstol (6):
      Remove zoom plugin, this is replaced by Enhanced Zoom in Compiz
      Remove bogus XCB dependency
      Add ABI-saftey net and bump ABI
      Revert "remove zoom from POTFILES.in too"
      Revert "Remove zoom plugin, this is replaced by Enhanced Zoom in
Compiz Fusion"
      Fix warnings in plugins

Michael Vogt (1):
      Build fix for srcdir != builddir.

More information about the compiz mailing list