~compiz-team/compiz/0.9.10

« back to all changes in this revision

Viewing changes to plugins/decor/src/compiz-decorator

  • Committer: timo.jyrinki at canonical
  • Date: 2012-07-12 11:08:19 UTC
  • mfrom: (3248.2.2)
  • mto: (3248.7.1 revert)
  • mto: This revision was merged to the branch mainline in revision 3451.
  • Revision ID: timo.jyrinki@canonical.com-20120712110819-mdhklf52rksyg4ev
* New upstream snapshot.
- Fix Compiz crash in movementWindowOnScreen (LP: #1015151)
- Start window decorator when decor plugin starts (LP: #1014461)
- Fixed: Crash in compiz::wall::movementWindowOnScreen (LP: #1015151)
- Don't waste memory leaving /bin/sh running (LP: #1015422)
- Add reliable detection of the compiz bin directory (LP: #1015898)
- Check if the window would actually paint before painting the shadow, 
  since it is possible that another plugin could be inhibiting paint of 
  the dock   window. (LP: #1012956)
- Don't insert the window into the server list above the window it was
  created above. (LP: #1008020) (LP: #886605)
- makes compiz enhanced zoom and show mouse plugins considerably
  smoother to use (LP: #930783)
- Don't set decoration contexts on undecorated windows, since that 
  might be read later and code will assume the window is decorated when 
  it isn't. (LP: #1015593)
- Fix potentially unterminated string leading to an uninitialized memory
  read (LP: #1018302)
- Lift the 31/32 character restriction on key names that was causing so many
  warnings. It's now 1024 characters according to glib. (LP: #1018730)
- Don't print the result of BUILD_DEB. It prevents ccsm et al from installing.
  (LP: #1018916)
- Use the XDamage extension more efficiently (the way it was designed to be
  used). This dramatically reduces CPU usage, reduces wakeups, and increases
  frame rates. It also solves at least one observed performance bug
  (LP: #1007299) and probably several more.
- Do the initial work to get libcompizconfig under test. (LP: #990690)
- Add support for initiating window picker in other than nomal mode. For now
  added only the additional 'All windows' picker (LP: #933776) (LP: #955035)
- Fixes (LP: #1018602) : An invalid read when using g_variant_iter_loop.
- Don't allow unbinds of textures kept around for animations in any case, 
  not just resizing. (LP: #1016366)
- Wait for the server to finish processing requests before doing a bind
  (LP: #1016367)
- Using the next/previous bindings the wall plugin didn't calculate 
  correctly the next workspace when it reaches the begin or the end of a 
  row of workspaces, so it didn't jump to the next line. (LP: #904205).
- Added the plug-in "Stack Window Switcher" converted from git to bzr 
  (including full history) to Compiz. (LP: #1012205)
- Added the unsupported, but fully working plug-in "workspacenames"
- Added the plug-in "Trip" (LP: #1012213)
- Add extra checks to avoid passing an invalid xid to XGetWindowProperty 
  which would result in fatal error: BadWindow (invalid Window parameter).
  (LP: #1019337)
* Update compiz-core.lintian-overrides
* Enable GSettings backend and install the schema files
* Switch the default profile to use gsettings 
* Add dependency on gsettings-desktop-schemas(-dev)
* Add compiz-gnome.gsettings-override

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
# Starts Compiz Decorator depending on the DE
 
3
 
4
# Copyright (c) 2007 CyberOrg <cyberorg@cyberorg.info>
 
5
# Based on compiz-manager script by Kristian Lyngstøl <kristian@bohemians.org>
 
6
# This program is free software; you can redistribute it and/or modify
 
7
# it under the terms of the GNU General Public License as published by
 
8
# the Free Software Foundation; either version 2 of the License, or
 
9
# (at your option) any later version.
 
10
#
 
11
# This program is distributed in the hope that it will be useful,
 
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
# GNU General Public License for more details.
 
15
#
 
16
#
 
17
# You should have received a copy of the GNU General Public License
 
18
# along with this program; if not, write to the Free Software
 
19
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
20
#
 
21
# Contributions by: crdlb
 
22
# Modifications by: Daniel van Vugt <daniel.van.vugt@canonical.com>
 
23
#
 
24
 
 
25
if [ -z "$COMPIZ_BIN_PATH" ]; then
 
26
    COMPIZ_BIN_PATH="/usr/bin/"
 
27
fi
 
28
KWIN=`which kwin`
 
29
METACITY="/usr/bin/metacity"
 
30
 
 
31
#
 
32
# Default to gtk/kde4-window-decorator
 
33
#
 
34
USE_EMERALD="no"
 
35
DECORATOR=""
 
36
 
 
37
#Do not leave users without decoration if decorator fails
 
38
if [ "$DESKTOP_SESSION" = "kde" ]; then
 
39
    FALLBACKWM="${KWIN}"
 
40
else
 
41
    FALLBACKWM="${METACITY}"
 
42
fi
 
43
FALLBACKWM_OPTIONS=" --replace"
 
44
 
 
45
#
 
46
# Set to yes to enable verbose
 
47
#
 
48
VERBOSE="yes"
 
49
 
 
50
#
 
51
# Echos the arguments if verbose
 
52
#
 
53
verbose()
 
54
{
 
55
    if [ "x$VERBOSE" = "xyes" ]; then
 
56
        printf "$*"
 
57
    fi
 
58
}
 
59
 
 
60
# Read configuration from XDG paths
 
61
if [ -z "$XDG_CONFIG_DIRS" ]; then
 
62
    test -f /etc/xdg/compiz/compiz-manager && . /etc/xdg/compiz/compiz-manager
 
63
else
 
64
    test -f $XDG_CONFIG_DIRS/compiz/compiz-manager && . $XDG_CONFIG_DIRS/compiz/compiz-manager
 
65
fi
 
66
 
 
67
if [ -z "$XDG_CONFIG_HOME" ]; then
 
68
    test -f $HOME/.config/compiz/compiz-manager && . $HOME/.config/compiz/compiz-manager
 
69
else
 
70
    test -f $XDG_CONFIG_HOME/compiz/compiz-manager && .  $XDG_CONFIG_HOME/compiz/compiz-manager
 
71
fi
 
72
 
 
73
# start a decorator
 
74
if [ -x ${COMPIZ_BIN_PATH}emerald ] && [ "$USE_EMERALD" = "yes" ]; then
 
75
    DECORATOR=emerald
 
76
elif [ -x ${COMPIZ_BIN_PATH}gtk-window-decorator ] && [ -n "$GNOME_DESKTOP_SESSION_ID" ]; then
 
77
    DECORATOR=gtk-window-decorator
 
78
elif [ -x ${COMPIZ_BIN_PATH}kde4-window-decorator ] && [ x$KDE_SESSION_VERSION = x"4" ]; then
 
79
    DECORATOR=kde4-window-decorator
 
80
fi
 
81
 
 
82
# fall back to any decorator that is installed
 
83
if [ -z "$DECORATOR" ]; then
 
84
    verbose "Couldn't find a perfect decorator match; trying all decorators\n"
 
85
    if [ -x ${COMPIZ_BIN_PATH}emerald ]; then
 
86
        DECORATOR=emerald
 
87
    elif [ -x ${COMPIZ_BIN_PATH}gtk-window-decorator ]; then
 
88
        DECORATOR=gtk-window-decorator
 
89
    elif [ -x ${COMPIZ_BIN_PATH}kde4-window-decorator ]; then
 
90
        DECORATOR=kde4-window-decorator
 
91
    fi
 
92
fi
 
93
 
 
94
if [ -n "$DECORATOR" ]; then
 
95
    verbose "Starting ${DECORATOR}\n"
 
96
    exec ${COMPIZ_BIN_PATH}$DECORATOR "$@"
 
97
else
 
98
    verbose "Found no decorator to start\n"
 
99
    exec $FALLBACKWM $FALLBACKWM_OPTIONS
 
100
fi
 
101