diff -Nru compiz-0.9.12.2+16.04.20160705/compizconfig/gsettings/gsettings_backend_shared/ccs_gsettings_backend.c compiz-0.9.12.2+16.04.20160714/compizconfig/gsettings/gsettings_backend_shared/ccs_gsettings_backend.c --- compiz-0.9.12.2+16.04.20160705/compizconfig/gsettings/gsettings_backend_shared/ccs_gsettings_backend.c 2016-07-05 10:54:10.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/compizconfig/gsettings/gsettings_backend_shared/ccs_gsettings_backend.c 2016-07-14 16:00:23.000000000 +0000 @@ -93,7 +93,8 @@ g_value_unset (&schemaNameValue); - updateSettingWithGSettingsKeyName (backend, wrapper, keyName, backendInterface->updateSetting); + if (wrapper) + updateSettingWithGSettingsKeyName (backend, wrapper, keyName, backendInterface->updateSetting); } static CCSGSettingsWrapper * diff -Nru compiz-0.9.12.2+16.04.20160705/debian/00_remove_decor_in_unity_session.py compiz-0.9.12.2+16.04.20160714/debian/00_remove_decor_in_unity_session.py --- compiz-0.9.12.2+16.04.20160705/debian/00_remove_decor_in_unity_session.py 2016-07-14 16:03:20.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/debian/00_remove_decor_in_unity_session.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- -# Copyright (C) 2014-2015 Canonical -# -# Authors: -# Marco Trevisan -# -# 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; version 3. -# -# This program is distributed in the hope that it will be useful, but WITHOUTa -# 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., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -from gi.repository import Gio -import os,sys - -COMPIZ_SCHEMA = "org.compiz" -COMPIZ_CORE_PATH = "/org/compiz/profiles/unity/plugins/core/" - -if COMPIZ_SCHEMA not in Gio.Settings.list_schemas(): - print("No compiz schemas found, no migration needed") - sys.exit(0) - -core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=COMPIZ_CORE_PATH) -active_plugins = core_settings.get_strv("active-plugins") - -if not "decor" in active_plugins: - print("No decor plugin active, no migration needed") - sys.exit(0) - -try: - active_plugins.remove("decor") -except ValueError: - pass - -# gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf! -# gsettings.set_strv("active-plugins", active_plugins) -from subprocess import Popen, PIPE, STDOUT -p = Popen(("dconf load "+COMPIZ_CORE_PATH).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT) -p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins),'utf-8')) diff -Nru compiz-0.9.12.2+16.04.20160705/debian/00_remove_gnomecompat_in_unity_session.py compiz-0.9.12.2+16.04.20160714/debian/00_remove_gnomecompat_in_unity_session.py --- compiz-0.9.12.2+16.04.20160705/debian/00_remove_gnomecompat_in_unity_session.py 2016-07-14 16:03:20.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/debian/00_remove_gnomecompat_in_unity_session.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- -# Copyright (C) 2014-2015 Canonical -# -# Authors: -# Marco Trevisan -# William Hua -# -# 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; version 3. -# -# This program is distributed in the hope that it will be useful, but WITHOUTa -# 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., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -from gi.repository import Gio -import os,sys - -COMPIZ_SCHEMA = "org.compiz" -COMPIZ_CORE_PATH = "/org/compiz/profiles/unity/plugins/core/" - -if COMPIZ_SCHEMA not in Gio.Settings.list_schemas(): - print("No compiz schemas found, no migration needed") - sys.exit(0) - -core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=COMPIZ_CORE_PATH) -active_plugins = core_settings.get_strv("active-plugins") - -if not "gnomecompat" in active_plugins: - print("No gnomecompat plugin active, no migration needed") - sys.exit(0) - -try: - active_plugins.remove("gnomecompat") -except ValueError: - pass - -# gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf! -# gsettings.set_strv("active-plugins", active_plugins) -from subprocess import Popen, PIPE, STDOUT -p = Popen(("dconf load "+COMPIZ_CORE_PATH).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT) -p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins), 'utf-8')) diff -Nru compiz-0.9.12.2+16.04.20160705/debian/00_remove_obsolete_plugins_in_unity_session_v1.py compiz-0.9.12.2+16.04.20160714/debian/00_remove_obsolete_plugins_in_unity_session_v1.py --- compiz-0.9.12.2+16.04.20160705/debian/00_remove_obsolete_plugins_in_unity_session_v1.py 1970-01-01 00:00:00.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/debian/00_remove_obsolete_plugins_in_unity_session_v1.py 2016-07-14 16:03:21.000000000 +0000 @@ -0,0 +1,52 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +# Copyright (C) 2016 Canonical +# +# Authors: +# Marco Trevisan +# +# 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; version 3. +# +# This program is distributed in the hope that it will be useful, but WITHOUTa +# 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., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +from gi.repository import Gio +import os,sys + +COMPIZ_SCHEMA = "org.compiz" +COMPIZ_CORE_PATH = "/org/compiz/profiles/{}/plugins/core/" +UNITY_PROFILES = ["unity", "unity-lowgfx"] +OBSOLETE_PLUGINS = ["decor", "gnomecompat", "scalefilter"] + +if COMPIZ_SCHEMA not in Gio.Settings.list_schemas(): + print("No compiz schemas found, no migration needed") + sys.exit(0) + +for profile in UNITY_PROFILES: + core_profile_path = COMPIZ_CORE_PATH.format(profile) + core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=core_profile_path) + active_plugins = core_settings.get_strv("active-plugins") + + for plugin in OBSOLETE_PLUGINS: + if not plugin in active_plugins: + print("No '{}' plugin active in '{}' profile, no migration needed".format(plugin, profile)) + continue + + try: + active_plugins.remove(plugin) + except ValueError: + pass + + # gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf! + # gsettings.set_strv("active-plugins", active_plugins) + from subprocess import Popen, PIPE, STDOUT + p = Popen(("dconf load "+core_profile_path).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT) + p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins), 'utf-8')) diff -Nru compiz-0.9.12.2+16.04.20160705/debian/00_remove_scalefilter_in_unity_session.py compiz-0.9.12.2+16.04.20160714/debian/00_remove_scalefilter_in_unity_session.py --- compiz-0.9.12.2+16.04.20160705/debian/00_remove_scalefilter_in_unity_session.py 2016-07-14 16:03:20.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/debian/00_remove_scalefilter_in_unity_session.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- -# Copyright (C) 2014-2015 Canonical -# -# Authors: -# Marco Trevisan -# -# 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; version 3. -# -# This program is distributed in the hope that it will be useful, but WITHOUTa -# 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., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -from gi.repository import Gio -import os,sys - -COMPIZ_SCHEMA = "org.compiz" -COMPIZ_CORE_PATH = "/org/compiz/profiles/unity/plugins/core/" - -if COMPIZ_SCHEMA not in Gio.Settings.list_schemas(): - print("No compiz schemas found, no migration needed") - sys.exit(0) - -core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=COMPIZ_CORE_PATH) -active_plugins = core_settings.get_strv("active-plugins") - -if not "scalefilter" in active_plugins: - print("No decor scalefilter active, no migration needed") - sys.exit(0) - -try: - active_plugins.remove("scalefilter") -except ValueError: - pass - -# gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf! -# gsettings.set_strv("active-plugins", active_plugins) -from subprocess import Popen, PIPE, STDOUT -p = Popen(("dconf load "+COMPIZ_CORE_PATH).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT) -p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins), 'utf-8')) diff -Nru compiz-0.9.12.2+16.04.20160705/debian/changelog compiz-0.9.12.2+16.04.20160714/debian/changelog --- compiz-0.9.12.2+16.04.20160705/debian/changelog 2016-07-14 16:03:20.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/debian/changelog 2016-07-14 16:03:21.000000000 +0000 @@ -1,14 +1,20 @@ -compiz (1:0.9.12.2+16.04.20160705-0ubuntu1) xenial; urgency=medium +compiz (1:0.9.12.2+16.04.20160714-0ubuntu1) xenial; urgency=medium [ Eleni Maria Stea ] * Added options for no animation in expo and scale plugins. They skip the intermediate fading steps that force several redraws. + * Added a new option in show desktop plugin that skips the fade + animation: useful when performance is more important than eyecandy. [ Marco Trevisan (Treviño) ] * debian: add unity-lowgfx profile to compizconfig (LP: #1598770) * Composite: use C++ goodness for managing damaging rectangles + * ccsGSettingsBackend: don't try to update setting if wrapper is not + found + * migration scripts: remove unsupported plugins for all the unity + profiles - -- Marco Trevisan (Treviño) Tue, 05 Jul 2016 10:54:52 +0000 + -- Marco Trevisan (Treviño) Thu, 14 Jul 2016 16:00:57 +0000 compiz (1:0.9.12.2+16.04.20160526-0ubuntu1) xenial; urgency=medium diff -Nru compiz-0.9.12.2+16.04.20160705/debian/compiz-gnome.gconf-defaults compiz-0.9.12.2+16.04.20160714/debian/compiz-gnome.gconf-defaults --- compiz-0.9.12.2+16.04.20160705/debian/compiz-gnome.gconf-defaults 2016-07-14 16:03:20.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/debian/compiz-gnome.gconf-defaults 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -/apps/compiz-1/plugins/move/screen0/options/constrain_y true -/apps/compiz-1/general/screen0/options/hsize 2 -/apps/compiz-1/general/screen0/options/vsize 2 -/apps/gwd/blur_type all -/apps/gwd/metacity_theme_opacity 1.0 -/apps/gwd/metacity_theme_shade_opacity true -/apps/compizconfig-1/profiles/unity/general/screen0/options/active_plugins [core,composite,opengl,compiztoolbox,vpswitch,snap,mousepoll,resize,place,move,wall,grid,regex,imgpng,session,gnomecompat,animation,fade,unitymtgrabhandles,workarounds,scale,expo,ezoom,unityshell] -/apps/compizconfig-1/profiles/unity/plugins/gnomecompat/screen0/options/main_menu_key "" -/apps/compizconfig-1/profiles/unity/plugins/gnomecompat/screen0/options/run_key "" -/apps/compizconfig-1/profiles/Default/general/screen0/options/active_plugins [core,composite,opengl,compiztoolbox,decor,vpswitch,snap,mousepoll,resize,place,move,wall,grid,regex,imgpng,session,gnomecompat,animation,fade,workarounds,scale,expo,ezoom] diff -Nru compiz-0.9.12.2+16.04.20160705/debian/compiz-gnome.gsettings-override compiz-0.9.12.2+16.04.20160714/debian/compiz-gnome.gsettings-override --- compiz-0.9.12.2+16.04.20160705/debian/compiz-gnome.gsettings-override 2016-07-14 16:03:20.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/debian/compiz-gnome.gsettings-override 2016-07-14 16:03:21.000000000 +0000 @@ -10,4 +10,3 @@ [org.compiz.animation] unminimize-effects=['animation:Glide 2'] - diff -Nru compiz-0.9.12.2+16.04.20160705/debian/compiz-gnome.migrations compiz-0.9.12.2+16.04.20160714/debian/compiz-gnome.migrations --- compiz-0.9.12.2+16.04.20160705/debian/compiz-gnome.migrations 2016-07-14 16:03:20.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/debian/compiz-gnome.migrations 2016-07-14 16:03:21.000000000 +0000 @@ -1,3 +1 @@ -debian/00_remove_decor_in_unity_session.py -debian/00_remove_scalefilter_in_unity_session.py -debian/00_remove_gnomecompat_in_unity_session.py +debian/00_remove_obsolete_plugins_in_unity_session_v1.py diff -Nru compiz-0.9.12.2+16.04.20160705/debian/unity-lowgfx.ini compiz-0.9.12.2+16.04.20160714/debian/unity-lowgfx.ini --- compiz-0.9.12.2+16.04.20160705/debian/unity-lowgfx.ini 2016-07-14 16:03:20.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/debian/unity-lowgfx.ini 2016-07-14 16:03:21.000000000 +0000 @@ -42,3 +42,6 @@ [wall] s0_slide_duration = 0 + +[showdesktop] +s0_skip_animation = true diff -Nru compiz-0.9.12.2+16.04.20160705/plugins/gnomecompat/gnomecompat.xml.in compiz-0.9.12.2+16.04.20160714/plugins/gnomecompat/gnomecompat.xml.in --- compiz-0.9.12.2+16.04.20160705/plugins/gnomecompat/gnomecompat.xml.in 2016-07-05 10:54:10.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/plugins/gnomecompat/gnomecompat.xml.in 2016-07-14 16:00:23.000000000 +0000 @@ -11,6 +11,9 @@ opengl decor + + unityshell + + <_short>Appearance diff -Nru compiz-0.9.12.2+16.04.20160705/plugins/showdesktop/src/showdesktop.cpp compiz-0.9.12.2+16.04.20160714/plugins/showdesktop/src/showdesktop.cpp --- compiz-0.9.12.2+16.04.20160705/plugins/showdesktop/src/showdesktop.cpp 2016-07-05 10:54:10.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/plugins/showdesktop/src/showdesktop.cpp 2016-07-14 16:00:23.000000000 +0000 @@ -614,10 +614,21 @@ (state == SD_STATE_DEACTIVATING)) { int steps; - float amount, chunk; + float amount, chunk, speed, timestep; - amount = msSinceLastPaint * 0.05f * optionGetSpeed (); - steps = amount / (0.5f * optionGetTimestep ()); + if (optionGetSkipAnimation()) + { + speed = USHRT_MAX; + timestep = 0.1; + } + else + { + speed = optionGetSpeed(); + timestep = optionGetTimestep(); + } + + amount = msSinceLastPaint * 0.05f * speed; + steps = amount / (0.5f * timestep); if (!steps) steps = 1; chunk = amount / (float)steps; diff -Nru compiz-0.9.12.2+16.04.20160705/src/plugin.cpp compiz-0.9.12.2+16.04.20160714/src/plugin.cpp --- compiz-0.9.12.2+16.04.20160705/src/plugin.cpp 2016-07-05 10:54:10.000000000 +0000 +++ compiz-0.9.12.2+16.04.20160714/src/plugin.cpp 2016-07-14 16:00:23.000000000 +0000 @@ -132,60 +132,6 @@ } static bool -setOpenGLPluginEnvironment () -{ - /* - * Check if the hardware is adequate for Unity and if not, use LLVMpipe. - * Unfortunately the design of Mesa requires that this be done before - * libGL is loaded, which means before the opengl plugin is loaded. - */ - bool toggledLLVM = false; - - if (!getenv ("LIBGL_ALWAYS_SOFTWARE")) - { - const char *profile = getenv ("COMPIZ_CONFIG_PROFILE"); - if (profile && strcmp (profile, "ubuntu") == 0) - { - int result = system ("/usr/lib/nux/unity_support_test"); - int status = WEXITSTATUS (result); - compLogMessage ("core", CompLogLevelInfo, - "Unity is %s", - status == 0 ? "fully supported by your hardware." : - status == 127 ? "undetectable" : - "not supported by your hardware. " - "Enabling software rendering instead (slow)."); - if (status > 0 && status < 127) - { - setenv ("LIBGL_ALWAYS_SOFTWARE", "1", 1); - toggledLLVM = true; - } - } - } - - return toggledLLVM; -} - -static void -unsetUnityshellPluginEnvironment () -{ - unsetenv ("LIBGL_ALWAYS_SOFTWARE"); -} - -static void -setPluginEnvironment (const char *name) -{ - if (strcmp (name, "opengl") == 0) - setOpenGLPluginEnvironment (); -} - -static void -unsetPluginEnvironment (const char *name) -{ - if (strcmp (name, "unityshell") == 0) - unsetUnityshellPluginEnvironment (); -} - -static bool dlloaderLoadPlugin (CompPlugin *p, const char *path, const char *name) @@ -197,8 +143,6 @@ if (cloaderLoadPlugin (p, path, name)) return true; - setPluginEnvironment (name); - if (path) { file = path; @@ -269,8 +213,6 @@ if (!loaded && dlhand) dlclose (dlhand); - unsetPluginEnvironment (name); - return loaded; }