diff --git a/Modules/Debuggers/ProjectCenter/GDBWrapper.m b/Modules/Debuggers/ProjectCenter/GDBWrapper.m index d1719c7..381e58c 100644 --- a/Modules/Debuggers/ProjectCenter/GDBWrapper.m +++ b/Modules/Debuggers/ProjectCenter/GDBWrapper.m @@ -425,6 +425,7 @@ [debugger setLastFileNameParsed: nil]; [debugger setLastLineNumberParsed: NSNotFound]; } + [debugger updateEditor]; } } return PCDBAsyncStatusRecord; diff --git a/Modules/Debuggers/ProjectCenter/PCDebugger.m b/Modules/Debuggers/ProjectCenter/PCDebugger.m index fb23ff0..fd4ddfd 100644 --- a/Modules/Debuggers/ProjectCenter/PCDebugger.m +++ b/Modules/Debuggers/ProjectCenter/PCDebugger.m @@ -59,6 +59,7 @@ NSString *PCBreakMethod = @"BreakMethod"; NSString *PCBreakFilename = @"BreakFilename"; NSString *PCBreakLineNumber = @"BreakLineNumber"; NSString *PCDBDebuggerStartedNotification = @"PCDBDebuggerStartedNotification"; +NSString *PCUpdateEditorNotification = @"PCUpdateEditorNotification"; @implementation PCDebugger + (void) initialize @@ -305,6 +306,15 @@ NSString *PCDBDebuggerStartedNotification = @"PCDBDebuggerStartedNotification"; lastLineNumberParsed = num; } +- (void) updateEditor +{ + NSNumber *n = [NSNumber numberWithInteger: lastLineNumberParsed]; + NSDictionary *d = [NSDictionary dictionaryWithObjectsAndKeys: + lastFileNameParsed, @"LastFileName", n, @"LastLineNumber", nil]; + [NOTIFICATION_CENTER postNotificationName: PCUpdateEditorNotification + object: d]; +} + // kill process - (void) interrupt { diff --git a/Modules/Editors/ProjectCenter/PCEditor.m b/Modules/Editors/ProjectCenter/PCEditor.m index 3a0afb5..21da0dc 100644 --- a/Modules/Editors/ProjectCenter/PCEditor.m +++ b/Modules/Editors/ProjectCenter/PCEditor.m @@ -225,6 +225,12 @@ highlited_chars[1] = -1; undoManager = [[NSUndoManager alloc] init]; + + [[NSNotificationCenter defaultCenter] addObserver: self + selector: @selector(processNotification:) + name: @"PCUpdateEditorNotification" + object: nil]; + } return self; @@ -410,6 +416,18 @@ object:self]; } +- (void) processNotification: (NSNotification *)notification +{ + NSDictionary *d = [notification object]; + NSString *fileName = [d objectForKey: @"lastFileName"]; + NSNumber *line = [d objectForKey: @"lastLineNumber"]; + NSUInteger l = [line integerValue]; + [self openFileAtPath: fileName + editorManager: _editorManager + editable: YES]; + [self scrollToLineNumber: l]; +} + // =========================================================================== // ==== CodeEditor protocol // ===========================================================================