661 Commits
Author SHA1 Message Date
Sanjay 8d7676d226 Itsycal 0.15.12 0.15.12 2026-04-04 22:32:01 -07:00
Sanjay d77631d460 Revert "Fix window position when icon isn't visible (#283)"
I made this change in haste. It breaks the old behavior with
auto-hiding menu bars. Also, the occulsion check doesn't seem
to work as it always returns false. The way to handle menu bar
hiding apps needs to be thought through more carefully. What is
the right expectation when using a hiding app? What is the
right expectation when macOS crowds out menu items?

This reverts commit 82ac22c392.
2026-04-04 20:09:17 -07:00
Sanjay bdcf38eabb Improve agenda detail size calc
Sometimes agenda detail popover took 2 displays to get sizing right.
2026-03-31 19:58:25 -07:00
Sanjay 274e28a869 Itsycal 0.15.11 0.15.11 2026-03-30 15:07:52 -07:00
Sanjay da1c964896 EventViewController uses ThemedScroller 2026-03-30 15:05:18 -07:00
Sunghyun Cho e74cf9e896 Add Korean localization resources (#296) 2026-03-28 20:26:19 -07:00
Sanjay be2f9fe941 Agenda popover uses ThemedScroller like agenda 2026-03-26 22:33:25 -07:00
Sanjay 32078317ac Translate NSCalendarsFullAccessUsageDescription
NSCalendarsFullAccessUsageDescription was erroneously ommitted from
localized InfoPlist.strings when this API was adopted for macOS 14.
2026-03-26 19:58:36 -07:00
Sanjay bf3ef6d5db Fix previous commit macOS version
API is version 14, not 26. Logic via @available is for 26.
2026-03-26 19:13:43 -07:00
Sanjay 4b828e1960 Add missing MAC_OS_X_VERSION_MAX_ALLOWED blocks 2026-03-26 15:12:28 -07:00
Sanjay 5ee4e3260f Attendee participation status uses color 2026-03-25 23:18:55 -07:00
Sanjay 4f409e5bad Disable menu icons introduced in macOS 26 Tahoe
Icons can be re-enabled with defaults key EnableTahoeMenuIcons (bool).
2026-03-25 17:51:02 -07:00
Sanjay 1ededddcaf macOS 26: agenda popover gets theme background 2026-03-24 19:52:12 -07:00
Sanjay ccd5c23a83 macOS 26: add-event popover gets theme background 2026-03-24 17:41:12 -07:00
Sanjay a393cbce04 Fix regex enumeration string range bug 2026-03-24 11:10:28 -07:00
IlmiandSanjay d8af053c1a Add right-click menu to status item (#295)
Quick access to Settings..., Date & Time..., and Quit Itsycal

Co-authored-by: Sanjay <sanjayma@gmail.com>
2026-03-23 19:04:43 -07:00
Ilmi b41949edf5 Fix missing KVO observer removals in dealloc (#288)
fileNotifications registers KVO observers for 9 key paths but dealloc
only removed 6 of them. The 3 missing removals are:

- kShowMeetingIndicator
- kHideIcon
- kBaselineOffset
2026-03-20 21:42:52 -07:00
Ilmi 2fb0691bd6 Fix retain cycles in notification observers (#289)
The block-based addObserverForName: calls in fileNotifications captured
self strongly. The returned observer tokens were never stored, so
removeObserver:self in dealloc couldn't remove them (that API only
removes selector-based observers, not block-based ones).

- Use weak-strong pattern in each block to avoid retaining self.
- Store returned observer tokens in _notificationTokens.
- Remove each token in dealloc for proper cleanup.
2026-03-20 21:39:17 -07:00
Ilmi 0cee7da4a9 Fix tooltip makeKeyWindow warning (#287)
MoCalTooltipWindow is borderless and returns NO from canBecomeKeyWindow.
showWindow: internally calls makeKeyAndOrderFront: which triggers:

  Warning: -[NSWindow makeKeyWindow] called on <MoCalTooltipWindow>
  which returned NO from -[NSWindow canBecomeKeyWindow].

Use orderFront: instead since the tooltip doesn't need key status.
2026-03-20 21:17:24 -07:00
Sanjay c30ba3a10c Modify BUILD.md with xcconfig info 2026-03-13 08:01:46 -07:00
Sanjay e94187cb86 Fix signing so contributors can build w/o setup
Set project-level build settings to sign-to-run-locally defaults
so the project builds out of the box without a Local.xcconfig. Remove
signing settings from target-level build settings entirely so
Local.xcconfig can override them cleanly. Update Local.xcconfig.example
to reflect all required keys for both options.
2026-03-13 06:48:15 -07:00
Sanjay abc024d3d3 Modify README with xcconfig info 2026-03-12 17:07:15 -07:00
Sanjay 0a93ba5b15 Keep code signing settings out of pull requests
Move DEVELOPMENT_TEAM and provisioning settings out of project.pbxproj
into a gitignored Local.xcconfig, so contributor signing configs are
never accidentally committed. Add Local.xcconfig.example as a template,
CONTRIBUTING.md with setup instructions, and a GitHub Actions workflow
that fails any PR modifying signing settings in project.pbxproj.
2026-03-12 16:57:26 -07:00
Nathan Manceaux-Panot 82ac22c392 Fix window position when icon isn't visible (#283)
Itsycal doesn't currently do well in situations when the menubar 
icon isn't visible. This can be the case either because there isn't 
enough space in the menubar for the icon, or because the user is 
using a menubar management app to hide it.

- When there isn't enough space, the icon is invisible but still 
  positioned to the left of the visible ones: as a result, Itsycal 
  show its window pointing to one of the frontmost app's main menus.
- When the icon was purposefully hidden (I tested with Ice.app), 
  the icon's location is far off-screen, and as a result, the 
  Itsycal window doesn't show at all.

This commit detects both cases of icon invisibility, and falls back 
to positioning the window against the right edge of the screen.
2026-03-10 23:51:27 -07:00
Sanjay e9a217a714 Default event duration matches Calendar.app 2026-01-19 22:37:35 -08:00
Sanjay 99c1040e8b Itsycal 0.15.10 0.15.10 2025-12-10 20:13:18 -08:00
Sanjay f6550ee29a Xcode 26.2 2025-12-10 15:50:12 -08:00
Sanjay 0c113ea853 macOS 26: Tweak prefs panel
macOS 26 controls are generally lower contrast and
thus harder to visually parse. Increase contrast
of toolbar icons and add a border around the
calendar picker in the General pane.
2025-12-10 15:05:46 -08:00
Sanjay 19a018085a macOS 26: Tweak icon to look better in jail
macOS 26 adopts a new .icon format to support the
new Liquid Glass design. Legacy icons in .icns
format are shown in the new OS in 'icon jail':
reduced size against a grey squircle background.
The OS applies styling to these icons to mimic
the glass effect for dark, clear, and tint modes.
Icon jail appears to be an attempt to shame
developers to conform to Apple's strictures.

For now I've chosen to tweak the legacy icon to
look somewhat better in jail. The outline is a
squircle instead of a rounded rect and the contrast
is higher. The new .icon format adds considerable
bloat to the app size which costs me $ every time
the app is downloaded for no discernible benefit.
As the app has no Dock icon, the only time the
icon is seen is in the Finder. Strangely, as of
macOS 26.1, this icon is NOT in jail when shown
at the small size in the Finder's list view.
2025-12-10 15:03:47 -08:00
Sanjay 2d35f13d8b macOS 26: Menu item glyphs 2025-12-10 11:06:05 -08:00
Sanjay f8cda5749b Itsycal 0.15.9 0.15.9 2025-12-07 20:31:18 -08:00
Sanjay 80e1c78245 Copyright 2024 -> 2025 2025-12-07 20:31:18 -08:00
Sanjay 35fa79a2da Expansion tooltips for agenda title, location 2025-12-07 12:33:36 -08:00
Sanjay cf98bf6f7c Add ellipsis to Delete context menu item 2025-12-07 11:34:19 -08:00
Sanjay 71314f2683 Fix macOS 26 Tahoe memory leak
Tahoe appears to handle memory management of
NSTableView differently from previous versions of
macOS. In the past, a table view would manage a
reuse pool of table view cells in order to minimize
memory allocation and deallocation. Instead of
deallocating unused cells, the table view would
hold them in a reuse pool. When a new cell was
needed, the reuse pool would first be checked. If
a cell was found there, a new allocation was
avoided.

In Tahoe, the table view appears to deallocate
unused cells and allocate every time a new one is
needed.

This new behavior caused a memory leak because old
agenda table view cells could never be deallocated
because they were held by a strong reference from
NSNotificationCenter for the kSizeDidChangeNotification.

To fix, change the way these notifications are
observed so they can easily be deallocated. The
notification is posted to the main thread since
its selector updates the UI.
2025-12-07 10:59:32 -08:00
Sanjay 8b9102ad4f Green border for DEBUG builds 2025-12-06 17:44:48 -08:00
Sanjay 058cc3a1ec Fix warning
"Variable length array folded to constant array
as an extension"
2025-12-06 13:02:58 -08:00
Sanjay 659a87b273 Default values for some NSUserDefaults
Prevent NSInvalidArgumentException when setting
up bindings
2025-12-06 11:37:19 -08:00
Sanjay 7fde38f107 Itsycal 0.15.8 0.15.8 2025-10-29 21:49:12 -07:00
Sanjay cf46ef6817 Fix: Previous Daylight Savings "fix" used 100% CPU 2025-10-29 21:47:26 -07:00
Sanjay 7d00807eb0 Itsycal 0.15.7 0.15.7 2025-10-28 23:02:39 -07:00
Sanjay 9979ef6ca4 Fix timer for Daylight Savings transition 2025-10-28 23:01:47 -07:00
Sanjay 1f911b2bb4 Workaround for macOS15 Sequoia ISO8601 bug
Since macOS 15 Sequoia, if the current locale's
calendar is ISO 8601, NSDateFormatter won't honor
the EEE format and simply omits showing the day
of the week.
2025-09-29 11:11:33 -07:00
crabique d31c5959d4 Fix: Don't close agenda popover on hover unconditionally (#264)
0.15.5 introduced a terminal-only ShowEventPopoverOnHover option 
which opens and closes the event agenda popovers on hover in and 
out events, but there is a bug causing a part of that behavior to leak 
into the default mode when this property is either disabled or not set.

kShowEventPopoverOnHover is an NSCFConstantString instance and
is a truthy value, so this code path is always taken and the popover
closes when it should only react to explicit interactions.
2025-03-17 12:07:56 -07:00
Matvey Pravosudov 1fb3f4c39e Add VK Calls check (#263) 2025-03-08 11:33:08 -08:00
Sanjay 5d97a72bfc Itsycal 0.15.6 0.15.6 help 2025-02-15 08:17:34 -08:00
Sanjay c5fc3a3700 Bug #257, continuation of #213
macOS 13 handles All-day events differently from
previous versions. No longer need a hack to handle
All-day events. Now fixed in "Copy" function too.
2024-12-05 14:50:42 -08:00
Sanjay c179e87d9b Xcode 16.0 2024-10-23 18:58:54 -07:00
Sanjay b88ab39f56 Itsycal 0.15.5 0.15.5 2024-10-23 18:55:26 -07:00
Sanjay ec624b8c57 Show event popover on hover
ShowEventPopoverOnHover : bool
2024-10-23 18:37:18 -07:00