Merge branch 'master' of ssh://walters@git.gnome.org/git/gnome-shell

This commit is contained in:
Colin Walters 2009-02-17 11:38:25 -05:00
commit ac286a7722
2 changed files with 33 additions and 22 deletions

View File

@ -42,27 +42,6 @@ function start() {
for (let i = 0; i < children.length; i++) for (let i = 0; i < children.length; i++)
children[i].destroy(); children[i].destroy();
// metacity-clutter currently uses the same prefs as plain metacity,
// which probably means we'll be starting out with multiple workspaces;
// remove any unused ones
let windows = global.get_windows();
let maxWorkspace = 0;
for (let i = 0; i < windows.length; i++) {
let win = windows[i];
if (!win.get_meta_window().is_on_all_workspaces() &&
win.get_workspace() > maxWorkspace) {
maxWorkspace = win.get_workspace();
}
}
let screen = global.screen;
if (screen.n_workspaces > maxWorkspace) {
for (let w = screen.n_workspaces - 1; w > maxWorkspace; w--) {
let workspace = screen.get_workspace_by_index(w);
screen.remove_workspace(workspace, 0);
}
}
global.connect('panel-run-dialog', function(panel) { global.connect('panel-run-dialog', function(panel) {
// Make sure not more than one run dialog is shown. // Make sure not more than one run dialog is shown.
if (!runDialog) { if (!runDialog) {
@ -92,6 +71,38 @@ function start() {
show_overlay(); show_overlay();
} }
}); });
Mainloop.idle_add(_removeUnusedWorkspaces);
}
// metacity-clutter currently uses the same prefs as plain metacity,
// which probably means we'll be starting out with multiple workspaces;
// remove any unused ones. (We do this from an idle handler, because
// global.get_windows() still returns NULL at the point when start()
// is called.)
function _removeUnusedWorkspaces() {
let global = Shell.Global.get();
let windows = global.get_windows();
let maxWorkspace = 0;
for (let i = 0; i < windows.length; i++) {
let win = windows[i];
if (!win.get_meta_window().is_on_all_workspaces() &&
win.get_workspace() > maxWorkspace) {
maxWorkspace = win.get_workspace();
}
}
let screen = global.screen;
if (screen.n_workspaces > maxWorkspace) {
for (let w = screen.n_workspaces - 1; w > maxWorkspace; w--) {
let workspace = screen.get_workspace_by_index(w);
screen.remove_workspace(workspace, 0);
}
}
return false;
} }
// Used to go into a mode where all keyboard and mouse input goes to // Used to go into a mode where all keyboard and mouse input goes to

View File

@ -126,7 +126,7 @@ if test x$system = xMandrivaLinux ; then
for pkg in ffi5-devel libxdamage-devel gtk-doc gnome-common gnome-doc-utils libxulrunner-devel \ for pkg in ffi5-devel libxdamage-devel gtk-doc gnome-common gnome-doc-utils libxulrunner-devel \
librsvg2-devel libgnomeui2-devel xterm x11-apps x11-server-xephyr \ librsvg2-devel libgnomeui2-devel xterm x11-apps x11-server-xephyr \
libwnck-1-devel libGConf2-devel readline-devel flex bison GL-devel \ libwnck-1-devel libGConf2-devel readline-devel flex bison GL-devel \
zenity intltool ; do zenity intltool mesa-demos ; do
if ! rpm -q --whatprovides $pkg > /dev/null 2>&1; then if ! rpm -q --whatprovides $pkg > /dev/null 2>&1; then
reqd="$pkg $reqd" reqd="$pkg $reqd"
fi fi