Merge lp:~unity-team/compiz/x-sru2 into lp:compiz/xenial
- x-sru2
- Merge into 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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andrea Azzarone | Approve | ||
Review via email: mp+299129@code.launchpad.net |
Commit message
Releasing SRU2 for Xenial
Description of the change
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)
-
ccsGSettingsBac
kend: 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
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 |