diff options
Diffstat (limited to 'cocoa')
| -rw-r--r-- | cocoa/ScintillaCocoa.h | 5 | ||||
| -rw-r--r-- | cocoa/ScintillaCocoa.mm | 25 | ||||
| -rw-r--r-- | cocoa/ScintillaView.mm | 23 | 
3 files changed, 36 insertions, 17 deletions
| diff --git a/cocoa/ScintillaCocoa.h b/cocoa/ScintillaCocoa.h index 545dc3607..4f7079f23 100644 --- a/cocoa/ScintillaCocoa.h +++ b/cocoa/ScintillaCocoa.h @@ -202,10 +202,7 @@ public:    virtual NSMenu* CreateContextMenu(NSEvent* event);    void HandleCommand(NSInteger command); -//    virtual OSStatus ActiveStateChanged(); -// -//    virtual void CallTipClick(); -  +  virtual void ActiveStateChanged(bool isActive);  }; diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index f97520a81..557861d6b 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -1649,19 +1649,18 @@ void ScintillaCocoa::HandleCommand(NSInteger command)  //-------------------------------------------------------------------------------------------------- -//OSStatus ScintillaCocoa::ActiveStateChanged() -//{ -//  // If the window is being deactivated, lose the focus and turn off the ticking -//  if ( ! this->IsActive() ) { -//    DropCaret(); -//    //SetFocusState( false ); -//    SetTicking( false ); -//  } else { -//    ShowCaretAtCurrentPosition(); -//  } -//  return noErr; -//} -// +void ScintillaCocoa::ActiveStateChanged(bool isActive) +{ +  // If the window is being deactivated, lose the focus and turn off the ticking +  if (!isActive) { +    DropCaret(); +    //SetFocusState( false ); +    SetTicking( false ); +  } else { +    ShowCaretAtCurrentPosition(); +  } +} +  //-------------------------------------------------------------------------------------------------- diff --git a/cocoa/ScintillaView.mm b/cocoa/ScintillaView.mm index 1748cc40d..85eb81a1c 100644 --- a/cocoa/ScintillaView.mm +++ b/cocoa/ScintillaView.mm @@ -794,6 +794,17 @@ static void notification(intptr_t windowid, unsigned int iMessage, uintptr_t wPa      [self setGeneralProperty: SCI_INDICSETUNDER parameter: INPUT_INDICATOR value: 1];      [self setGeneralProperty: SCI_INDICSETSTYLE parameter: INPUT_INDICATOR value: INDIC_PLAIN];      [self setGeneralProperty: SCI_INDICSETALPHA parameter: INPUT_INDICATOR value: 100]; +       +    NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; +    [center addObserver:self +               selector:@selector(applicationDidResignActive:) +                   name:NSApplicationDidResignActiveNotification +                 object:nil]; +       +    [center addObserver:self +               selector:@selector(applicationDidBecomeActive:) +                   name:NSApplicationDidBecomeActiveNotification +                 object:nil];    }    return self;  } @@ -809,6 +820,18 @@ static void notification(intptr_t windowid, unsigned int iMessage, uintptr_t wPa  //-------------------------------------------------------------------------------------------------- +- (void) applicationDidResignActive: (NSNotification *)note { +    mBackend->ActiveStateChanged(false); +} + +//-------------------------------------------------------------------------------------------------- + +- (void) applicationDidBecomeActive: (NSNotification *)note { +    mBackend->ActiveStateChanged(true); +} + +//-------------------------------------------------------------------------------------------------- +  - (void) viewDidMoveToWindow  {    [super viewDidMoveToWindow]; | 
