summaryrefslogtreecommitdiff
path: root/redo/window_darwin.m
diff options
context:
space:
mode:
Diffstat (limited to 'redo/window_darwin.m')
-rw-r--r--redo/window_darwin.m18
1 files changed, 17 insertions, 1 deletions
diff --git a/redo/window_darwin.m b/redo/window_darwin.m
index a923ef5..9a02862 100644
--- a/redo/window_darwin.m
+++ b/redo/window_darwin.m
@@ -38,10 +38,26 @@
id newWindow(intptr_t width, intptr_t height)
{
- return [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, (CGFloat) width, (CGFloat) height)
+ NSWindow *w;
+ NSTextView *tv;
+
+ w = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, (CGFloat) width, (CGFloat) height)
styleMask:(NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask)
backing:NSBackingStoreBuffered
defer:YES];
+ // we do not want substitutions
+ // text fields, labels, etc. take their smart quotes and other autocorrect settings from their parent window, which provides a shared "field editor"
+ // so we have to turn them off here
+ // thanks akempgen in irc.freenode.net/#macdev
+ // for some reason, this selector returns NSText but is documented to return NSTextView...
+ // TODO isolate into its own function when (if?) we add TextArea
+ tv = (NSTextView *) [w fieldEditor:YES forObject:nil];
+ [tv setEnabledTextCheckingTypes:0];
+ [tv setAutomaticDashSubstitutionEnabled:NO];
+ // don't worry about automatic data detection; it won't change stringValue (thanks pretty_function in irc.freenode.net/#macdev)
+ [tv setAutomaticSpellingCorrectionEnabled:NO];
+ [tv setAutomaticTextReplacementEnabled:NO];
+ return w;
}
void windowSetDelegate(id win, void *w)