Hello community, here is the log from the commit of package cinnamon for openSUSE:Factory checked in at 2017-12-29 18:50:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cinnamon (Old) and /work/SRC/openSUSE:Factory/.cinnamon.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cinnamon" Fri Dec 29 18:50:23 2017 rev:25 rq:559726 version:3.6.7 Changes: -------- --- /work/SRC/openSUSE:Factory/cinnamon/cinnamon.changes 2017-11-27 22:16:38.042504834 +0100 +++ /work/SRC/openSUSE:Factory/.cinnamon.new/cinnamon.changes 2017-12-29 18:50:33.466958659 +0100 @@ -1,0 +2,13 @@ +Sun Dec 24 10:19:44 UTC 2017 - sor.ale...@meowr.ru + +- Update to version 3.6.7: + * Online Accounts: Use translations. + * cinnamonDBus.js: Have GetMonitors throw an error back to GDBus + if something goes wrong. + * menu-applet: Rework vectorBox. + * Fix power applet spamming the log file with error messages on + laptops (gh#linuxmint/Cinnamon#7114). + * Spices description: Do not cut off the letter "n". + * Xlets: Fix shown info for overwritten xlets. + +------------------------------------------------------------------- Old: ---- Cinnamon-3.6.6.tar.gz New: ---- Cinnamon-3.6.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cinnamon.spec ++++++ --- /var/tmp/diff_new_pack.dWobPT/_old 2017-12-29 18:50:34.382695654 +0100 +++ /var/tmp/diff_new_pack.dWobPT/_new 2017-12-29 18:50:34.386694505 +0100 @@ -21,7 +21,7 @@ %define _name Cinnamon %define _version 3.6.0 Name: cinnamon -Version: 3.6.6 +Version: 3.6.7 Release: 0 Summary: GNU/Linux Desktop featuring a traditional layout License: GPL-2.0+ AND LGPL-2.1 ++++++ Cinnamon-3.6.6.tar.gz -> Cinnamon-3.6.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cinnamon-3.6.6/configure.ac new/Cinnamon-3.6.7/configure.ac --- old/Cinnamon-3.6.6/configure.ac 2017-11-23 10:56:12.000000000 +0100 +++ new/Cinnamon-3.6.7/configure.ac 2017-12-18 13:53:18.000000000 +0100 @@ -1,5 +1,5 @@ AC_PREREQ(2.63) -AC_INIT([cinnamon],[3.6.6],[https://github.com/linuxmint/Cinnamon/issues],[cinnamon]) +AC_INIT([cinnamon],[3.6.7],[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.6.6/debian/changelog new/Cinnamon-3.6.7/debian/changelog --- old/Cinnamon-3.6.6/debian/changelog 2017-11-23 10:56:12.000000000 +0100 +++ new/Cinnamon-3.6.7/debian/changelog 2017-12-18 13:53:18.000000000 +0100 @@ -1,3 +1,23 @@ +cinnamon (3.6.7) sylvia; urgency=medium + + [ NikoKrause ] + * Online Accounts: Use translations (#7088) + + [ Michael Webster ] + * cinnamonDBus.js: Have GetMonitors throw an error back to GDBus if something goes wrong. + + [ itzexor ] + * menu-applet: rework vectorBox + + [ jrsrjrsr ] + * Fix Issue #7114 + + [ NikoKrause ] + * Spices description: Do not cut off the letter `n` (#7103) + * Xlets: Fix shown info for overwritten xlets. (#7090) + + -- Clement Lefebvre <r...@linuxmint.com> Mon, 18 Dec 2017 12:52:43 +0000 + cinnamon (3.6.6) sylvia; urgency=medium * Sound settings: Assign the selected device to the profile selector. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cinnamon-3.6.6/files/usr/share/cinnamon/applets/m...@cinnamon.org/applet.js new/Cinnamon-3.6.7/files/usr/share/cinnamon/applets/m...@cinnamon.org/applet.js --- old/Cinnamon-3.6.6/files/usr/share/cinnamon/applets/m...@cinnamon.org/applet.js 2017-11-23 10:56:12.000000000 +0100 +++ new/Cinnamon-3.6.7/files/usr/share/cinnamon/applets/m...@cinnamon.org/applet.js 2017-12-18 13:53:18.000000000 +0100 @@ -2098,33 +2098,59 @@ } }, + /* + * The vectorBox overlays the the categoriesBox to aid in navigation from categories to apps + * by preventing misselections. It is set to the same size as the categoriesOverlayBox and + * categoriesBox. + * + * The actor is a quadrilateral that we turn into a triangle by setting the A and B vertices to + * the same position. The size and origin of the vectorBox are calculated in _getVectorInfo(). + * Using those properties, the bounding box is sized as (w, h) and the triangle is defined as + * follows: + * _____ + * | /|D + * | / | AB: (mx, my) + * | A/ | C: (w, h) + * | B\ | D: (w, 0) + * | \ | + * |____\|C + */ + + _getVectorInfo: function() { + let [mx, my, mask] = global.get_pointer(); + let [bx, by] = this.categoriesOverlayBox.get_transformed_position(); + let [bw, bh] = this.categoriesOverlayBox.get_transformed_size(); + + let xformed_mx = mx - bx; + let xformed_my = my - by; + + if (xformed_mx < 0 || xformed_mx > bw || xformed_my < 0 || xformed_my > bh) { + return null; + } + + return { mx: xformed_mx, + my: xformed_my, + w: bw, + h: bh }; + }, + makeVectorBox: function(actor) { this.destroyVectorBox(actor); - let [mx, my, mask] = global.get_pointer(); - let [bx, by] = this.categoriesApplicationsBox.actor.get_transformed_position(); - let [bw, bh] = this.categoriesApplicationsBox.actor.get_transformed_size(); - let [appbox_x, appbox_y] = this.applicationsBox.get_transformed_position(); - - let right_x = appbox_x - bx; - let xformed_mouse_x = mx-bx; - let xformed_mouse_y = my-by; - let w = Math.max(right_x-xformed_mouse_x, 0); - - let ulc_y = xformed_mouse_y + 0; - let llc_y = xformed_mouse_y + 0; - - this.vectorBox = new St.Polygon({ debug: false, width: w, height: bh, - ulc_x: 0, ulc_y: ulc_y, - llc_x: 0, llc_y: llc_y, - urc_x: w, urc_y: 0, - lrc_x: w, lrc_y: bh }); + let vi = this._getVectorInfo(); + if (!vi) { + return; + } + + this.vectorBox = new St.Polygon({ debug: false, width: vi.w, height: vi.h, + ulc_x: vi.mx, ulc_y: vi.my, + llc_x: vi.mx, llc_y: vi.my, + urc_x: vi.w, urc_y: 0, + lrc_x: vi.w, lrc_y: vi.h }); this.categoriesOverlayBox.add_actor(this.vectorBox); - this.vectorBox.set_position(xformed_mouse_x, 0); this.vectorBox.show(); this.vectorBox.set_reactive(true); - this.vectorBox.raise_top(); this.vectorBox.connect("leave-event", Lang.bind(this, this.destroyVectorBox)); this.vectorBox.connect("motion-event", Lang.bind(this, this.maybeUpdateVectorBox)); @@ -2142,16 +2168,10 @@ updateVectorBox: function(actor) { if (this.vectorBox) { - let [mx, my, mask] = global.get_pointer(); - let [bx, by] = this.categoriesApplicationsBox.actor.get_transformed_position(); - let xformed_mouse_x = mx-bx; - let [appbox_x, appbox_y] = this.applicationsBox.get_transformed_position(); - let right_x = appbox_x - bx; - if ((right_x-xformed_mouse_x) > 0) { - this.vectorBox.width = Math.max(right_x-xformed_mouse_x, 0); - this.vectorBox.set_position(xformed_mouse_x, 0); - this.vectorBox.urc_x = this.vectorBox.width; - this.vectorBox.lrc_x = this.vectorBox.width; + let vi = this._getVectorInfo(); + if (vi) { + this.vectorBox.ulc_x = vi.mx; + this.vectorBox.llc_x = vi.mx; this.vectorBox.queue_repaint(); } else { this.destroyVectorBox(actor); @@ -2854,13 +2874,15 @@ this.searchEntryText.connect('key-press-event', Lang.bind(this, this._onMenuKeyPress)); this._previousSearchPattern = ""; - this.categoriesOverlayBox = new Clutter.Actor(); this.categoriesApplicationsBox = new CategoriesApplicationsBox(); - this.categoriesOverlayBox.add_actor(this.categoriesApplicationsBox.actor); - rightPane.add_actor(this.categoriesOverlayBox); + rightPane.add_actor(this.categoriesApplicationsBox.actor); + + this.categoriesOverlayBox = new Clutter.Actor(); this.categoriesBox = new St.BoxLayout({ style_class: 'menu-categories-box', vertical: true, accessible_role: Atk.Role.LIST }); + this.categoriesOverlayBox.add_actor(this.categoriesBox); + this.applicationsScrollBox = new St.ScrollView({ x_fill: true, y_fill: false, y_align: St.Align.START, style_class: 'vfade menu-applications-scrollbox' }); this.a11y_settings = new Gio.Settings({ schema_id: "org.cinnamon.desktop.a11y.applications" }); @@ -2887,7 +2909,7 @@ this.applicationsBox.add_style_class_name('menu-applications-box'); //this is to support old themes this.applicationsScrollBox.add_actor(this.applicationsBox); this.applicationsScrollBox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC); - this.categoriesApplicationsBox.actor.add_actor(this.categoriesBox); + this.categoriesApplicationsBox.actor.add_actor(this.categoriesOverlayBox); this.categoriesApplicationsBox.actor.add_actor(this.applicationsScrollBox); let fav_obj = new FavoritesBox(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cinnamon-3.6.6/files/usr/share/cinnamon/applets/po...@cinnamon.org/applet.js new/Cinnamon-3.6.7/files/usr/share/cinnamon/applets/po...@cinnamon.org/applet.js --- old/Cinnamon-3.6.6/files/usr/share/cinnamon/applets/po...@cinnamon.org/applet.js 2017-11-23 10:56:12.000000000 +0100 +++ new/Cinnamon-3.6.7/files/usr/share/cinnamon/applets/po...@cinnamon.org/applet.js 2017-12-18 13:53:18.000000000 +0100 @@ -125,8 +125,8 @@ } catch(e) { // ignore malformed aliases + global.logError(alias); } - global.logError(alias); } this.label = new St.Label({ text: "%s %d%%".format(description, Math.round(percentage)) }); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cinnamon-3.6.6/files/usr/share/cinnamon/cinnamon-settings/bin/ExtensionCore.py new/Cinnamon-3.6.7/files/usr/share/cinnamon/cinnamon-settings/bin/ExtensionCore.py --- old/Cinnamon-3.6.6/files/usr/share/cinnamon/cinnamon-settings/bin/ExtensionCore.py 2017-11-23 10:56:12.000000000 +0100 +++ new/Cinnamon-3.6.7/files/usr/share/cinnamon/cinnamon-settings/bin/ExtensionCore.py 2017-12-18 13:53:18.000000000 +0100 @@ -128,7 +128,7 @@ parser = MyHTMLParser() parser.feed(string) text = parser.get_text() - return text.strip('\\n ').strip('\\n').replace('\\n', ' ').replace(' ', ' ').replace('\\', '') + return text.strip('\n ').strip('\n').replace('\n', ' ').replace(' ', ' ').replace('\\', '') class ManageSpicesRow(Gtk.ListBoxRow): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cinnamon-3.6.6/files/usr/share/cinnamon/cinnamon-settings/bin/Spices.py new/Cinnamon-3.6.7/files/usr/share/cinnamon/cinnamon-settings/bin/Spices.py --- old/Cinnamon-3.6.6/files/usr/share/cinnamon/cinnamon-settings/bin/Spices.py 2017-11-23 10:56:12.000000000 +0100 +++ new/Cinnamon-3.6.7/files/usr/share/cinnamon/cinnamon-settings/bin/Spices.py 2017-12-18 13:53:18.000000000 +0100 @@ -158,7 +158,7 @@ if self.collection_type == 'extension': self.spices_directories = (self.install_folder, ) else: - self.spices_directories = (self.install_folder, '/usr/share/cinnamon/%ss/' % self.collection_type) + self.spices_directories = ('/usr/share/cinnamon/%ss/' % self.collection_type, self.install_folder) self._load_metadata() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cinnamon-3.6.6/files/usr/share/cinnamon/cinnamon-settings/modules/cs_online_accounts.py new/Cinnamon-3.6.7/files/usr/share/cinnamon/cinnamon-settings/modules/cs_online_accounts.py --- old/Cinnamon-3.6.6/files/usr/share/cinnamon/cinnamon-settings/modules/cs_online_accounts.py 2017-11-23 10:56:12.000000000 +0100 +++ new/Cinnamon-3.6.7/files/usr/share/cinnamon/cinnamon-settings/modules/cs_online_accounts.py 2017-12-18 13:53:18.000000000 +0100 @@ -38,8 +38,9 @@ def on_button_clicked(self, button): gladefile = "/usr/share/cinnamon/cinnamon-settings/cinnamon-online-accounts-info.ui" self.builder = Gtk.Builder() + self.builder.set_translation_domain('cinnamon') self.builder.add_from_file(gladefile) self.window = self.builder.get_object("main_window") self.window.set_title(_("Online Accounts")) self.window.set_icon_name("cs-online-accounts") - self.window.show() \ No newline at end of file + self.window.show() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cinnamon-3.6.6/js/ui/cinnamonDBus.js new/Cinnamon-3.6.7/js/ui/cinnamonDBus.js --- old/Cinnamon-3.6.6/js/ui/cinnamonDBus.js 2017-11-23 10:56:12.000000000 +0100 +++ new/Cinnamon-3.6.7/js/ui/cinnamonDBus.js 2017-12-18 13:53:18.000000000 +0100 @@ -410,7 +410,25 @@ }, GetMonitors: function() { - return Main.layoutManager.monitors.map(mon => mon.index); + let monitors = []; + + try { + for (let i = 0; i < Main.layoutManager.monitors.length; i++) { + let current = Main.layoutManager.monitors[i]; + + monitors.push(current.index); + } + } catch (e) { + log(e.message); + /* Something broke, trigger a GDBus.Error back to the caller instead of returning bad things */ + monitors = []; + } + + if (monitors.length == 0) { + throw new Error("GetMonitors: no valid monitors"); + } + + return monitors; }, GetMonitorWorkRect: function(index) {