Skip to content
Snippets Groups Projects
Commit b40106e0 authored by Brian K. White's avatar Brian K. White
Browse files

Merge pull request #10 from gnachman/master

Sync from upstream
parents cf36dab4 1f5856f3
No related branches found
No related tags found
No related merge requests found
Showing
with 354 additions and 412 deletions
Loading
Loading
@@ -230,6 +230,9 @@
/* NSTextField (Terminal) : <title:Terminal> (oid:251) */
"Terminal" = "Terminal";
 
/* NSTextField (Answerback String) : <title:Answerback String> */
"Answerback String" = "Answerback String";
/* NSTextField (Transparency) : <title:Transparency
> (oid:172) */
"Transparency\n" = "Transparency\n";
Loading
Loading
Loading
Loading
@@ -320,6 +320,9 @@
/* NSTextField (Terminal) : <title:Terminal> (oid:1209) */
"Terminal" = "Terminal";
 
/* NSTextField (Answerback String :) : <title:Answerback String> */
"Answerback String" = "Answerback String";
/* NSBox : <title:Title> (oid:945) */
"Title" = "Title";
 
Loading
Loading
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="8191" systemVersion="15A284" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9059" systemVersion="15C50" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="8191"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9059"/>
<capability name="box content view" minToolsVersion="7.0"/>
</dependencies>
<objects>
Loading
Loading
@@ -809,7 +809,7 @@ Gw
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" columnReordering="NO" multipleSelection="NO" autosaveColumns="NO" headerView="5784" id="5783">
<rect key="frame" x="0.0" y="0.0" width="761" height="19"/>
<rect key="frame" x="0.0" y="0.0" width="762" height="247"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
<size key="intercellSpacing" width="3" height="2"/>
Loading
Loading
@@ -1216,7 +1216,7 @@ DQ
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" columnReordering="NO" multipleSelection="NO" autosaveColumns="NO" headerView="6284" id="6283">
<rect key="frame" x="0.0" y="0.0" width="533" height="136"/>
<rect key="frame" x="0.0" y="0.0" width="532" height="19"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
<size key="intercellSpacing" width="3" height="2"/>
Loading
Loading
@@ -1603,6 +1603,7 @@ DQ
<connections>
<outlet property="_allowTitleReporting" destination="6387" id="ET9-YF-B1M"/>
<outlet property="_allowTitleSetting" destination="xih-tE-Xk7" id="mDx-e5-6YC"/>
<outlet property="_answerBackString" destination="tcJ-V2-9Fd" id="wc8-xa-PRR"/>
<outlet property="_bellAlert" destination="O5A-H9-sKq" id="Mhv-zY-a7H"/>
<outlet property="_bellIconInTabs" destination="2403" id="B95-D8-cC5"/>
<outlet property="_characterEncoding" destination="2390" id="SiG-ub-R7K"/>
Loading
Loading
@@ -2491,7 +2492,7 @@ DQ
<animations/>
</customView>
<customView id="G2G-W6-kWa" userLabel="Prefs - Profiles - Text" customClass="iTermSizeRememberingView">
<rect key="frame" x="0.0" y="0.0" width="559" height="394"/>
<rect key="frame" x="0.0" y="0.0" width="588" height="394"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button id="4765">
Loading
Loading
@@ -2780,10 +2781,10 @@ DQ
</textFieldCell>
</textField>
<button id="4BA-kr-358">
<rect key="frame" x="282" y="264" width="269" height="18"/>
<rect key="frame" x="283" y="265" width="287" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Draw anti-aliased text with thin strokes" bezelStyle="regularSquare" imagePosition="left" alignment="left" state="on" inset="2" id="4SR-DD-VTM">
<buttonCell key="cell" type="check" title="Sharpen anti-aliased text on Retina displays" bezelStyle="regularSquare" imagePosition="left" alignment="left" state="on" inset="2" id="4SR-DD-VTM">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
Loading
Loading
@@ -2794,7 +2795,7 @@ DQ
</button>
</subviews>
<animations/>
<point key="canvasLocation" x="301.5" y="789"/>
<point key="canvasLocation" x="-46" y="279"/>
</customView>
<customView id="77f-eM-Dma" userLabel="Prefs - Profiles - Window" customClass="iTermSizeRememberingView">
<rect key="frame" x="0.0" y="0.0" width="559" height="424"/>
Loading
Loading
@@ -3181,11 +3182,11 @@ DQ
<animations/>
</customView>
<customView id="0rQ-EK-tyN" userLabel="Prefs - Profiles - Terminal" customClass="iTermSizeRememberingView">
<rect key="frame" x="0.0" y="0.0" width="578" height="518"/>
<rect key="frame" x="0.0" y="0.0" width="578" height="533"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<popUpButton verticalHuggingPriority="750" id="2390">
<rect key="frame" x="165" y="359" width="332" height="26"/>
<rect key="frame" x="166" y="374" width="331" height="26"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="clipping" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" id="2427">
Loading
Loading
@@ -3195,11 +3196,11 @@ DQ
</popUpButtonCell>
<connections>
<action selector="settingChanged:" target="gMD-DK-gev" id="j9P-bz-XgQ"/>
<outlet property="nextKeyView" destination="2401" id="5272"/>
<outlet property="nextKeyView" destination="2405" id="YuO-2d-9We"/>
</connections>
</popUpButton>
<textField verticalHuggingPriority="750" id="2391">
<rect key="frame" x="27" y="363" width="136" height="19"/>
<rect key="frame" x="27" y="378" width="136" height="19"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Character Encoding:" id="2426">
Loading
Loading
@@ -3209,7 +3210,7 @@ DQ
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" id="2393">
<rect key="frame" x="20" y="336" width="145" height="17"/>
<rect key="frame" x="23" y="352" width="142" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" title="Report Terminal Type:" id="2424">
Loading
Loading
@@ -3218,21 +3219,8 @@ DQ
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button id="2397">
<rect key="frame" x="19" y="208" width="164" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Silence bell" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="2420">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="settingChanged:" target="gMD-DK-gev" id="imh-CJ-KN3"/>
<outlet property="nextKeyView" destination="2403" id="5269"/>
</connections>
</button>
<textField verticalHuggingPriority="750" id="2400">
<rect key="frame" x="21" y="468" width="144" height="19"/>
<rect key="frame" x="21" y="483" width="144" height="19"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Scrollback Lines:" id="2417">
Loading
Loading
@@ -3242,7 +3230,7 @@ DQ
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" id="2401">
<rect key="frame" x="168" y="468" width="171" height="22"/>
<rect key="frame" x="168" y="483" width="171" height="22"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" drawsBackground="YES" id="2416">
Loading
Loading
@@ -3255,10 +3243,112 @@ DQ
<outlet property="nextKeyView" destination="3647" id="5273"/>
</connections>
</textField>
<button id="2402">
<rect key="frame" x="20" y="301" width="215" height="18"/>
<comboBox verticalHuggingPriority="750" id="2405">
<rect key="frame" x="168" y="346" width="329" height="26"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" title="vt100" drawsBackground="YES" completes="NO" numberOfVisibleItems="7" id="2412">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
<objectValues>
<string>vt100</string>
<string>xterm</string>
<string>xterm-new</string>
<string>xterm-256color</string>
<string>ansi</string>
<string>rxvt</string>
<string>linux</string>
</objectValues>
</comboBoxCell>
<connections>
<action selector="settingChanged:" target="gMD-DK-gev" id="gE7-6t-Aa0"/>
<outlet property="delegate" destination="gMD-DK-gev" id="LlF-ld-PpM"/>
<outlet property="nextKeyView" destination="tcJ-V2-9Fd" id="L5i-wk-BMt"/>
</connections>
</comboBox>
<textField verticalHuggingPriority="750" id="2434">
<rect key="frame" x="19" y="513" width="125" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Scrollback Buffer" id="2435">
<font key="font" metaFont="systemBold"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" id="2436">
<rect key="frame" x="19" y="406" width="136" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Terminal Emulation" id="2437">
<font key="font" metaFont="systemBold"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button id="5154">
<rect key="frame" x="21" y="459" width="391" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<string key="toolTip">When using a program like tmux, which shows a status bar at the bottom of the screen, history is not normally saved. This allows such history to be saved but with a performance penalty.</string>
<buttonCell key="cell" type="check" title="Save lines to scrollback when an app status bar is present" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="5155">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="settingChanged:" target="gMD-DK-gev" id="yev-sv-L5n"/>
<outlet property="nextKeyView" destination="2405" id="5275"/>
</connections>
</button>
<button id="5758">
<rect key="frame" x="21" y="439" width="391" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Save lines to scrollback in alternate screen mode" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="5759">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="settingChanged:" target="gMD-DK-gev" id="2Oz-MO-7Bw"/>
<outlet property="nextKeyView" destination="2405" id="5761"/>
</connections>
</button>
<textField verticalHuggingPriority="750" id="Fzk-rB-88j">
<rect key="frame" x="45" y="324" width="120" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" title="ENQ Answer Back:" id="Lrt-Oz-1A8">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" id="tcJ-V2-9Fd" userLabel="ENQ Answer Back text field">
<rect key="frame" x="168" y="321" width="326" height="22"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" continuous="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" drawsBackground="YES" id="UkZ-8d-b91">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<outlet property="delegate" destination="gMD-DK-gev" id="77y-2x-4vE"/>
<outlet property="nextKeyView" destination="2190" id="7z6-8L-4YH"/>
</connections>
</textField>
<button id="2397">
<rect key="frame" x="19" y="196" width="164" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Silence bell" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="2420">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="settingChanged:" target="gMD-DK-gev" id="imh-CJ-KN3"/>
<outlet property="nextKeyView" destination="2403" id="5269"/>
</connections>
</button>
<button id="2402">
<rect key="frame" x="20" y="289" width="215" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Enable mouse reporting" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="2415">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
Loading
Loading
@@ -3269,9 +3359,8 @@ DQ
</connections>
</button>
<button id="2403">
<rect key="frame" x="281" y="188" width="160" height="18"/>
<rect key="frame" x="283" y="176" width="160" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Show bell icon in tabs" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="2414">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
Loading
Loading
@@ -3282,9 +3371,8 @@ DQ
</connections>
</button>
<button id="3553">
<rect key="frame" x="281" y="208" width="122" height="18"/>
<rect key="frame" x="283" y="196" width="122" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Flash visual bell" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="3554">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
Loading
Loading
@@ -3295,9 +3383,8 @@ DQ
</connections>
</button>
<button toolTip="Growl is used if it's available, otherwise Notification Center is used." id="2404">
<rect key="frame" x="19" y="188" width="258" height="18"/>
<rect key="frame" x="19" y="176" width="258" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Send Growl/Notification Center alerts" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="2413">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
Loading
Loading
@@ -3307,52 +3394,8 @@ DQ
<outlet property="nextKeyView" destination="2100" id="5281"/>
</connections>
</button>
<comboBox verticalHuggingPriority="750" id="2405">
<rect key="frame" x="168" y="331" width="329" height="26"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" title="vt100" drawsBackground="YES" completes="NO" numberOfVisibleItems="7" id="2412">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
<objectValues>
<string>vt100</string>
<string>xterm</string>
<string>xterm-new</string>
<string>xterm-256color</string>
<string>ansi</string>
<string>rxvt</string>
<string>linux</string>
</objectValues>
</comboBoxCell>
<connections>
<action selector="settingChanged:" target="gMD-DK-gev" id="gE7-6t-Aa0"/>
<outlet property="delegate" destination="gMD-DK-gev" id="LlF-ld-PpM"/>
<outlet property="nextKeyView" destination="2402" id="5276"/>
</connections>
</comboBox>
<textField verticalHuggingPriority="750" id="2434">
<rect key="frame" x="19" y="498" width="125" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Scrollback Buffer" id="2435">
<font key="font" metaFont="systemBold"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" id="2436">
<rect key="frame" x="19" y="391" width="136" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Terminal Emulation" id="2437">
<font key="font" metaFont="systemBold"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" id="2438">
<rect key="frame" x="18" y="232" width="136" height="17"/>
<rect key="frame" x="18" y="220" width="136" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Notifications" id="2439">
Loading
Loading
@@ -3362,7 +3405,7 @@ DQ
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" id="6043">
<rect key="frame" x="19" y="131" width="136" height="17"/>
<rect key="frame" x="19" y="119" width="136" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Environment" id="6044">
Loading
Loading
@@ -3371,21 +3414,8 @@ DQ
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button id="3647">
<rect key="frame" x="345" y="469" width="151" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Unlimited scrollback" bezelStyle="regularSquare" imagePosition="left" alignment="left" state="on" inset="2" id="3648">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="settingChanged:" target="gMD-DK-gev" id="GdK-um-hjE"/>
<outlet property="nextKeyView" destination="5154" id="5274"/>
</connections>
</button>
<button id="5081">
<rect key="frame" x="281" y="281" width="257" height="18"/>
<rect key="frame" x="281" y="269" width="257" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Disable save/restore alternate screen" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="5082">
Loading
Loading
@@ -3397,7 +3427,7 @@ DQ
</connections>
</button>
<button id="5633">
<rect key="frame" x="281" y="301" width="257" height="18"/>
<rect key="frame" x="281" y="289" width="257" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Disable session-initiated printing" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="5634">
Loading
Loading
@@ -3409,7 +3439,7 @@ DQ
</connections>
</button>
<button toolTip="This may be a security risk in an untrusted environment, especially if the terminal can set the title." id="6387">
<rect key="frame" x="20" y="281" width="257" height="18"/>
<rect key="frame" x="20" y="269" width="237" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Terminal may report window title" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="6388">
Loading
Loading
@@ -3421,7 +3451,7 @@ DQ
</connections>
</button>
<button id="xih-tE-Xk7">
<rect key="frame" x="20" y="261" width="237" height="18"/>
<rect key="frame" x="20" y="249" width="237" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Terminal may set tab/window title" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="hed-XP-5DZ">
Loading
Loading
@@ -3432,35 +3462,8 @@ DQ
<action selector="settingChanged:" target="gMD-DK-gev" id="CdP-oV-hKk"/>
</connections>
</button>
<button id="5154">
<rect key="frame" x="20" y="444" width="391" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<string key="toolTip">When using a program like tmux, which shows a status bar at the bottom of the screen, history is not normally saved. This allows such history to be saved but with a performance penalty.</string>
<animations/>
<buttonCell key="cell" type="check" title="Save lines to scrollback when an app status bar is present" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="5155">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="settingChanged:" target="gMD-DK-gev" id="yev-sv-L5n"/>
<outlet property="nextKeyView" destination="2405" id="5275"/>
</connections>
</button>
<button id="5758">
<rect key="frame" x="20" y="424" width="391" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Save lines to scrollback in alternate screen mode" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="5759">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="settingChanged:" target="gMD-DK-gev" id="2Oz-MO-7Bw"/>
<outlet property="nextKeyView" destination="2405" id="5761"/>
</connections>
</button>
<button id="6045">
<rect key="frame" x="20" y="107" width="231" height="18"/>
<rect key="frame" x="20" y="95" width="231" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<string key="toolTip">LC_LANG and LC_CTYPE may be set if this is enabled. If you have an unusual combination of country and language then disabling this may help.</string>
<animations/>
Loading
Loading
@@ -3473,7 +3476,7 @@ DQ
</connections>
</button>
<textField verticalHuggingPriority="750" id="CTM-Qq-GD8">
<rect key="frame" x="20" y="74" width="116" height="17"/>
<rect key="frame" x="20" y="62" width="116" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Shell Integration" id="QNa-cr-n7r">
Loading
Loading
@@ -3483,7 +3486,7 @@ DQ
</textFieldCell>
</textField>
<button id="Qz5-Ow-iQt">
<rect key="frame" x="21" y="50" width="384" height="18"/>
<rect key="frame" x="21" y="38" width="384" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<string key="toolTip">If Shell Integration is enabled, this prevents command prompts from starting in the middle of a line when the previous command did not end with a newline.</string>
<animations/>
Loading
Loading
@@ -3496,7 +3499,7 @@ DQ
</connections>
</button>
<button id="Wi4-0H-Bb4">
<rect key="frame" x="21" y="30" width="162" height="18"/>
<rect key="frame" x="21" y="18" width="162" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<string key="toolTip">If Shell Integration is enabled, this prevents command prompts from starting in the middle of a line when the previous command did not end with a newline.</string>
<animations/>
Loading
Loading
@@ -3509,7 +3512,7 @@ DQ
</connections>
</button>
<button horizontalHuggingPriority="750" verticalHuggingPriority="750" id="2Fs-LK-buW">
<rect key="frame" x="140" y="69" width="25" height="25"/>
<rect key="frame" x="140" y="57" width="25" height="25"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="YsN-fW-Qkw">
Loading
Loading
@@ -3521,7 +3524,7 @@ DQ
</connections>
</button>
<button verticalHuggingPriority="750" id="ZMH-MS-a4p">
<rect key="frame" x="36" y="160" width="87" height="28"/>
<rect key="frame" x="35" y="146" width="87" height="28"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="push" title="Filter Alerts" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="7Pi-Gm-UyI">
Loading
Loading
@@ -3533,7 +3536,7 @@ DQ
</connections>
</button>
<button id="5004">
<rect key="frame" x="281" y="261" width="299" height="18"/>
<rect key="frame" x="281" y="249" width="279" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Disable session-initiated window resizing" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="5005">
Loading
Loading
@@ -3545,9 +3548,21 @@ DQ
<outlet property="nextKeyView" destination="4978" id="5264"/>
</connections>
</button>
<button id="3647">
<rect key="frame" x="345" y="485" width="151" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Unlimited scrollback" bezelStyle="regularSquare" imagePosition="left" alignment="left" state="on" inset="2" id="3648">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="settingChanged:" target="gMD-DK-gev" id="GdK-um-hjE"/>
<outlet property="nextKeyView" destination="5154" id="5274"/>
</connections>
</button>
</subviews>
<animations/>
<point key="canvasLocation" x="839" y="-163"/>
<point key="canvasLocation" x="521" y="-164.5"/>
</customView>
<customView id="ayN-Cl-pQs" userLabel="Prefs - Profiles - Session" customClass="iTermSizeRememberingView">
<rect key="frame" x="0.0" y="0.0" width="559" height="420"/>
Loading
Loading
@@ -3810,7 +3825,7 @@ DQ
</textField>
</subviews>
<animations/>
<point key="canvasLocation" x="276.5" y="337"/>
<point key="canvasLocation" x="835.5" y="337"/>
</customView>
<customView id="M5G-Dw-0HO" userLabel="Prefs - Profiles - Keys" customClass="iTermSizeRememberingView">
<rect key="frame" x="0.0" y="0.0" width="657" height="428"/>
Loading
Loading
@@ -5902,7 +5917,7 @@ DQ
</connections>
</button>
<button toolTip="If disabled, then triple click selects one line as it appears onscreen." id="6260">
<rect key="frame" x="390" y="68" width="258" height="18"/>
<rect key="frame" x="390" y="68" width="274" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<animations/>
<buttonCell key="cell" type="check" title="Triple-click selects entire wrapped lines" bezelStyle="regularSquare" imagePosition="left" alignment="left" state="on" inset="2" id="6261">
Loading
Loading
Loading
Loading
@@ -14,6 +14,58 @@
 
static NSTimeInterval kHighlightAnimationDuration = 0.5;
 
// A timer that does not keep a strong reference to its target. The target
// should invoke -invalidate from its -dealloc method and release the timer to
// avoid getting called posthumously.
@interface PSMWeakTimer : NSObject
@property(nonatomic, assign) id target;
@property(nonatomic, assign) SEL selector;
- (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval
target:(id)target
selector:(SEL)selector
repeats:(BOOL)repeats;
- (void)invalidate;
@end
@implementation PSMWeakTimer {
NSTimer *_timer;
BOOL _repeats;
}
- (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval
target:(id)target
selector:(SEL)selector
repeats:(BOOL)repeats {
self = [super init];
if (self) {
_target = target;
_selector = selector;
_repeats = repeats;
_timer = [NSTimer scheduledTimerWithTimeInterval:timeInterval
target:self
selector:@selector(timerDidFire:)
userInfo:nil
repeats:repeats];
}
return self;
}
- (void)invalidate {
[_timer invalidate];
_timer = nil;
}
- (void)timerDidFire:(NSTimer *)timer {
[_target performSelector:_selector withObject:timer];
if (!_repeats) {
_timer = nil;
}
}
@end
@interface PSMTabBarCell()<PSMProgressIndicatorDelegate>
@end
 
Loading
Loading
@@ -21,7 +73,7 @@ static NSTimeInterval kHighlightAnimationDuration = 0.5;
NSSize _stringSize;
PSMProgressIndicator *_indicator;
NSTimeInterval _highlightChangeTime;
NSTimer *_delayedStringValueTimer; // For bug 3957
PSMWeakTimer *_delayedStringValueTimer; // For bug 3957
}
 
#pragma mark - Creation/Destruction
Loading
Loading
@@ -76,6 +128,9 @@ static NSTimeInterval kHighlightAnimationDuration = 0.5;
}
 
- (void)dealloc {
[_delayedStringValueTimer invalidate];
[_delayedStringValueTimer release];
[_modifierString release];
_indicator.delegate = nil;
[_indicator release];
Loading
Loading
@@ -109,15 +164,16 @@ static NSTimeInterval kHighlightAnimationDuration = 0.5;
if (!_delayedStringValueTimer) {
static const NSTimeInterval kStringValueSettingDelay = 0.1;
_delayedStringValueTimer = [NSTimer scheduledTimerWithTimeInterval:kStringValueSettingDelay
target:self
selector:@selector(updateStringValue:)
userInfo:nil
repeats:NO];
_delayedStringValueTimer =
[[PSMWeakTimer alloc] initWithTimeInterval:kStringValueSettingDelay
target:self
selector:@selector(updateStringValue:)
repeats:NO];
}
}
 
- (void)updateStringValue:(NSTimer *)timer {
[_delayedStringValueTimer release];
_delayedStringValueTimer = nil;
_stringSize = [[self attributedStringValue] size];
// need to redisplay now - binding observation was too quick.
Loading
Loading
Loading
Loading
@@ -184,7 +184,10 @@ const NSInteger kPSMStartResizeAnimation = 0;
// Remove bindings.
NSArray *temp = [[_cells copy] autorelease];
for (PSMTabBarCell *cell in temp) {
[cell retain];
[self removeTabForCell:cell];
cell.controlView = nil;
[cell release];
}
 
[_overflowPopUpButton release];
Loading
Loading
Loading
Loading
@@ -546,6 +546,10 @@
<cocoa key="profileName"/>
</property>
 
<property name="answerback string" code="Answ" description="ENQ Answerback string" type="text">
<cocoa key="answerBackString"/>
</property>
</class>
 
</suite>
Loading
Loading
Loading
Loading
@@ -715,6 +715,8 @@
1DEF5E6F185F889600300319 /* Alert@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DEF5E6C185F889600300319 /* Alert@2x.png */; };
1DEF5E70185F889600300319 /* Alert@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DEF5E6C185F889600300319 /* Alert@2x.png */; };
1DF0897113DBAF4C00A52AD8 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF0897013DBAF4C00A52AD8 /* Quartz.framework */; };
1DF121091C344DF100E39F1F /* iTermDynamicProfileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DF121071C344DF100E39F1F /* iTermDynamicProfileManager.h */; };
1DF1210A1C344DF100E39F1F /* iTermDynamicProfileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DF121081C344DF100E39F1F /* iTermDynamicProfileManager.m */; };
1DF8006F18F34CAB00722B35 /* NSPopUpButton+iTerm.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DF8006D18F34CAB00722B35 /* NSPopUpButton+iTerm.h */; };
1DF8AF5813FD781700C8A435 /* SplitPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DF8AF5613FD781700C8A435 /* SplitPanel.h */; };
1DF8FEF318F3217100722B35 /* KeysPreferencesViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DF8FEF118F3217100722B35 /* KeysPreferencesViewController.h */; };
Loading
Loading
@@ -2095,6 +2097,8 @@
1DEF5E6B185F889600300319 /* Alert.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Alert.png; path = images/Alert.png; sourceTree = "<group>"; };
1DEF5E6C185F889600300319 /* Alert@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Alert@2x.png"; path = "images/Alert@2x.png"; sourceTree = "<group>"; };
1DF0897013DBAF4C00A52AD8 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
1DF121071C344DF100E39F1F /* iTermDynamicProfileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iTermDynamicProfileManager.h; sourceTree = "<group>"; };
1DF121081C344DF100E39F1F /* iTermDynamicProfileManager.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = iTermDynamicProfileManager.m; sourceTree = "<group>"; tabWidth = 4; };
1DF8006D18F34CAB00722B35 /* NSPopUpButton+iTerm.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = "NSPopUpButton+iTerm.h"; sourceTree = "<group>"; tabWidth = 4; };
1DF8006E18F34CAB00722B35 /* NSPopUpButton+iTerm.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = "NSPopUpButton+iTerm.m"; sourceTree = "<group>"; tabWidth = 4; };
1DF8AF5613FD781700C8A435 /* SplitPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = SplitPanel.h; sourceTree = "<group>"; tabWidth = 4; };
Loading
Loading
@@ -2951,8 +2955,10 @@
A6E7474B188C6394005355CF /* iTermCommandHistoryCommandUseMO+Addtions.h */,
A6E74746188C6344005355CF /* iTermCommandHistoryEntryMO+Additions.h */,
1D407A2714BABE8700BD5035 /* iTermController.h */,
A6F981CB1C13783C00EE0B80 /* iTermCPS.h */,
1D4F359F1813386600699FDF /* iTermCursor.h */,
A69B45BB197CB78B00F5444D /* iTermDragHandleView.h */,
1DF121071C344DF100E39F1F /* iTermDynamicProfileManager.h */,
1DFA9D6118F37160008ADC98 /* iTermEditKeyActionWindowController.h */,
1DDBC61C12E2BCDC00BC3868 /* iTermExpose.h */,
A6E7475A188C6731005355CF /* iTermExposeGridView.h */,
Loading
Loading
@@ -3000,6 +3006,7 @@
A6B5134818E779BB00D249A5 /* iTermPasteHelper.h */,
A6E77FB61A2BEC31009B1CB6 /* iTermPasteSpecialViewController.h */,
A6E77F981A2A6B9E009B1CB6 /* iTermPasteSpecialWindowController.h */,
1DD7363F1283C2FA009B7829 /* iTermPopupWindowController.h */,
A6E7137D18F1DB1E008D94DD /* iTermPreferences.h */,
A6E7138718F26445008D94DD /* iTermPreferencesBaseViewController.h */,
A6E713A618F7C9F4008D94DD /* iTermProfilePreferences.h */,
Loading
Loading
@@ -3081,7 +3088,6 @@
1D8255FE146881EC007CAE78 /* PointerController.h */,
1DFA9D6E18F3A30F008ADC98 /* PointerPreferencesViewController.h */,
1D8255FA14687EE8007CAE78 /* PointerPrefsController.h */,
1DD7363F1283C2FA009B7829 /* iTermPopupWindowController.h */,
A68A310D186E2EDA007F550F /* PopupEntry.h */,
A68A3117186E2F54007F550F /* PopupModel.h */,
A68A3112186E2F14007F550F /* PopupWindow.h */,
Loading
Loading
@@ -3194,7 +3200,6 @@
A6A13AB918C34F6400B241ED /* VT100XtermParser.h */,
1DCA5ECD13EE507800B7725E /* WindowArrangements.h */,
1DCBC810126DD98200D5B961 /* WindowControllerInterface.h */,
A6F981CB1C13783C00EE0B80 /* iTermCPS.h */,
);
name = Headers;
path = sources/;
Loading
Loading
@@ -3822,6 +3827,7 @@
20D5CC6404E7AA0500000106 /* iTermApplicationDelegate.m */,
E8A66F030272453F03A80106 /* iTermController.m */,
A635C4351AB38205008A2DEE /* iTermCursor.m */,
1DF121081C344DF100E39F1F /* iTermDynamicProfileManager.m */,
F69E788C0AB7AC6D001EC0FF /* iTermGrowlDelegate.m */,
DDDB7ABD05D7736600E197C2 /* iTermKeyBindingMgr.m */,
A647E3B618C5884600450FA1 /* iTermObjectPool.m */,
Loading
Loading
@@ -5001,6 +5007,7 @@
A62C3B3E1BD40DC900B5629D /* iTermCapturedOutputMark.h in Headers */,
A62C3B2D1BCC24AB00B5629D /* iTermCommandHistoryCommandUseMO.h in Headers */,
1D300BAA1BD9A8BB002043F7 /* NSDate+iTerm.h in Headers */,
1DF121091C344DF100E39F1F /* iTermDynamicProfileManager.h in Headers */,
A6F981CC1C13783C00EE0B80 /* iTermCPS.h in Headers */,
A62C3B421BD40E7C00B5629D /* iTermImageMark.h in Headers */,
A62C3B2B1BCC24AB00B5629D /* iTermCommandHistoryCommandUseMO+CoreDataProperties.h in Headers */,
Loading
Loading
@@ -6035,6 +6042,7 @@
A6C763351B45C52B00E3C992 /* iTermPasteSpecialViewController.m in Sources */,
A6C7635A1B45C52B00E3C992 /* iTermOpenQuicklyWindowController.m in Sources */,
A6C7632C1B45C52B00E3C992 /* TemporaryNumberAllocator.m in Sources */,
1DF1210A1C344DF100E39F1F /* iTermDynamicProfileManager.m in Sources */,
A6C763441B45C52B00E3C992 /* iTermKeyboardNavigatableTableView.m in Sources */,
A6C762EB1B45C52B00E3C992 /* AATreeNode.m in Sources */,
A6C762CC1B45C52B00E3C992 /* iTermCursor.m in Sources */,
Loading
Loading
Loading
Loading
@@ -77,7 +77,7 @@
}
 
- (void)tearDown {
iTermApplication *app = (iTermApplication *)[NSApplication sharedApplication];
iTermApplication *app = iTermApplication.sharedApplication;
app.fakeCurrentEvent = nil;
[_currentDir release];
[_insertedText release];
Loading
Loading
@@ -340,7 +340,7 @@
byExtendingSelection:NO];
 
tool.toolWrapper.delegate.delegate = self;
iTermApplication *app = (iTermApplication *)[NSApplication sharedApplication];
iTermApplication *app = iTermApplication.sharedApplication;
CGEventRef fakeEvent = CGEventCreateKeyboardEvent(NULL, 0, true);
CGEventSetFlags(fakeEvent, kCGEventFlagMaskAlternate);
app.fakeCurrentEvent = [NSEvent eventWithCGEvent:fakeEvent];
Loading
Loading
Loading
Loading
@@ -71,12 +71,12 @@ static const NSTimeInterval kMaximumTimeToKeepFinishedDownload = 24 * 60 * 60;
}
 
- (NSMenu *)downloadsMenu {
iTermApplicationDelegate *ad = (iTermApplicationDelegate *)[[NSApplication sharedApplication] delegate];
iTermApplicationDelegate *ad = iTermApplication.sharedApplication.delegate;
return [ad downloadsMenu];
}
 
- (NSMenu *)uploadsMenu {
iTermApplicationDelegate *ad = (iTermApplicationDelegate *)[[NSApplication sharedApplication] delegate];
iTermApplicationDelegate *ad = iTermApplication.sharedApplication.delegate;
return [ad uploadsMenu];
}
 
Loading
Loading
// -*- mode:objc -*-
/*
** FindViewController.h
**
Loading
Loading
@@ -28,6 +27,7 @@
 
#import <Cocoa/Cocoa.h>
#import "FutureMethods.h"
#import "iTermController.h"
 
@protocol FindViewControllerDelegate <NSObject>
 
Loading
Loading
Loading
Loading
@@ -98,12 +98,14 @@ const CGFloat kEdgeWidth = 3;
}
 
- (void)drawFocusRingMaskWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
if (IsYosemiteOrLater()) {
[super drawFocusRingMaskWithFrame:NSInsetRect(cellFrame, kFocusRingInset.width, kFocusRingInset.height)
inView:controlView];
} else {
[super drawFocusRingMaskWithFrame:cellFrame inView:controlView];
}
if (controlView.frame.origin.y >= 0) {
if (IsYosemiteOrLater()) {
[super drawFocusRingMaskWithFrame:NSInsetRect(cellFrame, kFocusRingInset.width, kFocusRingInset.height)
inView:controlView];
} else {
[super drawFocusRingMaskWithFrame:cellFrame inView:controlView];
}
}
}
 
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
Loading
Loading
Loading
Loading
@@ -166,6 +166,7 @@ static void RollInHotkeyTerm(PseudoTerminal* term)
withURL:nil
isHotkey:YES
makeKey:YES
canActivate:YES
command:nil
block:nil];
if (session) {
Loading
Loading
@@ -444,7 +445,7 @@ static BOOL UserIsActive() {
*/
static CGEventRef OnTappedEvent(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon)
{
iTermApplicationDelegate *ad = [[NSApplication sharedApplication] delegate];
iTermApplicationDelegate *ad = iTermApplication.sharedApplication.delegate;
if (!ad.workspaceSessionActive) {
return event;
}
Loading
Loading
@@ -704,7 +705,7 @@ static CGEventRef OnTappedEvent(CGEventTapProxy proxy, CGEventType type, CGEvent
}
 
- (void)carbonHotkeyPressed:(id)handler {
iTermApplicationDelegate *ad = [[NSApplication sharedApplication] delegate];
iTermApplicationDelegate *ad = iTermApplication.sharedApplication.delegate;
if (!ad.workspaceSessionActive) {
return;
}
Loading
Loading
@@ -712,19 +713,14 @@ static CGEventRef OnTappedEvent(CGEventTapProxy proxy, CGEventType type, CGEvent
}
 
- (void)requestAccessibilityPermissionMavericks {
static BOOL alreadyAsked;
if (alreadyAsked) {
return;
}
alreadyAsked = YES;
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1090
NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
forKey:(NSString *)kAXTrustedCheckOptionPrompt];
// Show a dialog prompting the user to open system prefs.
if (!AXIsProcessTrustedWithOptions((CFDictionaryRef)options)) {
return;
}
#endif
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSDictionary *options = @{ (NSString *)kAXTrustedCheckOptionPrompt: @YES };
// Show a dialog prompting the user to open system prefs.
if (!AXIsProcessTrustedWithOptions((CFDictionaryRef)options)) {
return;
}
});
}
 
- (void)beginRemappingModifiers
Loading
Loading
Loading
Loading
@@ -169,6 +169,7 @@
#define KEY_SCROLLBACK_LINES @"Scrollback Lines"
#define KEY_UNLIMITED_SCROLLBACK @"Unlimited Scrollback"
#define KEY_TERMINAL_TYPE @"Terminal Type"
#define KEY_ANSWERBACK_STRING @"Answerback String"
#define KEY_USE_CANONICAL_PARSER @"Use Canonical Parser"
#define KEY_PLACE_PROMPT_AT_FIRST_COLUMN @"Place Prompt at First Column"
#define KEY_SHOW_MARK_INDICATORS @"Show Mark Indicators"
Loading
Loading
@@ -251,4 +252,11 @@ typedef NS_ENUM(NSInteger, iTermObjectType) {
+ (NSString*)bookmarkWorkingDirectory:(Profile*)bookmark
forObjectType:(iTermObjectType)objectType;
 
// Indicates if it is safe to remove the profile from the model.
+ (BOOL)canRemoveProfile:(Profile *)profile fromModel:(ProfileModel *)model;
// Removes the profile from the model, removes key mappings that reference this profile, and posts a
// kProfileWasDeletedNotification notification, then flushes the model to backing store.
+ (void)removeProfile:(Profile *)profile fromModel:(ProfileModel *)model;
@end
Loading
Loading
@@ -24,37 +24,29 @@
** along with this program; if not, write to the Free Software
** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#import "ITAddressBookMgr.h"
#import "iTerm.h"
#import "iTermAdvancedSettingsModel.h"
#import "DebugLogging.h"
#import "iTermDynamicProfileManager.h"
#import "iTermKeyBindingMgr.h"
#import "iTermPreferences.h"
#import "iTermProfilePreferences.h"
#import "ProfileModel.h"
#import "PreferencePanel.h"
#import "iTermKeyBindingMgr.h"
#import "ProfileModel.h"
#import "NSColor+iTerm.h"
#import "NSDictionary+iTerm.h"
#import "NSDictionary+Profile.h"
#import "NSMutableDictionary+Profile.h"
#import "NSFileManager+iTerm.h"
#import "NSFont+iTerm.h"
#import "NSStringIterm.h"
#import "SCEvents.h"
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <pwd.h>
@interface ITAddressBookMgr () <SCEventListenerProtocol>
@end
 
@implementation ITAddressBookMgr {
SCEvents *_events;
NSNetServiceBrowser *sshBonjourBrowser;
NSNetServiceBrowser *ftpBonjourBrowser;
NSNetServiceBrowser *telnetBonjourBrowser;
NSMutableArray *bonjourServices;
iTermDynamicProfileManager *_dynamicProfileManager;
}
+ (id)sharedInstance {
static ITAddressBookMgr* shared = nil;
 
Loading
Loading
@@ -69,7 +61,7 @@
self = [super init];
if (self) {
NSUserDefaults* prefs = [NSUserDefaults standardUserDefaults];
_dynamicProfileManager = [iTermDynamicProfileManager sharedInstance];
if ([prefs objectForKey:KEY_DEPRECATED_BOOKMARKS] &&
[[prefs objectForKey:KEY_DEPRECATED_BOOKMARKS] isKindOfClass:[NSDictionary class]] &&
![prefs objectForKey:KEY_NEW_BOOKMARKS]) {
Loading
Loading
@@ -91,9 +83,9 @@
NSLog(@"Loading profiles from %@", newBookmarks);
NSMutableArray *profiles = [NSMutableArray array];
NSMutableSet *guids = [NSMutableSet set];
if ([self loadDynamicProfilesFromFile:(NSString *)newBookmarks
intoArray:profiles
guids:guids] &&
if ([_dynamicProfileManager loadDynamicProfilesFromFile:(NSString *)newBookmarks
intoArray:profiles
guids:guids] &&
[profiles count] > 0) {
NSString *defaultGuid = profiles[0][KEY_GUID];
for (Profile *profile in profiles) {
Loading
Loading
@@ -120,7 +112,7 @@
if ([iTermPreferences boolForKey:kPreferenceKeyAddBonjourHostsToProfiles]) {
[self locateBonjourServices];
}
[iTermPreferences addObserverForKey:kPreferenceKeyAddBonjourHostsToProfiles
block:^(id previousValue, id newValue) {
if ([newValue boolValue]) {
Loading
Loading
@@ -130,25 +122,21 @@
[self removeBonjourProfiles];
}
}];
_events = [[SCEvents alloc] init];
_events.delegate = self;
[_events startWatchingPaths:@[ [self dynamicProfilesPath] ]];
 
BOOL bookmarkWithDefaultGuidExisted =
([[ProfileModel sharedInstance] bookmarkWithGuid:originalDefaultGuid] != nil);
[self reloadDynamicProfiles];
[_dynamicProfileManager reloadDynamicProfiles];
if (!bookmarkWithDefaultGuidExisted &&
[[ProfileModel sharedInstance] bookmarkWithGuid:originalDefaultGuid] != nil) {
// One of the dynamic profiles has the default guid.
[[ProfileModel sharedInstance] setDefaultByGuid:originalDefaultGuid];
}
}
return self;
}
 
- (void)dealloc
{
- (void)dealloc {
[bonjourServices removeAllObjects];
[bonjourServices release];
 
Loading
Loading
@@ -158,7 +146,6 @@
[sshBonjourBrowser release];
[ftpBonjourBrowser release];
[telnetBonjourBrowser release];
[_events release];
[super dealloc];
}
 
Loading
Loading
@@ -658,211 +645,66 @@
}
}
 
#pragma mark - SCEventListenerProtocol
- (void)pathWatcher:(SCEvents *)pathWatcher eventOccurred:(SCEvent *)event {
[self reloadDynamicProfiles];
}
#pragma mark - Dynamic Profiles
- (NSString *)dynamicProfilesPath {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *appSupport = [fileManager applicationSupportDirectory];
NSString *thePath = [appSupport stringByAppendingPathComponent:@"DynamicProfiles"];
[[NSFileManager defaultManager] createDirectoryAtPath:thePath
withIntermediateDirectories:YES
attributes:nil
error:NULL];
return thePath;
}
- (void)reloadDynamicProfiles {
NSString *path = [self dynamicProfilesPath];
NSFileManager *fileManager = [NSFileManager defaultManager];
// Load the current dynamic profiles into |newProfiles|. The |guids| set
// is used to ensure that guids are unique across all files.
NSMutableArray *newProfiles = [NSMutableArray array];
NSMutableSet *guids = [NSMutableSet set];
NSMutableArray *fileNames = [NSMutableArray array];
for (NSString *file in [fileManager enumeratorAtPath:path]) {
[fileNames addObject:file];
}
[fileNames sortUsingSelector:@selector(compare:)];
for (NSString *file in fileNames) {
if ([file hasPrefix:@"."]) {
continue;
}
NSString *fullName = [path stringByAppendingPathComponent:file];
if (![self loadDynamicProfilesFromFile:fullName intoArray:newProfiles guids:guids]) {
NSLog(@"Igoring dynamic profiles in malformed file %@ and continuing.", fullName);
}
}
// Update changes to existing dynamic profiles and add ones whose guids are
// not known.
NSArray *oldProfiles = [self dynamicProfiles];
BOOL shouldReload = NO;
for (Profile *profile in newProfiles) {
Profile *existingProfile = [self profileWithGuid:profile[KEY_GUID] inArray:oldProfiles];
if (existingProfile) {
[self updateDynamicProfile:profile];
shouldReload = YES;
} else {
[self addDynamicProfile:profile];
}
+ (BOOL)canRemoveProfile:(NSDictionary *)profile fromModel:(ProfileModel *)model {
DLog(@"removeProfile called");
if (!profile) {
DLog(@"Nil profile");
return NO;
}
 
// Remove dynamic profiles whose guids no longer exist.
for (Profile *profile in oldProfiles) {
if (![self profileWithGuid:profile[KEY_GUID] inArray:newProfiles]) {
[self removeDynamicProfile:profile];
}
}
if (shouldReload) {
[[NSNotificationCenter defaultCenter] postNotificationName:kReloadAllProfiles
object:nil
userInfo:nil];
}
}
// Load the profiles from |filename| and add valid profiles into |profiles|.
// Add their guids to |guids|.
- (BOOL)loadDynamicProfilesFromFile:(NSString *)filename
intoArray:(NSMutableArray *)profiles
guids:(NSMutableSet *)guids {
// First, try xml and binary.
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:filename];
if (!dict) {
// Try JSON
NSData *data = [NSData dataWithContentsOfFile:filename];
if (!data) {
NSLog(@"Dynamic Profiles file %@ is unreadable", filename);
return NO;
}
NSError *error = nil;
dict = [NSJSONSerialization JSONObjectWithData:data
options:0
error:&error];
if (!dict) {
NSLog(@"Dynamic Profiles file %@ doesn't contain a valid property list", filename);
return NO;
}
}
NSArray *entries = dict[@"Profiles"];
if (!entries) {
NSLog(@"Property list in %@ has no entries", entries);
if (![model bookmarkWithGuid:profile[KEY_GUID]]) {
DLog(@"Can't remove profile not in shared profile model");
return NO;
}
for (Profile *profile in entries) {
if (![profile[KEY_GUID] isKindOfClass:[NSString class]]) {
NSLog(@"Dynamic profile is missing the Guid field in file %@", filename);
continue;
}
if (![profile[KEY_NAME] isKindOfClass:[NSString class]]) {
NSLog(@"Dynamic profile with guid %@ is missing the name field", profile[KEY_GUID]);
continue;
}
if ([self nonDynamicProfileHasGuid:profile[KEY_GUID]]) {
NSLog(@"Dynamic profile with guid %@ conflicts with non-dynamic profile with same guid", profile[KEY_GUID]);
continue;
}
if ([guids containsObject:profile[KEY_GUID]]) {
NSLog(@"Two dynamic profiles have the same guid: %@", profile[KEY_GUID]);
continue;
}
[profiles addObject:profile];
[guids addObject:profile[KEY_GUID]];
}
return YES;
}
 
// Does any "regular" profile have Guid |guid|?
- (BOOL)nonDynamicProfileHasGuid:(NSString *)guid {
Profile *profile = [[ProfileModel sharedInstance] bookmarkWithGuid:guid];
if (!profile) {
if ([model numberOfBookmarks] < 2) {
DLog(@"Can't remove last profile");
return NO;
}
return !profile.profileIsDynamic;
}
 
// Returns the current dynamic profiles.
- (NSArray *)dynamicProfiles {
NSMutableArray *array = [NSMutableArray array];
for (Profile *profile in [[ProfileModel sharedInstance] bookmarks]) {
if (profile.profileIsDynamic) {
[array addObject:profile];
}
}
return array;
DLog(@"Ok to remove.");
return YES;
}
 
// Returns the first profile in |profiles| whose guid is |guid|.
- (Profile *)profileWithGuid:(NSString *)guid inArray:(NSArray *)profiles {
for (Profile *aProfile in profiles) {
if ([guid isEqualToString:aProfile[KEY_GUID]]) {
return aProfile;
}
+ (void)removeProfile:(NSDictionary *)profile fromModel:(ProfileModel *)model {
NSString *guid = profile[KEY_GUID];
DLog(@"Remove profile with guid %@...", guid);
if ([model numberOfBookmarks] == 1) {
DLog(@"Refusing to remove only profile");
return;
}
return nil;
}
 
// Reload a dynamic profile, re-merging it with its parent.
- (void)updateDynamicProfile:(Profile *)newProfile {
Profile *prototype = [self prototypeForDynamicProfile:newProfile];
NSMutableDictionary *merged = [self profileByMergingProfile:newProfile
intoProfile:prototype];
[merged profileAddDynamicTagIfNeeded];
[[ProfileModel sharedInstance] setBookmark:merged
withGuid:merged[KEY_GUID]];
}
DLog(@"Removing key bindings that reference the guid being removed");
[self removeKeyMappingsReferringToGuid:guid];
DLog(@"Removing profile from model");
[model removeProfileWithGuid:guid];
 
// Copies fields from |profile| over those in |prototype| and returns a new
// mutable dictionary.
- (NSMutableDictionary *)profileByMergingProfile:(Profile *)profile
intoProfile:(Profile *)prototype {
NSMutableDictionary *merged = [[profile mutableCopy] autorelease];
for (NSString *key in prototype) {
if (profile[key]) {
merged[key] = profile[key];
} else {
merged[key] = prototype[key];
}
}
return merged;
// Ensure all profile list views reload their data to avoid issue 4033.
DLog(@"Posting profile was deleted notification");
[[NSNotificationCenter defaultCenter] postNotificationName:kProfileWasDeletedNotification
object:nil];
[model flush];
}
 
- (Profile *)prototypeForDynamicProfile:(Profile *)profile {
Profile *prototype = nil;
NSString *parentName = profile[KEY_DYNAMIC_PROFILE_PARENT_NAME];
if (parentName) {
prototype = [[ProfileModel sharedInstance] bookmarkWithName:parentName];
if (!prototype) {
NSLog(@"Dynamic profile %@ references unknown parent name %@. Using default profile as parent.",
profile[KEY_NAME], parentName);
+ (void)removeKeyMappingsReferringToGuid:(NSString *)badRef {
for (NSString* guid in [[ProfileModel sharedInstance] guids]) {
Profile *profile = [[ProfileModel sharedInstance] bookmarkWithGuid:guid];
profile = [iTermKeyBindingMgr removeMappingsReferencingGuid:badRef fromBookmark:profile];
if (profile) {
[[ProfileModel sharedInstance] setBookmark:profile withGuid:guid];
}
}
if (!prototype) {
prototype = [[ProfileModel sharedInstance] defaultBookmark];
for (NSString* guid in [[ProfileModel sessionsInstance] guids]) {
Profile* profile = [[ProfileModel sessionsInstance] bookmarkWithGuid:guid];
profile = [iTermKeyBindingMgr removeMappingsReferencingGuid:badRef fromBookmark:profile];
if (profile) {
[[ProfileModel sessionsInstance] setBookmark:profile withGuid:guid];
}
}
return prototype;
}
// Add a new dynamic profile to the model.
- (void)addDynamicProfile:(Profile *)profile {
Profile *prototype = [self prototypeForDynamicProfile:profile];
NSMutableDictionary *merged = [self profileByMergingProfile:profile
intoProfile:prototype];
[merged profileAddDynamicTagIfNeeded];
[[ProfileModel sharedInstance] addBookmark:merged];
}
// Remove a dynamic profile from the model. Updates displays of profiles,
// references to the profile, etc.
- (void)removeDynamicProfile:(Profile *)profile {
[[PreferencePanel sharedInstance] removeProfileWithGuid:profile[KEY_GUID]];
[iTermKeyBindingMgr removeMappingsReferencingGuid:badRef fromBookmark:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:kKeyBindingsChangedNotification
object:nil
userInfo:nil];
}
 
@end
Loading
Loading
@@ -1365,6 +1365,7 @@ static NSTimeInterval kMinimumPartialLineTriggerCheckInterval = 0.5;
withURL:url
isHotkey:NO
makeKey:NO
canActivate:NO
command:nil
block:nil];
}
Loading
Loading
@@ -1391,7 +1392,7 @@ static NSTimeInterval kMinimumPartialLineTriggerCheckInterval = 0.5;
 
- (void)_maybeWarnAboutShortLivedSessions
{
if ([(iTermApplicationDelegate *)[NSApp delegate] isApplescriptTestApp]) {
if (iTermApplication.sharedApplication.delegate.isApplescriptTestApp) {
// The applescript test driver doesn't care about short-lived sessions.
return;
}
Loading
Loading
@@ -2709,6 +2710,7 @@ static NSTimeInterval kMinimumPartialLineTriggerCheckInterval = 0.5;
// extension.
[self setEncodingFromSInt32:[iTermProfilePreferences intForKey:KEY_CHARACTER_ENCODING inProfile:aDict]];
[self setTermVariable:[iTermProfilePreferences stringForKey:KEY_TERMINAL_TYPE inProfile:aDict]];
[_terminal setAnswerBackString:[iTermProfilePreferences stringForKey:KEY_ANSWERBACK_STRING inProfile:aDict]];
[self setAntiIdleCode:[iTermProfilePreferences intForKey:KEY_IDLE_CODE inProfile:aDict]];
[self setAntiIdle:[iTermProfilePreferences boolForKey:KEY_SEND_CODE_WHEN_IDLE inProfile:aDict]];
[self setAutoClose:[iTermProfilePreferences boolForKey:KEY_CLOSE_SESSIONS_ON_END inProfile:aDict]];
Loading
Loading
@@ -3375,7 +3377,6 @@ static NSTimeInterval kMinimumPartialLineTriggerCheckInterval = 0.5;
}
 
static const NSTimeInterval kUpdateTitlePeriod = 0.7;
const NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
if ([[self tab] activeSession] == self) {
// Update window info for the active tab.
NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
Loading
Loading
@@ -6213,7 +6214,7 @@ static NSTimeInterval kMinimumPartialLineTriggerCheckInterval = 0.5;
ofClass:markClass] retain];
self.currentMarkOrNotePosition = _lastMark.entry.interval;
if (self.alertOnNextMark) {
NSString *action = [(iTermApplicationDelegate *)[[iTermApplication sharedApplication] delegate] markAlertAction];
NSString *action = iTermApplication.sharedApplication.delegate.markAlertAction;
if ([action isEqualToString:kMarkAlertActionPostNotification]) {
[[iTermGrowlDelegate sharedInstance] growlNotify:@"Mark Set"
withDescription:[NSString stringWithFormat:@"Session %@ #%d had a mark set.",
Loading
Loading
Loading
Loading
@@ -210,12 +210,8 @@
 
- (void)addHiddenLiveView:(SessionView *)hiddenLiveView;
 
#pragma mark NSSplitView delegate methods
- (void)splitViewDidResizeSubviews:(NSNotification *)aNotification;
// This is the implementation of splitViewDidResizeSubviews. The delegate method isn't called when
// views are added or adjusted, so we often have to call this ourselves.
- (void)_splitViewDidResizeSubviews:(NSSplitView*)splitView;
- (CGFloat)splitView:(NSSplitView *)splitView constrainSplitPosition:(CGFloat)proposedPosition ofSubviewAt:(NSInteger)dividerIndex;
- (void)_recursiveRemoveView:(NSView*)theView;
// Update the tab's title from the active session's name. Needed for initialzing the tab's title
// after setting up tmux tabs.
- (void)loadTitleFromSession;
 
@end
Loading
Loading
@@ -382,6 +382,10 @@ static const BOOL USE_THIN_SPLITTERS = YES;
}
}
 
- (void)loadTitleFromSession {
tabViewItem_.label = self.activeSession.name;
}
- (void)nameOfSession:(PTYSession*)session didChangeTo:(NSString*)newName {
if ([self activeSession] == session) {
[tabViewItem_ setLabel:newName];
Loading
Loading
@@ -4304,8 +4308,9 @@ static void SetAgainstGrainDim(BOOL isVertical, NSSize* dest, CGFloat value)
[self _splitViewDidResizeSubviews:splitView];
}
 
- (void)_splitViewDidResizeSubviews:(NSSplitView*)splitView
{
// This is the implementation of splitViewDidResizeSubviews. The delegate method isn't called when
// views are added or adjusted, so we often have to call this ourselves.
- (void)_splitViewDidResizeSubviews:(NSSplitView*)splitView {
PtyLog(@"_splitViewDidResizeSubviews running");
for (NSView* subview in [splitView subviews]) {
if ([subview isKindOfClass:[SessionView class]]) {
Loading
Loading
Loading
Loading
@@ -1331,12 +1331,11 @@ static const int kDragThreshold = 3;
// key then it starts searching from the bottom again.
[_findOnPageHelper resetFindCursor];
 
static BOOL isFirstInteraction = YES;
if (isFirstInteraction) {
iTermApplicationDelegate *appDelegate = (iTermApplicationDelegate *)[[NSApplication sharedApplication] delegate];
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
iTermApplicationDelegate *appDelegate = iTermApplication.sharedApplication.delegate;
[appDelegate userDidInteractWithASession];
isFirstInteraction = NO;
}
});
 
DLog(@"PTYTextView keyDown BEGIN %@", event);
id delegate = [self delegate];
Loading
Loading
@@ -1814,7 +1813,8 @@ static const int kDragThreshold = 3;
[self updateCursor:event];
[self updateUnderlinedURLs:event];
if ([iTermPreferences boolForKey:kPreferenceKeyFocusFollowsMouse] &&
[[self window] alphaValue] > 0) {
[[self window] alphaValue] > 0 &&
![NSApp modalWindow]) {
// Some windows automatically close when they lose key status and are
// incompatible with FFM. Check if the key window or its controller implements
// disableFocusFollowsMouse and if it returns YES do nothing.
Loading
Loading
@@ -4223,13 +4223,13 @@ static double EuclideanDistance(NSPoint p1, NSPoint p2) {
[theMenu addItemWithTitle:scpTitle
action:@selector(downloadWithSCP:)
keyEquivalent:@""];
[theMenu addItemWithTitle:NSLocalizedStringFromTableInBundle(@"Open Selection as URL",@"iTerm", [NSBundle bundleForClass: [self class]], @"Context menu")
[theMenu addItemWithTitle:@"Open Selection as URL"
action:@selector(browse:) keyEquivalent:@""];
[[theMenu itemAtIndex:[theMenu numberOfItems] - 1] setTarget:self];
[theMenu addItemWithTitle:NSLocalizedStringFromTableInBundle(@"Search Google for Selection",@"iTerm", [NSBundle bundleForClass: [self class]], @"Context menu")
[theMenu addItemWithTitle:@"Search the Web for Selection"
action:@selector(searchInBrowser:) keyEquivalent:@""];
[[theMenu itemAtIndex:[theMenu numberOfItems] - 1] setTarget:self];
[theMenu addItemWithTitle:NSLocalizedStringFromTableInBundle(@"Send Email to Selected Address",@"iTerm", [NSBundle bundleForClass: [self class]], @"Context menu")
[theMenu addItemWithTitle:@"Send Email to Selected Address"
action:@selector(mail:) keyEquivalent:@""];
[[theMenu itemAtIndex:[theMenu numberOfItems] - 1] setTarget:self];
 
Loading
Loading
@@ -5377,8 +5377,7 @@ static double EuclideanDistance(NSPoint p1, NSPoint p2) {
}
 
- (void)useBackgroundIndicatorChanged:(NSNotification *)notification {
_showStripesWhenBroadcastingInput =
[(iTermApplicationDelegate *)[[NSApplication sharedApplication] delegate] useBackgroundPatternIndicator];
_showStripesWhenBroadcastingInput = iTermApplication.sharedApplication.delegate.useBackgroundPatternIndicator;
[self setNeedsDisplay:YES];
}
 
Loading
Loading
Loading
Loading
@@ -14,7 +14,7 @@
 
NSScriptObjectSpecifier *containerRef;
 
NSArray *windows = [[iTermApplication sharedApplication] orderedTerminalWindows];
NSArray *windows = [iTermApplication.sharedApplication orderedTerminalWindows];
anIndex = [windows indexOfObjectIdenticalTo:self];
if (anIndex != NSNotFound) {
containerRef = [NSApp objectSpecifier];
Loading
Loading
@@ -52,6 +52,7 @@
withURL:nil
isHotkey:NO
makeKey:YES
canActivate:NO
command:command
block:nil];
return session.tab;
Loading
Loading
@@ -74,6 +75,7 @@
withURL:nil
isHotkey:NO
makeKey:YES
canActivate:NO
command:command
block:nil];
return session.tab;
Loading
Loading
Loading
Loading
@@ -89,8 +89,7 @@
onString:(iTermStringLine *)stringLine
atAbsoluteLineNumber:(long long)lineNumber
stop:(BOOL *)stop {
iTermApplicationDelegate *delegate =
(iTermApplicationDelegate *)[[NSApplication sharedApplication] delegate];
iTermApplicationDelegate *delegate = iTermApplication.sharedApplication.delegate;
[delegate openPasswordManagerToAccountName:[self paramWithBackreferencesReplacedWithValues:capturedStrings
count:captureCount]
inSession:aSession];
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