356 Commits

Author SHA1 Message Date
Kovid Goyal
2babfa7ebf macOS: Further restrict the live resize callback to only be used when live resize is actually in progress 2025-10-07 18:23:08 +05:30
Kovid Goyal
d3c5cb12c4 macOS: Dont do live resizing when window is fullscreen
The live resize causes crashes on some Tahoe machines due to macOS bugs.
It is not needed anyway when the window is fullscreen, so ignore it.
2025-10-07 08:57:57 +05:30
Kovid Goyal
a0699f5c9e Remove the dropping of the first resize event since it did not fix the issue
Add a check to only callback if the thread is the main thread
2025-10-06 18:39:53 +05:30
Kovid Goyal
270c598f2c macOS: Only live resize for resize events that occur in quick succession
Apparently on some systems Tahoe sends a resize event on wake from
sleep/lid open for obscure reasons and then proceeds to crash if one
redraws during that event. Sigh.
2025-10-02 19:39:13 +05:30
Kovid Goyal
a8e930c167 Fix titlebar color not working for opaque windows
As long as titlebar_color is not nil, we need a background view
2025-09-29 22:36:27 +05:30
Kovid Goyal
75ec41e08b Make titlebar background view a child of the titlebar view itself 2025-09-29 22:02:38 +05:30
Kovid Goyal
13bbaee112 Only insert titlebar background view if the titlebar is transparent 2025-09-29 21:47:40 +05:30
Kovid Goyal
14f75c9a9b DRYer 2025-09-29 17:44:24 +05:30
Kovid Goyal
d2cc22e7c6 macOS: React to changes in effective appearance of the NSApplication not the content view for each window
This is nicer now every OS Windows doesnt cause a notification. Also
fixes #9034 which was caused by us setting an explicit appearance on the
window when the titlebar is set to a specific color thereby preventing
the views in the window from getting appearance change notifications.
2025-09-29 17:17:46 +05:30
Kovid Goyal
f4867928b4 DRYer 2025-09-29 17:00:18 +05:30
Kovid Goyal
1252098016 DRYer 2025-09-29 09:09:49 +05:30
Kovid Goyal
fb4a3d7f17 Revert reversion of Tahoe fix in 7589bf4b11
It is still needed. Instead change the frame to havezero size and leaves
its origin unchanged.
2025-09-29 08:58:41 +05:30
Kovid Goyal
e542cd8378 macOS: Fix a big where the color of a transparent titlebar was off when running in the release build versus the build from source. Also fix using a transparent titlebar causing the background opacity to be darkened.
There were two issues.

1) Setting window background color to a non-zero opacity causes
   darkening (essentially there were two layers of blending)

2) The titlebar background view could end up in the wrong position
   because it was a child of the content view rather than its super view

Fix both issues setting the window background to clear color and
moving the background view into the super view while making sure it is
positioned correctly using explicit constraints. Phew.
2025-09-28 21:24:00 +05:30
Kovid Goyal
e024226b0c Dont need to set origin since we are setting anchors 2025-09-28 20:22:40 +05:30
Kovid Goyal
8bef718c9a Tighten the scope searched for sub views 2025-09-28 19:46:11 +05:30
Kovid Goyal
b6f9080486 Use explicit constraints for the titlebar bg view
Easier to reason about
2025-09-28 17:20:37 +05:30
Kovid Goyal
791902caad ... 2025-09-28 17:03:33 +05:30
Kovid Goyal
09133a7039 Use only one subview for translucent titlebar 2025-09-28 17:01:10 +05:30
Kovid Goyal
57345af8e9 Move titlebar background setting to after window stylemask is set
The titlebar height calculation depends on the stylemask
2025-09-28 16:20:52 +05:30
Ethan Wu
7589bf4b11 Revert "Workaround for latest Apple regression in Tahoe"
This reverts commit d837a64e36.

Commit 24b31d96e9 fixes the original
problem of "ghost windows" that d837a64 was trying to solve. (I have no
idea how or why it does.)

One side-effect of the workaround from d837a64 is that it causes closed
windows to be moved to the (0,0) before being destroyed. This means that
when creating new windows, they are placed on the left-most display,
instead of the display in which the previously closed window was on as
you would expect. Reverting this kludge fixes this bug.
2025-09-22 16:50:31 -07:00
Kovid Goyal
982b5156e1 macOS: When toggling in the quick access terminal move it to the currently active screen
Fixes #9003
2025-09-22 20:04:42 +05:30
Kovid Goyal
7af7aa95c6 Another workaround for another macOS Tahoe bug
Dont redraw an OSWindow during a resize event if the resize event is
accompanied by a screen change as it causes a crash in macOS OpenGL
driver. Fixes #8983
2025-09-19 12:05:34 +05:30
Kovid Goyal
24b31d96e9 No need to use a block as Apple docs guarantee that NSApplicationDidChangeScreenParametersNotification is posted on the main thread 2025-09-19 08:52:09 +05:30
Kovid Goyal
d837a64e36 Workaround for latest Apple regression in Tahoe
Now NSWindow::close no longer actually closes the window. Sigh. Have to
also set its frame to zero size, otherwise an invisible rect remains
that intercepts mouse events and takes up space in Mission Control.

Life is too short for this shit. Fixes #8952
2025-09-05 17:27:46 +05:30
Kovid Goyal
21fa5bb1ce macOS: focusing of minimized window broken
This was done to fix #8913 in d7c2cdc.
Explicitly de-miniaturize before making key.
2025-08-23 07:49:06 +05:30
Kovid Goyal
d7c2cdccb1 macOS: Fix closing an OS Window when another OS Window is minimized causing the minimized window to be un-minimized
This is a bug we inherited from GLFW.
Fixes #8913
2025-08-18 21:26:54 +05:30
Kovid Goyal
3638adda6c macOS: Elaborate dance to work around yet another Cocoa bug
Fixes #8740
2025-08-18 16:01:51 +05:30
Kovid Goyal
6beded7b49 Cleanup previous PR 2025-08-18 14:45:18 +05:30
zhaolei
ba8acf508f make macos_titlebar_color background support transparent 2025-08-17 13:37:31 +08:00
Kovid Goyal
caba27240b Add some missing assertions
Port from upstream glfw: 38ec7abd3baffdd3ec4e6f8cbb5384cda8882ae3
2025-08-16 07:38:54 +05:30
Kovid Goyal
55a2f2c55c Cocoa: fix quick access terminal hide focus restore
Apple now makes kitty the front most application before sending the
service notification. So instead watch for front most application change
events from the shared workspace and restore focus to the last non-self
application.
2025-07-21 14:55:12 +05:30
Kovid Goyal
6282a46ff1 A new centered panel type that is sized 2025-05-13 16:38:57 +05:30
Kovid Goyal
88f4c829eb Improve handling of output names
Now can use panel --output-name list to list available outputs.
Also, --output-name works on macOS
2025-05-13 15:29:37 +05:30
Kovid Goyal
8e12cccf26 ... 2025-05-13 08:00:35 +05:30
Kovid Goyal
20d6a8e4c5 Fix building on older Cocoa 2025-05-13 07:45:11 +05:30
Kovid Goyal
9ed6be9272 Quick access terminal: Allow toggling the window to full screen and map using the standard kitty toggle_fullscreen shortcut
Fixes #8626
2025-05-12 15:20:48 +05:30
Kovid Goyal
015ee41d0f ... 2025-05-12 13:17:46 +05:30
Kovid Goyal
064bc963a8 macOS: Quick access terminal: Restore focus to previously active window when hiding the quick access terminal window
Fixes #8627
2025-05-12 13:15:42 +05:30
Kovid Goyal
f04fc251bf Start work on full panel support in X11 2025-05-01 15:44:08 +05:30
Kovid Goyal
4fa67c9ffd macOS: Relayout layer shell windows on screen size change 2025-04-29 21:33:05 +05:30
Kovid Goyal
50b044f8a2 Allow popup menus from global menubar to function 2025-04-25 20:41:44 +05:30
Kovid Goyal
2c2ddbb8f5 Remove useless animate parameter 2025-04-23 20:59:34 +05:30
Kovid Goyal
c3e1f2317b Finish calculations for other panel types in cocoa 2025-04-23 20:36:35 +05:30
Kovid Goyal
413a2b96e2 Prevent background panel launch taking focus from key window 2025-04-23 13:16:01 +05:30
Kovid Goyal
09eb5edcca Get background panel basically working on macOS 2025-04-23 12:42:24 +05:30
Kovid Goyal
ca30b4196b Prevent minimize/maximize/fullscreen for layer shell windows 2025-04-23 07:43:36 +05:30
Kovid Goyal
3c4a8a1e7e Resize OS panels on font size change 2025-04-23 07:43:36 +05:30
Kovid Goyal
ae01cf3c1c Refactor layer shell size callback to support multiple backends 2025-04-23 07:43:36 +05:30
Kovid Goyal
c9bf7e4236 Factor out Cocoa layer shell code into the proper function 2025-04-23 07:43:36 +05:30
Kovid Goyal
e93338a81c Start work on macOS support for panel kitten 2025-04-23 07:43:36 +05:30