Today we release the latest build 20250117 of Nimi Places.
Build has been delayed due to thorough context menu use revision (longer and more future-proof approach had been chosen). Notably, build brings basic shell menu support. Shell menu is lazily resolved upon selecting "More options" sub-menu.
Additionally, multiple issues had been fixed (like file swapping support) as well as newer operating system support has been improved.
Lastly, when running Nimi Places as portable — some caches now use environment identifier to improve those validity across different machines.
- Added basic shell menu support.
- Added mutexing surface effect change.
- Added option to use custom colourization accent colour.
- Added own context menu renderer.
- Added sepia tone surface effect.
- Added tolerance for considering containers being on same level during those sorting.
- Changed advanced settings window changes application to occur after window close.
- Changed branching FIFO queue to use linear instead of linked approach.
- Changed cursor overlay to be executed on main thread.
- Changed ellipsis to be decided depending on trimmed text.
- Changed error details report to contain just information if run as portable instead of full instance path.
- Changed item drop into container position computation to set position as first on certain conditions.
- Changed shell queries to use environment identifier, when running as portable.
- Changed showing context menus from on mouse down to on mouse up.
- Changed thumbnail cache to use environment identifier when running as portable and to needed extent.
- Changed thumbnail directory naming scheme.
- Changed thumbnail id for extensions to use hash.
- Changed to eagerly discard cursor overlay on internal containers item drop.
- Further unified muxers code.
- Increased wallpaper change events multiplexing time.
- Optimized advanced settings changes detection logic.
- Optimized wallpaper changes detection by further coalescing notifications.
- Unified controls selection rendering.
- Unified string and numeric comparators.
- Fixed and revised hourspan selector selection logic.
- Fixed bundled berry themes not specified any position for header.
- Fixed cached menu icons not being restored to memory cache.
- Fixed capturing wallpaper on older operating systems.
- Fixed container header visibility enabled state not adjusted for its themes using non-removable header loaded during its initialization.
- Fixed container item navigation not handling empty selection list.
- Fixed container item scaling table doing full string comparison for atomized strings.
- Fixed container items not being repainted after name change under certain conditions.
- Fixed container items remapping on item removal under certain conditions.
- Fixed container scrolling curve by removing DPI correction.
- Fixed container surface remapping by removing faulty optimizations.
- Fixed container theme colourized elements not always updated on colourization change.
- Fixed context menu rendering on newer operating systems.
- Fixed detecting shell change failing due to invalid reversed conditional.
- Fixed directory estimating counting special paths.
- Fixed distribution package handling file or directory not found exception.
- Fixed dropping items into containers at position of first and only container item.
- Fixed enframing image into page with flipped corner needlessly drawing image twice on newer operating systems.
- Fixed event muxer handling system theme change.
- Fixed file system observer interlocked buffer access.
- Fixed handling archives with empty names.
- Fixed handling empty file names while enumerating directories.
- Fixed handling file is locked error violation.
- Fixed handling file swapping.
- Fixed handling full black colourization.
- Fixed handling mouse leave during adjusting selection in hourspan selector, after adjusting ended.
- Fixed high-contrast theme support on newer operating systems.
- Fixed ignored menu icons and extensions thumbnails listing.
- Fixed initializing mouse movement detection for enhanced cursor on older operating systems.
- Fixed instance path resolving on older operating systems.
- Fixed invalid buffer allocation during path resolving on older operating systems.
- Fixed invalid condition preventing sorting container items by name.
- Fixed invalid container item remapping when using RTL layout due to delaying computations.
- Fixed invalid legacy hashing function used for provided translation template.
- Fixed item index instead of item key being returned to the pool of freed keys for container items collection.
- Fixed moving cursor overlay on each mouse message, instead of only move message.
- Fixed not always navigating to last container item, when navigating to earlier non-scrollable container.
- Fixed not detecting wallpaper change, when only wallpaper file changed.
- Fixed not differentiating between system colour scheme and system colour accent change for multiplexing.
- Fixed Place type container scroll margins on drag over calculation, when header is displayed on the bottom.
- Fixed quick animation final progress step value calculation.
- Fixed repainting item less container on theme elements change.
- Fixed retrieving wallpaper on newer operating systems failing on certain conditions.
- Fixed scaled theme scrollbar bitmap being cropped.
- Fixed secondary last hovered container item index not being adjusted on container item deletion.
- Fixed setting translation ellipsis string.
- Fixed settings list view releasing graphic resources logic.
- Fixed string builder not handling empty string appending correctly.
- Fixed unequal page border thickness, when enframing image into page with flipped corner — on newer operating systems, while using custom DPI.
- Fixed unused container items key pool not removed after embedding it into specialized collection.
- Fixed updating thumbnails for changed container items.
- Fixed using invalid enum values for adjusting window attributes.
- Fixed using invalid setting key to restore surface effect setting from database.
- Fixed using system colour fallback not considered for colour accent change detection.
- Fixed XML parsing not using optimized comparisons on all paths.
- Revised translation system to use fixed hashes instead of dynamically generated.
- Disabled surface effects, when using high-contrast theme.
- Removed collections remove item specialization.
- Removed detailed failure messages during theme packing to reduce code size.
- Removed ellipsis field from localization specification.
- Removed ellipsis right-to-left logic as invalid.
- Improved radio and label icon generation pixel-snaping fractional computations.
- Optimized capturing desktop wallpaper for certain conditions.
- Optimized handling shell detection event.
- Optimized hourspan selector drawing loops.
- Optimized Place type container compositors.
- Optimized string lookup by grouping strings by length.
- Presorted template translation table.
- Revised adjusting right-to-left marking during translation lookup.
- Revised API generated exception handling.
- Revised calculations for computing contrast colour for colourization.
- Revised contrastful color picking logic.
- Revised controls buffering.
- Revised corral type collection order reversing.
- Revised menu icons thumbnail identifier generation.
- Revised Place type container scrolling on drag over to one row at a time.
- Revised settings list view to use internal collection types.
- Revised settings list view translation use.
- Revised string width estimation.
- Revised visual style use logic.
- Separated menu icons and extensions cache.
- Simplified extension comparison logic.
- Decreased maxium image viewer freehand selection points count.
- Moved mutex data to mutex data directory.
- Moved post-update conversions and actions to occur during initialization before core launch.
- Other changes, fixes and updates.
