diff -Nru unity-7.4.0+16.04.20160401.1/dash/PlacesGroup.cpp unity-7.4.0+16.04.20160415/dash/PlacesGroup.cpp --- unity-7.4.0+16.04.20160401.1/dash/PlacesGroup.cpp 2016-04-01 23:11:14.000000000 +0000 +++ unity-7.4.0+16.04.20160415/dash/PlacesGroup.cpp 2016-04-15 05:33:03.000000000 +0000 @@ -130,16 +130,13 @@ SetAcceptKeyNavFocusOnMouseEnter(false); scale.changed.connect(sigc::mem_fun(this, &PlacesGroup::UpdateScale)); - _background = _style.GetCategoryBackground().GetPointer(); - _background_nofilters = _style.GetCategoryBackgroundNoFilters().GetPointer(); - nux::ROPConfig rop; rop.Blend = true; rop.SrcBlend = GL_ONE; rop.DstBlend = GL_ONE_MINUS_SRC_ALPHA; nux::TexCoordXForm texxform; - _background_layer.reset(new nux::TextureLayer(_background_nofilters->GetDeviceTexture(), + _background_layer.reset(new nux::TextureLayer(_style.GetCategoryBackgroundNoFilters()->GetDeviceTexture(), texxform, nux::color::White, false, @@ -502,7 +499,7 @@ // to render into a space left over by the scrollview (1 has NOT to be scaled) bg_geo.width = std::min(bg_width, bg_geo.GetWidth()) + 1; - bg_geo.height = _background->GetHeight(); + bg_geo.height = _background_layer->GetDeviceTexture()->GetHeight(); _background_layer->SetGeometry(bg_geo); _background_layer->Renderlayer(graphics_engine); @@ -681,7 +678,7 @@ nux::TexCoordXForm texxform; if (filters_expanded && !_using_filters_background) { - _background_layer.reset(new nux::TextureLayer(_background->GetDeviceTexture(), + _background_layer.reset(new nux::TextureLayer(_style.GetCategoryBackground()->GetDeviceTexture(), texxform, nux::color::White, false, @@ -689,7 +686,7 @@ } else if (!filters_expanded && _using_filters_background) { - _background_layer.reset(new nux::TextureLayer(_background_nofilters->GetDeviceTexture(), + _background_layer.reset(new nux::TextureLayer(_style.GetCategoryBackgroundNoFilters()->GetDeviceTexture(), texxform, nux::color::White, false, diff -Nru unity-7.4.0+16.04.20160401.1/dash/PlacesGroup.h unity-7.4.0+16.04.20160415/dash/PlacesGroup.h --- unity-7.4.0+16.04.20160401.1/dash/PlacesGroup.h 2016-04-01 23:11:14.000000000 +0000 +++ unity-7.4.0+16.04.20160415/dash/PlacesGroup.h 2016-04-15 05:33:03.000000000 +0000 @@ -150,8 +150,6 @@ StaticCairoText* _expand_label; IconTexture* _expand_icon; - nux::BaseTexture* _background; - nux::BaseTexture* _background_nofilters; bool _using_filters_background; std::unique_ptr _background_layer; diff -Nru unity-7.4.0+16.04.20160401.1/debian/changelog unity-7.4.0+16.04.20160415/debian/changelog --- unity-7.4.0+16.04.20160401.1/debian/changelog 2016-04-16 23:07:14.000000000 +0000 +++ unity-7.4.0+16.04.20160415/debian/changelog 2016-04-16 23:07:15.000000000 +0000 @@ -1,3 +1,16 @@ +unity (7.4.0+16.04.20160415-0ubuntu1) xenial; urgency=medium + + [ Andrea Azzarone ] + * Do not use pointers to LazyLoadTextures. (LP: #1569100) + * Fix unity script crash. (LP: #1566565) + * LockscreenController: Don't use SetActivate(False) for gnome- + screensaver to prevent unlocking on tty switch. It will not only + deactivate the screensaver but also unlock the screen. (LP: + #1552537) + * unityshell.xml: Fix typo (LP: #1559427) + + -- Marco Trevisan (TreviƱo) Fri, 15 Apr 2016 05:33:08 +0000 + unity (7.4.0+16.04.20160401.1-0ubuntu1) xenial; urgency=medium [ Andrea Azzarone ] diff -Nru unity-7.4.0+16.04.20160401.1/lockscreen/LockScreenController.cpp unity-7.4.0+16.04.20160415/lockscreen/LockScreenController.cpp --- unity-7.4.0+16.04.20160401.1/lockscreen/LockScreenController.cpp 2016-04-01 23:11:39.000000000 +0000 +++ unity-7.4.0+16.04.20160415/lockscreen/LockScreenController.cpp 2016-04-15 05:32:41.000000000 +0000 @@ -426,8 +426,12 @@ { if (Settings::Instance().use_legacy()) { - auto proxy = std::make_shared("org.gnome.ScreenSaver", "/org/gnome/ScreenSaver", "org.gnome.ScreenSaver"); - proxy->CallBegin("SetActive", g_variant_new("(b)", activate != FALSE), [proxy] (GVariant*, glib::Error const&) {}); + // SetActive(FALSE) will unlock the screen. This used to cause security issues (see lp:1552537). + if (activate) + { + auto proxy = std::make_shared("org.gnome.ScreenSaver", "/org/gnome/ScreenSaver", "org.gnome.ScreenSaver"); + proxy->CallBegin("SetActive", g_variant_new("(b)", TRUE), [proxy] (GVariant*, glib::Error const&) {}); + } return; } diff -Nru unity-7.4.0+16.04.20160401.1/plugins/unityshell/unityshell.xml.in unity-7.4.0+16.04.20160415/plugins/unityshell/unityshell.xml.in --- unity-7.4.0+16.04.20160401.1/plugins/unityshell/unityshell.xml.in 2016-04-01 23:11:14.000000000 +0000 +++ unity-7.4.0+16.04.20160415/plugins/unityshell/unityshell.xml.in 2016-04-15 05:32:48.000000000 +0000 @@ -95,7 +95,7 @@ diff -Nru unity-7.4.0+16.04.20160401.1/tools/unity.cmake unity-7.4.0+16.04.20160415/tools/unity.cmake --- unity-7.4.0+16.04.20160401.1/tools/unity.cmake 2016-04-01 23:11:26.000000000 +0000 +++ unity-7.4.0+16.04.20160415/tools/unity.cmake 2016-04-15 05:32:57.000000000 +0000 @@ -96,8 +96,8 @@ if options.verbose: cli.append("--debug") - if args: - cli.extend(options.compiz_args) + if compiz_args: + cli.extend(compiz_args) if options.log: cli.extend(['2>&1', '|', 'tee', options.log])