]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
macOS: Reset attributes for each syntax highlight cycle
authorRoopesh Chander <roop@roopc.net>
Mon, 21 Jan 2019 19:49:16 +0000 (01:19 +0530)
committerRoopesh Chander <roop@roopc.net>
Mon, 21 Jan 2019 19:49:16 +0000 (01:19 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/UI/macOS/View/ConfTextColorTheme.swift
WireGuard/WireGuard/UI/macOS/View/ConfTextStorage.swift

index e633bdf8758488ca000a7a2a08347f1fe9ee0758..b258f8b5f3d4aa3564c07f70ea6d55c386125f35 100644 (file)
@@ -4,10 +4,16 @@
 import Cocoa
 
 protocol ConfTextColorTheme {
+    var defaultColor: NSColor { get }
+
     func color(for: highlight_type) -> NSColor
 }
 
 struct ConfTextAquaColorTheme: ConfTextColorTheme {
+    var defaultColor: NSColor {
+        return NSColor(hex: "#000000") // Plain text in Xcode
+    }
+
     func color(for highlightType: highlight_type) -> NSColor {
         switch highlightType.rawValue {
         case HighlightSection.rawValue:
@@ -27,12 +33,16 @@ struct ConfTextAquaColorTheme: ConfTextColorTheme {
         case HighlightError.rawValue:
             return NSColor(hex: "#C41A16") // Strings in Xcode
         default:
-            return NSColor(hex: "#000000") // Plain text in Xcode
+            return defaultColor
         }
     }
 }
 
 struct ConfTextDarkAquaColorTheme: ConfTextColorTheme {
+    var defaultColor: NSColor {
+        return NSColor(hex: "#FFFFFF") // Plain text in Xcode
+    }
+
     func color(for highlightType: highlight_type) -> NSColor {
         switch highlightType.rawValue {
         case HighlightSection.rawValue:
@@ -52,7 +62,7 @@ struct ConfTextDarkAquaColorTheme: ConfTextColorTheme {
         case HighlightError.rawValue:
             return NSColor(hex: "#FF4C4C") // Strings in Xcode
         default:
-            return NSColor(hex: "#FFFFFF") // Plain text in Xcode
+            return defaultColor
         }
     }
 }
index 0a38d4efe5b7d9d2f7c96506f58bb76b0217b7a2..511a35cfb345f3afd60a0c0e892757cb5f5fe4a3 100644 (file)
@@ -85,7 +85,16 @@ class ConfTextStorage: NSTextStorage {
         hasError = false
         privateKeyString = nil
 
+        let fullTextRange = NSRange(location: 0, length: (backingStore.string as NSString).length)
+
         backingStore.beginEditing()
+        if let textColorTheme = textColorTheme {
+            let defaultAttributes: [NSAttributedString.Key: Any] = [
+                .foregroundColor: textColorTheme.defaultColor,
+                .font: defaultFont
+            ]
+            backingStore.setAttributes(defaultAttributes, range: fullTextRange)
+        }
         var spans = highlight_config(backingStore.string.cString(using: String.Encoding.utf8))!
 
         while spans.pointee.type != HighlightEnd {
@@ -111,7 +120,7 @@ class ConfTextStorage: NSTextStorage {
         backingStore.endEditing()
 
         beginEditing()
-        edited(.editedAttributes, range: NSRange(location: 0, length: (backingStore.string as NSString).length), changeInLength: 0)
+        edited(.editedAttributes, range: fullTextRange, changeInLength: 0)
         endEditing()
     }