Bug#945574: mutter: workspace movement animations are incorrect

David Peverley pev at high-resolution.co.uk
Wed Nov 27 09:29:35 GMT 2019


Package: mutter
Version: 3.30.2-9~deb10u1
Severity: normal
Tags: patch

Dear Maintainer,

On Buster, mutter has a bug in it where animations when moving workspaces are
incorrect (and confusing!). For example, if one creates a virtual desktop grid
of 9x9, the up/down movement animations are correct, but left/right movements
cause the up/down animations to be used.

This appears to be a known issue : 
https://gitlab.gnome.org/GNOME/mutter/issues/270

Fixed by the following commit : 
https://gitlab.gnome.org/GNOME/mutter/merge_requests/245/diffs?commit_id=97a3a9b24b36111155003467d5fac6bb1ec1c60e

Ideally this could be backported into this 3.30 version.

I haven't personally tested this as new to Debian and unsure of the correct
process to locally test re-building / testing with a patch. Would be happy to
give it a crack if given a few pointers.




-- System Information:
Debian Release: 10.2
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-6-amd64 (SMP w/16 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages mutter depends on:
ii  gnome-settings-daemon-common  3.30.2-3
ii  gsettings-desktop-schemas     3.28.1-1
ii  libc6                         2.28-10
ii  libglib2.0-0                  2.58.3-2+deb10u2
ii  libmutter-3-0                 3.30.2-9~deb10u1
ii  libx11-6                      2:1.6.7-1
ii  libxcomposite1                1:0.4.4-2
ii  mutter-common                 3.30.2-9~deb10u1
ii  zenity                        3.30.0-2

mutter recommends no packages.

Versions of packages mutter suggests:
ii  gnome-control-center  1:3.30.3-2~deb10u1
ii  xdg-user-dirs         0.17-2

-- no debconf information
-------------- next part --------------

= System install (Debian 10.1) =

== Initial User Config ==

Install with the username "tester" as can leave if a test system.

Use `su` and add tester to sudo group.

After that, add usernames and groups for A&M :

{{{
# User and groups following A&M convention
sudo addgroup --gid 1999 devel 
sudo adduser --uid 1052 --gid 1999 pev
}}}

Then add other groups that get set up for standard Ubuntu super-users : 
{{{
sudo usermod -aG sudo pev
sudo usermod -aG adm pev
sudo usermod -aG cdrom pev
sudo usermod -aG dip pev
sudo usermod -aG plugdev pev
}}}

Log in as pev.

Make a local bin-dir :

{{{
mkdir ~/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
}}}



== Initial Configuration ==

Add to `/etc/apt/sources.list.d/buster-non-free.list`  :

{{{
deb http://ftp.uk.debian.org/debian/ buster main contrib non-free
deb-src http://ftp.uk.debian.org/debian/ buster main contrib non-free

deb http://security.debian.org/ buster/updates main contrib non-free
deb-src http://security.debian.org/ buster/updates main contrib non-free
}}}

Add to `/etc/apt/sources.list.d/buster-backports.list`  :

{{{
deb http://deb.debian.org/debian buster-backports main contrib non-free
}}}

Update from apt and upgrade where possible :

{{{
sudo apt update
sudo apt upgrade -y
}}}

Install some useful packages that we need for basic configuration :

{{{
sudo apt install -y emacs net-tools bash-completion rsync locate gdebi
sudo apt install -y git build-essential linux-headers-$(uname -r)
}}}


Upgrade packages from backports to avoid potential dependency problems :

{{{
sudo apt-get -t buster-backports upgrade
sudo apt autoremove
shutdown -r now
}}}

Install later kernel from backports :

{{{
# TODO : Doesn't seem to work currently, use a specific version
#sudo apt install -t buster-backports linux-image-amd64
#sudo apt install -t buster-backports linux-image-5.2.0-0.bpo.2-amd64
sudo apt install -t buster-backports linux-image-5.3.0-0.bpo.2-amd64-unsigned
}}}

Install non-free firmware and intel microcode :

{{{
sudo apt install -t buster-backports firmware-linux firmware-linux-nonfree intel-microcode firmware-misc-nonfree
}}}

If this is inside a VM, add the vmware tools :

{{{
su -
usermod -aG sudo vmware
usermod -aG adm vmware
exit

sudo apt install -y open-vm-tools open-vm-tools-desktop
sudo shutdown -r now
}}}



=== GDM : Force X11 instead of wayland [optional] ===

Edit the config file `/etc/gdm3/daemon.conf` and add :

{{{
[daemon]
# Uncomment the line below to force the login screen to use Xorg                                                                             
WaylandEnable=false
}}}



=== Hardware Specific : HP ZBook 17 G6 ===

In order to get debian 10.1 to install, I had to do a few things :

  - Use the netinst image not live as it's updated more frequently
  - Configure BIOS to "legacy boot disable, secure boot disable"
  - Configure BIOS to force UMA video on boot (not auto, discrete or hybrid)

=== Hardware Specific : Intel AX200 Wi-Fi ===

Install firmware from buster-backports :

{{{
sudo apt install -t buster-backports firmware-iwlwifi
}}}

Install Intell Wifi backports :

{{{
sudo su -
cd /usr/local/src
git clone https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git
cd backport-iwlwifi
make defconfig-iwlwifi-public
sed -i 's/CPTCFG_IWLMVM_VENDOR_CMDS=y/# CPTCFG_IWLMVM_VENDOR_CMDS is not set/' .config
make -j4
sudo make install
}}}

Install Intel firmware :

{{{
cd /lib/firmware
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware.git/plain/iwlwifi-cc-a0-48.ucode
}}}



=== Hardware Specific : NVidia Quadro RTX 3000 GPU ==

Prior to this, to get to a desktop on the machine with newer video cards, we need to configure the BIOS to only use the "UMA" display card.

Install nvidia drivers from backports and see if we're detected. Currently this appears to install 418.74 : 

{{{
sudo apt -y install nvidia-detect
sudo apt-get install -t buster-backports nvidia-driver 
}}}

Now that we've installed the nvidia driver, we can re-boot and set the BIOS to allow discrete graphics

If we run nvidia detect we see that : 

{{{
nvidia-detect 
}}}

{{{
Detected NVIDIA GPUs:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:1f36] (rev a1)

Checking card:  NVIDIA Corporation Device 1f36 (rev a1)
Uh oh. Your card is not supported by any driver version up to 418.74.
A newer driver may add support for your card.
Newer driver releases may be available in backports, unstable or experimental.
}}}

NOTE : According to Nvidias website, our Quadro RTX 3000 GPU has the following Linux Drivers :

{{{
Linux x64 (AMD64/EM64T) Display Driver       418.113     05.11.2019
Linux x64 (AMD64/EM64T) Display Driver       430.64      05.11.2019
Linux x64 (AMD64/EM64T) Display Driver       440.31      04.11.2019
Linux x64 (AMD64/EM64T) Display Driver BETA  440.26      17.10.2019
Linux x64 (AMD64/EM64T) Display Driver       435.21      29.08.2019
}}}

Debian 10 seems to install 418.77 currently. 

TODO :

  - Install bumblebee for graphics switching if its still current / relevent?
  - What we're going to do is try and install the later nvidia-kernel-dkms driver from 'testing' :
        https://packages.debian.org/sid/nvidia-kernel-dkms
  - Pin the following packages from "testing" :
      nvidia-driver
      nvidia-kernel-dkms



=== Machine Specific : Set up mount of other OS install & workdrive ===

Create some mount-points : 

{{{
# Alternate ubuntu1804 OS Install 
sudo mkdir /mnt/ubuntu1804/
sudo chmod 755 /mnt/ubuntu1804/

# SSD Main Drive
sudo mkdir /mnt/bigssd
sudo chmod 755 /mnt/bigssd

# Workdrive
sudo mkdir /workdrive
sudo chmod 755 /workdrive

# tftpboot
sudo mkdir /tftpboot
sudo chmod 755 /tftpboot
}}}

Also add to `/etc/fstab` for these drives and mounts : 

{{{
# Corsair Big SSD (workdrive / storage / home)
UUID=5a17258e-0694-43a8-8cf6-777edee5f657		/mnt/bigssd	auto	defaults 0 0 

# Ubuntu 18.04 partition
UUID=43317e8a-9dda-4e35-b32e-ae6aaabfb72c		/mnt/ubuntu1804	auto	defaults 0 0 

#
# Bind-mounts
#

/mnt/bigssd/home					/home		auto	defaults,bind	0	0
/mnt/bigssd/opt						/opt		auto	defaults,bind	0	0
/mnt/bigssd/workdrive					/workdrive	auto	defaults,bind	0	0
/mnt/bigssd/tftpboot					/tftpboot	auto	defaults,bind	0	0

#
# External NFS mounts ; noauto
#

odin:/raid/exports/tftpboot				/mnt/tftpboot-odin       nfs     noauto,rw,bg,intr,timeo=600,wsize=32768,rsize=32768,tcp        0       0
phobos:/raid/exports/tftpboot				/mnt/tftpboot-phobos     nfs     noauto,rw,bg,intr,timeo=600,wsize=32768,rsize=32768,tcp        0       0
}}}

Re-boot to allow the mounts to take effect. (esp for home and opt!)



=== Basic Per-User Settings (not root) ===

{{{
# Change <Super> to <Alt> modifier to be consistent with Ubuntu : 
gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier "<Alt>"

# <Super> Right click should be resize
gsettings set org.gnome.desktop.wm.preferences resize-with-right-button true

# Disable screen blackout
gsettings set org.gnome.desktop.session idle-delay 0

# Disable screen lock
gsettings set org.gnome.desktop.screensaver lock-enabled false

# Show date in menu
gsettings set org.gnome.desktop.interface clock-show-date true

# Enable nautilus tree-view
gsettings set org.gnome.nautilus.list-view use-tree-view true

# Make list view default
gsettings set org.gnome.nautilus.preferences default-folder-viewer 'list-view'
gsettings set org.gnome.nautilus.icon-view default-zoom-level 'small'
gsettings set org.gnome.nautilus.list-view default-zoom-level 'small'

# Configure evince for 750MB Page Cache to allow zooming large documents
gsettings set org.gnome.Evince page-cache-size 750

# Workspaces
gsettings set org.gnome.desktop.wm.preferences num-workspaces 8
gsettings set org.gnome.mutter workspaces-only-on-primary false
gsettings set org.gnome.mutter dynamic-workspaces false

# Alt-Tab switch only on current workspace
gsettings set org.gnome.shell.app-switcher current-workspace-only true

# Window controls should be on the left, you monster
gsettings set org.gnome.desktop.wm.preferences button-layout 'close,maximize,minimize:'

# Disable daft accellerometer based screen auto-rotation
gsettings set org.gnome.settings-daemon.peripherals.touchscreen orientation-lock true

# Nobody wants new windows to open full-screen...!
gsettings set org.gnome.mutter auto-maximize false
gsettings set org.gnome.mutter edge-tiling false
gsettings set org.gnome.shell.overrides edge-tiling false

# Disable daft automatic screen rotation :
gsettings set org.gnome.settings-daemon.peripherals.touchscreen orientation-lock true
}}}



=== Install some gnome shell extensions ===

Install gnome tweaks and shell extensions and some sensor packages required :

{{{
sudo apt install -y gnome-tweaks gnome-shell-extensions chrome-gnome-shell
sudo apt install gir1.2-gtop-2.0 gir1.2-nm-1.0 gir1.2-clutter-1.0 lm-sensors hardinfo psensor nvidia-smi
}}}

Visit the gnome extensions web page and allow the shell integration :

  https://extensions.gnome.org/

Then install some obvious extensions...

Dash to Dock :

  https://extensions.gnome.org/extension/307/dash-to-dock/
    - Extend dock full length
    - Disable intelligent autohide

OpenWeather :

  https://extensions.gnome.org/extension/750/openweather/

Caffeine :

  https://extensions.gnome.org/extension/517/caffeine/

Sound Input and output chooser :

  https://extensions.gnome.org/extension/906/sound-output-device-chooser/

Lock keys indicator :

  https://extensions.gnome.org/extension/36/lock-keys/

Vitals :

  https://extensions.gnome.org/extension/1460/vitals/

System monitor :

  https://extensions.gnome.org/extension/120/system-monitor/

Workspace Matrix :

  ** The archive has an old extension **
  https://extensions.gnome.org/extension/1485/workspace-matrix/

  mkdir ~/src/
  git clone https://github.com/mzur/gnome-shell-wsmatrix.git
  ln -s ~/src/gnome-shell-wsmatrix/wsmatrix\@martin.zurowietz.de/ \
    ~/.local/share/gnome-shell/extensions/wsmatrix\@martin.zurowietz.de



== Development Packages (Yocto) ==

Pre-requisites for yocto :

{{{
# Build essentials
sudo apt install -y gawk wget git-core diffstat unzip texinfo gcc-multilib \
  build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
  xz-utils debianutils iputils-ping

# Graphical and Eclipse Plug-In Extras
sudo apt install -y libsdl1.2-dev xterm

# Documentation
sudo apt install -y make xsltproc docbook-utils fop dblatex xmlto

# OpenEmbedded Self-Test 
sudo apt install -y python-git
}}}



== Development Packages (General / System) ==

{{{
sudo apt install -y emacs vim meld

sudo apt install -y mercurial cvs subversion createrepo \
  git-core git git-extras gitk

sudo apt install -y llvm clang sparse strace

sudo apt install -y mono-runtime mono-complete

#sudo apt install -y python-dev  python-setuptools  python-pip  python-tk  python-docutils python-gtkspellcheck
sudo apt install -y python3-dev python3-setuptools python3-pip python3-tk python3-docutils python3-gtkspellcheck

sudo apt install -y tix-dev expect gawk flex bison texinfo \
  automake libtool autoconf libconfig-dev

sudo apt install -y ethtool tcpdump iftop iperf iperf3 lsof netdiag \
  traceroute can-utils i2c-tools nmap dnsutils bmon

sudo apt install -y openssh-server openssh-client apache2 \
  nfs-kernel-server wget curl snarf ncftp diffstat quilt patch

sudo apt install -y avahi-daemon avahi-discover libnss-mdns

sudo apt install -y zip unzip pigz pbzip2 i7z unrar

sudo apt install -y gperf cpufrequtils sysstat minicom htop iotop

sudo apt install -y setserial xterm texinfo chrpath libsdl1.2-dev \
  libncurses5-dev libncurses5 snmp snmpd libsnmp-base libsnmp-dev 

sudo apt install -y hexchat

sudo apt install -y ffmpeg v4l-utils guvcview vlc v4l2ucp

sudo apt install -y libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
  gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc \
  gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 \
  gstreamer1.0-qt5 gstreamer1.0-pulseaudio

sudo apt install -y gimp inkscape

sudo apt install -y libzmq5 libzmq3-dev libconfuse-dev intltool

sudo apt install -y dconf-editor evtest

sudo apt install -y gparted grub-customizer
}}}



=== GIT ===

Install :

{{{
sudo apt install -y git-core git git-extras
}}}

Configure :

{{{
git config --global user.email "pev at high-resolution.co.uk"
git config --global user.name "David Peverley"
}}}



=== ISC DHCP Server ===

Install :

{{{
sudo apt install -y isc-dhcp-server
}}}

Configure interfaces in `/etc/default/isc-dhcp-server` (specific to a particular machine) :

{{{
INTERFACESv4="enp0s31f6"
INTERFACESv6=""
}}}

Example of `/etc/dhcp/dhcpd.conf` :

{{{
# dhcpd.conf                                                                                                              

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;

ddns-update-style none;

#
# ...
#

subnet 192.168.0.0 netmask 255.255.255.0 {
  interface enp0s31f6;

  pool {
    range 192.168.0.80 192.168.0.99;
  }

  next-server 192.168.0.1;
}

host eth8020-27b2 {
  hardware ethernet 54:10:ec:aa:27:b2;
  fixed-address 192.168.0.200;
  option host-name "eth8020-27b2";
}

host eth8020-c7fb {
  hardware ethernet 54:10:ec:aa:c7:fb;
  fixed-address 192.168.0.201;
  option host-name "eth8020-c7fb";
}

host jgs524e-cfcb {
  hardware ethernet a0:40:a0:6f:cf:cb;
  fixed-address 192.168.0.239;
  option host-name "jgs524e-cfcb";
}

}}}


And restart the service :

{{{
systemctl restart isc-dhcp-server.service 
}}}



=== TFTP Server ===

Install :

{{{
sudo apt install -y tftpd-hpa tftp
}}}


Edit the configuration file `/etc/default/tftpd-hpa` :

{{{
TFTP_DIRECTORY="/tftpboot"
}}}

Create the dir :

{{{
# TODO : Put on bigssd
sudo mkdir -p /tftpboot
sudo chmod a+rwx /tftpboot
}}}

Enable and restart the service :

{{{
sudo systemctl enable tftpd-hpa
sudo systemctl restart tftpd-hpa
}}}



=== wireshark ===

Install :

{{{
sudo apt install -y wireshark
}}}

Ensure that user(s) can use wireshark - do for all users required :

{{{
sudo usermod -a -G wireshark $USER
}}}

Remember to logout and in (or re-boot) after.



=== Haroopad ===

{{{
wget https://bitbucket.org/rhiokim/haroopad-download/downloads/haroopad-v0.12.2_amd64.deb
sudo gdebi haroopad-v0.12.2_amd64.deb
}}}



== Third Party / Commercial Packages ==


=== Google Chrome ===

For official chrome :

{{{
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
}}}

And chromium :

{{
sudo apt install -y chromium
}}}



=== Install NetExtender ===

Download NetExtender Linux TGZ 64-Bit from :

  https://sslvpn.demo.sonicwall.com/cgi-bin/welcome

and install pre-requisites :

{{{
sudo apt install net-tools default-jdk
}}}

and install :

{{{
cd ~/Downloads/
tar -xf NetExtender.x86_64.tgz 
cd netExtenderClient/
sudo ./install 
}}}

Fix incorrect lib (not multi-arch) :

{{{
sudo mv /usr/lib64/libNetExtender* /lib/x86_64-linux-gnu/
sudo ldconfig -v
}}}



=== Spotify ===

{{{
curl -sS https://download.spotify.com/debian/pubkey.gpg | sudo apt-key add - 
echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list
sudo apt-get update && sudo apt-get install spotify-client
}}}



=== VMWare Workstation Player ===

{{{
sudo apt install -y libaio1 libcanberra-gtk-module libcanberra-gtk3-module

wget https://www.vmware.com/go/getplayer-linux
chmod +x getplayer-linux
sudo ./getplayer-linux
}}}



=== Beyond Compare (commercial) ===

{{{
sudo apt install -y libqt4-opengl libqtwebkit4 poppler-utils

wget https://www.scootersoftware.com/bcompare-4.3.0.24364_amd64.deb
sudo gdebi bcompare-4.3.0.24364_amd64.deb
}}}



=== Skype ===

{{{
wget https://go.skype.com/skypeforlinux-64.deb
sudo gdebi ./skypeforlinux-64.deb
}}}



=== Nomachine (NX) ===

{{{
# Basic install & pre-reqs
sudo apt install -y libavcodec-extra
wget https://download.nomachine.com/download/6.8/Linux/nomachine_6.8.1_1_amd64.deb
sudo gdebi nomachine_6.8.1_1_amd64.deb
}}}


*** Needs shared libraries adding

{{{
cd ~/Downloads
wget https://download.nomachine.com/download/6.8/Linux/nomachine_6.8.1_1_x86_64.tar.gz
tar -xf nomachine_6.8.1_1_x86_64.tar.gz
sudo ./NX/nxserver --install debian
}}}

Workaround for high CPU usage. edit `/usr/NX/etc/node.cfg` and change : 

{{{
#AudioInterface pulseaudio
AudioInterface disabled
}}}



=== Play On Linux (PoL) ===

{{{
wget -q "http://deb.playonlinux.com/public.gpg" -O- | sudo apt-key add -
sudo wget http://deb.playonlinux.com/playonlinux_bionic.list -O /etc/apt/sources.list.d/playonlinux.list
sudo apt-get update

sudo apt install -y wine-stable winbind playonlinux
}}}



=== Docker ===

Add to `/etc/apt/sources.list.d/docker.list`  :

{{{
deb [arch=amd64] https://download.docker.com/linux/debian buster stable
# deb-src [arch=amd64] https://download.docker.com/linux/debian buster stable
}}}

docker-ce is the official version from docker but is available sometime after docker-io :

{{{
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-get update
apt-cache policy docker-ce
sudo apt-get install -y docker-ce
}}}


Post install as yourself not root :

{{{
sudo usermod -a -G docker $USER
sudo chmod 666 /var/run/docker.sock
}}}

Modify `/etc/systemd/system/multi-user.target.wants/docker.service` and add :

{{{
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -g /opt/docker/storage-base/
}}}


Move the docker data location to the shared disk and restart :

{{{
sudo service docker stop

sudo mkdir -p /opt/docker/storage-base
sudo chmod 711 /opt/docker/storage-base/
sudo chown root:root /opt/docker/storage-base/

sudo rsync -avh /var/lib/docker/ /opt/docker/storage-base

sudo systemctl daemon-reload
sudo service docker start
}}}

Test the install and check that images are in the right place : 

{{{
docker run --rm -ti ubuntu:16.04 /bin/bash
# Do something then exit the shell
du -sh /opt/docker/storage-base
}}}



=== Dropbox ===

{{{
sudo apt install nautilus-dropbox
}}}

Then manually go into dropbox settings from menu bar and enable its start on system start.



=== Steam ===

See :

  https://wiki.debian.org/Steam

{{{
sudo su -
dpkg --add-architecture i386
apt update
apt install steam

# Use the backports versions of nvidia libs required
sudo apt-get install -t buster-backports nvidia-driver nvidia-driver-libs-i386 nvidia-vulkan-icd nvidia-vulkan-icd:i386
}}}


Run as :

  STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 steam





*************** TODO **********************************

- workspace grid not working
- netExtender JNI on debian



-------------- next part --------------
>From 86a719cc78149b7db189ff7e5d1f16418d257e9e Mon Sep 17 00:00:00 2001
From: Ron Yorston <rmy at pobox.com>
Date: Tue, 2 Oct 2018 12:47:05 +0100
Subject: [PATCH] Allow workspace layout to be overridden

meta_workspace_manager_override_workspace_layout is implemented by
calling meta_workspace_manager_update_workspace_layout which
respects the workspace_layout_overridden flag.  After the first call
to meta_workspace_manager_override_workspace_layout all subsequent
calls fail silently.

Reset workspace_layout_overridden to FALSE before calling
meta_workspace_manager_update_workspace_layout.

Signed-off-by: Ron Yorston <rmy at pobox.com>
---
 src/core/meta-workspace-manager.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/core/meta-workspace-manager.c b/src/core/meta-workspace-manager.c
index 2670f4938..abc819db0 100644
--- a/src/core/meta-workspace-manager.c
+++ b/src/core/meta-workspace-manager.c
@@ -496,6 +496,8 @@ meta_workspace_manager_override_workspace_layout (MetaWorkspaceManager *workspac
                                                   int                   n_rows,
                                                   int                   n_columns)
 {
+  workspace_manager->workspace_layout_overridden = FALSE;
+
   meta_workspace_manager_update_workspace_layout (workspace_manager,
                                                   starting_corner,
                                                   vertical_layout,
-- 
2.17.1

-------------- next part --------------
>From 86a719cc78149b7db189ff7e5d1f16418d257e9e Mon Sep 17 00:00:00 2001
From: Ron Yorston <rmy at pobox.com>
Date: Tue, 2 Oct 2018 12:47:05 +0100
Subject: [PATCH] Allow workspace layout to be overridden

meta_workspace_manager_override_workspace_layout is implemented by
calling meta_workspace_manager_update_workspace_layout which
respects the workspace_layout_overridden flag.  After the first call
to meta_workspace_manager_override_workspace_layout all subsequent
calls fail silently.

Reset workspace_layout_overridden to FALSE before calling
meta_workspace_manager_update_workspace_layout.

Signed-off-by: Ron Yorston <rmy at pobox.com>
---
 src/core/meta-workspace-manager.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/core/meta-workspace-manager.c b/src/core/meta-workspace-manager.c
index 2670f4938..abc819db0 100644
--- a/src/core/meta-workspace-manager.c
+++ b/src/core/meta-workspace-manager.c
@@ -496,6 +496,8 @@ meta_workspace_manager_override_workspace_layout (MetaWorkspaceManager *workspac
                                                   int                   n_rows,
                                                   int                   n_columns)
 {
+  workspace_manager->workspace_layout_overridden = FALSE;
+
   meta_workspace_manager_update_workspace_layout (workspace_manager,
                                                   starting_corner,
                                                   vertical_layout,
-- 
2.17.1

-------------- next part --------------
>From 86a719cc78149b7db189ff7e5d1f16418d257e9e Mon Sep 17 00:00:00 2001
From: Ron Yorston <rmy at pobox.com>
Date: Tue, 2 Oct 2018 12:47:05 +0100
Subject: [PATCH] Allow workspace layout to be overridden

meta_workspace_manager_override_workspace_layout is implemented by
calling meta_workspace_manager_update_workspace_layout which
respects the workspace_layout_overridden flag.  After the first call
to meta_workspace_manager_override_workspace_layout all subsequent
calls fail silently.

Reset workspace_layout_overridden to FALSE before calling
meta_workspace_manager_update_workspace_layout.

Signed-off-by: Ron Yorston <rmy at pobox.com>
---
 src/core/meta-workspace-manager.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/core/meta-workspace-manager.c b/src/core/meta-workspace-manager.c
index 2670f4938..abc819db0 100644
--- a/src/core/meta-workspace-manager.c
+++ b/src/core/meta-workspace-manager.c
@@ -496,6 +496,8 @@ meta_workspace_manager_override_workspace_layout (MetaWorkspaceManager *workspac
                                                   int                   n_rows,
                                                   int                   n_columns)
 {
+  workspace_manager->workspace_layout_overridden = FALSE;
+
   meta_workspace_manager_update_workspace_layout (workspace_manager,
                                                   starting_corner,
                                                   vertical_layout,
-- 
2.17.1



More information about the pkg-gnome-maintainers mailing list