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

Proposed by Marco Trevisan (Treviño) on 2016-07-05
Status: Merged
Approved by: Andrea Azzarone on 2016-07-05
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 2016-07-05 Approve on 2016-07-05
Review via email: mp+299129@code.launchpad.net

Commit message

Releasing SRU2 for Xenial

To post a comment you must log in.
Andrea Azzarone (azzar1) :
review: Approve
lp:~unity-team/compiz/x-sru2 updated on 2016-07-14
4016. By Eleni Maria Stea on 2016-07-14

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) on 2016-07-14

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

4018. By Marco Trevisan (Treviño) on 2016-07-14

migration scripts: remove unsupported plugins for all the unity profiles

4019. By Marco Trevisan (Treviño) on 2016-07-14

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
1=== modified file 'compizconfig/gsettings/gsettings_backend_shared/ccs_gsettings_backend.c'
2--- compizconfig/gsettings/gsettings_backend_shared/ccs_gsettings_backend.c 2016-03-03 14:22:05 +0000
3+++ compizconfig/gsettings/gsettings_backend_shared/ccs_gsettings_backend.c 2016-07-14 15:59:00 +0000
4@@ -93,7 +93,8 @@
5
6 g_value_unset (&schemaNameValue);
7
8- updateSettingWithGSettingsKeyName (backend, wrapper, keyName, backendInterface->updateSetting);
9+ if (wrapper)
10+ updateSettingWithGSettingsKeyName (backend, wrapper, keyName, backendInterface->updateSetting);
11 }
12
13 static CCSGSettingsWrapper *
14
15=== removed file 'debian/00_remove_decor_in_unity_session.py'
16--- debian/00_remove_decor_in_unity_session.py 2015-04-06 13:42:54 +0000
17+++ debian/00_remove_decor_in_unity_session.py 1970-01-01 00:00:00 +0000
18@@ -1,47 +0,0 @@
19-#!/usr/bin/python3
20-# -*- coding: utf-8 -*-
21-# Copyright (C) 2014-2015 Canonical
22-#
23-# Authors:
24-# Marco Trevisan <marco.trevisan@canonical.com>
25-#
26-# This program is free software; you can redistribute it and/or modify it under
27-# the terms of the GNU General Public License as published by the Free Software
28-# Foundation; version 3.
29-#
30-# This program is distributed in the hope that it will be useful, but WITHOUTa
31-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
32-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
33-# details.
34-#
35-# You should have received a copy of the GNU General Public License along with
36-# this program; if not, write to the Free Software Foundation, Inc.,
37-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
38-
39-from gi.repository import Gio
40-import os,sys
41-
42-COMPIZ_SCHEMA = "org.compiz"
43-COMPIZ_CORE_PATH = "/org/compiz/profiles/unity/plugins/core/"
44-
45-if COMPIZ_SCHEMA not in Gio.Settings.list_schemas():
46- print("No compiz schemas found, no migration needed")
47- sys.exit(0)
48-
49-core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=COMPIZ_CORE_PATH)
50-active_plugins = core_settings.get_strv("active-plugins")
51-
52-if not "decor" in active_plugins:
53- print("No decor plugin active, no migration needed")
54- sys.exit(0)
55-
56-try:
57- active_plugins.remove("decor")
58-except ValueError:
59- pass
60-
61-# gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf!
62-# gsettings.set_strv("active-plugins", active_plugins)
63-from subprocess import Popen, PIPE, STDOUT
64-p = Popen(("dconf load "+COMPIZ_CORE_PATH).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT)
65-p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins),'utf-8'))
66
67=== removed file 'debian/00_remove_gnomecompat_in_unity_session.py'
68--- debian/00_remove_gnomecompat_in_unity_session.py 2015-04-06 13:42:54 +0000
69+++ debian/00_remove_gnomecompat_in_unity_session.py 1970-01-01 00:00:00 +0000
70@@ -1,48 +0,0 @@
71-#!/usr/bin/python3
72-# -*- coding: utf-8 -*-
73-# Copyright (C) 2014-2015 Canonical
74-#
75-# Authors:
76-# Marco Trevisan <marco.trevisan@canonical.com>
77-# William Hua <william.hua@canonical.com>
78-#
79-# This program is free software; you can redistribute it and/or modify it under
80-# the terms of the GNU General Public License as published by the Free Software
81-# Foundation; version 3.
82-#
83-# This program is distributed in the hope that it will be useful, but WITHOUTa
84-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
85-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
86-# details.
87-#
88-# You should have received a copy of the GNU General Public License along with
89-# this program; if not, write to the Free Software Foundation, Inc.,
90-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
91-
92-from gi.repository import Gio
93-import os,sys
94-
95-COMPIZ_SCHEMA = "org.compiz"
96-COMPIZ_CORE_PATH = "/org/compiz/profiles/unity/plugins/core/"
97-
98-if COMPIZ_SCHEMA not in Gio.Settings.list_schemas():
99- print("No compiz schemas found, no migration needed")
100- sys.exit(0)
101-
102-core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=COMPIZ_CORE_PATH)
103-active_plugins = core_settings.get_strv("active-plugins")
104-
105-if not "gnomecompat" in active_plugins:
106- print("No gnomecompat plugin active, no migration needed")
107- sys.exit(0)
108-
109-try:
110- active_plugins.remove("gnomecompat")
111-except ValueError:
112- pass
113-
114-# gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf!
115-# gsettings.set_strv("active-plugins", active_plugins)
116-from subprocess import Popen, PIPE, STDOUT
117-p = Popen(("dconf load "+COMPIZ_CORE_PATH).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT)
118-p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins), 'utf-8'))
119
120=== added file 'debian/00_remove_obsolete_plugins_in_unity_session_v1.py'
121--- debian/00_remove_obsolete_plugins_in_unity_session_v1.py 1970-01-01 00:00:00 +0000
122+++ debian/00_remove_obsolete_plugins_in_unity_session_v1.py 2016-07-14 15:59:00 +0000
123@@ -0,0 +1,52 @@
124+#!/usr/bin/python3
125+# -*- coding: utf-8 -*-
126+# Copyright (C) 2016 Canonical
127+#
128+# Authors:
129+# Marco Trevisan <marco.trevisan@canonical.com>
130+#
131+# This program is free software; you can redistribute it and/or modify it under
132+# the terms of the GNU General Public License as published by the Free Software
133+# Foundation; version 3.
134+#
135+# This program is distributed in the hope that it will be useful, but WITHOUTa
136+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
137+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
138+# details.
139+#
140+# You should have received a copy of the GNU General Public License along with
141+# this program; if not, write to the Free Software Foundation, Inc.,
142+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
143+
144+from gi.repository import Gio
145+import os,sys
146+
147+COMPIZ_SCHEMA = "org.compiz"
148+COMPIZ_CORE_PATH = "/org/compiz/profiles/{}/plugins/core/"
149+UNITY_PROFILES = ["unity", "unity-lowgfx"]
150+OBSOLETE_PLUGINS = ["decor", "gnomecompat", "scalefilter"]
151+
152+if COMPIZ_SCHEMA not in Gio.Settings.list_schemas():
153+ print("No compiz schemas found, no migration needed")
154+ sys.exit(0)
155+
156+for profile in UNITY_PROFILES:
157+ core_profile_path = COMPIZ_CORE_PATH.format(profile)
158+ core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=core_profile_path)
159+ active_plugins = core_settings.get_strv("active-plugins")
160+
161+ for plugin in OBSOLETE_PLUGINS:
162+ if not plugin in active_plugins:
163+ print("No '{}' plugin active in '{}' profile, no migration needed".format(plugin, profile))
164+ continue
165+
166+ try:
167+ active_plugins.remove(plugin)
168+ except ValueError:
169+ pass
170+
171+ # gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf!
172+ # gsettings.set_strv("active-plugins", active_plugins)
173+ from subprocess import Popen, PIPE, STDOUT
174+ p = Popen(("dconf load "+core_profile_path).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT)
175+ p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins), 'utf-8'))
176
177=== removed file 'debian/00_remove_scalefilter_in_unity_session.py'
178--- debian/00_remove_scalefilter_in_unity_session.py 2015-04-06 13:42:54 +0000
179+++ debian/00_remove_scalefilter_in_unity_session.py 1970-01-01 00:00:00 +0000
180@@ -1,47 +0,0 @@
181-#!/usr/bin/python3
182-# -*- coding: utf-8 -*-
183-# Copyright (C) 2014-2015 Canonical
184-#
185-# Authors:
186-# Marco Trevisan <marco.trevisan@canonical.com>
187-#
188-# This program is free software; you can redistribute it and/or modify it under
189-# the terms of the GNU General Public License as published by the Free Software
190-# Foundation; version 3.
191-#
192-# This program is distributed in the hope that it will be useful, but WITHOUTa
193-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
194-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
195-# details.
196-#
197-# You should have received a copy of the GNU General Public License along with
198-# this program; if not, write to the Free Software Foundation, Inc.,
199-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
200-
201-from gi.repository import Gio
202-import os,sys
203-
204-COMPIZ_SCHEMA = "org.compiz"
205-COMPIZ_CORE_PATH = "/org/compiz/profiles/unity/plugins/core/"
206-
207-if COMPIZ_SCHEMA not in Gio.Settings.list_schemas():
208- print("No compiz schemas found, no migration needed")
209- sys.exit(0)
210-
211-core_settings = Gio.Settings(schema=COMPIZ_SCHEMA+".core", path=COMPIZ_CORE_PATH)
212-active_plugins = core_settings.get_strv("active-plugins")
213-
214-if not "scalefilter" in active_plugins:
215- print("No decor scalefilter active, no migration needed")
216- sys.exit(0)
217-
218-try:
219- active_plugins.remove("scalefilter")
220-except ValueError:
221- pass
222-
223-# gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf!
224-# gsettings.set_strv("active-plugins", active_plugins)
225-from subprocess import Popen, PIPE, STDOUT
226-p = Popen(("dconf load "+COMPIZ_CORE_PATH).split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT)
227-p.communicate(input=bytes("[/]\nactive-plugins={}".format(active_plugins), 'utf-8'))
228
229=== modified file 'debian/changelog'
230--- debian/changelog 2016-05-26 00:12:16 +0000
231+++ debian/changelog 2016-07-14 15:59:00 +0000
232@@ -1,3 +1,21 @@
233+compiz (1:0.9.12.2+16.04.20160526-0ubuntu2) UNRELEASED; urgency=medium
234+
235+ [ Eleni Maria Stea ]
236+ * Added options for no animation in expo and scale plugins. They skip
237+ the intermediate fading steps that force several redraws.
238+ * Added a new option in show desktop plugin that skips the fade
239+ animation: useful when performance is more important than eyecandy.
240+
241+ [ Marco Trevisan (Treviño) ]
242+ * debian: add unity-lowgfx profile to compizconfig (LP: #1598770)
243+ * Composite: use C++ goodness for managing damaging rectangles
244+ * ccsGSettingsBackend: don't try to update setting if wrapper is not
245+ found
246+ * migration scripts: remove unsupported plugins for all the unity
247+ profiles
248+
249+ -- Eleni Maria Stea <elenimaria.stea@canonical.com> Tue, 05 Jul 2016 12:29:58 +0200
250+
251 compiz (1:0.9.12.2+16.04.20160526-0ubuntu1) xenial; urgency=medium
252
253 [ Andrea Azzarone ]
254
255=== removed file 'debian/compiz-gnome.gconf-defaults'
256--- debian/compiz-gnome.gconf-defaults 2014-03-11 14:04:52 +0000
257+++ debian/compiz-gnome.gconf-defaults 1970-01-01 00:00:00 +0000
258@@ -1,10 +0,0 @@
259-/apps/compiz-1/plugins/move/screen0/options/constrain_y true
260-/apps/compiz-1/general/screen0/options/hsize 2
261-/apps/compiz-1/general/screen0/options/vsize 2
262-/apps/gwd/blur_type all
263-/apps/gwd/metacity_theme_opacity 1.0
264-/apps/gwd/metacity_theme_shade_opacity true
265-/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]
266-/apps/compizconfig-1/profiles/unity/plugins/gnomecompat/screen0/options/main_menu_key ""
267-/apps/compizconfig-1/profiles/unity/plugins/gnomecompat/screen0/options/run_key ""
268-/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]
269
270=== modified file 'debian/compiz-gnome.gsettings-override'
271--- debian/compiz-gnome.gsettings-override 2015-07-25 18:35:50 +0000
272+++ debian/compiz-gnome.gsettings-override 2016-07-14 15:59:00 +0000
273@@ -10,4 +10,3 @@
274
275 [org.compiz.animation]
276 unminimize-effects=['animation:Glide 2']
277-
278
279=== modified file 'debian/compiz-gnome.install'
280--- debian/compiz-gnome.install 2015-12-10 16:34:35 +0000
281+++ debian/compiz-gnome.install 2016-07-14 15:59:00 +0000
282@@ -1,6 +1,6 @@
283 debian/65compiz_profile-on-session /etc/X11/Xsession.d
284 debian/profile_upgrades/*.upgrade usr/share/compizconfig/upgrades
285-debian/unity.ini /etc/compizconfig/
286+debian/unity*.ini /etc/compizconfig/
287 postinst/convert-files/*.convert usr/lib/compiz/migration/
288 usr/bin/gtk-window-decorator
289 usr/lib/*/compizconfig/backends/libgsettings.so
290
291=== modified file 'debian/compiz-gnome.migrations'
292--- debian/compiz-gnome.migrations 2015-02-19 15:57:24 +0000
293+++ debian/compiz-gnome.migrations 2016-07-14 15:59:00 +0000
294@@ -1,3 +1,1 @@
295-debian/00_remove_decor_in_unity_session.py
296-debian/00_remove_scalefilter_in_unity_session.py
297-debian/00_remove_gnomecompat_in_unity_session.py
298+debian/00_remove_obsolete_plugins_in_unity_session_v1.py
299
300=== modified file 'debian/compizconfig'
301--- debian/compizconfig 2015-02-04 22:20:18 +0000
302+++ debian/compizconfig 2016-07-14 15:59:00 +0000
303@@ -20,3 +20,8 @@
304 plugin_list_autosort = true
305 profile = unity
306
307+[general_ubuntu-lowgfx]
308+backend = gsettings
309+integration = true
310+plugin_list_autosort = true
311+profile = unity-lowgfx
312
313=== added file 'debian/unity-lowgfx.ini'
314--- debian/unity-lowgfx.ini 1970-01-01 00:00:00 +0000
315+++ debian/unity-lowgfx.ini 2016-07-14 15:59:00 +0000
316@@ -0,0 +1,47 @@
317+[core]
318+s0_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
319+
320+[ezoom]
321+s0_speed = 100
322+
323+[expo]
324+s0_expo_animation = 3
325+
326+[fade]
327+s0_fade_mode = 1
328+s0_fade_time = 1
329+
330+[grid]
331+s0_animation_duration = 1
332+
333+[resize]
334+s0_mode = 2
335+
336+[opengl]
337+s0_texture_filter = 0
338+
339+[scale]
340+s0_skip_animation = true
341+
342+[unityshell]
343+s0_low_graphics_mode = true
344+s0_dash_blur_experimental = 0
345+
346+s0_override_decoration_theme = true
347+s0_shadow_x_offset = 1
348+s0_shadow_y_offset = 1
349+s0_active_shadow_radius = 3
350+s0_inactive_shadow_radius = 2
351+
352+s0_menus_fadein = 0
353+s0_menus_fadeout = 0
354+s0_menus_discovery_fadein = 0
355+s0_menus_discovery_fadeout = 0
356+
357+s0_autohide_animation = 1
358+
359+[wall]
360+s0_slide_duration = 0
361+
362+[showdesktop]
363+s0_skip_animation = true
364
365=== modified file 'plugins/composite/src/privates.h'
366--- plugins/composite/src/privates.h 2013-02-28 03:39:31 +0000
367+++ plugins/composite/src/privates.h 2016-07-14 15:59:00 +0000
368@@ -142,7 +142,6 @@
369 {
370 public:
371 PrivateCompositeWindow (CompWindow *w, CompositeWindow *cw);
372- ~PrivateCompositeWindow ();
373
374 void windowNotify (CompWindowNotify n);
375 void resizeNotify (int dx, int dy, int dwidth, int dheight);
376@@ -156,11 +155,7 @@
377 void allowFurtherRebindAttempts ();
378 bool frozen ();
379
380- static void handleDamageRect (CompositeWindow *w,
381- int x,
382- int y,
383- int width,
384- int height);
385+ static void handleDamageRect (CompositeWindow *w, XRectangle const& rect);
386
387 public:
388 CompWindow *window;
389@@ -179,9 +174,7 @@
390 unsigned short brightness;
391 unsigned short saturation;
392
393- XRectangle *damageRects;
394- int sizeDamage;
395- int nDamage;
396+ std::vector<XRectangle> damageRects;
397
398 private:
399
400
401=== modified file 'plugins/composite/src/window.cpp'
402--- plugins/composite/src/window.cpp 2013-04-13 13:53:39 +0000
403+++ plugins/composite/src/window.cpp 2016-07-14 15:59:00 +0000
404@@ -115,20 +115,11 @@
405 overlayWindow (false),
406 opacity (OPAQUE),
407 brightness (BRIGHT),
408- saturation (COLOR),
409- damageRects (0),
410- sizeDamage (0),
411- nDamage (0)
412+ saturation (COLOR)
413 {
414 WindowInterface::setHandler (w);
415 }
416
417-PrivateCompositeWindow::~PrivateCompositeWindow ()
418-{
419- if (sizeDamage)
420- free (damageRects);
421-}
422-
423 bool
424 PrivateCompositeWindow::bind ()
425 {
426@@ -405,32 +396,14 @@
427 CompositeWindow::processDamage (XDamageNotifyEvent *de)
428 {
429 if (priv->window->syncWait ())
430- {
431- if (priv->nDamage == priv->sizeDamage)
432- {
433- priv->damageRects = (XRectangle *) realloc (priv->damageRects,
434- (priv->sizeDamage + 1) *
435- sizeof (XRectangle));
436- priv->sizeDamage += 1;
437- }
438-
439- priv->damageRects[priv->nDamage].x = de->area.x;
440- priv->damageRects[priv->nDamage].y = de->area.y;
441- priv->damageRects[priv->nDamage].width = de->area.width;
442- priv->damageRects[priv->nDamage].height = de->area.height;
443- priv->nDamage++;
444- }
445+ priv->damageRects.push_back (de->area);
446 else
447- priv->handleDamageRect (this, de->area.x, de->area.y,
448- de->area.width, de->area.height);
449+ priv->handleDamageRect (this, de->area);
450 }
451
452 void
453 PrivateCompositeWindow::handleDamageRect (CompositeWindow *w,
454- int x,
455- int y,
456- int width,
457- int height)
458+ XRectangle const& rect)
459 {
460 if (!w->priv->redirected)
461 return;
462@@ -440,15 +413,15 @@
463 if (!w->priv->damaged)
464 w->priv->damaged = initial = true;
465
466- if (!w->damageRect (initial, CompRect (x, y, width, height)))
467+ if (!w->damageRect (initial, CompRect (rect.x, rect.y, rect.width, rect.height)))
468 {
469 const CompWindow::Geometry &geom = w->priv->window->geometry ();
470
471- x += geom.x () + geom.border ();
472- y += geom.y () + geom.border ();
473+ int x = rect.x + geom.x () + geom.border ();
474+ int y = rect.y + geom.y () + geom.border ();
475
476 w->priv->cScreen->damageRegion (CompRegion (CompRect
477- (x, y, width, height)));
478+ (x, y, rect.width, rect.height)));
479 }
480
481 if (initial)
482@@ -565,17 +538,10 @@
483
484 case CompWindowNotifySyncAlarm:
485 {
486- XRectangle *rects;
487+ for (XRectangle const& rect : damageRects)
488+ PrivateCompositeWindow::handleDamageRect (cWindow, rect);
489
490- rects = damageRects;
491- while (nDamage--)
492- {
493- PrivateCompositeWindow::handleDamageRect (cWindow,
494- rects[nDamage].x,
495- rects[nDamage].y,
496- rects[nDamage].width,
497- rects[nDamage].height);
498- }
499+ damageRects.clear();
500 break;
501 }
502
503
504=== modified file 'plugins/expo/expo.xml.in'
505--- plugins/expo/expo.xml.in 2016-05-17 02:52:54 +0000
506+++ plugins/expo/expo.xml.in 2016-07-14 15:59:00 +0000
507@@ -95,7 +95,7 @@
508 <_long>The animation used when initiating or leaving Expo.</_long>
509 <default>0</default>
510 <min>0</min>
511- <max>2</max>
512+ <max>3</max>
513 <desc>
514 <value>0</value>
515 <_name>Zoom</_name>
516@@ -108,6 +108,10 @@
517 <value>2</value>
518 <_name>Vortex</_name>
519 </desc>
520+ <desc>
521+ <value>3</value>
522+ <_name>None</_name>
523+ </desc>
524 </option>
525 </group>
526 <group>
527
528=== modified file 'plugins/expo/src/expo.cpp'
529--- plugins/expo/src/expo.cpp 2016-05-17 02:53:00 +0000
530+++ plugins/expo/src/expo.cpp 2016-07-14 15:59:00 +0000
531@@ -402,10 +402,18 @@
532 float val = (static_cast <float> (msSinceLastPaint) / 1000.0f) /
533 optionGetZoomTime ();
534
535- if (expoMode)
536- expoCam = MIN (1.0, expoCam + val);
537- else
538- expoCam = MAX (0.0, expoCam - val);
539+ if (optionGetExpoAnimation() != ExpoScreen::ExpoAnimationNone) {
540+ if (expoMode)
541+ expoCam = MIN (1.0, expoCam + val);
542+ else
543+ expoCam = MAX (0.0, expoCam - val);
544+ }
545+ else {
546+ if (expoMode)
547+ expoCam = 1;
548+ else
549+ expoCam = 0;
550+ }
551
552 if (expoCam)
553 {
554
555=== modified file 'plugins/gnomecompat/gnomecompat.xml.in'
556--- plugins/gnomecompat/gnomecompat.xml.in 2015-10-26 17:15:43 +0000
557+++ plugins/gnomecompat/gnomecompat.xml.in 2016-07-14 15:59:00 +0000
558@@ -11,6 +11,9 @@
559 <plugin>opengl</plugin>
560 <plugin>decor</plugin>
561 </relation>
562+ <conflict>
563+ <plugin>unityshell</plugin>
564+ </conflict>
565 </deps>
566 <options>
567 <option name="main_menu_key" type="key">
568
569=== modified file 'plugins/scale/scale.xml.in'
570--- plugins/scale/scale.xml.in 2016-05-17 02:52:54 +0000
571+++ plugins/scale/scale.xml.in 2016-07-14 15:59:00 +0000
572@@ -139,6 +139,11 @@
573 <_name>On all output devices</_name>
574 </desc>
575 </option>
576+ <option name="skip_animation" type="bool">
577+ <_short>Skip Animation</_short>
578+ <_long>Skips the scale plugin animation.</_long>
579+ <default>false</default>
580+ </option>
581 </group>
582 <group>
583 <_short>Bindings</_short>
584
585=== modified file 'plugins/scale/src/scale.cpp'
586--- plugins/scale/src/scale.cpp 2016-05-17 02:52:54 +0000
587+++ plugins/scale/src/scale.cpp 2016-07-14 15:59:00 +0000
588@@ -932,9 +932,11 @@
589 if (state != ScaleScreen::Idle && state != ScaleScreen::Wait)
590 {
591 int steps;
592- float amount, chunk;
593-
594- amount = msSinceLastPaint * 0.05f * optionGetSpeed ();
595+ float amount, chunk, speed;
596+
597+ speed = optionGetSkipAnimation() ? USHRT_MAX : optionGetSpeed();
598+
599+ amount = msSinceLastPaint * 0.05f * speed;
600 steps = amount / (0.5f * optionGetTimestep ());
601
602 if (!steps)
603
604=== modified file 'plugins/showdesktop/showdesktop.xml.in'
605--- plugins/showdesktop/showdesktop.xml.in 2013-04-27 15:56:23 +0000
606+++ plugins/showdesktop/showdesktop.xml.in 2016-07-14 15:59:00 +0000
607@@ -100,6 +100,11 @@
608 <_long>Window types that should be moved out of sight when entering showdesktop-mode.</_long>
609 <default>type=toolbar | type=utility | type=dialog | type=normal</default>
610 </option>
611+ <option name="skip_animation" type="bool">
612+ <_short>Skip Animation</_short>
613+ <_long>Skips the showdesktop animation.</_long>
614+ <default>false</default>
615+ </option>
616 </group>
617 <group>
618 <_short>Appearance</_short>
619
620=== modified file 'plugins/showdesktop/src/showdesktop.cpp'
621--- plugins/showdesktop/src/showdesktop.cpp 2013-05-09 13:43:07 +0000
622+++ plugins/showdesktop/src/showdesktop.cpp 2016-07-14 15:59:00 +0000
623@@ -614,10 +614,21 @@
624 (state == SD_STATE_DEACTIVATING))
625 {
626 int steps;
627- float amount, chunk;
628-
629- amount = msSinceLastPaint * 0.05f * optionGetSpeed ();
630- steps = amount / (0.5f * optionGetTimestep ());
631+ float amount, chunk, speed, timestep;
632+
633+ if (optionGetSkipAnimation())
634+ {
635+ speed = USHRT_MAX;
636+ timestep = 0.1;
637+ }
638+ else
639+ {
640+ speed = optionGetSpeed();
641+ timestep = optionGetTimestep();
642+ }
643+
644+ amount = msSinceLastPaint * 0.05f * speed;
645+ steps = amount / (0.5f * timestep);
646 if (!steps)
647 steps = 1;
648 chunk = amount / (float)steps;
649
650=== modified file 'src/plugin.cpp'
651--- src/plugin.cpp 2015-10-26 17:15:43 +0000
652+++ src/plugin.cpp 2016-07-14 15:59:00 +0000
653@@ -132,60 +132,6 @@
654 }
655
656 static bool
657-setOpenGLPluginEnvironment ()
658-{
659- /*
660- * Check if the hardware is adequate for Unity and if not, use LLVMpipe.
661- * Unfortunately the design of Mesa requires that this be done before
662- * libGL is loaded, which means before the opengl plugin is loaded.
663- */
664- bool toggledLLVM = false;
665-
666- if (!getenv ("LIBGL_ALWAYS_SOFTWARE"))
667- {
668- const char *profile = getenv ("COMPIZ_CONFIG_PROFILE");
669- if (profile && strcmp (profile, "ubuntu") == 0)
670- {
671- int result = system ("/usr/lib/nux/unity_support_test");
672- int status = WEXITSTATUS (result);
673- compLogMessage ("core", CompLogLevelInfo,
674- "Unity is %s",
675- status == 0 ? "fully supported by your hardware." :
676- status == 127 ? "undetectable" :
677- "not supported by your hardware. "
678- "Enabling software rendering instead (slow).");
679- if (status > 0 && status < 127)
680- {
681- setenv ("LIBGL_ALWAYS_SOFTWARE", "1", 1);
682- toggledLLVM = true;
683- }
684- }
685- }
686-
687- return toggledLLVM;
688-}
689-
690-static void
691-unsetUnityshellPluginEnvironment ()
692-{
693- unsetenv ("LIBGL_ALWAYS_SOFTWARE");
694-}
695-
696-static void
697-setPluginEnvironment (const char *name)
698-{
699- if (strcmp (name, "opengl") == 0)
700- setOpenGLPluginEnvironment ();
701-}
702-
703-static void
704-unsetPluginEnvironment (const char *name)
705-{
706- if (strcmp (name, "unityshell") == 0)
707- unsetUnityshellPluginEnvironment ();
708-}
709-
710-static bool
711 dlloaderLoadPlugin (CompPlugin *p,
712 const char *path,
713 const char *name)
714@@ -197,8 +143,6 @@
715 if (cloaderLoadPlugin (p, path, name))
716 return true;
717
718- setPluginEnvironment (name);
719-
720 if (path)
721 {
722 file = path;
723@@ -269,8 +213,6 @@
724 if (!loaded && dlhand)
725 dlclose (dlhand);
726
727- unsetPluginEnvironment (name);
728-
729 return loaded;
730 }
731

Subscribers

People subscribed via source and target branches

to all changes: