diff --git a/CHANGELOG.md b/CHANGELOG.md index ef9ebbd..a55510b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,21 @@ All notable changes to Gridka will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.3.0] - 2026-04-23 + +### Added +- **Open Recent** submenu in File menu — tracks previously opened files across sessions + +### Fixed +- Row number gutter overlapping first column when toggling View options in certain order +- Column header clicks (sort) blocked by row number overlay + +## [1.2.1] - 2026-04-20 + +### Fixed +- Row number gutter overlapping first column when toggling View options in certain order +- Column header clicks (sort) blocked by row number overlay + ## [1.2.0] - 2026-02-27 ### Security diff --git a/Sources/App/AppDelegate.swift b/Sources/App/AppDelegate.swift index bc2a10a..944f160 100644 --- a/Sources/App/AppDelegate.swift +++ b/Sources/App/AppDelegate.swift @@ -197,6 +197,13 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation { let openItem = NSMenuItem(title: "Open…", action: #selector(openDocument(_:)), keyEquivalent: "o") openItem.target = self fileMenu.addItem(openItem) + + let recentMenuItem = NSMenuItem(title: "Open Recent", action: nil, keyEquivalent: "") + let recentMenu = NSMenu(title: "Open Recent") + recentMenu.addItem(NSMenuItem(title: "Clear Menu", action: #selector(NSDocumentController.clearRecentDocuments(_:)), keyEquivalent: "")) + recentMenuItem.submenu = recentMenu + fileMenu.addItem(recentMenuItem) + fileMenu.addItem(NSMenuItem.separator()) let saveItem = NSMenuItem(title: "Save", action: #selector(saveDocument(_:)), keyEquivalent: "s") saveItem.target = self @@ -588,6 +595,8 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation { win.title = url.lastPathComponent win.subtitle = url.deletingLastPathComponent().path + NSDocumentController.shared.noteNewRecentDocumentURL(url) + // Track document-edited state via window dirty dot session.onModifiedChanged = { [weak win] modified in win?.isDocumentEdited = modified diff --git a/project.yml b/project.yml index 4d88288..b640dbe 100644 --- a/project.yml +++ b/project.yml @@ -29,8 +29,8 @@ targets: INFOPLIST_FILE: Resources/Info.plist ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon CODE_SIGN_ENTITLEMENTS: Gridka.entitlements - MARKETING_VERSION: "1.2.1" - CURRENT_PROJECT_VERSION: "6" + MARKETING_VERSION: "1.3.0" + CURRENT_PROJECT_VERSION: "7" SWIFT_OBJC_BRIDGING_HEADER: Sources/Bridging/Gridka-Bridging-Header.h HEADER_SEARCH_PATHS: - "$(PROJECT_DIR)/Libraries" @@ -68,8 +68,8 @@ targets: PRODUCT_NAME: GridkaQuickLook CODE_SIGN_ENTITLEMENTS: GridkaQuickLook.entitlements INFOPLIST_FILE: QuickLookExtension/Info.plist - MARKETING_VERSION: "1.2.1" - CURRENT_PROJECT_VERSION: "6" + MARKETING_VERSION: "1.3.0" + CURRENT_PROJECT_VERSION: "7" SKIP_INSTALL: YES GridkaTests: type: bundle.unit-test