Changeset 448

Show
Ignore:
Timestamp:
03/10/08 10:59:02 AM (9 months ago)
Author:
nicholas
Message:

Disable spelling and grammar correction marks during selection

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEWebKit.m

    r446 r448  
    3737@end 
    3838 
     39// from WebViewPrivate.h (will become public, part of WebViewEditing) 
     40@interface WebView (webViewGrammarChecking) 
     41- (BOOL)isGrammarCheckingEnabled; 
     42- (void)setGrammarCheckingEnabled:(BOOL)flag; 
     43@end 
     44 
    3945@implementation ICeCoffEEWebKit 
    4046 
     
    8086    WebView *webView = [(WebHTMLView *)self _webView]; 
    8187    BOOL isEditable = [webView isEditable]; 
     88    BOOL isContinuousSpellCheckingEnabled = NO, isGrammarCheckingEnabled = NO; 
    8289 
    8390    if (isEditable) { 
     
    9299 
    93100    @try { 
    94         if (!isEditable) 
     101        if (!isEditable) { 
    95102            [webView setEditable: YES]; 
     103         
     104            // don't want spelling/grammar marks to persist when view is made uneditable again 
     105            if ([webView respondsToSelector: @selector(isContinuousSpellCheckingEnabled)] && 
     106                (isContinuousSpellCheckingEnabled = [webView isContinuousSpellCheckingEnabled])) { 
     107                if ([webView respondsToSelector: @selector(setContinuousSpellCheckingEnabled:)]) 
     108                    [webView setContinuousSpellCheckingEnabled: NO]; 
     109                else 
     110                    isContinuousSpellCheckingEnabled = NO; // don't restore 
     111            } 
     112 
     113            if ([webView respondsToSelector: @selector(isGrammarCheckingEnabled)] && 
     114                (isGrammarCheckingEnabled = [webView isGrammarCheckingEnabled])) { 
     115                if ([webView respondsToSelector: @selector(setGrammarCheckingEnabled:)]) 
     116                    [webView setGrammarCheckingEnabled: NO]; 
     117                else 
     118                    isGrammarCheckingEnabled = NO; // don't restore 
     119            } 
     120        } 
     121 
    96122 
    97123        NSPoint viewClickPt = [webView convertPoint: downPt fromView: nil]; 
     
    162188        [selectedRange release]; selectedRange = nil; 
    163189        [downEvent release]; downEvent = nil; 
    164         if (!isEditable) 
     190        if (!isEditable) { 
    165191            [webView setEditable: NO]; 
     192            if (isContinuousSpellCheckingEnabled) 
     193                [webView setContinuousSpellCheckingEnabled: YES]; 
     194            if (isGrammarCheckingEnabled) 
     195                [webView setGrammarCheckingEnabled: YES]; 
     196        } 
    166197    } 
    167198