From 5b852ca765e9495de6404a7f3abb0c6e53f36fc6 Mon Sep 17 00:00:00 2001 From: David Richardson Date: Thu, 1 Oct 2026 16:03:10 -0600 Subject: [PATCH] AppKit: first method-definition gates removed (Increment A) - CPTextField, CPTokenField, CPTextView: the PLATFORM(DOM) gates around _inputElement (superclass and override) and _cumulativeOffset are removed; the methods now exist under both targets with runtime CPDOMAvailable guards returning nil (object methods) or a zero point (struct method) when no DOM is present - contract change: under CommonJS these methods change from absent to present-and-inert; all callers are browser event paths never exercised by the theme blender or nib2cib - zero preprocessor directives remain in these three files - work-in-progress towards complete removal of CPP directives --- AppKit/CPTextField.j | 4 ++-- AppKit/CPTextView/CPTextView.j | 4 ++-- AppKit/CPTokenField.j | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index 0a7d11612..5558ee60a 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -279,9 +279,10 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); // MARK: - -#if PLATFORM(DOM) - (DOMElement)_inputElement { + if (!CPDOMAvailable) return nil; + if (!CPTextFieldDOMTextAreaElement) { CPTextFieldDOMTextAreaElement = document.createElement("textarea"); @@ -384,7 +385,6 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); return CPTextFieldDOMCurrentElement; } -#endif - (id)initWithFrame:(CGRect)aFrame { diff --git a/AppKit/CPTextView/CPTextView.j b/AppKit/CPTextView/CPTextView.j index be05db296..38c140b94 100644 --- a/AppKit/CPTextView/CPTextView.j +++ b/AppKit/CPTextView/CPTextView.j @@ -1031,9 +1031,10 @@ Sets the selection to a range of characters in response to user action. [_CPNativeInputManager focusForClipboardOfTextView:self]; } -#if PLATFORM(DOM) - (CGPoint)_cumulativeOffset { + if (!CPDOMAvailable) return CGPointMake(0, 0); + var top = 0, left = 0, element = self._DOMElement; @@ -1048,7 +1049,6 @@ Sets the selection to a range of characters in response to user action. return CGPointMake(left, top); } -#endif - (CPArray)selectedRanges { diff --git a/AppKit/CPTokenField.j b/AppKit/CPTokenField.j index db9d350f8..30fb5b58a 100644 --- a/AppKit/CPTokenField.j +++ b/AppKit/CPTokenField.j @@ -745,9 +745,10 @@ CPTokenFieldDeleteButtonType = 1; // ============= // = TEXTFIELD = // ============= -#if PLATFORM(DOM) - (DOMElement)_inputElement { + if (!CPDOMAvailable) return nil; + if (!CPTokenFieldDOMInputElement) { CPTokenFieldDOMInputElement = document.createElement("input"); @@ -788,7 +789,6 @@ CPTokenFieldDeleteButtonType = 1; return CPTokenFieldDOMInputElement; } -#endif - (CPString)_editorValue {