aboutsummaryrefslogtreecommitdiffhomepage
path: root/cocoa
diff options
context:
space:
mode:
Diffstat (limited to 'cocoa')
-rw-r--r--cocoa/ScintillaCocoa.h5
-rw-r--r--cocoa/ScintillaCocoa.mm25
-rw-r--r--cocoa/ScintillaView.mm23
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];