Skip to content
Snippets Groups Projects
Commit 08591bcd authored by George Nachman's avatar George Nachman
Browse files

Bugfixes for bottom of screen

parents 0ec472b0 272186ca
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -8,3 +8,6 @@
iTerm.xcodeproj/project.pbxproj
.gitignore
build/
.DS_Store
iTerm.xcodeproj/*
*.pbxproj
Loading
Loading
@@ -12,7 +12,7 @@
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="1947"/>
<integer value="1946"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
Loading
Loading
@@ -217,7 +217,7 @@
<object class="NSTabViewItem" id="403608584">
<string key="NSIdentifier">1</string>
<object class="NSView" key="NSView" id="505411774">
<reference key="NSNextResponder" ref="415305200"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
Loading
Loading
@@ -956,7 +956,6 @@
</object>
</object>
<string key="NSFrameSize">{767, 383}</string>
<reference key="NSSuperview" ref="415305200"/>
</object>
<string key="NSLabel">Global Settings</string>
<reference key="NSColor" ref="303715562"/>
Loading
Loading
@@ -1655,7 +1654,7 @@
<object class="NSTabViewItem" id="745611275">
<string key="NSIdentifier">2</string>
<object class="NSView" key="NSView" id="105539794">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder" ref="415305200"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
Loading
Loading
@@ -1669,7 +1668,7 @@
<object class="NSTabViewItem" id="1020441673">
<string key="NSIdentifier">1</string>
<object class="NSView" key="NSView" id="63410958">
<reference key="NSNextResponder" ref="551361709"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
Loading
Loading
@@ -2878,7 +2877,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<string key="NSFrame">{{10, 33}, {433, 353}}</string>
<reference key="NSSuperview" ref="551361709"/>
</object>
<string key="NSLabel">General</string>
<reference key="NSColor" ref="303715562"/>
Loading
Loading
@@ -4239,7 +4237,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSTabViewItem" id="262523333">
<string key="NSIdentifier">Item 5</string>
<object class="NSView" key="NSView" id="678134053">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder" ref="551361709"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
Loading
Loading
@@ -4453,7 +4451,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
<object class="NSMenuItem" key="NSMenuItem" id="867120421">
<object class="NSMenuItem" key="NSMenuItem" id="497158178">
<reference key="NSMenu" ref="657701459"/>
<string key="NSTitle">Top of Screen</string>
<string key="NSKeyEquiv"/>
Loading
Loading
@@ -4494,10 +4492,22 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSTag">1</int>
<reference key="NSTarget" ref="200082643"/>
</object>
<reference ref="867120421"/>
<object class="NSMenuItem" id="867120421">
<reference key="NSMenu" ref="657701459"/>
<string key="NSTitle">Bottom of screen</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="836643152"/>
<reference key="NSMixedImage" ref="928131098"/>
<string key="NSAction">_popUpItemAction:</string>
<int key="NSTag">5</int>
<reference key="NSTarget" ref="200082643"/>
</object>
<reference ref="497158178"/>
</object>
</object>
<int key="NSSelectedIndex">2</int>
<int key="NSSelectedIndex">3</int>
<int key="NSPreferredEdge">1</int>
<bool key="NSUsesItemFromMenu">YES</bool>
<bool key="NSAltersState">YES</bool>
Loading
Loading
@@ -5028,6 +5038,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<string key="NSFrame">{{10, 33}, {433, 353}}</string>
<reference key="NSSuperview" ref="551361709"/>
</object>
<string key="NSLabel">Window</string>
<reference key="NSColor" ref="303715562"/>
Loading
Loading
@@ -6183,14 +6194,14 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="NSTabView" ref="551361709"/>
</object>
</object>
<reference key="NSSelectedTabViewItem" ref="1020441673"/>
<reference key="NSSelectedTabViewItem" ref="262523333"/>
<reference key="NSFont" ref="966507434"/>
<int key="NSTvFlags">0</int>
<bool key="NSAllowTruncatedLabels">YES</bool>
<bool key="NSDrawsBackground">YES</bool>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="63410958"/>
<reference ref="678134053"/>
</object>
</object>
<object class="NSButton" id="1072403251">
Loading
Loading
@@ -6321,6 +6332,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<string key="NSFrameSize">{767, 383}</string>
<reference key="NSSuperview" ref="415305200"/>
</object>
<string key="NSLabel">Bookmarks</string>
<reference key="NSColor" ref="303715562"/>
Loading
Loading
@@ -7777,14 +7789,14 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="NSTabView" ref="415305200"/>
</object>
</object>
<reference key="NSSelectedTabViewItem" ref="403608584"/>
<reference key="NSSelectedTabViewItem" ref="745611275"/>
<reference key="NSFont" ref="966507434"/>
<int key="NSTvFlags">6</int>
<bool key="NSAllowTruncatedLabels">YES</bool>
<bool key="NSDrawsBackground">YES</bool>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="505411774"/>
<reference ref="105539794"/>
</object>
</object>
</object>
Loading
Loading
@@ -15653,6 +15665,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference ref="912242064"/>
<reference ref="740336098"/>
<reference ref="867120421"/>
<reference ref="497158178"/>
</object>
<reference key="parent" ref="200082643"/>
</object>
Loading
Loading
@@ -18453,6 +18466,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="object" ref="817083291"/>
<reference key="parent" ref="122870069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">5591</int>
<reference key="object" ref="497158178"/>
<reference key="parent" ref="657701459"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
Loading
Loading
@@ -19344,6 +19362,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>4941.IBPluginDependency</string>
<string>4942.IBEditorWindowLastContentRect</string>
<string>4942.IBPluginDependency</string>
<string>4943.IBAttributePlaceholdersKey</string>
<string>4943.IBPluginDependency</string>
<string>4944.IBPluginDependency</string>
<string>4945.IBPluginDependency</string>
Loading
Loading
@@ -19582,6 +19601,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>5572.IBPluginDependency</string>
<string>5585.IBPluginDependency</string>
<string>5586.IBPluginDependency</string>
<string>5591.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
Loading
Loading
@@ -20648,8 +20668,15 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>{{531, 444}, {146, 6}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{583, 519}, {160, 63}}</string>
<string>{{644, 384}, {182, 83}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference key="dict.sortedKeys" ref="0"/>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
Loading
Loading
@@ -20962,6 +20989,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
Loading
Loading
@@ -20980,7 +21008,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">5590</int>
<int key="maxID">5591</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
Loading
Loading
@@ -215,7 +215,7 @@ typedef enum {
// smartLayout: If true then position windows using the "smart layout"
// algorithm.
// windowType: WINDOW_TYPE_NORMAL, WINDOW_TYPE_FULL_SCREEN, WINDOW_TYPE_TOP, or
// WINDOW_TYPE_LION_FULL_SCREEN.
// WINDOW_TYPE_LION_FULL_SCREEN, or WINDOW_TYPE_BOTTOM.
// screen: An index into [NSScreen screens], or -1 to let the system pick a
// screen.
- (id)initWithSmartLayout:(BOOL)smartLayout
Loading
Loading
Loading
Loading
@@ -144,6 +144,7 @@
#define WINDOW_TYPE_TOP 2
#define WINDOW_TYPE_FORCE_FULL_SCREEN 3 // Used internally, never reported by windowType API. Causes initWithSmartLayout to create a window with fullscreen chrome. It will set its windowType to FULL_SCREEN
#define WINDOW_TYPE_LION_FULL_SCREEN 4 // Lion-native fullscreen
#define WINDOW_TYPE_BOTTOM 5
 
@interface ITAddressBookMgr : NSObject
{
Loading
Loading
Loading
Loading
@@ -167,7 +167,9 @@ NSString *sessionsKey = @"sessions";
 
@implementation PseudoTerminal
 
- (id)initWithSmartLayout:(BOOL)smartLayout windowType:(int)windowType screen:(int)screenNumber
- (id)initWithSmartLayout:(BOOL)smartLayout
windowType:(int)windowType
screen:(int)screenNumber
{
PTYWindow *myWindow;
 
Loading
Loading
@@ -193,7 +195,7 @@ NSString *sessionsKey = @"sessions";
screenNumber = n;
}
}
if (windowType == WINDOW_TYPE_TOP) {
if (windowType == WINDOW_TYPE_TOP || windowType == WINDOW_TYPE_BOTTOM) {
smartLayout = NO;
}
if (windowType == WINDOW_TYPE_NORMAL) {
Loading
Loading
@@ -226,6 +228,7 @@ NSString *sessionsKey = @"sessions";
NSRect initialFrame;
switch (windowType) {
case WINDOW_TYPE_TOP:
case WINDOW_TYPE_BOTTOM:
initialFrame = [screen visibleFrame];
break;
 
Loading
Loading
@@ -282,6 +285,7 @@ NSString *sessionsKey = @"sessions";
NSTexturedBackgroundWindowMask;
switch (windowType) {
case WINDOW_TYPE_TOP:
case WINDOW_TYPE_BOTTOM:
styleMask = NSBorderlessWindowMask;
break;
 
Loading
Loading
@@ -297,7 +301,7 @@ NSString *sessionsKey = @"sessions";
styleMask:styleMask
backing:NSBackingStoreBuffered
defer:NO];
if (windowType == WINDOW_TYPE_TOP) {
if (windowType == WINDOW_TYPE_TOP || windowType == WINDOW_TYPE_BOTTOM) {
[myWindow setHasShadow:YES];
}
[myWindow _setContentHasShadow:NO];
Loading
Loading
@@ -933,6 +937,11 @@ NSString *sessionsKey = @"sessions";
rect.origin.y = yOrigin;
rect.size.width = virtualScreenFrame.size.width;
rect.size.height = yScale * [[terminalArrangement objectForKey:TERMINAL_ARRANGEMENT_HEIGHT] doubleValue];
} else if (windowType == WINDOW_TYPE_BOTTOM) {
rect.origin.x = xOrigin;
rect.size.width = virtualScreenFrame.size.width;
rect.size.height = yScale * [[terminalArrangement objectForKey:TERMINAL_ARRANGEMENT_HEIGHT] doubleValue];
rect.origin.y = virtualScreenFrame.size.height - rect.size.height;
}
 
[[NSColor blackColor] set];
Loading
Loading
@@ -1253,6 +1262,20 @@ NSString *sessionsKey = @"sessions";
[[self window] setFrame:frame display:YES];
break;
 
case WINDOW_TYPE_BOTTOM:
frame.size.width = [screen visibleFrame].size.width;
frame.origin.x = [screen visibleFrame].origin.x;
if ([[self window] alphaValue] == 0) {
// Is hidden hotkey window
frame.origin.y = [screen visibleFrame].origin.y - frame.size.height;
} else {
// Normal case
frame.origin.y = [screen visibleFrame].origin.y;
}
[[self window] setFrame:frame display:YES];
break;
case WINDOW_TYPE_LION_FULL_SCREEN:
case WINDOW_TYPE_FULL_SCREEN:
[[self window] setFrame:[screen frame] display:YES];
Loading
Loading
@@ -1538,7 +1561,7 @@ NSString *sessionsKey = @"sessions";
- (void)toggleTraditionalFullScreenMode
{
[SessionView windowDidResize];
if (windowType_ == WINDOW_TYPE_TOP) {
if (windowType_ == WINDOW_TYPE_TOP || windowType_ == WINDOW_TYPE_BOTTOM) {
// TODO: would be nice if you could toggle top windows to fullscreen
return;
}
Loading
Loading
@@ -2959,10 +2982,16 @@ NSString *sessionsKey = @"sessions";
frame.origin.y -= heightChange;
 
[[[self window] contentView] setAutoresizesSubviews:NO];
if (windowType_ == WINDOW_TYPE_TOP) {
if (windowType_ == WINDOW_TYPE_TOP || windowType_ == WINDOW_TYPE_BOTTOM) {
frame.size.width = [[self window] frame].size.width;
frame.origin.x = [[self window] frame].origin.x;
}
// Set the origin again to the bottom of screen
if (windowType_ == WINDOW_TYPE_BOTTOM) {
frame.origin.y = self.screen.visibleFrame.origin.y;
}
BOOL didResize = NSEqualRects([[self window] frame], frame);
[[self window] setFrame:frame display:YES];
[[[self window] contentView] setAutoresizesSubviews:YES];
Loading
Loading
@@ -3489,7 +3518,9 @@ NSString *sessionsKey = @"sessions";
{
if (![[PreferencePanel sharedInstance] showWindowBorder]) {
return NO;
} else if ([self anyFullScreen] || windowType_ == WINDOW_TYPE_TOP) {
} else if ([self anyFullScreen] ||
windowType_ == WINDOW_TYPE_TOP ||
windowType_ == WINDOW_TYPE_BOTTOM) {
return NO;
} else {
return YES;
Loading
Loading
@@ -3502,7 +3533,9 @@ NSString *sessionsKey = @"sessions";
BOOL topTabBar = ([[PreferencePanel sharedInstance] tabViewType] == PSMTab_TopTab);
if (![[PreferencePanel sharedInstance] showWindowBorder]) {
return NO;
} else if ([self anyFullScreen] || windowType_ == WINDOW_TYPE_TOP) {
} else if ([self anyFullScreen] ||
windowType_ == WINDOW_TYPE_TOP ||
windowType_ == WINDOW_TYPE_BOTTOM) {
// Only normal windows can have a left border
return NO;
} else if (![bottomBar isHidden]) {
Loading
Loading
@@ -3524,7 +3557,9 @@ NSString *sessionsKey = @"sessions";
{
if (![[PreferencePanel sharedInstance] showWindowBorder]) {
return NO;
} else if ([self anyFullScreen] || windowType_ == WINDOW_TYPE_TOP) {
} else if ([self anyFullScreen] ||
windowType_ == WINDOW_TYPE_TOP ||
windowType_ == WINDOW_TYPE_BOTTOM) {
return NO;
} else if (![self scrollbarShouldBeVisible]) {
// hidden scrollbar
Loading
Loading
@@ -3852,7 +3887,8 @@ NSString *sessionsKey = @"sessions";
horizontalSpacing:[[tempPrefs objectForKey:KEY_HORIZONTAL_SPACING] floatValue]
verticalSpacing:[[tempPrefs objectForKey:KEY_VERTICAL_SPACING] floatValue]];
 
if (windowType_ == WINDOW_TYPE_TOP) {
if (windowType_ == WINDOW_TYPE_TOP ||
windowType_ == WINDOW_TYPE_BOTTOM) {
NSRect windowFrame = [[self window] frame];
BOOL hasScrollbar = [self scrollbarShouldBeVisible];
NSSize contentSize = [PTYScrollView contentSizeForFrameSize:windowFrame.size
Loading
Loading
Loading
Loading
@@ -1130,6 +1130,13 @@ static void RollInHotkeyTerm(PseudoTerminal* term)
[[[term window] animator] setAlphaValue:1];
break;
 
case WINDOW_TYPE_BOTTOM:
rect.origin.y = screenFrame.origin.y;
[[NSAnimationContext currentContext] setDuration:[[PreferencePanel sharedInstance] hotkeyTermAnimationDuration]];
[[[term window] animator] setFrame:rect display:YES];
[[[term window] animator] setAlphaValue:1];
break;
case WINDOW_TYPE_LION_FULL_SCREEN: // Shouldn't happen
case WINDOW_TYPE_FULL_SCREEN:
[[NSAnimationContext currentContext] setDuration:[[PreferencePanel sharedInstance] hotkeyTermAnimationDuration]];
Loading
Loading
@@ -1219,6 +1226,8 @@ static BOOL OpenHotkeyWindow()
NSRect rect = [[term window] frame];
if ([term windowType] == WINDOW_TYPE_TOP) {
rect.origin.y = screenFrame.origin.y + screenFrame.size.height + rect.size.height;
} else if ([term windowType] == WINDOW_TYPE_BOTTOM) {
rect.origin.y = screenFrame.origin.y - rect.size.height;
} else {
rect.origin.y = -rect.size.height;
rect.origin.x = -rect.size.width;
Loading
Loading
@@ -1283,6 +1292,13 @@ static void RollOutHotkeyTerm(PseudoTerminal* term, BOOL itermWasActiveWhenHotke
[[[term window] animator] setAlphaValue:0];
break;
 
case WINDOW_TYPE_BOTTOM:
rect.origin.y = screenFrame.origin.y-rect.size.height;
[[NSAnimationContext currentContext] setDuration:[[PreferencePanel sharedInstance] hotkeyTermAnimationDuration]];
[[[term window] animator] setFrame:rect display:YES];
[[[term window] animator] setAlphaValue:0];
break;
case WINDOW_TYPE_LION_FULL_SCREEN: // Shouldn't happen
case WINDOW_TYPE_FULL_SCREEN:
[[NSAnimationContext currentContext] setDuration:[[PreferencePanel sharedInstance] hotkeyTermAnimationDuration]];
Loading
Loading
@@ -1418,6 +1434,12 @@ static void RollOutHotkeyTerm(PseudoTerminal* term, BOOL itermWasActiveWhenHotke
HKWLog(@"FAST: Set y=%f", rect.origin.y);
[[term window] setFrame:rect display:YES];
break;
case WINDOW_TYPE_BOTTOM:
rect.origin.y = screenFrame.origin.y - rect.size.height;
HKWLog(@"FAST: Set y=%f", rect.origin.y);
[[term window] setFrame:rect display:YES];
break;
 
case WINDOW_TYPE_LION_FULL_SCREEN: // Shouldn't happen.
case WINDOW_TYPE_FULL_SCREEN:
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment