On behalf of the team and all the developers who contributed to this build, I am proud to announce the release of Cinnamon 3.2!

Here’s a quick overview of some of the most visible changes in this new version:

Session Manager

QT 5.7+ support

Settings Daemon

iio-sensor-proxy rotation plugin

Fix cursor-size changes being ignored

Support for libinput touchpads as well as synaptics

Window Manager

Improvements to unredirect heuristic and borders/maximization

Cross-fade effect on background changes

Fixed special cases which could lead to cinnamon crashes

Nemo Extensions

EXIF rotation and fixes in nemo-preview

More sizes in image converter

Screensaver

Complete rewrite

Much faster, responsive

More customizable

Support for media keys, media art and and media controls

Support to show the number of notifications and battery status

Control Center

Fixed new network connections secrets

New keyboard layout options

Cinnamon

Vertical panels

Removal of box pointers

Ability to peek at desktop

Ability to upload system information

Ability to play a sound effect when showing notifications

Settings API

Revamped the xlet settings

Xlet settings now open in their own window/process, match new style of cinnamon settings, support pages and sections, are automatically highlighted, use new JSON backend for easier maintenance and simplification of the code

Support for backendable widgets which were not previously available to the xlet settings api

New backendable date chooser widget

Applets

Keyboard: can now show flags based on short name of language in keyboard applet and distinguish between two layouts using the same flag or code

Sound: Add a menu that allows the user to switch between active players

Menu: Ability to run software with optirun if Bumblebee is installed

Menu: Improved keyboard navigation and performance

Nemo

file-operations: reduce the time for reliable transfer rate

Expand grid width to canvas

Trash-monitor: change trash monitoring process

Fix –geometry option when Nemo is already running

Option to double-click empty area to go to parent directory

nemo-file.c: Only append .desktop to desktop files when they actually need it. Trusted desktop files (ones that typically get made and placed on the desktop) don’t show their extension, so when you try to rename them, the new name needs .desktop appended to it.

nemo-application.c: Look for already-existing desktop windows before attempting to manage the desktop.

desktop: Don’t rebuild the desktop any time _NET_WORKAREA changes – this can happen fairly frequently in some situations, causing crashes due to the asynchronous nature of nemo’s directory loading back-end.

Of course that’s just the tip of the iceberg. For a complete list of changes since Cinnamon 3.0, and to see who implemented them, please read below.

CJS

[ Maximiliano Curia ]

* Migrate away from gnome-common deprecated vars and macros

[ Michael Webster ]

* modules/GObject.js: Add access to handler_block and handler_unblock.

[ Clement Lefebvre ]

* Fixed build

[ Maximiliano Curia ]

* Make AX_ macros optional

* Drop glib-gettextize, gtkdocize and intltoolize

[ leigh123linux ]

* build: Require C++11

[ Michael Webster ]

* Fix build when extra debugging is enabled (util/log.h)

[ Clement Lefebvre ]

* pkg: Add missing autoconf-archive in debian/control.in

Cinnamon-Menus Library

[ Maximiliano Curia ]

* Migrate away from gnome-common deprecated vars and macros

[ Clement Lefebvre ]

* Fixed build

[ Maximiliano Curia ]

* Drop gtkdocize invocation

* Make AX_ macros optional

Cinnamon-Desktop Library

[ brownsr ]

* avoid some warning messages

* avoid some compiler warnings

[ Maximiliano Curia ]

* Migrate away from gnome-common deprecated vars and macros

[ Michael Webster ]

* gnome-bg: Add an introspectable method to GnomeBG to allow setting a GtkImage with a background surface.

* gnome-bg.c: use gdk_cairo_surface_create_from_pixbuf() for creating GtkImage surfaces – this handles widget scale factors for us, and gives back the correct size/scale image surface.

* gnome-desktop-utils: Add a pam password check function

* Add /etc/pam.d/cinnamon-desktop to build and packaging to allow authentication to work (debian-based uses debian/cinnamon-desktop.pam rather than the one in /data.

* Add flag image files to be shared with cinnamon, cinnamon-screensaver.

* screensaver schema: Add flag, keyboard layout, and clock visiblity keys.

[ Clement Lefebvre ]

* Fixed build

[ leigh123linux ]

* Delete COPYING-DOCS

* There is no need for this as there are no docs

* hack the path as the macro doesn’t work

[ Maximiliano Curia ]

* Make AX_ macros optional

[ Michael Webster ]

* Remove flag files (provided by xapps now)

* screensaver schema: Add caps keyboard layout option.

* screensaver schema: add albumart preference

* gnome-desktop-thumbnail.c: remove hardcoded GdkPixbuf blacklist, and make mimetypes in the “disable” gsettings key apply to the entire thumbnail factory, not just pluggable thumbnailers.

[ leigh123linux ]

* fix fsf address

[ Michael Webster ]

* Move flag, uppercase prefs from screensaver to interface schema, and add a preference for layout name.

* Add screensaver lockdown preferences

Cinnamon Session Manager

[ Edgar Fournival ]

* removed old dialog icon code

[ leigh123linux ]

* gsettings: stop using g_settings_list_schemas()

* Fix spelling (wrong word used)

[ Dustin Falgout ]

* update .gitignore

* Add support for applying GTK style to QT apps when running QT 5.7+ Maintain backwards compatibility for earlier versions of QT.

* use build time option instead of pkgcheck for obvious reasons :sweat_smile:

* remove unecessary call to g_free

* Incorporated feedback

[ brownsr ]

* remove unused variable

* replace deprecated gtk_icon_info_free with g_object_unref

[ Dustin Falgout ]

* implement change described in PR comments related to “QT_STYLE_OVERRIDE” env var and qt versions 5.7+

[ leigh123linux ]

* main: fix heap overflow in dbus-launch wrapping

[ Maximiliano Curia ]

* Migrate away from gnome-common deprecated vars and macros

[ Clement Lefebvre ]

* Added cinnamon-session.pot and makepot

* Update POT file

Cinnamon Settings Daemon

[ brownsr ]

* avoid compiler warning message about spurious comma

* remove deprecated gdk_display_get_n_screens this is now hardcoded to return 1, so loops using this can be removed

* remove deprecated function gdk_display_get_n_screens this only returns 1 now, so loops can be removed.

* add precautionary test on default display being there

* add precautionary test on existence of default display

[ Jakub Adam ]

* orientation: Use g_clear_* helpers

* orientation: Remove empty constructor and dispose functions

* orientation: Call stop from finalize

* orientation: Port to iio-sensor-proxy

* orientation: Use symbolic name for the GSettings key name

* orientation: Fix screen lock not getting applied

* Fix double free in is_wacom_tablet_device()

[ leigh123linux ]

* xsettings: Fix cursor-size changes being ignored

* fix spelling mistakes

[ brownsr ]

* remove deprecated g_settings_list_schemas

* replace deprecated gtk_icon_info_free with g_object_unref

[ Peter Hutterer ]

* common: don’t create the Synaptics Off property if it doesn’t exist

* common: recognize libinput touchpads as touchpads

* mouse: fix indentation

* mouse: add helper function for fetching a property

* mouse: rename helper to touchpad_set_bool

* mouse: split into separate bool helpers

* mouse: libinput – hook up tapping configuration

* mouse: libinput – hook up natural scroll configuration

* mouse: libinput – hook up scrolling settings

* mouse: libinput – hook up click methods

* mouse: libinput – hook up left-handed setting

* mouse: libinput – hook up accel speed

* mouse: libinput – hook up middle button emulation

* mouse: libinput – hook up disable while typing

[ Maximiliano Curia ]

* Migrate away from gnome-common deprecated vars and macros

* Build depend on autoconf-archive

[ Clement Lefebvre ]

* Xrandr plugin: Do not save configuration when RotateTo is called.

[ Michael Webster ]

* orientation plugin: Fix makefile, missing backslash – from previous build migration commit.

[ brownsr ]

* remove a couple of unused variables

[ monsta ]

* mouse: Fix critical warnings with touchpad settings

Cinnamon Control Center

[ Maximiliano Curia ]

* Migrate away from gnome-common deprecated vars and macros

[ Clement Lefebvre ]

* Fixed build

[ leigh123linux ]

* Remove unused configure options

* network: Don’t try to get secrets for new connections

[ Clement Lefebvre ]

* Generate additional files

[ Michael Webster ]

* region widget: Add keyboard layout display options.

[ Clement Lefebvre ]

* l10n: Update POT file

Cinnamon Screensaver

[ Willy Sudiarto Raharjo ]

* Declare GdkX11.

[ Michael Webster ]

* events: For gtk < 3.18, skip the fade out animation, and immediately destroy the window. Move the deactivate command into an idle callback, so we’re not attempting to destroy the window while in the middle of processing a motion event.

* passwordEntry.py: emulate Gtk.Entry.grab_focus_without_selecting() – the real call was recently removed, as it doesn’t exist in Gtk 3.14, however the behavior is still necessary – tabbing between buttons and entry will cause the entire partial password to be selected, causing overwrite. This restores the original functionality without requiring gtk 3.18+

* Fixes for Betsy/Jessie:

* panels: Remove separators. Tweak spacing for keyboard layout icon in the gtk 3.18 css file.

* utils.py: clean up get_user_name() calls.

* Disable locking if pam files aren’t found or if we’re running as root.

* utils.py: add ‘liveuser’ group check to user_can_lock() function.

[ Clement Lefebvre ]

* pkg: Add intltool to build-dep

* pkg: Don’t depend on python3-xlib in LMDE

* Layout/l10n: Fix minor visual issues

[ Michael Webster ]

* unlock/accountsServiceClient: don’t cache the username and face path, instead fetch them from AccountsService when used. Also, allow for no face image by not using a fallback generic image, and hiding the image widget if there is no face for it.

* Remove some Gtk 3.18+ api calls – with a small change to GdkScreen updating, the stacking order is correct at stage construction and never changes.

[ Willy Sudiarto Raharjo ]

* ConsoleKit: Add lock/unlock signal.

[ Michael Webster ]

* Rewrite

[ itzexor ]

* utils.py: add back alternate display manager support for user switching

[ Michael Webster ]

* Terminate plugins more cleanly, terminate them when they’re no longer visible, terminate them when we’re on battery (and restart them when we get plugged back in), clean up handling of transition between plugin and wallpaper.

* packaging: use pkg-config to figure out where our typelib/lib files go

* cs-notification-watcher.c: ignore transient notifications (such as those from banshee on track changes)

[ leigh123linux ]

* Revert “Fix gtkdocize: GTK_DOC_CHECK not called in ./configure.ac”

* Fix the gtkdoc issue properly

[ Maximiliano Curia ]

* Make AX_ macros optional and drop unused parts

* Drop gnome-common, add autconf-archive build dependency

[ Michael Webster ]

* Add media player widget, reorganize files a bit

* Remove borders from infobar widgets

* Add audio buttons to the focus chain

* notifications: Ignore notifications from active media players

* Fix some names and lint.

* media player: handle metadata safely, and make sure artist-album string is handled properly depending on the data we have available.

* Update README.md

* Make volume and position bars draw alike, make it easier to theme both, tweak layout of the audiobar a bit. Also, fix div by 0 when a track doesn’t have a max position.

* Rename Audio/InfoBar to Audio/InfoPanel

* playerControl.py: Improve how we get h:m:s from the microseconds reported for position and track length.

[ Corbin Auriti ]

* Delete debug-screensaver.sh

[ Michael Webster ]

* Theme work – ensure everything is reasonably able to be themed, and provide fallback styling if the currently selected theme doesn’t supply anything – this is done by searching for the toplevel style class – “csstage” corresponding to the toplevel window for the screensaver.

* Add separate theming for Gtk 3.20+, update .gitignore, load a css file appropriate to the current Gtk version at startup (if no theme support is found). Fix error handling in mediaPlayerWatcher.py.

* Update README.md, couple fixes to css files

* update pot file

* trackers: dump timer and connection list in debug mode after unlocking.

* manager.py, stage.py: add some documentation.

* More documentation..

* Add some documentation to the unlock dialog, make the user image size definable in CSS, reimplement the AccountsService handling as a client singleton like every other service.

* More cleanup, documentation

* Finish documentation

* Fix a couple regressions from documenting/refactoring

* Stage: Listen for GdkScreen changes in size and number of monitors, and reconstruct the monitorViews as needed.

* stage.py: Fix oversized info panel.

* Add script for testing keyboard layouts.

* Use XAppKbdLayoutController to interact with libgnomekbd for switching keyboard layouts and getting reliable flag icons.

* unlock.py: Split out PasswordEntry and FramedImage to their own files.

* Fix keyboard layout representation in the password entry. GtkEntry is hardcoded to produce a menu-sized icon. We supply a blank icon, and draw our own where it belongs, and at a better size. This way, we can also provide themed text layout names as well, depending on user preference.

* Add albumart widget.

* finish implementing albumart preference.

* stage: Don’t let floating widgets overlap, catch a couple potential errors when loading pixbufs – namely when we interrupt it by skipping a track.

* pyflakes cleanup

* libcscreensaver: Fix new build warnings, fix shape extension detection for the event filter.

* passwordEntry.py: Don’t connect to draw and icon press signals if the keyboard layout controller is disabled.

* Remove unused file.

* proxies: Strip out unused interface elements to reduce lib size and runtime memory use (slightly.)

* passwordEntry.py: Rework to stay in sync with XApp.KbdLayoutController changes. Perform all rendering/loading of icons ourselves, depend on new icon package, use new cinnamon desktop preferences for flag/case settings.

* Add preferences to lock down media keys, media player controls, notification counter.

Muffin Window Manager

[ itzexor ]

* meta-window-actor: fix unredirect heuristic Damage coordinates are relative to the drawable not to the screen. So we have to check whether x and y are 0 and not window_rect.x/y otherwise the herustic will never trigger for windows on monitors whos x and y are not 0.

* meta-window-actor: Consider needs_destroy in is_destroyed() According to the documentation, the method returns “whether the X window that the actor was displaying has been destroyed” – that is very much true when we delay the actual actor destruction for a destroy animation, so update the method accordingly.

* meta-window-actor: Do not request unredirection when destroyed WindowActors can outlive their corresponding window to animate unmap. Unredirecting the actor does not make sense in that case, so make sure to not request it.

* window-actor: Skip frame-sync when the corresponding window is gone https://git.gnome.org/browse/mutter/commit/?id=8d53ae8

[ Maximiliano Curia ]

* Migrate away from gnome-common deprecated vars and macros

[ brownsr ]

* remove deprecated unnecessary g_type_init calls

[ itzexor ]

* meta-window-actor: Change unredirection hints to match spec changes

* x11/window-props: Initialize bypass compositor hint

[ JosephMcc ]

* backgrounds: Add a simple crossfade effect on bg transitions

* backgrounds: Clean up a couple things

* compositor: Clean up a bunch of deprecated clutter functionality

* wm-tester: Clean up gtk deprecations

* Remove old references to tooltips

* frames: Remove expose_delayed

[ Lars Mueller ]

* Don’t remove client-side frame extents when maximizing Fixing Cinnamon#5343

[ Michael Webster ]

* Add screen signal for skip_taskbar window hint changes. This is needed by the window list applet in Cinnamon to know when to remove (or add) an item in the window list.

* cogl-utils.c: Don’t skip error parameters.

* meta-window-actor.c: Only override the unredirect heuristic with our unredirect-fullscreen-windows preference. This is based on a few assumptions:

[ Clement Lefebvre ]

* Fixed build

[ Maximiliano Curia ]

* Make AX_ macros optional

Cinnamon Desktop Environment and Settings

[ kloun ]

* rm obsolute and unsupport NEWS file

[ Michael Webster ]

* keyboard applet: Fix positioning of the flag render within its actor.

* Fix some runtime warnings – in the sound applet, object construction is too soon to get the theme node, wait until ‘style-changed’ signal is sent by the main actor. In the menu applet, remove return values of navigateContextMenu() – there is only one user of this function, and they don’t check for a value.

* keyboard applet: Allow flag icon to properly scale its size to match the panel and preferences. Monkey patch some St.Icon methods to the EmblemedIcon class so we can use the existing applet icon sizing calculations by pretending we’re just another icon hanging around, getting things done.

[ NikoKrause ]

* [menu-applet] fix warnings caused by keynavigation

[ Clement Lefebvre ]

* Update ./test script

* Info settings: Add upload-system-info button

* l10n: Update POT file

* Info settings: Add tooltip to upload button

* Fix typo

* l10n: Update POT file

[ Margarita Manterola ]

* Re-order and re-word idle-delay and re-word lock-enabled

[ AlbertJP ]

* Resize a thumbnail when the window resizes

[ Henry Williams ]

* Add Remove button for Xlets

[ dralley ]

* Added gi.require_version() in many, many, many places

[ Michael Webster ]

* cs_keyboard.py: Fix keybindings for quiet volume up and down (they were showing the same keys as normal volume-up/down.)

[ JosephMcc ]

* Add the ability to play a sound effect when showing notifications

[ Corbin Auriti ]

* Clean up output filenames on the tracker search provider

[ Antti Nilakari ]

* Show flags based on short name of language in keyboard applet

[ Stephen Collins ]

* Settings: switch gsettings widgets to use new settings backend:

* Add json settings backend to settings widgets

* settings.js: rewrite to simplify code and aviod the use of object.watch() which can be costly on resources

* Revamp the xlet settings: – xlet settings now open in their own window/process – matches new style of cinnamon settings – now supports pages and sections in the settings file – instances are now automatically highlighted in the panel when the instance is selected in the settings window (uses a new ‘highlight’ pseudoclass) – uses the new JSON backend for easier maintenance and simplification of the code – added support for backendable widgets which were not previously available to the xlet settings api – updated for newer Gtk versions – added a new configure function to applets and desklets

* Udate some of the applets and desklet to use the new settings api

[ brownsr ]

* Give more informative message when starting to remove applet

* wrap applet description At the moment a long applet description will push the subsequent icons off the visible screen which is likely to confuse some. Scaling up font or text scaling exacerbates this Some simple column wrapping avoids the issue

[ Michael Webster ]

* Add cinnamon-related debug packages to cinnamon-dbg package

[ Clement Lefebvre ]

* Localize the applet name in previous commit

[ Maximiliano Curia ]

* Migrate away from gnome-common deprecated vars and macros

[ IHaveThatPower ]

* Corrected “output” to “input”

[ collinss ]

* settings.js: fix some settings not updating due to unspecific conditional

* appletManager.js: (multi-instance) fix applet setting file not being removed with applet

[ Marcus Lundgren ]

* sound applet: Add a menu that allows the user to switch between active players

[ JosephMcc ]

* panel-launchers: Fix an undeclared variable warning

[ Giulio Girardi ]

* Menu applet: Show ‘Run with nVidia GPU’ in context menu

[ collinss ]

* Fix background settings color chooser not working

[ brownsr ]

* Vertical panels

[ JosephMcc ]

* build: Bump the required gtk version

[ Marcus Lundgren ]

* sound applet: Remove entry in players list if player doesn’t exist when switching – Make sure to always use the correct player owner when performing a switch

[ Michael Webster ]

* workspace-switcher applet: Use the WindowManager functions to switch workspaces when using the mousewheel – this ensures that:

[ collinss ]

* JsonSettingsWidgets.py: Ignore dependency key that doesn’t exist with a warning rather than failing with an error

* Settings widgets: add backendable date chooser widget

* Refactor sound chooser widgets to simplify and avoid unnecessary duplication of code

* Fix xlet settings not upgrading properly with new key

* Fix panel-launchers add/edit dialog not working

[ Michael Webster ]

* keyboard layout applet: Fix showing the correct flags.

[ JosephMcc ]

* window-list: Don’t hide the current workspace in context menu

* ExtensionCore.py: Don’t show the uuid to the user

[ itzexor ]

* cinnamon-settings: remove unused webkit code and dependency

[ Corbin ]

* Make the whole BalanceBar insensitive when the channel map is changed

* Fix some device icon spacing issues

[ Dan Dascalescu ]

* Explain where to look for components to file bugs properly

[ MajidSas ]

* change the maximum delay for backgrounds slideshow

[ collinss ]

* settings.js: fix error caused by missing quotations

[ dralley ]

* Convert cinnamon bin utils to Python 3

[ Michael Webster ]

* window-list applet: Listen to a new signal from muffin’s MetaScreen which will notify when an item should be add or removed due to its skip_taskbar hint changing.

[ JosephMcc ]

* cs_panel: Fix some terminology

* panels: Allow themes to set separate default width and height values for panels

* theme: Stop panel launchers from jumping around in vertical panels on hover

* theme: Use a larger width for vertical panels in the default theme

[ Michael Webster ]

* menu applet: Make the hover delay create a delay in opening the menu on hover, *not* changing categories. There should never be a delay switching categories.

[ Pierre G. Bogossian ]

* sound applet: bind mouse buttons 4/5 to previous/next track NB: mouse buttons 4 and 5 (aka back/forward buttons) are numbered 8 and 9 by X

[ Michael Webster ]

* st-cogl-wrapper.c: Don’t ignore cogl parameters.

[ itzexor ]

* cs_backgrounds.py: Use built in mimetypes module

* cs_backgrounds.py: Refactor disk caching

[ Clement Lefebvre ]

* Fixed build

[ JosephMcc ]

* window-list: Rework for vertical panels

* theme: Set a 32px size for vertical panels

* window-list: Allow themes to control spacing between items

[ brownsr ]

* vertical panels: put the notification count under the notification symbol This keeps things central in the panel and avoids problems with the panel width being able to accomodate icon+text label unless there is a silly number of notifications.

[ Marcus Lundgren ]

* sound applet: Removed unnecessary call to remove player.

[ Michael Webster ]

* cinnamon-util: Add cinnamon_get_file_contents_utf8 asynchronous function with callback. Mark _sync version as deprecated.

* cinnamon-util.c: Don’t leave a cinnamon_get_file_contents_utf8 caller hanging, always run the callback, even with a NULL result.

[ Balló György ]

* Follow the Icon Naming Specification

[ itzexor ]

* cs_backgrounds.py: Don’t check mimetype if filename is None

[ Balló György ]

* removable-drives applet: don’t hardcode Nemo

[ Lars Mueller ]

* Remove panel barriers on panel removal

[ itzexor ]

* cs_backgrounds.py: Apply white background to RGBA images

[ Michael Webster ]

* JsonSettingsWidgets.py: close file objects. settings.js: remove file monitor, push all settings changes thru Cinnamon’s dbus interface.

[ brownsr ]

* Indentation corrections to remove inadvertent tabs also corrected an erroneous variable reference in a log message

[ NikoKrause ]

* [show-desktop applet] new feature added: Peek at desktop

* [keyboard applet] added switch in settings to use uppercase letters in panel

[ brownsr ]

* minor change into a more natural case statement

* centre align the centre box in a vertical panel and also clean up an if sequence, a few related comments, and a misalignment

[ Michael Webster ]

* settings.js: don’t try to use python in javascript. Also, payload is just the raw value string, not an array or variant array.

[ itzexor ]

* panelMenu.js: fix incorrect logic

[ Clement Lefebvre ]

* Show-desktop applet: Enabled peek-at-desktop, rephrased settings

* Keyboard applet: Fixed typo

* Fixed typos in files/usr/bin/cinnamon-settings

[ JosephMcc ]

* applet.js: Properly layout applets in vertical panels

* user-applet: Properly hide the panel label in vertical panels

* applet.js: Fix visual alignment of Text applets in vertical panels

* notification-applet: Fix the layout in vertical panels

* menu-applet: Fix the layout of the menu applet in vertical panels

* power-applet: Fix layout in vertical panels

* workspace-switcher: Don’t allow the visual style layout in vertical panels

* spacer-applet: Adapt layout for vertical panels

[ Michael Webster ]

* Revert “Revert “keyboard layout applet: Fix showing the correct flags.””

[ JosephMcc ]

* sound-applet: Adapt layout for vertical panels

* separator applet: Clean up some code styling

* a11y-applet: Don’t allow the a11y applet in vertical panels

* sound-applet: Properly hide/show label on initial load

* applet.js: Clean up the code a bit

[ itzexor ]

* write-applet.xml: fix incorrect example code

[ brownsr ]

* correct applet context menu on panel orientation move Thanks @lestcape

[ Jess Wu ]

* Fix grammar mistakes in source files

[ NikoKrause ]

* [menu-applet] hiding favorites box leaves an empty box in the menu, this should fix this

[ itzexor ]

* show desktop applet: keep track of peek timeout id

* show desktop applet: various cleanups

[ brownsr ]

* Correct drag and drop bugs in panel launcher 1) an issue that looks to have been there before the vertical panels change where drag and drop within the panel launcher would drop icons in unscaled rather than at the same scale as the other icons 2) a vertical panels issue where the drag and drop code was assuming horizontal orientation and so was calculating both the position in the list of icons and the new position in the actor incorrectly 3) took the opportunity to correct a number of minor indentation issues

* correct window list internal drag and drop for vertical panels 1) The override on the allowable drag direction was not set to allow vertical dragging also previous override needed clearing when orientation changed 2) Removed a few stray tabs etc. 3) Calculated the drop position correctly for vertical panels

[ NikoKrause ]

* [window-list applet] using icons on context menu

[ itzexor ]

* panel.js: add dialog to launch settings when the last panel is removed

* panel.js: don’t try to hide the panel if it’s destroyed

[ Michael Webster ]

* Keyboard layout applet: Update to use new XAppKbdLayoutController to supply appropriate icons and short names, and as a general wrapper around libgnomekbd for layout control.

* Remove flag folder for keyboard applet (provided by libxapp now)

[ JosephMcc ]

* systray: Clean up code formatting

[ Michael Webster ]

* keyboard layout applet: Use this._config.get_enabled() to check whether applet should be ‘active’

[ NikoKrause ]

* [menu-applet] a more intuitive way of navigating through the menu with the keyboard

[ itzexor ]

* appletManager.js: fix removeAppletFromPanels

[ collinss ]

* Move all settings chooser button code to it’s own file

* xlet settings: Replace old binding function in settings.js with two new ones and allow multiple bindings on the same key

[ JosephMcc ]

* applets: Change how applets set the type of panel they are allowed in

[ leigh123linux ]

* remove grabber

[ NikoKrause ]

* [menu-applet] fixed key-navigation of filesystem search path

[ Lars Mueller ]

* Fix tooltip position This fixes the tooltip position on the first show of a tooltip. Previously, the extents fetched from the actor were wrong, because the actor had never been allocated before.

[ JosephMcc ]

* cs_themes: Don’t show duplicate themes

[ NikoKrause ]

* [menu-applet] create favBox, even if it’s not shown at Cinnamon restart

[ itzexor ]

* st-scroll-view.c: move comment up and remove indentation For whatever reason, this comment hangs g-ir-scanner indefinitely with version 1.50 of gobject-introspection in Arch Linux, at least on my machine. Moving the comment onto its own line fixes this issue.

[ NikoKrause ]

* [menu-applet] clear recent list applet with ENTER-key

* [menu-applet] show AppDescription only on hovered buttons and hover allAppsCatButton when search pattern is deleted

[ Balló György ]

* Remove dependency on GConf

[ collinss ]

* ChooserButtonWidgets.py: add missing imports

[ Michael Webster ]

* cs_screensaver.py: rename date/time section to customize, rename combobox selections to be more grammatically correct

[ itzexor ]

* cinnamon-global.c: fix a gi warning

[ JosephMcc ]

* messageTray: Fix the placement of notifications

[ Michael Webster ]

* keyboard applet: restore upper-case option, fix regression from xlet settings revamp.

[ brownsr ]

* workspace switcher – change whether graph is shown or not At the moment the graph is suppressed in vertical panels because a long wide workspace resulting from multiple monitors results in an unworkable graph when scaled to fit the panel width. Change this to test on the workspace size ratio, as this will permit single monitor setups to have the workspace graph

* add vertical style class to workspace switcher No code is needed to remove it as buttons are rebuilt from scratch when panels are moved between orientations. Linked to a change to improve appearance of this applet in vertical panels in Mint-X themes

[ NikoKrause ]

* [menu-applet] decodeUriComponent in placesManager.js and docInfo.js

[ brownsr ]

* refactor if sequence to case statement, and sort alignment

[ NikoKrause ]

* added PopupSwitchIconMenuItem and used it in sound-applet

[ Michael Webster ]

* cinnamon-settings: On widgets that don’t use bind functions, connect to the widget changed handlers only after setting their initial value. This prevents on_settings_changed() from being triggered right away, as well as a subsequent trigger of the widget changed handler (for a second time.)

[ brownsr ]

* make accessibility applet suitable for vertical panels The issue is that sticky keys make use of the applet label to display and this is not compatible with a vertical panel. Resolve this by re-purposing the applet tooltip to show the sticky keys in a vertical panel The functionality in a horizontal panel is unchanged. The tooltip also shows normally in all cases excepting when the relevant keys are actually pressed

[ JosephMcc ]

* inhibit-applet: Fix an oversized menu item

[ Clement Lefebvre ]

* Fixed typo in js/ui/popupMenu.js

* Revert “Fixed typo in js/ui/popupMenu.js”

[ Michael Webster ]

* windowAttentionHandler.js: fix logic for matching ignored wmclass names.

[ brownsr ]

* correct unreactive top/bottom strip in vertical panels fixes #5748.

[ Germán Franco ]

* Style sound applet overlay controls * Added buttons styling same as other in the theme * Change color to fit the theme

[ JosephMcc ]

* panel-launchers: Redesign the launcher context menu

* window-list: Add the standard applet context menu items

* window-list: Tweak the settings layout

* panel-launchers: Tweak the layout of the settings

* notifications-applet: Tweak the layout of the settings

* calendar-applet: Tweak the layout of the settings

* keyboard-applet: Tweak the layout of the settings

* expo-applet: Tweak the layout of the settings

[ Michael Webster ]

* menu applet: Fix hover delay tooltip

[ JosephMcc ]

* window-list: Fix an undeclared variable warning

[ collinss ]

* Remove the boxpointer from popup menus

[ NikoKrause ]

* [menu-applet] fixes https://github.com/linuxmint/Cinnamon/issues/5820

* [sound-applet] added dependencies in the settings-schema

* [menu-applet] rewritten keynavigation codeblock

[ Odyseus ]

* [Hot Corners] Added hover delay functionality. Added tooltips to hot corner icons. Corrected some minor indentation/white space inconsistencies. Closes linuxmint/Cinnamon#1050

[ Clement Lefebvre ]

* Enable vfade effect by default

[ NikoKrause ]

* [sound-applet] add option: show percentage next to volume slider

[ Lars Mueller ]

* Fix menu item order in window list This fixes a problem, when the menu orientation is not St.Side.TOP. the menu box layout was is reverse order.

[ JosephMcc ]

* popupMenu: Mark the new ‘menu’ style class as important

[ lestcape ]

* Improving slightly the appindicators.

* Allow the appindicator used the theme icon size if is not in scale mode.

* Remove the boxpointer features of the indicator API.

[ JosephMcc ]

* panel.js: Change the order which panels are drawn

[ itzexor ]

* cs_screensaver.py: expose new cinnamon screensaver settings

* cinnamon-settings.py: refactor maybe_resize slightly

[ brownsr ]

* ensure applets that override on_panel_height_changed get to scale properly The logic in the common applet code has been changed so that the scaling is not overridden by the locally overridden function. The local function thus becomes additional to the core function, rather than overriding it in its entirety. This also corrects errors associated with turning scale mode on and off. One more associated change to the window-list applet in a vertical panel will be needed but as there are changes queued up for that I think it’s best done subsequently fixes #5700

* Ensure that the edge of the screen reacts to mouse clicks Previously the outside couple of pixels were unreactive. This was set so as to avoid recursion errors but these seem no longer to be there, so this resets to the desired behaviour

[ itzexor ]

* lookingGlass.js: inspect: better handle undefined and null values

* menu applet: remove keybinding when applet is removed from panel

* menu applet: make menu hotkey binding per-instance

[ Odyseus ]

* [Menu applet] Added keyboard navigation for context menus.

[ Clement Lefebvre ]

* Simplify backgroundManager

[ Odyseus ]

* [Xlet settings] “entry” and “iconchooser” elements modifications.

[ JosephMcc ]

* workspace-swithcer: Fix the vertical style class

[ NikoKrause ]

* [menu-applet] hide recent files, which are no longer available

[ Odyseus ]

* [Xlet settings] Added support for “button” to extensions settings windows.

* [Tooltips] Fixed positioning of tooltips.

[ Clement Lefebvre ]

* sound: Add xplayer to the list of players without seek support

[ JosephMcc ]

* panel-launchers: Fix ‘Add’ and ‘Edit’ not working

* menu-applet: Add a setting for the new menu animations

[ Clement Lefebvre ]

* Update POT file

* Generate additional files

[ NikoKrause ]

* [menu-applet] keynav: make sure to scroll the appsBox to top if category is changed

[ Michael Webster ]

* keyboard applet: Rework to sync with changes to XApp.KbdLayoutController – the controller provides only icon names now. Handle icon construction ourselves.

* cs_screensaver.py: Update to reflect new preferences, remove old ones that are now in keyboard->region panel.

[ JosephMcc ]

* popupMenu: Insert menus that open from the panel below the panels

[ Alex Peters ]

* avoid varying space between month and day

[ Clement Lefebvre ]

* screensaver setttings: Rephrase some of the msgids

* Xlet settings: Add support for alpha colors in ColorChooser

* Fix JS warning

* Tooltips: Round coordinates

* l10n: Update POT file

Nemo File and Desktop Canvas Manager

[ leigh123linux ]

* fix GCC pointer signedness warnings

[ raveit65 ]

* add .view style class on icon view scrolled window

[ itzexor ]

* window: remove custom get_preferred_width/height implementation We already take care of the default size when we create the window, and these only break assumptions of the default GtkWindow’s handlers.

* pathbar: avoid gtk+ warnings

* pathbar: remove hardcoded width for sliders

[ Maximiliano Curia ]

* Close open_as_root child on child exit

[ Michael Webster ]

* nemo-context-menu-menu-item.c: use correct grammar in the context menu toggle.

[ leigh123linux ]

* Fix GTK 3.21.3 desktop redraw issue (#1231)

[ Maximiliano Curia ]

* Migrate away from gnome-common deprecated vars and macros

[ brownsr ]

* replace deprecated gtk_icon_info_free with g_object_unref

* remove deprecated and no longer necessary g_type_init

[ itzexor ]

* file-operations: reduce the time for reliable transfer rate

* remove “Show text in icon” preference

[ Michael Webster ]

* nemo-view.c: unescape uris being passed to file-roller during drag-and-drop (replaces %20 with spaces).

[ Chris Allan ]

* Expand grid width to canvas

* Minimum of one column

[ xenopeek ]

* Update nemo-file.c

[ leigh123linux ]

* trash-monitor: change trash monitoring process

[ lukefromdc ]

* Fix –geometry option when Nemo is already running

[ Maximiliano Curia ]

* Keep warnings as warnings when building the packages

[ Clement Lefebvre ]

* Clean up previous PR

[ JosephMcc ]

* nemo-file-management-properties: Fix an accidental removal

[ leigh123linux ]

* Add missing build dep

[ Clement Lefebvre ]

* Fixed build

[ Maximiliano Curia ]

* Make AX_ macros optional

[ itzexor ]

* nemo-window.c: save sidebar width 100ms after last change

* nemo-application.c: fix maximized window state preservation

[ Daniel Schürmann ]

* Remove conditional ellipsis code for GTK < 3.12.0 builds.

[ darealshinji ]

* Add link to Launchpad translations to README

[ claudetete ]

* bind double left click on blank to go to parent folder

* add option to manage double cick in blank area (off by default) because it changes previous behavior

[ Clement Lefebvre ]

* Rephrased feature introduced in previous commit and regenerated pot file

[ Michael Webster ]

* nemo-file.c: Only append .desktop to desktop files when they actually need it. Trusted desktop files (ones that typically get made and placed on the desktop) don’t show their extension, so when you try to rename them, the new name needs .desktop appended to it.

* nemo-file-management-properties.glade: improve the description of the click-to-rename feature.

* nemo-thumbnails.c: Don’t set a stack size – see:

* nemo-application.c: Look for already-existing desktop windows before attempting to manage the desktop.

* desktop: Don’t rebuild the desktop any time _NET_WORKAREA changes – this can happen fairly frequently in some situations, causing crashes due to the asynchronous nature of nemo’s directory loading back-end.

* eel-gnome-extensions.c: Use preferred terminal emulator when using “Run in terminal” to execute something. This more or less reverts a75c26d50bba3fec1dc242b9efc03f37a06e7093 but simplifies it somewhat, adapting the function that is used in GDesktopAppInfo and adding a check for our user setting.

* nemo-desktop-manager.c: run layout_changed when the widget scale factor changes. This (hopefully) handles regressions with hidpi support due to https://github.com/linuxmint/nemo/commit/c5a513468ee8c3497f0673e3ca019ccd3f409f8b.

[ leigh123linux ]

* file-undo-operations: change trashed files matching condition

[ Michael Webster ]

* icon view: Use the correct container size for applying margins to the icon container. Also, make sure icon data is fully loaded before positioning items – desktop pseudo-items don’t necessarily have the correct bounding boxes defined by the time layout occurs. Load this data just before trying to position the icon, rather than just after.

* nemo-desktop-utils: Adjustments for Gtk 3.22 changes in monitor management. gdk_screen_get_monitor_workarea() no longer returns a valid workarea, it simply returns the geometry – see commit:

* nemo-desktop-manager.c: reload the desktop in an idle callback

* nemo-application.c: Add a whitelist for ignoring existing desktop handlers by WM_CLASS match. By default ‘conky’ is in the list

[ Clement Lefebvre ]

* Generate additional files

Nemo extensions

Clement Lefebvre : nemo-emblems: l10n – Update translations

Clement Lefebvre : l10n: Update nemo-emblems POT file

Sergio de la Cruz : Fixes Issue #189: Invalid CSS values in nemo-preview

Clement Lefebvre : nemo-preview: Fix EXIF rotation

leigh123linux : audio: fix missing import

Michael Webster : nemo-preview: mainWindow.js: move to current desktop before setting a transient parent, as this appears to break the ‘sticky’ bit for desktop views when a preview is made on a desktop item, causing them to no longer appear on all workspaces.

brmmm3 : Save current visibility.

leigh123linux : Added gi.require_version()

leigh123linux : Add support for nemo’s plugin manager

Clement Lefebvre : Fixed & signs in gsettings schema

Jim Bauwens : Clear ‘cd’ line after changing directory

leigh123linux : image-converter: add more resize sizes