Fix not consistently scrolling to the active line.
authorRobert Sesek <rsesek@bluestatic.org>
Sun, 12 Apr 2020 17:02:05 +0000 (13:02 -0400)
committerRobert Sesek <rsesek@bluestatic.org>
Sun, 12 Apr 2020 17:02:05 +0000 (13:02 -0400)
CHANGES
Source/BSSourceView.mm
Source/DebuggerController.m

diff --git a/CHANGES b/CHANGES
index f1450eb691de35b4aeae91bf3981eff6407248db..25c4daa39a14120f750f280437eef01801b4eb60 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -5,6 +5,7 @@ MacGDBp                                                               CHANGE LOG
 #####################
 - Fix: Crash when selecting stack frames after disconnecting.
 - Fix: Expanded variables would not reliably re-open after debugger steps.
+- Fix: Would not consistently scroll to the active line.
 
 2.0.1
 #####################
index 048dd3acbf36c98424be34a4874a873f8cc3ca9d..287fd9da72a78fe9808770d0227180fbfee7e7bf 100644 (file)
                           forRange:NSMakeRange(rangeIndex - 1, 0)];
   [textView_ scrollRangeToVisible:[[textView_ string]
                 lineRangeForRange:NSMakeRange(lineStart, lineEnd - lineStart)]];
-  [scrollView_ setNeedsDisplay:YES];
 }
 
 /**
@@ -257,6 +256,8 @@ NSString* ColorHEXStringINIDirective(NSString* directive, NSColor* color) {
 
         [self->ruler_ performLayout];
 
+        [self scrollToLine:self->markedLine_];
+
         if (handler)
           handler();
       });
index 6e1405792c36ecbc38f01536b33b5cef04b4c897..e0c11786ef4d5433d8206b953dd9f4c88db4f6fb 100644 (file)
   NSString* filename = [[NSURL URLWithString:frame.filename] path];
   if ([filename isEqualToString:@""])
     return;
-  
-  // Replace the source if necessary.
-  if (frame.source && ![_sourceViewer.file isEqualToString:filename])
-  {
-    [_sourceViewer setString:frame.source asFile:filename];
-    
+
+  if (![_sourceViewer.file isEqualToString:filename]) {
+    // Replace the source if necessary.
+    if (frame.source) {
+      [_sourceViewer setString:frame.source asFile:filename];
+    } else {
+      [_sourceViewer setFile:filename];
+    }
+
     NSSet<NSNumber*>* breakpoints = [_model.breakpointManager breakpointsForFile:filename];
     [_sourceViewer setMarkers:breakpoints];
   }
-  
+
   [_sourceViewer setMarkedLine:frame.lineNumber];
   [_sourceViewer scrollToLine:frame.lineNumber];
-  
-  [[_sourceViewer textView] setNeedsDisplay:YES];
 }
 
 /**