macOS: Add a new value titlebar-and-corners for :opt:hide_window_decorations that emulates the behavior of hide_window_decorations yes in older versions of kitty

This commit is contained in:
Kovid Goyal
2023-07-11 22:27:47 +05:30
parent a00b6bd497
commit 5f8610f7bc
4 changed files with 16 additions and 11 deletions

View File

@@ -42,6 +42,8 @@ Detailed list of changes
- macOS: Fix a regression causing *burn-in* of text when resizing semi-transparent OS windows (:iss:`6439`)
- macOS: Add a new value ``titlebar-and-corners`` for :opt:`hide_window_decorations` that emulates the behavior of ``hide_window_decorations yes`` in older versions of kitty
- Remote control launch: Fix ``--env`` not implemented when using ``--cwd=current`` with the SSH kitten (:iss:`6438`)
0.29.0 [2023-07-10]

View File

@@ -297,16 +297,12 @@ static NSUInteger getStyleMask(_GLFWwindow* window)
NSUInteger styleMask = NSWindowStyleMaskMiniaturizable;
if (window->ns.titlebar_hidden) styleMask |= NSWindowStyleMaskFullSizeContentView;
if (window->monitor || !window->decorated)
if (window->monitor || !window->decorated) {
styleMask |= NSWindowStyleMaskBorderless;
else
{
styleMask |= NSWindowStyleMaskTitled |
NSWindowStyleMaskClosable;
if (window->resizable)
styleMask |= NSWindowStyleMaskResizable;
} else {
styleMask |= NSWindowStyleMaskTitled | NSWindowStyleMaskClosable;
}
if (window->resizable) styleMask |= NSWindowStyleMaskResizable;
return styleMask;
}
@@ -3021,6 +3017,11 @@ GLFWAPI void glfwCocoaSetWindowChrome(GLFWwindow *w, unsigned int color, bool us
window->ns.titlebar_hidden = true;
show_text_in_titlebar = false;
break;
case 4:
decorations_desc = "no-titlebar-and-no-corners";
window->decorated = false;
has_shadow = true;
break;
default:
window->decorated = true;
has_shadow = true;

View File

@@ -1026,12 +1026,12 @@ opt('hide_window_decorations', 'no',
option_type='hide_window_decorations', ctype='uint',
long_text='''
Hide the window decorations (title-bar and window borders) with :code:`yes`. On
macOS, :code:`titlebar-only` can be used to only hide the titlebar. Whether this
works and exactly what effect it has depends on the window manager/operating
macOS, :code:`titlebar-only` and :code:`titlebar-and-corners` can be used to only hide the titlebar and the rounded corners.
Whether this works and exactly what effect it has depends on the window manager/operating
system. Note that the effects of changing this option when reloading config
are undefined. When using :code:`titlebar-only`, it is useful to also set
:opt:`window_margin_width` and :opt:`placement_strategy` to prevent the rounded
corners from clipping text.
corners from clipping text. Or use :code:`titlebar-and-corners`.
'''
)

View File

@@ -594,6 +594,8 @@ def optional_edge_width(x: str) -> FloatEdges:
def hide_window_decorations(x: str) -> int:
if x == 'titlebar-only':
return 0b10
if x == 'titlebar-and-corners':
return 0b100
if to_bool(x):
return 0b01
return 0b00