Hello community,

here is the log from the commit of package cinnamon for openSUSE:Factory 
checked in at 2016-05-17 17:15:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cinnamon (Old)
 and      /work/SRC/openSUSE:Factory/.cinnamon.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cinnamon"

Changes:
--------
--- /work/SRC/openSUSE:Factory/cinnamon/cinnamon.changes        2016-05-04 
08:20:28.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cinnamon.new/cinnamon.changes   2016-05-17 
17:15:10.000000000 +0200
@@ -1,0 +2,37 @@
+Thu May 12 09:54:43 UTC 2016 - sor.ale...@meowr.ru
+
+- Update to version 3.0.2:
+  * Cache generated thumbnails.
+  * Fix desktop effects on dialogs and menus.
+    This prevents desktop effects on dialogs and menus from being
+    used if desktop-effects is turned off. It's like already like
+    this in the effects settings dialog.
+  * Power applet: Fixed declaration of alias variable.
+  * Window list: Fix call on null object.
+  * Fix handling of device icon where GIcon is null.
+  * cinnamon-settings: Don't set the stack switcher to use the main
+    settings stack on creation.
+    This is causing visual glitches in a lot of Gtk themes when
+    changing from the main icon view to a page that displays the
+    stack switcher.
+  * Fix highlighting not working correctly for multiple instances
+    of an applet.
+  * ExtensionCore.py: Don't break when an xlet provides a bad icon
+    file.
+  * Add null conditional to return empty array when get_devices
+    returns null.
+  * Correct a potential infinite loop.
+  * accessibility settings: Don't use PackageKit for now when
+    looking for assistance applications that are installed.
+    Just look for their binaries, and notify if not installed.
+    Watch the bin folders in case the user installs the dependency
+    and doesn't restart cinnamon settings.
+  * cs_sound.py: Add a close button to the speaker test dialog.
+  * Fix image close crash.
+
+-------------------------------------------------------------------
+Wed May  4 16:34:01 UTC 2016 - sor.ale...@meowr.ru
+
+- Add a missing python-gobject-Gdk dependency (boo#978298).
+
+-------------------------------------------------------------------

Old:
----
  cinnamon-3.0.1.tar.gz

New:
----
  cinnamon-3.0.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cinnamon.spec ++++++
--- /var/tmp/diff_new_pack.oAasFC/_old  2016-05-17 17:15:11.000000000 +0200
+++ /var/tmp/diff_new_pack.oAasFC/_new  2016-05-17 17:15:11.000000000 +0200
@@ -21,7 +21,7 @@
 %define _name   Cinnamon
 %define _version 3.0.0
 Name:           cinnamon
-Version:        3.0.1
+Version:        3.0.2
 Release:        0
 Summary:        GNU/Linux Desktop featuring a traditional layout
 License:        GPL-2.0+ and LGPL-2.1
@@ -115,6 +115,9 @@
 # typelib-1_0-Cinnamon-0_1 was last used in openSUSE Leap 42.1.
 Provides:       typelib-1_0-Cinnamon-0_1 = %{version}
 Obsoletes:      typelib-1_0-Cinnamon-0_1 <= %{version}
+%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120200
+Requires:       python-gobject-Gdk
+%endif
 
 %description
 Cinnamon is a modern Linux desktop which provides advanced innovative

++++++ cinnamon-3.0.1.tar.gz -> cinnamon-3.0.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cinnamon-3.0.1/configure.ac 
new/Cinnamon-3.0.2/configure.ac
--- old/Cinnamon-3.0.1/configure.ac     2016-04-25 11:11:29.000000000 +0200
+++ new/Cinnamon-3.0.2/configure.ac     2016-05-10 17:39:03.000000000 +0200
@@ -1,5 +1,5 @@
 AC_PREREQ(2.63)
-AC_INIT([cinnamon],[3.0.1],[https://github.com/linuxmint/Cinnamon/issues],[cinnamon])
+AC_INIT([cinnamon],[3.0.2],[https://github.com/linuxmint/Cinnamon/issues],[cinnamon])
 
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_SRCDIR([src/cinnamon-global.c])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cinnamon-3.0.1/debian/changelog 
new/Cinnamon-3.0.2/debian/changelog
--- old/Cinnamon-3.0.1/debian/changelog 2016-04-25 11:11:29.000000000 +0200
+++ new/Cinnamon-3.0.2/debian/changelog 2016-05-10 17:39:03.000000000 +0200
@@ -1,3 +1,42 @@
+cinnamon (3.0.2) sarah; urgency=medium
+
+  [ ion201 ]
+  * Cache generated thumbnails
+
+  [ Lars Mueller ]
+  * Fix desktop effects on dialogs and menus This prevents desktop effects on 
dialogs and menus from being used if desktop-effects is turned off. It's like 
already like this in the effects settings dialog.
+
+  [ Clement Lefebvre ]
+  * Power applet: Fixed declaration of alias variable
+  * Window list: Fixed call on null object
+
+  [ Stephen Collins ]
+  * Fix handling of device icon where gicon is None (partially fixes #5248)
+
+  [ JosephMcc ]
+  * cinnamon-settings: Don't set the stack switcher to use the main settings 
stack on creation This is causing visual glitches in a lot of gtk themes when 
changing from the main icon view to a page that displays the stack switcher
+
+  [ Stephen Collins ]
+  * Fix highlighting not working correctly for multiple instances of an applet
+
+  [ Michael Webster ]
+  * ExtensionCore.py: Don't break when an xlet provides a bad icon file.
+
+  [ Jason Jackson ]
+  * Added null conditional to return empty array when get_devices returns null
+
+  [ brownsr ]
+  * correct potential infinite loop
+
+  [ Michael Webster ]
+  * accessibility settings: don't use packagekit for now when looking for 
assistance programs that are installed.  Just look for their binaries, and 
notify if not installed.  Watch the bin folders in case the user installs the 
dependency and doesn't restart cinnamon settings.
+  * cs_sound.py: Add a close button to the speaker test dialog.
+
+  [ ion201 ]
+  * Fix image close crash
+
+ -- Clement Lefebvre <r...@linuxmint.com>  Tue, 10 May 2016 16:38:11 +0100
+
 cinnamon (3.0.1) sarah; urgency=medium
 
   [ JosephMcc ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/applets/netw...@cinnamon.org/applet.js
 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/applets/netw...@cinnamon.org/applet.js
--- 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/applets/netw...@cinnamon.org/applet.js
  2016-04-25 11:11:29.000000000 +0200
+++ 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/applets/netw...@cinnamon.org/applet.js
  2016-05-10 17:39:03.000000000 +0200
@@ -2005,7 +2005,7 @@
                 if (a._type != NetworkManager.SETTING_VPN_SETTING_NAME) {
                     // find a good device to be considered primary
                     a._primaryDevice = null;
-                    let devices = a.get_devices();
+                    let devices = a.get_devices() || [ ];
                     for (let j = 0; j < devices.length; j++) {
                         let d = devices[j];
                         if (d._delegate) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/applets/po...@cinnamon.org/applet.js
 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/applets/po...@cinnamon.org/applet.js
--- 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/applets/po...@cinnamon.org/applet.js
    2016-04-25 11:11:29.000000000 +0200
+++ 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/applets/po...@cinnamon.org/applet.js
    2016-05-10 17:39:03.000000000 +0200
@@ -114,7 +114,7 @@
         }
 
         for ( let i = 0; i < aliases.length; ++i ) {
-            alias = aliases[i];
+            let alias = aliases[i];
             try{
                 let parts = alias.split(':=');
                 if (parts[0] == device_id) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/applets/window-l...@cinnamon.org/applet.js
 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/applets/window-l...@cinnamon.org/applet.js
--- 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/applets/window-l...@cinnamon.org/applet.js
      2016-04-25 11:11:29.000000000 +0200
+++ 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/applets/window-l...@cinnamon.org/applet.js
      2016-05-10 17:39:03.000000000 +0200
@@ -182,7 +182,9 @@
             this.thumbnailBin.set_child(null);
             this.thumbnail.destroy();
         }
-        this.actor.hide();
+        if (this.actor) {
+            this.actor.hide();
+        }
         this.visible = false;
     },
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/bin/ExtensionCore.py
 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/bin/ExtensionCore.py
--- 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/bin/ExtensionCore.py
  2016-04-25 11:11:29.000000000 +0200
+++ 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/bin/ExtensionCore.py
  2016-05-10 17:39:03.000000000 +0200
@@ -1316,7 +1316,10 @@
                         if theme.has_icon(extension_icon):
                             img = theme.load_icon(extension_icon, size, 0)
                     elif os.path.exists("%s/icon.png" % extension_dir):
-                        img = 
GdkPixbuf.Pixbuf.new_from_file_at_size("%s/icon.png" % extension_dir, size, 
size)
+                        try:
+                            img = 
GdkPixbuf.Pixbuf.new_from_file_at_size("%s/icon.png" % extension_dir, size, 
size)
+                        except:
+                            img = None
 
                     if img is None:
                         theme = Gtk.IconTheme.get_default()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py
 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py
--- 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py
        2016-04-25 11:11:29.000000000 +0200
+++ 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py
        2016-05-10 17:39:03.000000000 +0200
@@ -1068,11 +1068,57 @@
         self.file_picker.set_label(f.get_basename())
 
 
+class BinFileMonitor(GObject.GObject):
+    __gsignals__ = {
+        'changed': (GObject.SignalFlags.RUN_LAST, None, ()),
+    }
+    def __init__(self):
+        super(BinFileMonitor, self).__init__()
+
+        self.changed_id = 0
+
+        env = GLib.getenv("PATH")
+
+        if env == None:
+            env = "/bin:/usr/bin:."
+
+        self.paths = env.split(":")
+
+        self.monitors = []
+
+        for path in self.paths:
+            file = Gio.File.new_for_path(path)
+            mon = file.monitor_directory(Gio.FileMonitorFlags.WATCH_MOVES, 
None)
+            mon.connect("changed", self.queue_emit_changed)
+            self.monitors.append(mon)
+
+    def _emit_changed(self):
+        self.emit("changed")
+        self.changed_id = 0
+        return False
+
+    def queue_emit_changed(self, file, other, event_type, data=None):
+        if self.changed_id > 0:
+            GObject.source_remove(self.changed_id)
+            self.changed_id = 0
+
+        self.changed_id = GObject.idle_add(self._emit_changed)
+
+file_monitor = None
+
+def get_file_monitor():
+    global file_monitor
+
+    if file_monitor == None:
+        file_monitor = BinFileMonitor()
+
+    return file_monitor
+
 class DependencyCheckInstallButton(Gtk.Box):
-    def __init__(self, checking_text, install_button_text, packages, 
final_widget=None, satisfied_cb=None):
+    def __init__(self, checking_text, install_button_text, binfiles, 
final_widget=None, satisfied_cb=None):
         super(DependencyCheckInstallButton, 
self).__init__(orientation=Gtk.Orientation.HORIZONTAL)
 
-        self.packages = packages
+        self.binfiles = binfiles
         self.satisfied_cb = satisfied_cb
 
         self.checking_text = checking_text
@@ -1087,9 +1133,12 @@
         self.progress_bar.set_show_text(True)
         self.progress_bar.set_text(self.checking_text)
 
-        self.install_button = Gtk.Button(install_button_text)
-        self.install_button.connect("clicked", self.on_install_clicked)
-        self.stack.add_named(self.install_button, "install")
+        self.install_warning = Gtk.Label(install_button_text)
+        frame = Gtk.Frame()
+        frame.add(self.install_warning)
+        frame.set_shadow_type(Gtk.ShadowType.OUT)
+        frame.show_all()
+        self.stack.add_named(frame, "install")
 
         if final_widget:
             self.stack.add_named(final_widget, "final")
@@ -1097,21 +1146,28 @@
             self.stack.add_named(Gtk.Alignment(), "final")
 
         self.stack.set_visible_child_name("progress")
-
         self.progress_source_id = 0
 
+        self.file_listener = get_file_monitor()
+        self.file_listener_id = self.file_listener.connect("changed", 
self.on_file_listener_ping)
+
+        self.connect("destroy", self.on_destroy)
+
         GObject.idle_add(self.check)
 
     def check(self):
         self.start_pulse()
-        CinnamonDesktop.installer_check_for_packages(self.packages, 
self.on_check_complete)
-        return False
 
-    def on_install_clicked(self, widget):
-        self.progress_bar.set_text(_("Installing"))
-        self.stack.set_visible_child_name("progress")
-        self.start_pulse()
-        CinnamonDesktop.installer_install_packages(self.packages, 
self.on_install_complete)
+        success = True
+
+        for program in self.binfiles:
+            if not GLib.find_program_in_path(program):
+                success = False
+                break
+
+        GObject.idle_add(self.on_check_complete, success)
+
+        return False
 
     def pulse_progress(self):
         self.progress_bar.pulse()
@@ -1135,14 +1191,20 @@
         else:
             self.stack.set_visible_child_name("install")
 
-    def on_install_complete(self, result, data=None):
+    def on_file_listener_ping(self, monitor, data=None):
+        self.stack.set_visible_child_name("progress")
         self.progress_bar.set_text(self.checking_text)
-        CinnamonDesktop.installer_check_for_packages(self.packages, 
self.on_check_complete)
+        self.check()
+
+    def on_destroy(self, widget):
+        self.file_listener.disconnect(self.file_listener_id)
+        self.file_listener_id = 0
 
 class GSettingsDependencySwitch(SettingsWidget):
-    def __init__(self, label, schema=None, key=None, dep_key=None, 
packages=None):
+    def __init__(self, label, schema=None, key=None, dep_key=None, 
binfiles=None, packages=None):
         super(GSettingsDependencySwitch, self).__init__(dep_key=dep_key)
 
+        self.binfiles = binfiles
         self.packages = packages
 
         self.content_widget = Gtk.Alignment()
@@ -1161,8 +1223,8 @@
             pkg_string += pkg
 
         self.dep_button = DependencyCheckInstallButton(_("Checking 
dependencies"),
-                                                       _("Install: %s") % 
(pkg_string),
-                                                       packages,
+                                                       _("Please install: %s") 
% (pkg_string),
+                                                       binfiles,
                                                        self.switch)
         self.content_widget.add(self.dep_button)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py
 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py
--- 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py
  2016-04-25 11:11:29.000000000 +0200
+++ 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py
  2016-05-10 17:39:03.000000000 +0200
@@ -203,9 +203,6 @@
         button_image.props.icon_size = Gtk.IconSize.MENU
 
         self.stack_switcher = self.builder.get_object("stack_switcher")
-        # Set stack to random thing and make opacity 0 so that the heading bar
-        # does not resize when switching between pages
-        self.stack_switcher.set_stack(self.main_stack)
 
         m, n = self.button_back.get_preferred_width()
         self.stack_switcher.set_margin_right(n)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/modules/cs_accessibility.py
 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/modules/cs_accessibility.py
--- 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/modules/cs_accessibility.py
   2016-04-25 11:11:29.000000000 +0200
+++ 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/modules/cs_accessibility.py
   2016-05-10 17:39:03.000000000 +0200
@@ -62,6 +62,7 @@
                                      "org.cinnamon.desktop.a11y.applications",
                                      "screen-reader-enabled",
                                      None,
+                                     ["orca"],
                                      ["gnome-orca"])
             settings.add_row(switch)
 
@@ -341,9 +342,9 @@
             install_widget = SettingsWidget()
 
             self.dep_button = DependencyCheckInstallButton(_("Checking 
dependencies"),
-                                                           _("Install: %s") % 
("mousetweaks"),
+                                                           _("Please install: 
%s") % ("mousetweaks"),
                                                            ["mousetweaks"],
-                                                           None,
+                                                           Gtk.Alignment(),
                                                            
self.on_dep_satisfied)
 
             install_widget.pack_start(self.dep_button, True, False, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py
 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py
--- 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py
     2016-04-25 11:11:29.000000000 +0200
+++ 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py
     2016-05-10 17:39:03.000000000 +0200
@@ -14,6 +14,7 @@
 import time
 from xml.etree import ElementTree
 from PIL import Image
+import hashlib
 
 gettext.install("cinnamon", "/usr/share/locale")
 
@@ -505,29 +506,33 @@
             pix = self._data[filename][size]
         else:
             try:
-                if mimetype == "image/svg+xml":
-                    tmp_pix = GdkPixbuf.Pixbuf.new_from_file(filename)
-                    tmp_fp, tmp_filename = tempfile.mkstemp()
-                    os.close(tmp_fp)
-                    tmp_pix.savev(tmp_filename, "png", [], [])
-                    img = Image.open(tmp_filename)
-                    os.unlink(tmp_filename)
+                h = hashlib.sha1(('%f%s' % (os.path.getmtime(filename), 
filename)).encode()).hexdigest()
+                tmp_cache_path = GLib.get_user_cache_dir() + '/cs_backgrounds/'
+                if not os.path.exists(tmp_cache_path):
+                    os.mkdir(tmp_cache_path)
+                cache_filename = tmp_cache_path + h
+                if os.path.exists(cache_filename):
+                    (width, height) = Image.open(filename).size
                 else:
-                    img = Image.open(filename)
-                (width, height) = img.size
-                if img.mode != 'RGB':
-                    img = img.convert('RGB')
-                if size:
-                    img.thumbnail((size, size), Image.ANTIALIAS)
-                img = imtools.round_image(img, {}, False, None, 3, 255)
-                img = imtools.drop_shadow(img, 4, 4, background_color=(255, 
255, 255, 0), shadow_color=0x444444, border=8, shadow_blur=3, 
force_background_color=False, cache=None)
-                # Convert Image -> Pixbuf (save to file, GTK3 is not reliable 
for that)
-                f = tempfile.NamedTemporaryFile(delete=False)
-                temp_filename = f.name
-                f.close()
-                img.save(temp_filename, "png")
-                pix = [GdkPixbuf.Pixbuf.new_from_file(temp_filename), width, 
height]
-                os.unlink(temp_filename)
+                    if mimetype == "image/svg+xml":
+                        tmp_pix = GdkPixbuf.Pixbuf.new_from_file(filename)
+                        tmp_fp, tmp_filename = tempfile.mkstemp()
+                        os.close(tmp_fp)
+                        tmp_pix.savev(tmp_filename, "png", [], [])
+                        img = Image.open(tmp_filename)
+                        os.unlink(tmp_filename)
+                    else:
+                        img = Image.open(filename)
+                    (width, height) = img.size
+                    if img.mode != 'RGB':
+                        img = img.convert('RGB')
+                    if size:
+                        img.thumbnail((size, size), Image.ANTIALIAS)
+                    img = imtools.round_image(img, {}, False, None, 3, 255)
+                    img = imtools.drop_shadow(img, 4, 4, 
background_color=(255, 255, 255, 0), shadow_color=0x444444, border=8, 
shadow_blur=3, force_background_color=False, cache=None)
+                    # Convert Image -> Pixbuf (save to file, GTK3 is not 
reliable for that)
+                    img.save(cache_filename, "png")
+                pix = [GdkPixbuf.Pixbuf.new_from_file(cache_filename), width, 
height]
             except Exception, detail:
                 print "Failed to convert %s: %s" % (filename, detail)
                 pix = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/modules/cs_sound.py
 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/modules/cs_sound.py
--- 
old/Cinnamon-3.0.1/files/usr/share/cinnamon/cinnamon-settings/modules/cs_sound.py
   2016-04-25 11:11:29.000000000 +0200
+++ 
new/Cinnamon-3.0.2/files/usr/share/cinnamon/cinnamon-settings/modules/cs_sound.py
   2016-05-10 17:39:03.000000000 +0200
@@ -481,7 +481,7 @@
             box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 0)
             button.add(box)
             
-            icon = Gtk.Image.new_from_icon_name(position[2], 6)
+            icon = Gtk.Image.new_from_icon_name(position[2], 
Gtk.IconSize.DIALOG)
             box.pack_start(icon, False, False, 0)
             box.pack_start(Gtk.Label(position[0]), False, False, 0)
             
@@ -497,9 +497,17 @@
         content_area = self.get_content_area()
         content_area.set_border_width(12)
         content_area.add(grid)
+
+        button = Gtk.Button.new_from_stock("gtk-close")
+        button.connect("clicked", self._destroy)
+        content_area.add(button)
+
         self.show_all()
         self.setPositionHideState()
-    
+
+    def _destroy(self, widget):
+        self.destroy()
+
     def test(self, b, info):
         position = SOUND_TEST_MAP[info["index"]]
 
@@ -704,10 +712,12 @@
         
         iconTheme = Gtk.IconTheme.get_default()        
         gicon = device.get_gicon()
-        lookup = iconTheme.lookup_by_gicon(gicon, 32, 0)
-        if lookup is not None:
-            icon = lookup.load_icon()
-        else:
+        icon = None
+        if gicon is not None:
+            lookup = iconTheme.lookup_by_gicon(gicon, 32, 0)
+            if lookup is not None:
+                icon = lookup.load_icon()
+        if icon is not None:
             if ("bluetooth" in device.get_icon_name()):
                 icon = iconTheme.load_icon("bluetooth", 32, 0)
             else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cinnamon-3.0.1/js/ui/appletManager.js 
new/Cinnamon-3.0.2/js/ui/appletManager.js
--- old/Cinnamon-3.0.1/js/ui/appletManager.js   2016-04-25 11:11:29.000000000 
+0200
+++ new/Cinnamon-3.0.2/js/ui/appletManager.js   2016-05-10 17:39:03.000000000 
+0200
@@ -436,7 +436,8 @@
 }
 
 function get_object_for_uuid (uuid, instanceId) {
-    return appletObj.find(x => x && (x._uuid == uuid || x.instance_id == 
instanceId));
+    return appletObj.find(x => x && x._uuid == uuid &&
+                               (x.instance_id == instanceId || instanceId == 
uuid));
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cinnamon-3.0.1/js/ui/indicatorManager.js 
new/Cinnamon-3.0.2/js/ui/indicatorManager.js
--- old/Cinnamon-3.0.1/js/ui/indicatorManager.js        2016-04-25 
11:11:29.000000000 +0200
+++ new/Cinnamon-3.0.2/js/ui/indicatorManager.js        2016-05-10 
17:39:03.000000000 +0200
@@ -895,7 +895,7 @@
         while (actorDragable) {
             if 
((actorDragable._delegate)&&(actorDragable._delegate._draggable))
                 return actorDragable._delegate._draggable;
-            actorDragable = this.actor.get_parent();
+            actorDragable = actorDragable.get_parent();
         }
         return null;
     },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cinnamon-3.0.1/js/ui/windowManager.js 
new/Cinnamon-3.0.2/js/ui/windowManager.js
--- old/Cinnamon-3.0.1/js/ui/windowManager.js   2016-04-25 11:11:29.000000000 
+0200
+++ new/Cinnamon-3.0.2/js/ui/windowManager.js   2016-05-10 17:39:03.000000000 
+0200
@@ -509,12 +509,12 @@
             return global.settings.get_boolean("desktop-effects");
         }
         if (type == Meta.WindowType.DIALOG || type == 
Meta.WindowType.MODAL_DIALOG) {
-            return global.settings.get_boolean("desktop-effects-on-dialogs");
+            return global.settings.get_boolean("desktop-effects") && 
global.settings.get_boolean("desktop-effects-on-dialogs");
         }
         if (type == Meta.WindowType.MENU ||
             type == Meta.WindowType.DROPDOWN_MENU ||
             type == Meta.WindowType.POPUP_MENU) {
-            return global.settings.get_boolean("desktop-effects-on-menus");
+            return global.settings.get_boolean("desktop-effects") && 
global.settings.get_boolean("desktop-effects-on-menus");
         }
         return false;
     },


Reply via email to