mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-07 15:37:14 +02:00
Add new appearance option for hiding title bar
This adds a new appearance option in Preferences to pick hiding title bar (in addition to using the transparent look). It was already an option before but this exposes it in the UI. Also, fix setting title to cache properly. Also fix non-native fullscreen to respect appearance changing in the Preferences pane. Also, see #1038 which added appareance pane.
This commit is contained in:
+22
-6
@@ -227,11 +227,11 @@
|
||||
<point key="canvasLocation" x="137.5" y="382"/>
|
||||
</customView>
|
||||
<customView id="hr4-G4-3ZG" userLabel="Appearance">
|
||||
<rect key="frame" x="0.0" y="0.0" width="483" height="224"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="483" height="244"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fw0-VK-Nbz" userLabel="Dark mode selection">
|
||||
<rect key="frame" x="19" y="46" width="433" height="156"/>
|
||||
<rect key="frame" x="19" y="66" width="433" height="156"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="T40-Os-PUf" userLabel="Dark mode selection">
|
||||
@@ -292,11 +292,11 @@
|
||||
</subviews>
|
||||
</customView>
|
||||
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7af-iK-4r7" userLabel="Titlebar appearance">
|
||||
<rect key="frame" x="19" y="20" width="433" height="18"/>
|
||||
<rect key="frame" x="19" y="20" width="433" height="38"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7ie-0J-0Zr" userLabel="Auto-install updates">
|
||||
<rect key="frame" x="189" y="-1" width="244" height="18"/>
|
||||
<rect key="frame" x="189" y="19" width="244" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<string key="toolTip">MacVim will automatically download and install updates without prompting. The updated version will be used the next time MacVim starts.</string>
|
||||
<buttonCell key="cell" type="check" title="Transparent" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="hzd-hj-Pth">
|
||||
@@ -312,7 +312,7 @@
|
||||
</connections>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9Rk-gT-kVC" userLabel="Titlebar appearance">
|
||||
<rect key="frame" x="-2" y="0.0" width="187" height="17"/>
|
||||
<rect key="frame" x="-2" y="20" width="187" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Titlebar appearance:" id="HEH-Lo-v4I" userLabel="Titlebar appearance:">
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -320,10 +320,26 @@
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Hqh-Ql-2od">
|
||||
<rect key="frame" x="189" y="1" width="244" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<string key="toolTip">MacVim will automatically download and install updates without prompting. The updated version will be used the next time MacVim starts.</string>
|
||||
<buttonCell key="cell" type="check" title="Hidden" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="W40-cB-m1U">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<connections>
|
||||
<binding destination="58" name="enabled" keyPath="values.SUCheckAtStartup" id="c7R-qa-q9c"/>
|
||||
</connections>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="appearanceChanged:" target="-2" id="WQA-OC-F4I"/>
|
||||
<binding destination="58" name="value" keyPath="values.MMNoTitleBarWindow" id="CKL-mo-ZhZ"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
</customView>
|
||||
</subviews>
|
||||
<point key="canvasLocation" x="137.5" y="384"/>
|
||||
<point key="canvasLocation" x="137.5" y="394"/>
|
||||
</customView>
|
||||
<customView id="620" userLabel="Advanced">
|
||||
<rect key="frame" x="0.0" y="0.0" width="483" height="318"/>
|
||||
|
||||
Binary file not shown.
@@ -191,6 +191,8 @@ enum {
|
||||
// we have to do it manually.
|
||||
[NSApp changeWindowsItem:self title:[target title] filename:NO];
|
||||
}
|
||||
|
||||
[self setAppearance:target.appearance];
|
||||
|
||||
[self setOpaque:[target isOpaque]];
|
||||
|
||||
|
||||
@@ -686,11 +686,7 @@ static BOOL isUnsafeMessage(int msgid);
|
||||
NSString *string = [[NSString alloc] initWithBytes:(void*)bytes
|
||||
length:len encoding:NSUTF8StringEncoding];
|
||||
|
||||
// While in live resize the window title displays the dimensions of the
|
||||
// window so don't clobber this with a spurious "set title" message
|
||||
// from Vim.
|
||||
if (![[windowController vimView] inLiveResize])
|
||||
[windowController setTitle:string];
|
||||
[windowController setTitle:string];
|
||||
|
||||
[string release];
|
||||
} else if (SetDocumentFilenameMsgID == msgid) {
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
- (void)setScrollbarThumbValue:(float)val proportion:(float)prop
|
||||
identifier:(int32_t)ident;
|
||||
|
||||
- (unsigned int)calculateStyleMask;
|
||||
- (void)setBackgroundOption:(int)dark;
|
||||
- (void)refreshApperanceMode;
|
||||
|
||||
|
||||
@@ -477,6 +477,17 @@
|
||||
|
||||
- (void)setTitle:(NSString *)title
|
||||
{
|
||||
// Save the original title, if we haven't already.
|
||||
[lastSetTitle release];
|
||||
lastSetTitle = [title retain];
|
||||
|
||||
// While in live resize the window title displays the dimensions of the
|
||||
// window so don't clobber this with the new title. We have already set
|
||||
// lastSetTitle above so once live resize is done we will set it back.
|
||||
if ([vimView inLiveResize]) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!title)
|
||||
return;
|
||||
|
||||
@@ -579,29 +590,41 @@
|
||||
// Transparent title bar setting
|
||||
decoratedWindow.titlebarAppearsTransparent = [[NSUserDefaults standardUserDefaults]
|
||||
boolForKey:MMTitlebarAppearsTransparentKey];
|
||||
|
||||
// No title bar setting
|
||||
if ([[NSUserDefaults standardUserDefaults]
|
||||
boolForKey:MMNoTitleBarWindowKey]) {
|
||||
[decoratedWindow setStyleMask:([decoratedWindow styleMask] & ~NSWindowStyleMaskTitled)];
|
||||
} else {
|
||||
[decoratedWindow setStyleMask:([decoratedWindow styleMask] | NSWindowStyleMaskTitled)];
|
||||
}
|
||||
|
||||
// Title may have been lost if we hid the title-bar. Reset it.
|
||||
[self setTitle:lastSetTitle];
|
||||
|
||||
// Dark mode only works on 10.14+ because that's when dark mode was
|
||||
// introduced.
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_14
|
||||
if (@available(macos 10.14, *)) {
|
||||
NSAppearance* desiredAppearance;
|
||||
switch ([[NSUserDefaults standardUserDefaults] integerForKey:MMAppearanceModeSelectionKey])
|
||||
{
|
||||
case MMAppearanceModeSelectionLight:
|
||||
{
|
||||
decoratedWindow.appearance = [NSAppearance appearanceNamed: NSAppearanceNameAqua];
|
||||
desiredAppearance = [NSAppearance appearanceNamed: NSAppearanceNameAqua];
|
||||
break;
|
||||
}
|
||||
case MMAppearanceModeSelectionDark:
|
||||
{
|
||||
decoratedWindow.appearance = [NSAppearance appearanceNamed: NSAppearanceNameDarkAqua];
|
||||
desiredAppearance = [NSAppearance appearanceNamed: NSAppearanceNameDarkAqua];
|
||||
break;
|
||||
}
|
||||
case MMAppearanceModeSelectionBackgroundOption:
|
||||
{
|
||||
if (backgroundDark) {
|
||||
decoratedWindow.appearance = [NSAppearance appearanceNamed: NSAppearanceNameDarkAqua];
|
||||
desiredAppearance = [NSAppearance appearanceNamed: NSAppearanceNameDarkAqua];
|
||||
} else {
|
||||
decoratedWindow.appearance = [NSAppearance appearanceNamed: NSAppearanceNameAqua];
|
||||
desiredAppearance = [NSAppearance appearanceNamed: NSAppearanceNameAqua];
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -609,10 +632,13 @@
|
||||
default:
|
||||
{
|
||||
// Use the system appearance. This will also auto-switch when OS changes mode.
|
||||
decoratedWindow.appearance = nil;
|
||||
desiredAppearance = nil;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
decoratedWindow.appearance = desiredAppearance;
|
||||
fullScreenWindow.appearance = desiredAppearance;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -821,11 +847,6 @@
|
||||
{
|
||||
if (!setupDone) return;
|
||||
|
||||
// Save the original title, if we haven't already.
|
||||
if (lastSetTitle == nil) {
|
||||
lastSetTitle = [[decoratedWindow title] retain];
|
||||
}
|
||||
|
||||
// NOTE: During live resize Cocoa goes into "event tracking mode". We have
|
||||
// to add the backend connection to this mode in order for resize messages
|
||||
// from Vim to reach MacVim. We do not wish to always listen to requests
|
||||
@@ -849,8 +870,6 @@
|
||||
// If we saved the original title while resizing, restore it.
|
||||
if (lastSetTitle != nil) {
|
||||
[decoratedWindow setTitle:lastSetTitle];
|
||||
[lastSetTitle release];
|
||||
lastSetTitle = nil;
|
||||
}
|
||||
|
||||
// If we are in the middle of rapid resize (e.g. double-clicking on the border/corner
|
||||
|
||||
Reference in New Issue
Block a user