Merge lp:~unity-team/compiz/x-sru2 into lp:compiz/xenial

Proposed by Marco Trevisan (Treviño)
Status: Merged
Approved by: Andrea Azzarone
Approved revision: 4015
Merged at revision: 4013
Proposed branch: lp:~unity-team/compiz/x-sru2
Merge into: lp:compiz/xenial
Diff against target: 730 lines (+189/-282)
22 files modified
compizconfig/gsettings/gsettings_backend_shared/ccs_gsettings_backend.c (+2/-1)
debian/00_remove_decor_in_unity_session.py (+0/-47)
debian/00_remove_gnomecompat_in_unity_session.py (+0/-48)
debian/00_remove_obsolete_plugins_in_unity_session_v1.py (+52/-0)
debian/00_remove_scalefilter_in_unity_session.py (+0/-47)
debian/changelog (+18/-0)
debian/compiz-gnome.gconf-defaults (+0/-10)
debian/compiz-gnome.gsettings-override (+0/-1)
debian/compiz-gnome.install (+1/-1)
debian/compiz-gnome.migrations (+1/-3)
debian/compizconfig (+5/-0)
debian/unity-lowgfx.ini (+47/-0)
plugins/composite/src/privates.h (+2/-9)
plugins/composite/src/window.cpp (+11/-45)
plugins/expo/expo.xml.in (+5/-1)
plugins/expo/src/expo.cpp (+12/-4)
plugins/gnomecompat/gnomecompat.xml.in (+3/-0)
plugins/scale/scale.xml.in (+5/-0)
plugins/scale/src/scale.cpp (+5/-3)
plugins/showdesktop/showdesktop.xml.in (+5/-0)
plugins/showdesktop/src/showdesktop.cpp (+15/-4)
src/plugin.cpp (+0/-58)
To merge this branch: bzr merge lp:~unity-team/compiz/x-sru2
Reviewer Review Type Date Requested Status
Andrea Azzarone Approve
Review via email: mp+299129@code.launchpad.net

Commit message

Releasing SRU2 for Xenial

To post a comment you must log in.
Revision history for this message
Andrea Azzarone (azzar1) :
review: Approve
lp:~unity-team/compiz/x-sru2 updated
4016. By Eleni Maria Stea

Added a new option in show desktop plugin that skips the fade animation: useful when performance is more important than eyecandy.

4017. By Marco Trevisan (Treviño)

ccsGSettingsBackend: don't try to update setting if wrapper is not found

4018. By Marco Trevisan (Treviño)

migration scripts: remove unsupported plugins for all the unity profiles

4019. By Marco Trevisan (Treviño)

debian/changelog: remove reference to crash bug since it's not affecting xenial

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'compizconfig/gsettings/gsettings_backend_shared/ccs_gsettings_backend.c'
--- compizconfig/gsettings/gsettings_backend_shared/ccs_gsettings_backend.c 2016-03-03 14:22:05 +0000
+++ compizconfig/gsettings/gsettings_backend_shared/ccs_gsettings_backend.c 2016-07-14 15:59:00 +0000
@@ -93,7 +93,8 @@
9393
94 g_value_unset (&schemaNameValue);94 g_value_unset (&schemaNameValue);
9595
96 updateSettingWithGSettingsKeyName (backend, wrapper, keyName, backendInterface->updateSetting);96 if (wrapper)
97 updateSettingWithGSettingsKeyName (backend, wrapper, keyName, backendInterface->updateSetting);
97}98}
9899
99static CCSGSettingsWrapper *100static CCSGSettingsWrapper *
100101
=== removed file 'debian/00_remove_decor_in_unity_session.py'
--- debian/00_remove_decor_in_unity_session.py 2015-04-06 13:42:54 +0000
+++ debian/00_remove_decor_in_unity_session.py 1970-01-01 00:00:00 +0000
@@ -1,47 +0,0 @@
1#!/usr/bin/python3
2# -*- coding: utf-8 -*-
3# Copyright (C) 2014-2015 Canonical
4#
5# Authors:
6# Marco Trevisan <marco.trevisan@canonical.com>
7#
8# This program is free software; you can redistribute it and/or modify it under
9# the terms of the GNU General Public License as published by the Free Software
10# Foundation; version 3.
11#
12# This program is distributed in the hope that it will be useful, but WITHOUTa
13# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
15# details.
16#
17# You should have received a copy of the GNU General Public License along with
18# this program; if not, write to the Free Software Foundation, Inc.,
19# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
21from gi.repository import Gio
22import os,sys
23
24COMPIZ_SCHEMA = "org.compiz"
25COMPIZ_CORE_PATH = "/org/compiz/profiles/unity/plugins/core/"
26
27if COMPIZ_SCHEMA not in Gio.Settings.list_schemas():
28 print("No compiz schemas found, no migration needed")
29 sys.exit(0)
30
31core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=COMPIZ_CORE_PATH)
32active_plugins = core_settings.get_strv("active-plugins")
33
34if not "decor" in active_plugins:
35 print("No decor plugin active, no migration needed")
36 sys.exit(0)
37
38try:
39 active_plugins.remove("decor")
40except ValueError:
41 pass
42
43# gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf!
44# gsettings.set_strv("active-plugins", active_plugins)
45from subprocess import Popen, PIPE, STDOUT
46p = Popen(("dconf load "+COMPIZ_CORE_PATH).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT)
47p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins),'utf-8'))
480
=== removed file 'debian/00_remove_gnomecompat_in_unity_session.py'
--- debian/00_remove_gnomecompat_in_unity_session.py 2015-04-06 13:42:54 +0000
+++ debian/00_remove_gnomecompat_in_unity_session.py 1970-01-01 00:00:00 +0000
@@ -1,48 +0,0 @@
1#!/usr/bin/python3
2# -*- coding: utf-8 -*-
3# Copyright (C) 2014-2015 Canonical
4#
5# Authors:
6# Marco Trevisan <marco.trevisan@canonical.com>
7# William Hua <william.hua@canonical.com>
8#
9# This program is free software; you can redistribute it and/or modify it under
10# the terms of the GNU General Public License as published by the Free Software
11# Foundation; version 3.
12#
13# This program is distributed in the hope that it will be useful, but WITHOUTa
14# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
16# details.
17#
18# You should have received a copy of the GNU General Public License along with
19# this program; if not, write to the Free Software Foundation, Inc.,
20# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
22from gi.repository import Gio
23import os,sys
24
25COMPIZ_SCHEMA = "org.compiz"
26COMPIZ_CORE_PATH = "/org/compiz/profiles/unity/plugins/core/"
27
28if COMPIZ_SCHEMA not in Gio.Settings.list_schemas():
29 print("No compiz schemas found, no migration needed")
30 sys.exit(0)
31
32core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=COMPIZ_CORE_PATH)
33active_plugins = core_settings.get_strv("active-plugins")
34
35if not "gnomecompat" in active_plugins:
36 print("No gnomecompat plugin active, no migration needed")
37 sys.exit(0)
38
39try:
40 active_plugins.remove("gnomecompat")
41except ValueError:
42 pass
43
44# gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf!
45# gsettings.set_strv("active-plugins", active_plugins)
46from subprocess import Popen, PIPE, STDOUT
47p = Popen(("dconf load "+COMPIZ_CORE_PATH).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT)
48p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins), 'utf-8'))
490
=== added file 'debian/00_remove_obsolete_plugins_in_unity_session_v1.py'
--- debian/00_remove_obsolete_plugins_in_unity_session_v1.py 1970-01-01 00:00:00 +0000
+++ debian/00_remove_obsolete_plugins_in_unity_session_v1.py 2016-07-14 15:59:00 +0000
@@ -0,0 +1,52 @@
1#!/usr/bin/python3
2# -*- coding: utf-8 -*-
3# Copyright (C) 2016 Canonical
4#
5# Authors:
6# Marco Trevisan <marco.trevisan@canonical.com>
7#
8# This program is free software; you can redistribute it and/or modify it under
9# the terms of the GNU General Public License as published by the Free Software
10# Foundation; version 3.
11#
12# This program is distributed in the hope that it will be useful, but WITHOUTa
13# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
15# details.
16#
17# You should have received a copy of the GNU General Public License along with
18# this program; if not, write to the Free Software Foundation, Inc.,
19# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
21from gi.repository import Gio
22import os,sys
23
24COMPIZ_SCHEMA = "org.compiz"
25COMPIZ_CORE_PATH = "/org/compiz/profiles/{}/plugins/core/"
26UNITY_PROFILES = ["unity", "unity-lowgfx"]
27OBSOLETE_PLUGINS = ["decor", "gnomecompat", "scalefilter"]
28
29if COMPIZ_SCHEMA not in Gio.Settings.list_schemas():
30 print("No compiz schemas found, no migration needed")
31 sys.exit(0)
32
33for profile in UNITY_PROFILES:
34 core_profile_path = COMPIZ_CORE_PATH.format(profile)
35 core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=core_profile_path)
36 active_plugins = core_settings.get_strv("active-plugins")
37
38 for plugin in OBSOLETE_PLUGINS:
39 if not plugin in active_plugins:
40 print("No '{}' plugin active in '{}' profile, no migration needed".format(plugin, profile))
41 continue
42
43 try:
44 active_plugins.remove(plugin)
45 except ValueError:
46 pass
47
48 # gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf!
49 # gsettings.set_strv("active-plugins", active_plugins)
50 from subprocess import Popen, PIPE, STDOUT
51 p = Popen(("dconf load "+core_profile_path).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT)
52 p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins), 'utf-8'))
053
=== removed file 'debian/00_remove_scalefilter_in_unity_session.py'
--- debian/00_remove_scalefilter_in_unity_session.py 2015-04-06 13:42:54 +0000
+++ debian/00_remove_scalefilter_in_unity_session.py 1970-01-01 00:00:00 +0000
@@ -1,47 +0,0 @@
1#!/usr/bin/python3
2# -*- coding: utf-8 -*-
3# Copyright (C) 2014-2015 Canonical
4#
5# Authors:
6# Marco Trevisan <marco.trevisan@canonical.com>
7#
8# This program is free software; you can redistribute it and/or modify it under
9# the terms of the GNU General Public License as published by the Free Software
10# Foundation; version 3.
11#
12# This program is distributed in the hope that it will be useful, but WITHOUTa
13# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
15# details.
16#
17# You should have received a copy of the GNU General Public License along with
18# this program; if not, write to the Free Software Foundation, Inc.,
19# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
21from gi.repository import Gio
22import os,sys
23
24COMPIZ_SCHEMA = "org.compiz"
25COMPIZ_CORE_PATH = "/org/compiz/profiles/unity/plugins/core/"
26
27if COMPIZ_SCHEMA not in Gio.Settings.list_schemas():
28 print("No compiz schemas found, no migration needed")
29 sys.exit(0)
30
31core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=COMPIZ_CORE_PATH)
32active_plugins = core_settings.get_strv("active-plugins")
33
34if not "scalefilter" in active_plugins:
35 print("No decor scalefilter active, no migration needed")
36 sys.exit(0)
37
38try:
39 active_plugins.remove("scalefilter")
40except ValueError:
41 pass
42
43# gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf!
44# gsettings.set_strv("active-plugins", active_plugins)
45from subprocess import Popen, PIPE, STDOUT
46p = Popen(("dconf load "+COMPIZ_CORE_PATH).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT)
47p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins), 'utf-8'))
480
=== modified file 'debian/changelog'
--- debian/changelog 2016-05-26 00:12:16 +0000
+++ debian/changelog 2016-07-14 15:59:00 +0000
@@ -1,3 +1,21 @@
1compiz (1:0.9.12.2+16.04.20160526-0ubuntu2) UNRELEASED; urgency=medium
2
3 [ Eleni Maria Stea ]
4 * Added options for no animation in expo and scale plugins. They skip
5 the intermediate fading steps that force several redraws.
6 * Added a new option in show desktop plugin that skips the fade
7 animation: useful when performance is more important than eyecandy.
8
9 [ Marco Trevisan (Treviño) ]
10 * debian: add unity-lowgfx profile to compizconfig (LP: #1598770)
11 * Composite: use C++ goodness for managing damaging rectangles
12 * ccsGSettingsBackend: don't try to update setting if wrapper is not
13 found
14 * migration scripts: remove unsupported plugins for all the unity
15 profiles
16
17 -- Eleni Maria Stea <elenimaria.stea@canonical.com> Tue, 05 Jul 2016 12:29:58 +0200
18
1compiz (1:0.9.12.2+16.04.20160526-0ubuntu1) xenial; urgency=medium19compiz (1:0.9.12.2+16.04.20160526-0ubuntu1) xenial; urgency=medium
220
3 [ Andrea Azzarone ]21 [ Andrea Azzarone ]
422
=== removed file 'debian/compiz-gnome.gconf-defaults'
--- debian/compiz-gnome.gconf-defaults 2014-03-11 14:04:52 +0000
+++ debian/compiz-gnome.gconf-defaults 1970-01-01 00:00:00 +0000
@@ -1,10 +0,0 @@
1/apps/compiz-1/plugins/move/screen0/options/constrain_y true
2/apps/compiz-1/general/screen0/options/hsize 2
3/apps/compiz-1/general/screen0/options/vsize 2
4/apps/gwd/blur_type all
5/apps/gwd/metacity_theme_opacity 1.0
6/apps/gwd/metacity_theme_shade_opacity true
7/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]
8/apps/compizconfig-1/profiles/unity/plugins/gnomecompat/screen0/options/main_menu_key ""
9/apps/compizconfig-1/profiles/unity/plugins/gnomecompat/screen0/options/run_key ""
10/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]
110
=== modified file 'debian/compiz-gnome.gsettings-override'
--- debian/compiz-gnome.gsettings-override 2015-07-25 18:35:50 +0000
+++ debian/compiz-gnome.gsettings-override 2016-07-14 15:59:00 +0000
@@ -10,4 +10,3 @@
1010
11[org.compiz.animation]11[org.compiz.animation]
12unminimize-effects=['animation:Glide 2']12unminimize-effects=['animation:Glide 2']
13
1413
=== modified file 'debian/compiz-gnome.install'
--- debian/compiz-gnome.install 2015-12-10 16:34:35 +0000
+++ debian/compiz-gnome.install 2016-07-14 15:59:00 +0000
@@ -1,6 +1,6 @@
1debian/65compiz_profile-on-session /etc/X11/Xsession.d1debian/65compiz_profile-on-session /etc/X11/Xsession.d
2debian/profile_upgrades/*.upgrade usr/share/compizconfig/upgrades2debian/profile_upgrades/*.upgrade usr/share/compizconfig/upgrades
3debian/unity.ini /etc/compizconfig/3debian/unity*.ini /etc/compizconfig/
4postinst/convert-files/*.convert usr/lib/compiz/migration/4postinst/convert-files/*.convert usr/lib/compiz/migration/
5usr/bin/gtk-window-decorator5usr/bin/gtk-window-decorator
6usr/lib/*/compizconfig/backends/libgsettings.so6usr/lib/*/compizconfig/backends/libgsettings.so
77
=== modified file 'debian/compiz-gnome.migrations'
--- debian/compiz-gnome.migrations 2015-02-19 15:57:24 +0000
+++ debian/compiz-gnome.migrations 2016-07-14 15:59:00 +0000
@@ -1,3 +1,1 @@
1debian/00_remove_decor_in_unity_session.py1debian/00_remove_obsolete_plugins_in_unity_session_v1.py
2debian/00_remove_scalefilter_in_unity_session.py
3debian/00_remove_gnomecompat_in_unity_session.py
42
=== modified file 'debian/compizconfig'
--- debian/compizconfig 2015-02-04 22:20:18 +0000
+++ debian/compizconfig 2016-07-14 15:59:00 +0000
@@ -20,3 +20,8 @@
20plugin_list_autosort = true20plugin_list_autosort = true
21profile = unity21profile = unity
2222
23[general_ubuntu-lowgfx]
24backend = gsettings
25integration = true
26plugin_list_autosort = true
27profile = unity-lowgfx
2328
=== added file 'debian/unity-lowgfx.ini'
--- debian/unity-lowgfx.ini 1970-01-01 00:00:00 +0000
+++ debian/unity-lowgfx.ini 2016-07-14 15:59:00 +0000
@@ -0,0 +1,47 @@
1[core]
2s0_active_plugins = core;composite;opengl;copytex;compiztoolbox;vpswitch;snap;mousepoll;resize;place;move;wall;grid;regex;imgpng;session;fade;unitymtgrabhandles;workarounds;scale;expo;ezoom;unityshell
3
4[ezoom]
5s0_speed = 100
6
7[expo]
8s0_expo_animation = 3
9
10[fade]
11s0_fade_mode = 1
12s0_fade_time = 1
13
14[grid]
15s0_animation_duration = 1
16
17[resize]
18s0_mode = 2
19
20[opengl]
21s0_texture_filter = 0
22
23[scale]
24s0_skip_animation = true
25
26[unityshell]
27s0_low_graphics_mode = true
28s0_dash_blur_experimental = 0
29
30s0_override_decoration_theme = true
31s0_shadow_x_offset = 1
32s0_shadow_y_offset = 1
33s0_active_shadow_radius = 3
34s0_inactive_shadow_radius = 2
35
36s0_menus_fadein = 0
37s0_menus_fadeout = 0
38s0_menus_discovery_fadein = 0
39s0_menus_discovery_fadeout = 0
40
41s0_autohide_animation = 1
42
43[wall]
44s0_slide_duration = 0
45
46[showdesktop]
47s0_skip_animation = true
048
=== modified file 'plugins/composite/src/privates.h'
--- plugins/composite/src/privates.h 2013-02-28 03:39:31 +0000
+++ plugins/composite/src/privates.h 2016-07-14 15:59:00 +0000
@@ -142,7 +142,6 @@
142{142{
143 public:143 public:
144 PrivateCompositeWindow (CompWindow *w, CompositeWindow *cw);144 PrivateCompositeWindow (CompWindow *w, CompositeWindow *cw);
145 ~PrivateCompositeWindow ();
146145
147 void windowNotify (CompWindowNotify n);146 void windowNotify (CompWindowNotify n);
148 void resizeNotify (int dx, int dy, int dwidth, int dheight);147 void resizeNotify (int dx, int dy, int dwidth, int dheight);
@@ -156,11 +155,7 @@
156 void allowFurtherRebindAttempts ();155 void allowFurtherRebindAttempts ();
157 bool frozen ();156 bool frozen ();
158157
159 static void handleDamageRect (CompositeWindow *w,158 static void handleDamageRect (CompositeWindow *w, XRectangle const& rect);
160 int x,
161 int y,
162 int width,
163 int height);
164159
165 public:160 public:
166 CompWindow *window;161 CompWindow *window;
@@ -179,9 +174,7 @@
179 unsigned short brightness;174 unsigned short brightness;
180 unsigned short saturation;175 unsigned short saturation;
181176
182 XRectangle *damageRects;177 std::vector<XRectangle> damageRects;
183 int sizeDamage;
184 int nDamage;
185178
186 private:179 private:
187180
188181
=== modified file 'plugins/composite/src/window.cpp'
--- plugins/composite/src/window.cpp 2013-04-13 13:53:39 +0000
+++ plugins/composite/src/window.cpp 2016-07-14 15:59:00 +0000
@@ -115,20 +115,11 @@
115 overlayWindow (false),115 overlayWindow (false),
116 opacity (OPAQUE),116 opacity (OPAQUE),
117 brightness (BRIGHT),117 brightness (BRIGHT),
118 saturation (COLOR),118 saturation (COLOR)
119 damageRects (0),
120 sizeDamage (0),
121 nDamage (0)
122{119{
123 WindowInterface::setHandler (w);120 WindowInterface::setHandler (w);
124}121}
125122
126PrivateCompositeWindow::~PrivateCompositeWindow ()
127{
128 if (sizeDamage)
129 free (damageRects);
130}
131
132bool123bool
133PrivateCompositeWindow::bind ()124PrivateCompositeWindow::bind ()
134{125{
@@ -405,32 +396,14 @@
405CompositeWindow::processDamage (XDamageNotifyEvent *de)396CompositeWindow::processDamage (XDamageNotifyEvent *de)
406{397{
407 if (priv->window->syncWait ())398 if (priv->window->syncWait ())
408 {399 priv->damageRects.push_back (de->area);
409 if (priv->nDamage == priv->sizeDamage)
410 {
411 priv->damageRects = (XRectangle *) realloc (priv->damageRects,
412 (priv->sizeDamage + 1) *
413 sizeof (XRectangle));
414 priv->sizeDamage += 1;
415 }
416
417 priv->damageRects[priv->nDamage].x = de->area.x;
418 priv->damageRects[priv->nDamage].y = de->area.y;
419 priv->damageRects[priv->nDamage].width = de->area.width;
420 priv->damageRects[priv->nDamage].height = de->area.height;
421 priv->nDamage++;
422 }
423 else400 else
424 priv->handleDamageRect (this, de->area.x, de->area.y,401 priv->handleDamageRect (this, de->area);
425 de->area.width, de->area.height);
426}402}
427403
428void404void
429PrivateCompositeWindow::handleDamageRect (CompositeWindow *w,405PrivateCompositeWindow::handleDamageRect (CompositeWindow *w,
430 int x,406 XRectangle const& rect)
431 int y,
432 int width,
433 int height)
434{407{
435 if (!w->priv->redirected)408 if (!w->priv->redirected)
436 return;409 return;
@@ -440,15 +413,15 @@
440 if (!w->priv->damaged)413 if (!w->priv->damaged)
441 w->priv->damaged = initial = true;414 w->priv->damaged = initial = true;
442415
443 if (!w->damageRect (initial, CompRect (x, y, width, height)))416 if (!w->damageRect (initial, CompRect (rect.x, rect.y, rect.width, rect.height)))
444 {417 {
445 const CompWindow::Geometry &geom = w->priv->window->geometry ();418 const CompWindow::Geometry &geom = w->priv->window->geometry ();
446419
447 x += geom.x () + geom.border ();420 int x = rect.x + geom.x () + geom.border ();
448 y += geom.y () + geom.border ();421 int y = rect.y + geom.y () + geom.border ();
449422
450 w->priv->cScreen->damageRegion (CompRegion (CompRect423 w->priv->cScreen->damageRegion (CompRegion (CompRect
451 (x, y, width, height)));424 (x, y, rect.width, rect.height)));
452 }425 }
453426
454 if (initial)427 if (initial)
@@ -565,17 +538,10 @@
565538
566 case CompWindowNotifySyncAlarm:539 case CompWindowNotifySyncAlarm:
567 {540 {
568 XRectangle *rects;541 for (XRectangle const& rect : damageRects)
542 PrivateCompositeWindow::handleDamageRect (cWindow, rect);
569543
570 rects = damageRects;544 damageRects.clear();
571 while (nDamage--)
572 {
573 PrivateCompositeWindow::handleDamageRect (cWindow,
574 rects[nDamage].x,
575 rects[nDamage].y,
576 rects[nDamage].width,
577 rects[nDamage].height);
578 }
579 break;545 break;
580 }546 }
581547
582548
=== modified file 'plugins/expo/expo.xml.in'
--- plugins/expo/expo.xml.in 2016-05-17 02:52:54 +0000
+++ plugins/expo/expo.xml.in 2016-07-14 15:59:00 +0000
@@ -95,7 +95,7 @@
95 <_long>The animation used when initiating or leaving Expo.</_long>95 <_long>The animation used when initiating or leaving Expo.</_long>
96 <default>0</default>96 <default>0</default>
97 <min>0</min>97 <min>0</min>
98 <max>2</max>98 <max>3</max>
99 <desc>99 <desc>
100 <value>0</value>100 <value>0</value>
101 <_name>Zoom</_name>101 <_name>Zoom</_name>
@@ -108,6 +108,10 @@
108 <value>2</value>108 <value>2</value>
109 <_name>Vortex</_name>109 <_name>Vortex</_name>
110 </desc>110 </desc>
111 <desc>
112 <value>3</value>
113 <_name>None</_name>
114 </desc>
111 </option>115 </option>
112 </group>116 </group>
113 <group>117 <group>
114118
=== modified file 'plugins/expo/src/expo.cpp'
--- plugins/expo/src/expo.cpp 2016-05-17 02:53:00 +0000
+++ plugins/expo/src/expo.cpp 2016-07-14 15:59:00 +0000
@@ -402,10 +402,18 @@
402 float val = (static_cast <float> (msSinceLastPaint) / 1000.0f) /402 float val = (static_cast <float> (msSinceLastPaint) / 1000.0f) /
403 optionGetZoomTime ();403 optionGetZoomTime ();
404404
405 if (expoMode)405 if (optionGetExpoAnimation() != ExpoScreen::ExpoAnimationNone) {
406 expoCam = MIN (1.0, expoCam + val);406 if (expoMode)
407 else407 expoCam = MIN (1.0, expoCam + val);
408 expoCam = MAX (0.0, expoCam - val);408 else
409 expoCam = MAX (0.0, expoCam - val);
410 }
411 else {
412 if (expoMode)
413 expoCam = 1;
414 else
415 expoCam = 0;
416 }
409417
410 if (expoCam)418 if (expoCam)
411 {419 {
412420
=== modified file 'plugins/gnomecompat/gnomecompat.xml.in'
--- plugins/gnomecompat/gnomecompat.xml.in 2015-10-26 17:15:43 +0000
+++ plugins/gnomecompat/gnomecompat.xml.in 2016-07-14 15:59:00 +0000
@@ -11,6 +11,9 @@
11 <plugin>opengl</plugin>11 <plugin>opengl</plugin>
12 <plugin>decor</plugin>12 <plugin>decor</plugin>
13 </relation>13 </relation>
14 <conflict>
15 <plugin>unityshell</plugin>
16 </conflict>
14 </deps>17 </deps>
15 <options>18 <options>
16 <option name="main_menu_key" type="key">19 <option name="main_menu_key" type="key">
1720
=== modified file 'plugins/scale/scale.xml.in'
--- plugins/scale/scale.xml.in 2016-05-17 02:52:54 +0000
+++ plugins/scale/scale.xml.in 2016-07-14 15:59:00 +0000
@@ -139,6 +139,11 @@
139 <_name>On all output devices</_name>139 <_name>On all output devices</_name>
140 </desc>140 </desc>
141 </option>141 </option>
142 <option name="skip_animation" type="bool">
143 <_short>Skip Animation</_short>
144 <_long>Skips the scale plugin animation.</_long>
145 <default>false</default>
146 </option>
142 </group>147 </group>
143 <group>148 <group>
144 <_short>Bindings</_short>149 <_short>Bindings</_short>
145150
=== modified file 'plugins/scale/src/scale.cpp'
--- plugins/scale/src/scale.cpp 2016-05-17 02:52:54 +0000
+++ plugins/scale/src/scale.cpp 2016-07-14 15:59:00 +0000
@@ -932,9 +932,11 @@
932 if (state != ScaleScreen::Idle && state != ScaleScreen::Wait)932 if (state != ScaleScreen::Idle && state != ScaleScreen::Wait)
933 {933 {
934 int steps;934 int steps;
935 float amount, chunk;935 float amount, chunk, speed;
936936
937 amount = msSinceLastPaint * 0.05f * optionGetSpeed ();937 speed = optionGetSkipAnimation() ? USHRT_MAX : optionGetSpeed();
938
939 amount = msSinceLastPaint * 0.05f * speed;
938 steps = amount / (0.5f * optionGetTimestep ());940 steps = amount / (0.5f * optionGetTimestep ());
939941
940 if (!steps)942 if (!steps)
941943
=== modified file 'plugins/showdesktop/showdesktop.xml.in'
--- plugins/showdesktop/showdesktop.xml.in 2013-04-27 15:56:23 +0000
+++ plugins/showdesktop/showdesktop.xml.in 2016-07-14 15:59:00 +0000
@@ -100,6 +100,11 @@
100 <_long>Window types that should be moved out of sight when entering showdesktop-mode.</_long>100 <_long>Window types that should be moved out of sight when entering showdesktop-mode.</_long>
101 <default>type=toolbar | type=utility | type=dialog | type=normal</default>101 <default>type=toolbar | type=utility | type=dialog | type=normal</default>
102 </option>102 </option>
103 <option name="skip_animation" type="bool">
104 <_short>Skip Animation</_short>
105 <_long>Skips the showdesktop animation.</_long>
106 <default>false</default>
107 </option>
103 </group>108 </group>
104 <group>109 <group>
105 <_short>Appearance</_short>110 <_short>Appearance</_short>
106111
=== modified file 'plugins/showdesktop/src/showdesktop.cpp'
--- plugins/showdesktop/src/showdesktop.cpp 2013-05-09 13:43:07 +0000
+++ plugins/showdesktop/src/showdesktop.cpp 2016-07-14 15:59:00 +0000
@@ -614,10 +614,21 @@
614 (state == SD_STATE_DEACTIVATING))614 (state == SD_STATE_DEACTIVATING))
615 {615 {
616 int steps;616 int steps;
617 float amount, chunk;617 float amount, chunk, speed, timestep;
618618
619 amount = msSinceLastPaint * 0.05f * optionGetSpeed ();619 if (optionGetSkipAnimation())
620 steps = amount / (0.5f * optionGetTimestep ());620 {
621 speed = USHRT_MAX;
622 timestep = 0.1;
623 }
624 else
625 {
626 speed = optionGetSpeed();
627 timestep = optionGetTimestep();
628 }
629
630 amount = msSinceLastPaint * 0.05f * speed;
631 steps = amount / (0.5f * timestep);
621 if (!steps)632 if (!steps)
622 steps = 1;633 steps = 1;
623 chunk = amount / (float)steps;634 chunk = amount / (float)steps;
624635
=== modified file 'src/plugin.cpp'
--- src/plugin.cpp 2015-10-26 17:15:43 +0000
+++ src/plugin.cpp 2016-07-14 15:59:00 +0000
@@ -132,60 +132,6 @@
132}132}
133133
134static bool134static bool
135setOpenGLPluginEnvironment ()
136{
137 /*
138 * Check if the hardware is adequate for Unity and if not, use LLVMpipe.
139 * Unfortunately the design of Mesa requires that this be done before
140 * libGL is loaded, which means before the opengl plugin is loaded.
141 */
142 bool toggledLLVM = false;
143
144 if (!getenv ("LIBGL_ALWAYS_SOFTWARE"))
145 {
146 const char *profile = getenv ("COMPIZ_CONFIG_PROFILE");
147 if (profile && strcmp (profile, "ubuntu") == 0)
148 {
149 int result = system ("/usr/lib/nux/unity_support_test");
150 int status = WEXITSTATUS (result);
151 compLogMessage ("core", CompLogLevelInfo,
152 "Unity is %s",
153 status == 0 ? "fully supported by your hardware." :
154 status == 127 ? "undetectable" :
155 "not supported by your hardware. "
156 "Enabling software rendering instead (slow).");
157 if (status > 0 && status < 127)
158 {
159 setenv ("LIBGL_ALWAYS_SOFTWARE", "1", 1);
160 toggledLLVM = true;
161 }
162 }
163 }
164
165 return toggledLLVM;
166}
167
168static void
169unsetUnityshellPluginEnvironment ()
170{
171 unsetenv ("LIBGL_ALWAYS_SOFTWARE");
172}
173
174static void
175setPluginEnvironment (const char *name)
176{
177 if (strcmp (name, "opengl") == 0)
178 setOpenGLPluginEnvironment ();
179}
180
181static void
182unsetPluginEnvironment (const char *name)
183{
184 if (strcmp (name, "unityshell") == 0)
185 unsetUnityshellPluginEnvironment ();
186}
187
188static bool
189dlloaderLoadPlugin (CompPlugin *p,135dlloaderLoadPlugin (CompPlugin *p,
190 const char *path,136 const char *path,
191 const char *name)137 const char *name)
@@ -197,8 +143,6 @@
197 if (cloaderLoadPlugin (p, path, name))143 if (cloaderLoadPlugin (p, path, name))
198 return true;144 return true;
199145
200 setPluginEnvironment (name);
201
202 if (path)146 if (path)
203 {147 {
204 file = path;148 file = path;
@@ -269,8 +213,6 @@
269 if (!loaded && dlhand)213 if (!loaded && dlhand)
270 dlclose (dlhand);214 dlclose (dlhand);
271215
272 unsetPluginEnvironment (name);
273
274 return loaded;216 return loaded;
275}217}
276218

Subscribers

People subscribed via source and target branches

to all changes: