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; },