Hello community,

here is the log from the commit of package cinnamon for openSUSE:Factory 
checked in at 2016-05-29 03:11:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-23 
16:40:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cinnamon.new/cinnamon.changes   2016-05-29 
03:12:54.000000000 +0200
@@ -1,0 +2,20 @@
+Tue May 24 16:25:54 UTC 2016 - sor.ale...@meowr.ru
+
+- Update to version 3.0.4:
+  * Update pot file.
+  * cs_effects: Only show overlay scrollbar toggle when using
+    gtk3 >= 3.16.
+  * sound applet: Use an icon that actually exists for blank
+    coverart.
+  * sound-applet: Fix an icon name.
+  * Ignore accents/stokes when searching the menu or
+    cinnamon-settings.
+  * Menu applet: Remove trailing spaces.
+  * Menu applet: Don't refresh twice at the same time.
+  * [Menu applet] Fix not cleared drag placeholder in favourites
+    box, if an application was dragged over, but not dropped on the
+    favourites box.
+- Rebase cinnamon-settings-native.patch,
+  cinnamon-no-gksu-requirement.patch.
+
+-------------------------------------------------------------------

Old:
----
  cinnamon-3.0.3.tar.gz

New:
----
  cinnamon-3.0.4.tar.gz

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

Other differences:
------------------
++++++ cinnamon.spec ++++++
--- /var/tmp/diff_new_pack.BBAwc0/_old  2016-05-29 03:12:55.000000000 +0200
+++ /var/tmp/diff_new_pack.BBAwc0/_new  2016-05-29 03:12:55.000000000 +0200
@@ -21,7 +21,7 @@
 %define _name   Cinnamon
 %define _version 3.0.0
 Name:           cinnamon
-Version:        3.0.3
+Version:        3.0.4
 Release:        0
 Summary:        GNU/Linux Desktop featuring a traditional layout
 License:        GPL-2.0+ and LGPL-2.1

++++++ cinnamon-3.0.3.tar.gz -> cinnamon-3.0.4.tar.gz ++++++
++++ 3103 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/Cinnamon-3.0.3/configure.ac new/Cinnamon-3.0.4/configure.ac
--- old/Cinnamon-3.0.3/configure.ac     2016-05-20 13:06:07.000000000 +0200
+++ new/Cinnamon-3.0.4/configure.ac     2016-05-23 13:52:15.000000000 +0200
@@ -1,5 +1,5 @@
 AC_PREREQ(2.63)
-AC_INIT([cinnamon],[3.0.3],[https://github.com/linuxmint/Cinnamon/issues],[cinnamon])
+AC_INIT([cinnamon],[3.0.4],[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' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/Cinnamon-3.0.3/debian/changelog new/Cinnamon-3.0.4/debian/changelog
--- old/Cinnamon-3.0.3/debian/changelog 2016-05-20 13:06:07.000000000 +0200
+++ new/Cinnamon-3.0.4/debian/changelog 2016-05-23 13:52:15.000000000 +0200
@@ -1,3 +1,25 @@
+cinnamon (3.0.4) sarah; urgency=medium
+
+  [ Clement Lefebvre ]
+  * Updated pot file
+
+  [ Michael Webster ]
+  * cs_effects: Only show overlay scrollbar toggle when using gtk3 >= 3.16.
+  * sound applet: Use an icon that actually exists for blank coverart.
+
+  [ JosephMcc ]
+  * sound-applet: Fix an icon name
+
+  [ Clement Lefebvre ]
+  * Ignore accents/stokes when searching the menu or cinnamon-settings
+  * Menu applet: Removed trailing spaces
+  * Menu applet: Don't refresh twice at the same time.
+
+  [ Lars Mueller ]
+  * [Menu applet] Fix not cleared drag placeholder in favorites box This fixes 
the uncleared drag placeholder in the favorites box, if an application was 
dragged over, but not dropped on the favorites box This is for #5322
+
+ -- Clement Lefebvre <r...@linuxmint.com>  Mon, 23 May 2016 12:51:41 +0100
+
 cinnamon (3.0.3) sarah; urgency=medium
 
   [ Dustin Falgout ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/Cinnamon-3.0.3/files/usr/share/cinnamon/applets/m...@cinnamon.org/applet.js 
new/Cinnamon-3.0.4/files/usr/share/cinnamon/applets/m...@cinnamon.org/applet.js
--- 
old/Cinnamon-3.0.3/files/usr/share/cinnamon/applets/m...@cinnamon.org/applet.js 
    2016-05-20 13:06:07.000000000 +0200
+++ 
new/Cinnamon-3.0.4/files/usr/share/cinnamon/applets/m...@cinnamon.org/applet.js 
    2016-05-23 13:52:15.000000000 +0200
@@ -53,7 +53,7 @@
  * but we really only need it when we start keyboard
  * navigating, so increase speed, we reload only when we
  * want to use it.
- */ 
+ */
 
 function VisibleChildIterator(container) {
     this._init(container);
@@ -152,7 +152,7 @@
             case "add_to_favorites":
                 
AppFavorites.getAppFavorites().addFavorite(this._appButton.app.get_id());
                 this._appButton.toggleMenu();
-                break;                
+                break;
             case "remove_from_favorites":
                 
AppFavorites.getAppFavorites().removeFavorite(this._appButton.app.get_id());
                 this._appButton.toggleMenu();
@@ -161,7 +161,7 @@
                 Util.spawnCommandLine("gksu -m '" + _("Please provide your 
password to uninstall this application") + "' 
/usr/bin/cinnamon-remove-application '" + 
this._appButton.app.get_app_info().get_filename() + "'");
                 this._appButton.appsMenuButton.menu.close();
                 break;
-        }        
+        }
         return false;
     }
 
@@ -173,19 +173,19 @@
 
 GenericApplicationButton.prototype = {
     __proto__: PopupMenu.PopupSubMenuMenuItem.prototype,
-    
+
     _init: function(appsMenuButton, app, withMenu) {
         this.app = app;
         this.appsMenuButton = appsMenuButton;
         PopupMenu.PopupBaseMenuItem.prototype._init.call(this, {hover: false});
-        
+
         this.withMenu = withMenu;
         if (this.withMenu){
             this.menu = new PopupMenu.PopupSubMenu(this.actor);
             this.menu.actor.set_style_class_name('menu-context-menu');
             this.menu.connect('open-state-changed', Lang.bind(this, 
this._subMenuOpenStateChanged));
         }
-    }, 
+    },
 
     highlight: function() {
         this.actor.add_style_pseudo_class('highlighted');
@@ -198,8 +198,8 @@
         }
         this.appsMenuButton._knownApps.push(app_key);
         this.actor.remove_style_pseudo_class('highlighted');
-    },   
-    
+    },
+
     _onButtonReleaseEvent: function (actor, event) {
         if (event.get_button()==1){
             this.activate(event);
@@ -211,20 +211,20 @@
         }
         return true;
     },
-    
+
     activate: function(event) {
-        this.unhighlight();    
+        this.unhighlight();
         this.app.open_new_window(-1);
         this.appsMenuButton.menu.close();
     },
-    
+
     closeMenu: function() {
         if (this.withMenu) this.menu.close();
     },
-    
+
     toggleMenu: function() {
         if (!this.withMenu) return;
-        
+
         if (!this.menu.isOpen){
             let children = this.menu.box.get_children();
             for (var i in children) {
@@ -251,7 +251,7 @@
         }
         this.menu.toggle();
     },
-    
+
     _subMenuOpenStateChanged: function() {
         if (this.menu.isOpen) this.appsMenuButton._scrollToButton(this.menu);
     }
@@ -263,7 +263,7 @@
 
 TransientButton.prototype = {
     __proto__: PopupMenu.PopupSubMenuMenuItem.prototype,
-    
+
     _init: function(appsMenuButton, pathOrCommand) {
         let displayPath = pathOrCommand;
         if (pathOrCommand.charAt(0) == '~') {
@@ -286,7 +286,7 @@
         this.appsMenuButton = appsMenuButton;
         PopupMenu.PopupBaseMenuItem.prototype._init.call(this, {hover: false});
 
-        // We need this fake app to help appEnterEvent/appLeaveEvent 
+        // We need this fake app to help appEnterEvent/appLeaveEvent
         // work with our search result.
         this.app = {
             get_app_info: {
@@ -305,7 +305,7 @@
             }
         };
 
-        
+
 
         let iconBox = new St.Bin();
         this.file = Gio.file_new_for_path(this.pathOrCommand);
@@ -329,19 +329,19 @@
         this.addActor(this.icon);
 
         this.label = new St.Label({ text: displayPath, style_class: 
'menu-application-button-label' });
-        this.label.clutter_text.ellipsize = Pango.EllipsizeMode.END;        
+        this.label.clutter_text.ellipsize = Pango.EllipsizeMode.END;
         this.label.set_style(MAX_BUTTON_WIDTH);
         this.addActor(this.label);
         this.isDraggableApp = false;
     },
-    
+
     _onButtonReleaseEvent: function (actor, event) {
         if (event.get_button()==1){
             this.activate(event);
         }
         return true;
     },
-    
+
     activate: function(event) {
         if (this.handler != null) {
             this.handler.launch([this.file], null)
@@ -352,9 +352,9 @@
             } catch (e) {
                 global.logError("No handler available to open " + 
this.file.get_uri());
             }
-            
+
         }
-        
+
         this.appsMenuButton.menu.close();
     }
 }
@@ -365,7 +365,7 @@
 
 ApplicationButton.prototype = {
     __proto__: GenericApplicationButton.prototype,
-    
+
     _init: function(appsMenuButton, app, showIcon) {
         GenericApplicationButton.prototype._init.call(this, appsMenuButton, 
app, true);
         this.category = new Array();
@@ -377,22 +377,23 @@
         }
         this.name = this.app.get_name();
         this.label = new St.Label({ text: this.name, style_class: 
'menu-application-button-label' });
-        this.label.clutter_text.ellipsize = Pango.EllipsizeMode.END;        
+        this.label.clutter_text.ellipsize = Pango.EllipsizeMode.END;
         this.label.set_style(MAX_BUTTON_WIDTH);
         this.addActor(this.label);
         this._draggable = DND.makeDraggable(this.actor);
+        this._draggable.connect('drag-end', Lang.bind(this, this._onDragEnd));
         this.isDraggableApp = true;
         this.actor.label_actor = this.label;
         if (showIcon) {
             this.icon.realize();
         }
         this.label.realize();
-    },     
-    
+    },
+
     get_app_id: function() {
         return this.app.get_id();
     },
-    
+
     getDragActor: function() {
         let favorites = AppFavorites.getAppFavorites().getFavorites();
         let nbFavorites = favorites.length;
@@ -408,6 +409,10 @@
     // we show as the item is being dragged.
     getDragActorSource: function() {
         return this.actor;
+    },
+
+    _onDragEnd: function() {
+        this.appsMenuButton.favoritesBox._delegate._clearDragPlaceholder();
     }
 };
 
@@ -417,7 +422,7 @@
 
 SearchProviderResultButton.prototype = {
     __proto__: PopupMenu.PopupBaseMenuItem.prototype,
-    
+
     _init: function(appsMenuButton, provider, result) {
         this.provider = provider;
         this.result = result;
@@ -426,7 +431,7 @@
         PopupMenu.PopupBaseMenuItem.prototype._init.call(this, {hover: false});
         this.actor.set_style_class_name('menu-application-button');
 
-        // We need this fake app to help appEnterEvent/appLeaveEvent 
+        // We need this fake app to help appEnterEvent/appLeaveEvent
         // work with our search result.
         this.app = {
             get_app_info: {
@@ -444,7 +449,7 @@
                 return result.label;
             }
         };
-        
+
         this.icon = null;
         if (result.icon){
             this.icon = result.icon;
@@ -453,7 +458,7 @@
         }else if (result.icon_filename){
             this.icon = new St.Icon({gicon: new Gio.FileIcon({file: 
Gio.file_new_for_path(result.icon_filename)}), icon_size: 
APPLICATION_ICON_SIZE});
         }
-        
+
         if (this.icon){
             this.addActor(this.icon);
         }
@@ -465,14 +470,14 @@
         }
         this.label.realize();
     },
-    
+
     _onButtonReleaseEvent: function (actor, event) {
         if (event.get_button() == 1){
             this.activate(event);
         }
         return true;
     },
-    
+
     activate: function(event) {
         try{
             this.provider.on_result_selected(this.result);
@@ -500,7 +505,7 @@
         this.actor.set_style_class_name('menu-application-button');
         this.actor._delegate = this;
         this.label = new St.Label({ text: this.button_name, style_class: 
'menu-application-button-label' });
-        this.label.clutter_text.ellipsize = Pango.EllipsizeMode.END;        
+        this.label.clutter_text.ellipsize = Pango.EllipsizeMode.END;
         this.label.set_style(MAX_BUTTON_WIDTH);
         if (showIcon) {
             this.icon = place.iconFactory(APPLICATION_ICON_SIZE);
@@ -568,7 +573,7 @@
         this.actor.set_style_class_name('menu-application-button');
         this.actor._delegate = this;
         this.label = new St.Label({ text: this.button_name, style_class: 
'menu-application-button-label' });
-        this.label.clutter_text.ellipsize = Pango.EllipsizeMode.END;        
+        this.label.clutter_text.ellipsize = Pango.EllipsizeMode.END;
         this.label.set_style(MAX_BUTTON_WIDTH);
         if (showIcon) {
             this.icon = file.createIcon(APPLICATION_ICON_SIZE);
@@ -676,7 +681,7 @@
         }
         this.menu.toggle();
     },
-    
+
     _subMenuOpenStateChanged: function() {
         if (this.menu.isOpen) this.appsMenuButton._scrollToButton(this.menu);
     }
@@ -696,7 +701,7 @@
         this.button_name = "";
 
         this.label = new St.Label({ text: label, style_class: 
'menu-application-button-label' });
-        this.label.clutter_text.ellipsize = Pango.EllipsizeMode.END; 
+        this.label.clutter_text.ellipsize = Pango.EllipsizeMode.END;
         this.label.set_style(MAX_BUTTON_WIDTH);
 
         if (icon != null) {
@@ -740,7 +745,7 @@
 
         this.menu = new PopupMenu.PopupSubMenu(this.actor);
     },
-    
+
     _onButtonReleaseEvent: function (actor, event) {
         if (event.get_button()==1){
             this.appsMenuButton.menu.close();
@@ -776,7 +781,7 @@
             label = category.get_name();
         } else
             label = _("All Applications");
-        
+
         this.actor._delegate = this;
         this.label = new St.Label({ text: label, style_class: 
'menu-category-button-label' });
         if (category && this.icon_name) {
@@ -846,9 +851,9 @@
 
 FavoritesButton.prototype = {
     __proto__: GenericApplicationButton.prototype,
-    
+
     _init: function(appsMenuButton, app, nbFavorites) {
-        GenericApplicationButton.prototype._init.call(this, appsMenuButton, 
app);        
+        GenericApplicationButton.prototype._init.call(this, appsMenuButton, 
app);
         let monitorHeight = Main.layoutManager.primaryMonitor.height;
         let real_size = (0.7 * monitorHeight) / nbFavorites;
         let icon_size = 0.6 * real_size / global.ui_scale;
@@ -856,7 +861,7 @@
             icon_size = MAX_FAV_ICON_SIZE;
         this.actor.style = "padding-top: "+(icon_size / 3)+"px;padding-bottom: 
"+(icon_size / 3)+"px; margin:auto;"
 
-        this.actor.add_style_class_name('menu-favorites-button');    
+        this.actor.add_style_class_name('menu-favorites-button');
         let icon = app.create_icon_texture(icon_size);
 
         this.addActor(icon);
@@ -874,7 +879,7 @@
     get_app_id: function() {
         return this.app.get_id();
     },
-    
+
     getDragActor: function() {
         return new Clutter.Clone({ source: this.actor });
     },
@@ -892,7 +897,7 @@
 
 SystemButton.prototype = {
     __proto__: PopupMenu.PopupSubMenuMenuItem.prototype,
-    
+
     _init: function(appsMenuButton, icon, nbFavorites, name, desc) {
         PopupMenu.PopupBaseMenuItem.prototype._init.call(this, {hover: false});
 
@@ -905,7 +910,7 @@
         if (icon_size > MAX_FAV_ICON_SIZE)
             icon_size = MAX_FAV_ICON_SIZE;
         this.actor.style = "padding-top: "+(icon_size / 3)+"px;padding-bottom: 
"+(icon_size / 3)+"px; margin:auto;"
-        this.actor.add_style_class_name('menu-favorites-button');    
+        this.actor.add_style_class_name('menu-favorites-button');
 
         let iconObj = new St.Icon({icon_name: icon, icon_size: icon_size, 
icon_type: St.IconType.FULLCOLOR});
         this.addActor(iconObj);
@@ -928,7 +933,7 @@
         this.actor = new St.BoxLayout();
         this.actor._delegate = this;
     },
-    
+
     acceptDrop : function(source, actor, x, y, time) {
         if (source instanceof FavoritesButton){
             source.actor.destroy();
@@ -948,12 +953,12 @@
     _init: function() {
         this.actor = new St.BoxLayout({ vertical: true });
         this.actor._delegate = this;
-        
+
         this._dragPlaceholder = null;
         this._dragPlaceholderPos = -1;
         this._animatingPlaceholdersCount = 0;
     },
-    
+
     _clearDragPlaceholder: function() {
         if (this._dragPlaceholder) {
             this._dragPlaceholder.animateOutAndDestroy();
@@ -961,7 +966,7 @@
             this._dragPlaceholderPos = -1;
         }
     },
-    
+
     handleDragOver : function(source, actor, x, y, time) {
         let app = source.app;
 
@@ -1031,7 +1036,7 @@
 
         return DND.DragMotionResult.MOVE_DROP;
     },
-    
+
     // Draggable target interface
     acceptDrop : function(source, actor, x, y, time) {
         let app = source.app;
@@ -1048,7 +1053,7 @@
             if (this._dragPlaceholder &&
                 children[i] == this._dragPlaceholder.actor)
                 continue;
-            
+
             if (!(children[i]._delegate instanceof FavoritesButton)) continue;
 
             let childId = children[i]._delegate.app.get_id();
@@ -1079,7 +1084,7 @@
 MyApplet.prototype = {
     __proto__: Applet.TextIconApplet.prototype,
 
-    _init: function(orientation, panel_height, instance_id) {        
+    _init: function(orientation, panel_height, instance_id) {
         Applet.TextIconApplet.prototype._init.call(this, orientation, 
panel_height, instance_id);
         this.initial_load_done = false;
 
@@ -1142,7 +1147,7 @@
         this.RecentManager = new DocInfo.DocManager();
         this.privacy_settings = new Gio.Settings( {schema_id: PRIVACY_SCHEMA} 
);
         this._display();
-        appsys.connect('installed-changed', Lang.bind(this, this._refreshAll));
+        appsys.connect('installed-changed', Lang.bind(this, 
this.onAppSysChanged));
         AppFavorites.getAppFavorites().connect('changed', Lang.bind(this, 
this._refreshFavs));
         this.settings.bindProperty(Settings.BindingDirection.IN, 
"hover-delay", "hover_delay_ms", this._update_hover_delay, null);
         this._update_hover_delay();
@@ -1154,6 +1159,7 @@
         this._pathCompleter.set_dirs_only(false);
         this.lastAcResults = new Array();
         this.settings.bindProperty(Settings.BindingDirection.IN, 
"search-filesystem", "searchFilesystem", null, null);
+        this.refreshing = false; // used as a flag to know if we're currently 
refreshing (so we don't do it more than once concurrently)
 
         // We shouldn't need to call refreshAll() here... since we get a 
"icon-theme-changed" signal when CSD starts.
         // The reason we do is in case the Cinnamon icon theme is the same as 
the one specificed in GTK itself (in .config)
@@ -1172,14 +1178,30 @@
     },
 
     onIconThemeChanged: function() {
-        this._refreshAll();
+        if (this.refreshing == false) {
+            this.refreshing = true;
+            Mainloop.timeout_add_seconds(1, Lang.bind(this, this._refreshAll));
+        }
+    },
+
+    onAppSysChanged: function() {
+        if (this.refreshing == false) {
+            this.refreshing = true;
+            Mainloop.timeout_add_seconds(1, Lang.bind(this, this._refreshAll));
+        }
     },
 
     _refreshAll: function() {
-        this._refreshApps();
-        this._refreshFavs();
-        this._refreshPlaces();
-        this._refreshRecent();
+        try {
+            this._refreshApps();
+            this._refreshFavs();
+            this._refreshPlaces();
+            this._refreshRecent();
+        }
+        catch (exception) {
+            global.log(exception);
+        }
+        this.refreshing = false;
     },
 
     _refreshBelowApps: function() {
@@ -1190,7 +1212,7 @@
     openMenu: function() {
         if (!this._applet_context_menu.isOpen) {
             this.menu.open(false);
-        }        
+        }
     },
 
     _updateActivateOnHover: function() {
@@ -1217,7 +1239,7 @@
         this.menu.destroy();
         this.menu = new Applet.AppletPopupMenu(this, orientation);
         this.menuManager.addMenu(this.menu);
-        
+
         this.menu.actor.add_style_class_name('menu-background');
         this.menu.connect('open-state-changed', Lang.bind(this, 
this._onOpenStateChanged));
         this._display();
@@ -1233,11 +1255,11 @@
     _launch_editor: function() {
         Util.spawnCommandLine("cinnamon-menu-editor");
     },
-    
+
     on_applet_clicked: function(event) {
         this.menu.toggle_with_options(false);
     },
-           
+
     _onSourceKeyPress: function(actor, event) {
         let symbol = event.get_key_symbol();
 
@@ -1381,7 +1403,7 @@
             return true;
         }
 
-        index = this._selectedItemIndex;   
+        index = this._selectedItemIndex;
 
         if (this._activeContainer === null && symbol == Clutter.KEY_Up) {
             this._activeContainer = this.applicationsBox;
@@ -1555,7 +1577,7 @@
     _clearPrevCatSelection: function(actor) {
         if (this._previousTreeSelectedActor && this._previousTreeSelectedActor 
!= actor) {
             this._previousTreeSelectedActor.style_class = 
"menu-category-button";
-            
+
             if (this._previousTreeSelectedActor._delegate) {
                 this._previousTreeSelectedActor._delegate.emit('leave-event');
             }
@@ -1775,13 +1797,13 @@
                 }
             }));
             this.recentButton.actor.connect('leave-event', Lang.bind(this, 
function () {
-               
+
                 if (this._previousTreeSelectedActor === null) {
                     this._previousTreeSelectedActor = this.recentButton.actor;
                 } else {
                     let prevIdx = 
this.catBoxIter.getVisibleIndex(this._previousTreeSelectedActor);
                     let nextIdx = 
this.catBoxIter.getVisibleIndex(this.recentButton.actor);
-                    
+
                     if (Math.abs(prevIdx - nextIdx) <= 1) {
                         this._previousTreeSelectedActor = 
this.recentButton.actor;
                     }
@@ -1791,7 +1813,7 @@
             }));
             this.categoriesBox.add_actor(this.recentButton.actor);
             this._categoryButtons.push(this.recentButton);
-            
+
             if (this.RecentManager._infosByTimestamp.length > 0) {
                 for (let id = 0; id < MAX_RECENT_FILES && id < 
this.RecentManager._infosByTimestamp.length; id++) {
                     let button = new RecentButton(this, 
this.RecentManager._infosByTimestamp[id], this.showApplicationIcons);
@@ -1828,7 +1850,7 @@
                 this._recentButtons.push(button);
                 this.applicationsBox.add_actor(button.actor);
             }
-            
+
         }
 
         this._setCategoriesButtonActive(!this.searchActive);
@@ -1841,11 +1863,11 @@
         this.applicationsBox.destroy_all_children();
         this._applicationsButtons = new Array();
         this._transientButtons = new Array();
-        this._applicationsButtonFromApp = new Object(); 
+        this._applicationsButtonFromApp = new Object();
         this._applicationsBoxWidth = 0;
         //Remove all categories
         this.categoriesBox.destroy_all_children();
-        
+
         this._allAppsCategoryButton = new CategoryButton(null);
         this._addEnterEvent(this._allAppsCategoryButton, Lang.bind(this, 
function() {
             if (!this.searchActive) {
@@ -1891,26 +1913,26 @@
                     dirs.push(iter.get_directory());
                 }
             }
-            
+
             let prefCats = ["administration", "preferences"];
 
             dirs = dirs.sort(function(a, b) {
                     let menuIdA = a.get_menu_id().toLowerCase();
                     let menuIdB = b.get_menu_id().toLowerCase();
-                    
+
                     let prefIdA = prefCats.indexOf(menuIdA);
                     let prefIdB = prefCats.indexOf(menuIdB);
-                    
+
                     if (prefIdA < 0 && prefIdB >= 0) {
                       return -1;
                     }
                     if (prefIdA >= 0 && prefIdB < 0) {
                       return 1;
                     }
-                    
+
                     let nameA = a.get_name().toLowerCase();
                     let nameB = b.get_name().toLowerCase();
-                    
+
                     if (nameA > nameB) {
                         return 1;
                     }
@@ -1919,7 +1941,7 @@
                     }
                     return 0;
                 });
-            
+
             for (let i = 0; i < dirs.length; i++) {
                 let dir = dirs[i];
                 if (dir.get_is_nodisplay())
@@ -1939,7 +1961,7 @@
                                                 this._select_category(dir, 
categoryButton);
                                             } else {
                                                 
categoryButton.actor.style_class = "menu-category-button";
-                                                
+
                                             }
                                         }
                                 });
@@ -2029,7 +2051,7 @@
         //Separator
         if (launchers.length != 0) {
                 let separator = new PopupMenu.PopupSeparatorMenuItem();
-                this.favoritesBox.add_actor(separator.actor, { y_align: 
St.Align.END, y_fill: false });                   
+                this.favoritesBox.add_actor(separator.actor, { y_align: 
St.Align.END, y_fill: false });
         }
 
         //Lock screen
@@ -2044,22 +2066,22 @@
             this.menu.close();
 
             let screensaver_settings = new Gio.Settings({ schema_id: 
"org.cinnamon.desktop.screensaver" });
-            let screensaver_dialog = 
Gio.file_new_for_path("/usr/bin/cinnamon-screensaver-command");    
+            let screensaver_dialog = 
Gio.file_new_for_path("/usr/bin/cinnamon-screensaver-command");
             if (screensaver_dialog.query_exists(null)) {
-                if (screensaver_settings.get_boolean("ask-for-away-message")) 
{                                    
+                if (screensaver_settings.get_boolean("ask-for-away-message")) {
                     Util.spawnCommandLine("cinnamon-screensaver-lock-dialog");
                 }
                 else {
                     Util.spawnCommandLine("cinnamon-screensaver-command 
--lock");
                 }
             }
-            else {                
+            else {
                 this._screenSaverProxy.LockRemote("");
-            }                        
+            }
         });
-        
-        this.favoritesBox.add_actor(button.actor, { y_align: St.Align.END, 
y_fill: false });                  
-        
+
+        this.favoritesBox.add_actor(button.actor, { y_align: St.Align.END, 
y_fill: false });
+
         //Logout button
         let button = new SystemButton(this, "system-log-out", launchers.length 
+ 3,
                                       _("Logout"),
@@ -2072,9 +2094,9 @@
             this.menu.close();
             this._session.LogoutRemote(0);
         });
-        
-        this.favoritesBox.add_actor(button.actor, { y_align: St.Align.END, 
y_fill: false }); 
-                        
+
+        this.favoritesBox.add_actor(button.actor, { y_align: St.Align.END, 
y_fill: false });
+
         //Shutdown button
         let button = new SystemButton(this, "system-shutdown", 
launchers.length + 3,
                                       _("Quit"),
@@ -2087,12 +2109,12 @@
             this.menu.close();
             this._session.ShutdownRemote();
         });
-        
+
         this.favoritesBox.add_actor(button.actor, { y_align: St.Align.END, 
y_fill: false });
 
         this._recalc_height();
     },
-   
+
     _loadCategory: function(dir, top_dir) {
         var iter = dir.iter();
         var has_entries = false;
@@ -2108,12 +2130,12 @@
                         app = appsys.lookup_settings_app_by_tree_entry(entry);
                     var app_key = app.get_id()
                     if (app_key == null) {
-                        app_key = app.get_name() + ":" + 
+                        app_key = app.get_name() + ":" +
                             app.get_description();
                     }
                     if (!(app_key in this._applicationsButtonFromApp)) {
 
-                        let applicationButton = new ApplicationButton(this, 
app, this.showApplicationIcons);                        
+                        let applicationButton = new ApplicationButton(this, 
app, this.showApplicationIcons);
 
                         var app_is_known = false;
                         for (var i = 0; i < this._knownApps.length; i++) {
@@ -2129,7 +2151,7 @@
                                 this._knownApps.push(app_key);
                             }
                         }
-                    
+
                         applicationButton.actor.connect('leave-event', 
Lang.bind(this, this._appLeaveEvent, applicationButton));
                         this._addEnterEvent(applicationButton, Lang.bind(this, 
this._appEnterEvent, applicationButton));
                         this._applicationsButtons.push(applicationButton);
@@ -2175,7 +2197,7 @@
         if (box_height+current_scroll_value < 
button.actor.get_allocation_box().y2+10) new_scroll_value = 
button.actor.get_allocation_box().y2-box_height+10;
         if (new_scroll_value!=current_scroll_value) 
this.applicationsScrollBox.get_vscroll_bar().get_adjustment().set_value(new_scroll_value);
     },
-               
+
     _display : function() {
         this._activeContainer = null;
         this._activeActor = null;
@@ -2185,22 +2207,22 @@
         this.current_motion_actor = null;
         let section = new PopupMenu.PopupMenuSection();
         this.menu.addMenuItem(section);
-        
+
         this.leftPane = new St.BoxLayout({ vertical: true });
-                  
-        this.leftBox = new St.BoxLayout({ style_class: 'menu-favorites-box', 
vertical: true });        
-        
+
+        this.leftBox = new St.BoxLayout({ style_class: 'menu-favorites-box', 
vertical: true });
+
         this._session = new GnomeSession.SessionManager();
-        this._screenSaverProxy = new ScreenSaver.ScreenSaverProxy();           
 
-                                       
+        this._screenSaverProxy = new ScreenSaver.ScreenSaverProxy();
+
         if (this.favBoxShow)
-        this.leftPane.add_actor(this.leftBox, { y_align: St.Align.END, y_fill: 
false });        
-        
+        this.leftPane.add_actor(this.leftBox, { y_align: St.Align.END, y_fill: 
false });
+
         let rightPane = new St.BoxLayout({ vertical: true });
-        
+
         this.searchBox = new St.BoxLayout({ style_class: 'menu-search-box' });
         rightPane.add_actor(this.searchBox);
-        
+
         this.searchEntry = new St.Entry({ name: 'menu-search-entry',
                                      hint_text: _("Type to search..."),
                                      track_hover: true,
@@ -2239,7 +2261,7 @@
                         Lang.bind(this, function() {
                                       this.menu.passEvents = false;
                                   }));
-        
+
         this.applicationsBox = new St.BoxLayout({ style_class: 
'menu-applications-inner-box', vertical:true });
         this.applicationsBox.add_style_class_name('menu-applications-box'); 
//this is to support old themes
         this.applicationsScrollBox.add_actor(this.applicationsBox);
@@ -2251,12 +2273,12 @@
         this.favoritesBox = fav_obj.actor;
         this.leftBox.add_actor(this.favoritesBox, { y_align: St.Align.END, 
y_fill: false });
 
-        this.mainBox = new St.BoxLayout({ style_class: 
'menu-applications-outer-box', vertical:false });       
+        this.mainBox = new St.BoxLayout({ style_class: 
'menu-applications-outer-box', vertical:false });
         this.mainBox.add_style_class_name('menu-applications-box'); //this is 
to support old themes
-                
+
         this.mainBox.add_actor(this.leftPane, { span: 1 });
         this.mainBox.add_actor(rightPane, { span: 1 });
-        
+
         section.actor.add_actor(this.mainBox);
 
         this.selectedAppBox = new St.BoxLayout({ style_class: 
'menu-selected-app-box', vertical: true });
@@ -2345,7 +2367,7 @@
             }
         }
     },
-    
+
     _resize_actor_iter: function(actor) {
         let [min, nat] = actor.get_preferred_width(-1.0);
         if (nat > this._applicationsBoxWidth){
@@ -2447,7 +2469,7 @@
                 button.actor.realize();
             }
         }
-        
+
         this._searchProviderButtons.forEach( function (item, index) {
             if (item.actor.visible) {
                 item.actor.hide();
@@ -2455,7 +2477,7 @@
         });
     },
 
-    _setCategoriesButtonActive: function(active) {         
+    _setCategoriesButtonActive: function(active) {
         try {
             let categoriesButtons = this.categoriesBox.get_children();
             for (var i in categoriesButtons) {
@@ -2479,7 +2501,7 @@
         this._setCategoriesButtonActive(true);
         global.stage.set_key_focus(this.searchEntry);
      },
-     
+
      _onSearchTextChanged: function (se, prop) {
         if (this.menuIsOpening) {
             this.menuIsOpening = false;
@@ -2524,7 +2546,7 @@
        }
        return res;
     },
-    
+
     _listDevices: function(pattern){
        let devices = Main.placesManager.getMounts();
        var res = new Array();
@@ -2533,7 +2555,7 @@
        }
        return res;
     },
-    
+
     _listApplications: function(category_menu_id, pattern){
         var applist = new Array();
         if (category_menu_id) {
@@ -2546,19 +2568,20 @@
             res = new Array();
             for (var i in this._applicationsButtons) {
                 let app = this._applicationsButtons[i].app;
-                if (app.get_name().toLowerCase().indexOf(pattern)!=-1 ||
-                    (app.get_keywords() && 
app.get_keywords().toLowerCase().indexOf(pattern)!=-1) ||
-                    (app.get_description() && 
app.get_description().toLowerCase().indexOf(pattern)!=-1) ||
-                    (app.get_id() && app.get_id().slice(0, 
-8).toLowerCase().indexOf(pattern)!=-1))
+                if 
(Util.latinise(app.get_name().toLowerCase()).indexOf(pattern)!=-1 ||
+                    (app.get_keywords() && 
Util.latinise(app.get_keywords().toLowerCase()).indexOf(pattern)!=-1) ||
+                    (app.get_description() && 
Util.latinise(app.get_description().toLowerCase()).indexOf(pattern)!=-1) ||
+                    (app.get_id() && Util.latinise(app.get_id().slice(0, 
-8).toLowerCase()).indexOf(pattern)!=-1))
                          res.push(app.get_id());
             }
         } else res = applist;
         return res;
     },
-    
+
     _doSearch: function(){
         this._searchTimeoutId = 0;
         let pattern = this.searchEntryText.get_text().replace(/^\s+/g, 
'').replace(/\s+$/g, '').toLowerCase();
+        pattern = Util.latinise(pattern);
         if (pattern==this._previousSearchPattern) return false;
         this._previousSearchPattern = pattern;
         this._activeContainer = null;
@@ -2566,7 +2589,7 @@
         this._selectedItemIndex = null;
         this._previousTreeSelectedActor = null;
         this._previousSelectedActor = null;
-       
+
        // _listApplications returns all the applications when the search
        // string is zero length. This will happend if you type a space
        // in the search entry.
@@ -2595,7 +2618,7 @@
         }
 
         this._displayButtons(null, placesResults, recentResults, appResults, 
acResults);
-       
+
         this.appBoxIter.reloadVisible();
         if (this.appBoxIter.getNumVisibleChildren() > 0) {
             let item_actor = this.appBoxIter.getFirstVisible();
@@ -2605,7 +2628,7 @@
                 item_actor._delegate.emit('enter-event');
             }
         }
-        
+
         SearchProviderManager.launch_all(pattern, Lang.bind(this, 
function(provider, results){
             try{
             for (var i in results){
@@ -2621,7 +2644,7 @@
             }
             }catch(e){global.log(e);}
         }));
-        
+
         return false;
     },
 
@@ -2681,7 +2704,7 @@
     }
 };
 
-function main(metadata, orientation, panel_height, instance_id) {  
+function main(metadata, orientation, panel_height, instance_id) {
     let myApplet = new MyApplet(orientation, panel_height, instance_id);
-    return myApplet;      
+    return myApplet;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/Cinnamon-3.0.3/files/usr/share/cinnamon/applets/so...@cinnamon.org/applet.js
 
new/Cinnamon-3.0.4/files/usr/share/cinnamon/applets/so...@cinnamon.org/applet.js
--- 
old/Cinnamon-3.0.3/files/usr/share/cinnamon/applets/so...@cinnamon.org/applet.js
    2016-05-20 13:06:07.000000000 +0200
+++ 
new/Cinnamon-3.0.4/files/usr/share/cinnamon/applets/so...@cinnamon.org/applet.js
    2016-05-23 13:52:15.000000000 +0200
@@ -326,7 +326,7 @@
         this.coverBox.set_layout_manager(l);
 
         // Cover art
-        this.cover = new St.Icon({icon_name: "media-optical-cd-audio", 
icon_size: 300, icon_type: St.IconType.FULLCOLOR});
+        this.cover = new St.Icon({icon_name: "media-optical", icon_size: 300, 
icon_type: St.IconType.FULLCOLOR});
         this.coverBox.add_actor(this.cover);
 
         // Track info (artist + title)
@@ -795,7 +795,7 @@
             onComplete: Lang.bind(this, function() {*/
                 this.coverBox.remove_actor(this.cover);
                 if (! cover_path || ! GLib.file_test(cover_path, 
GLib.FileTest.EXISTS)) {
-                    this.cover = new St.Icon({style_class: 
'sound-player-generic-coverart', important: true, icon_name: 
"media-optical-cd-audio", icon_size: 300, icon_type: St.IconType.FULLCOLOR});
+                    this.cover = new St.Icon({style_class: 
'sound-player-generic-coverart', important: true, icon_name: "media-optical", 
icon_size: 300, icon_type: St.IconType.FULLCOLOR});
                     cover_path = null;
                 }
                 else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/Cinnamon-3.0.3/files/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py
 
new/Cinnamon-3.0.4/files/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py
--- 
old/Cinnamon-3.0.3/files/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py
  2016-05-20 13:06:07.000000000 +0200
+++ 
new/Cinnamon-3.0.4/files/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py
  2016-05-23 13:52:15.000000000 +0200
@@ -20,6 +20,7 @@
 import urllib2
 import proxygsettings
 from functools import cmp_to_key
+import unicodedata
 
 # i18n
 gettext.install("cinnamon", "/usr/share/locale")
@@ -345,11 +346,22 @@
         if position == Gtk.EntryIconPosition.SECONDARY:
             self.search_entry.set_text("")
 
+    def strip_accents(self, text):
+        try:
+            text = unicode(text, 'utf-8')
+        except NameError:
+            # unicode is default in Python 3
+            pass
+        text = unicodedata.normalize('NFD', text)
+        text = text.encode('ascii', 'ignore')
+        text = text.decode("utf-8")
+        return str(text)
+
     def filter_visible_function(self, model, iter, user_data = None):
         sidePage = model.get_value(iter, 2)
-        text = self.search_entry.get_text().lower()
-        if sidePage.name.lower().find(text) > -1 or \
-           sidePage.keywords.lower().find(text) > -1:
+        text = self.strip_accents(self.search_entry.get_text().lower())
+        if self.strip_accents(sidePage.name.lower()).find(text) > -1 or \
+           self.strip_accents(sidePage.keywords.lower()).find(text) > -1:
             return True
         else:
             return False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/Cinnamon-3.0.3/files/usr/share/cinnamon/cinnamon-settings/modules/cs_effects.py
 
new/Cinnamon-3.0.4/files/usr/share/cinnamon/cinnamon-settings/modules/cs_effects.py
--- 
old/Cinnamon-3.0.3/files/usr/share/cinnamon/cinnamon-settings/modules/cs_effects.py
 2016-05-20 13:06:07.000000000 +0200
+++ 
new/Cinnamon-3.0.4/files/usr/share/cinnamon/cinnamon-settings/modules/cs_effects.py
 2016-05-23 13:52:15.000000000 +0200
@@ -109,9 +109,9 @@
             widget = GSettingsSwitch(_("Session startup animation"), 
"org.cinnamon", "startup-animation")
             settings.add_row(widget)
 
-            widget = GSettingsSwitch(_("Overlay scroll bars (logout 
required)"), "org.cinnamon.desktop.interface", "gtk-overlay-scrollbars")
-            settings.add_row(widget)
-
+            if Gtk.get_major_version() == 3 and Gtk.get_minor_version() >= 16:
+                widget = GSettingsSwitch(_("Overlay scroll bars (logout 
required)"), "org.cinnamon.desktop.interface", "gtk-overlay-scrollbars")
+                settings.add_row(widget)
 
             self.schema.connect("changed::desktop-effects", 
self.on_desktop_effects_enabled_changed)
 

++++++ cinnamon-no-gksu-requirement.patch ++++++
--- /var/tmp/diff_new_pack.BBAwc0/_old  2016-05-29 03:12:56.000000000 +0200
+++ /var/tmp/diff_new_pack.BBAwc0/_new  2016-05-29 03:12:56.000000000 +0200
@@ -17,7 +17,7 @@
 -                Util.spawnCommandLine("gksu -m '" + _("Please provide your 
password to uninstall this application") + "' 
/usr/bin/cinnamon-remove-application '" + 
this._appButton.app.get_app_info().get_filename() + "'");
 -                this._appButton.appsMenuButton.menu.close();
 -                break;
-         }        
+         }
          return false;
      }
 --- a/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py

++++++ cinnamon-settings-native.patch ++++++
--- /var/tmp/diff_new_pack.BBAwc0/_old  2016-05-29 03:12:56.000000000 +0200
+++ /var/tmp/diff_new_pack.BBAwc0/_new  2016-05-29 03:12:56.000000000 +0200
@@ -1,6 +1,6 @@
 --- a/files/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py
 +++ b/files/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py
-@@ -73,12 +73,9 @@ CONTROL_CENTER_MODULES = [
+@@ -74,12 +74,9 @@ CONTROL_CENTER_MODULES = [
  STANDALONE_MODULES = [
  #         Label                          Executable                          
Icon                Category        Keywords for filter
      [_("Printers"),                      "system-config-printer",        
"cs-printer",         "hardware",       _("printers, laser, inkjet")],


Reply via email to