diff --git a/Frameworks/AppKit/Browser.environment/AppKit.sj b/Frameworks/AppKit/Browser.environment/AppKit.sj index 07ad9e243..6e7be4052 100644 --- a/Frameworks/AppKit/Browser.environment/AppKit.sj +++ b/Frameworks/AppKit/Browser.environment/AppKit.sj @@ -83110,7 +83110,7 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithLevel:"), funct ,["void","CPWindow"])]); } -p;22;CPPlatformPasteboard.jt;24508;@STATIC;1.0;I;21;Foundation/CPObject.jI;22;Foundation/CPRunLoop.ji;17;CPCompatibility.ji;9;CPEvent.ji;14;CPPasteboard.ji;12;CPPlatform.ji;26;CPPlatformWindow+DOMKeys.jt;24333;objj_executeFile("Foundation/CPObject.j", NO);objj_executeFile("Foundation/CPRunLoop.j", NO);objj_executeFile("CPCompatibility.j", YES);objj_executeFile("CPEvent.j", YES);objj_executeFile("CPPasteboard.j", YES);objj_executeFile("CPPlatform.j", YES);objj_executeFile("CPPlatformWindow+DOMKeys.j", YES);var hasEditableTarget = function(aDOMEvent) +p;22;CPPlatformPasteboard.jt;24275;@STATIC;1.0;I;21;Foundation/CPObject.jI;22;Foundation/CPRunLoop.ji;17;CPCompatibility.ji;9;CPEvent.ji;14;CPPasteboard.ji;12;CPPlatform.ji;26;CPPlatformWindow+DOMKeys.jt;24100;objj_executeFile("Foundation/CPObject.j", NO);objj_executeFile("Foundation/CPRunLoop.j", NO);objj_executeFile("CPCompatibility.j", YES);objj_executeFile("CPEvent.j", YES);objj_executeFile("CPPasteboard.j", YES);objj_executeFile("CPPlatform.j", YES);objj_executeFile("CPPlatformWindow+DOMKeys.j", YES);var hasEditableTarget = function(aDOMEvent) { var target = aDOMEvent.target || aDOMEvent.srcElement; if (!target) @@ -83122,7 +83122,7 @@ p;22;CPPlatformPasteboard.jt;24508;@STATIC;1.0;I;21;Foundation/CPObject.jI;22;Fo }; {var the_class = objj_allocateClassPair(CPObject, "CPPlatformPasteboard"), -meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_DOMWindow", "DOMWindow"), new objj_ivar("_DOMPasteboardElement", "DOMElement"), new objj_ivar("supportsNativeCopyAndPaste", "BOOL"), new objj_ivar("hasBugWhichPreventsNonEditablePaste", "BOOL"), new objj_ivar("hasBugWhichPreventsNonEditablePasteRedirect", "BOOL"), new objj_ivar("currentEventIsNativePasteEvent", "BOOL"), new objj_ivar("currentEventIsNativeCopyOrCutEvent", "BOOL"), new objj_ivar("currentEventShouldBeSuppressed", "BOOL"), new objj_ivar("currentEventShouldDefinitelyBubble", "BOOL"), new objj_ivar("currentEventShouldDefinitelyNotBubble", "BOOL"), new objj_ivar("_ignoreNativeCopyOrCutEvent", "BOOL"), new objj_ivar("_ignoreNativePastePreparation", "BOOL")]);objj_registerClassPair(the_class); +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_DOMWindow", "DOMWindow"), new objj_ivar("_DOMPasteboardElement", "DOMElement"), new objj_ivar("supportsNativeCopyAndPaste", "BOOL"), new objj_ivar("hasBugWhichPreventsNonEditablePaste", "BOOL"), new objj_ivar("hasBugWhichPreventsNonEditablePasteRedirect", "BOOL"), new objj_ivar("currentEventIsNativePasteEvent", "BOOL"), new objj_ivar("currentEventIsNativeCopyOrCutEvent", "BOOL"), new objj_ivar("currentEventShouldBeSuppressed", "BOOL"), new objj_ivar("currentEventShouldDefinitelyBubble", "BOOL"), new objj_ivar("currentEventShouldDefinitelyNotBubble", "BOOL"), new objj_ivar("_ignoreNativeCopyOrCutEvent", "BOOL"), new objj_ivar("_ignoreNativePastePreparation", "BOOL"), new objj_ivar("_clipboardListeners", "JSObject")]);objj_registerClassPair(the_class); class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPPlatformPasteboard__init(self, _cmd) { if (self = (objj_getClass("CPPlatformPasteboard").super_class.method_dtable["init"] || _objj_forward)(self, "init")) @@ -83180,36 +83180,18 @@ class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPPla { if (self.supportsNativeCopyAndPaste) { - self._DOMWindow.addEventListener("beforecopy", nativeBeforeClipboardEventCallback, NO); - self._DOMWindow.addEventListener("beforecut", nativeBeforeClipboardEventCallback, NO); - self._DOMWindow.addEventListener("beforepaste", nativeBeforeClipboardEventCallback, NO); - self._DOMWindow.addEventListener("copy", nativeCopyOrCutEventCallback, NO); - self._DOMWindow.addEventListener("cut", nativeCopyOrCutEventCallback, NO); - self._DOMWindow.addEventListener("paste", nativePasteEventCallback, NO); + self._clipboardListeners = [[self._DOMWindow, "beforecopy", nativeBeforeClipboardEventCallback], [self._DOMWindow, "beforecut", nativeBeforeClipboardEventCallback], [self._DOMWindow, "beforepaste", nativeBeforeClipboardEventCallback], [self._DOMWindow, "copy", nativeCopyOrCutEventCallback], [self._DOMWindow, "cut", nativeCopyOrCutEventCallback], [self._DOMWindow, "paste", nativePasteEventCallback]]; } else { - theDocument.addEventListener("beforepaste", pasteEventCallback, NO); - theDocument.addEventListener("beforecopy", copyEventCallback, NO); - theDocument.addEventListener("beforecut", copyEventCallback, NO); + self._clipboardListeners = [[theDocument, "beforepaste", pasteEventCallback], [theDocument, "beforecopy", copyEventCallback], [theDocument, "beforecut", copyEventCallback]]; } - self._DOMWindow.addEventListener("unload", function() + for (var i = 0; i < self._clipboardListeners.length; i++) + self._clipboardListeners[i][0].addEventListener(self._clipboardListeners[i][1], self._clipboardListeners[i][2], NO); + self._DOMWindow.addEventListener("pagehide", function(anEvent) { - if (self.supportsNativeCopyAndPaste) - { - self._DOMWindow.removeEventListener("beforecopy", nativeBeforeClipboardEventCallback, NO); - self._DOMWindow.removeEventListener("beforecut", nativeBeforeClipboardEventCallback, NO); - self._DOMWindow.removeEventListener("beforepaste", nativeBeforeClipboardEventCallback, NO); - self._DOMWindow.removeEventListener("copy", nativeCopyOrCutEventCallback, NO); - self._DOMWindow.removeEventListener("cut", nativeCopyOrCutEventCallback, NO); - self._DOMWindow.removeEventListener("paste", nativePasteEventCallback, NO); - } - else - { - theDocument.removeEventListener("beforepaste", pasteEventCallback, NO); - theDocument.removeEventListener("beforecopy", copyEventCallback, NO); - theDocument.removeEventListener("beforecut", copyEventCallback, NO); - } + if (!anEvent.persisted) + (self.isa.method_msgSend["_removeClipboardListeners"] || _objj_forward)(self, "_removeClipboardListeners"); }, NO); } else @@ -83219,12 +83201,22 @@ class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPPla ,["void"]), new objj_method(sel_getUid("destroyDOMElements"), function $CPPlatformPasteboard__destroyDOMElements(self, _cmd) { + (self.isa.method_msgSend["_removeClipboardListeners"] || _objj_forward)(self, "_removeClipboardListeners"); var theDocument = self._DOMWindow.document, _DOMBodyElement = theDocument.getElementById("cappuccino-body") || theDocument.body; _DOMBodyElement.removeChild(self._DOMPasteboardElement); self._DOMPasteboardElement = nil; } +,["void"]), new objj_method(sel_getUid("_removeClipboardListeners"), function $CPPlatformPasteboard___removeClipboardListeners(self, _cmd) +{ + if (!self._clipboardListeners) + return; + for (var i = 0; i < self._clipboardListeners.length; i++) + self._clipboardListeners[i][0].removeEventListener(self._clipboardListeners[i][1], self._clipboardListeners[i][2], NO); + self._clipboardListeners = nil; +} + ,["void"]), new objj_method(sel_getUid("windowMaySendKeyEvent:"), function $CPPlatformPasteboard__windowMaySendKeyEvent_(self, _cmd, anEvent) { self.currentEventIsNativePasteEvent = NO; diff --git a/Resources/recipes.txt b/Resources/recipes.txt index 7c79ea8dd..56ecdd90c 100644 --- a/Resources/recipes.txt +++ b/Resources/recipes.txt @@ -1,148 +1,148 @@ -1790599926098|ArrayControllerInitialSelectionTest| -1790599926113|ArrayControllerRemovingFirstTest| -1790599926127|ArrayControllerTest| -1790599926140|AttachedSheet2Test| -1790599926154|AttachedSheetTest| -1790599926167|BindingContentArrayTest| -1790599926181|CGCanvasContextTest| -1790599926195|CGPathTest| -1790599926208|CPAlertTest| -1790599926222|CPAnimatablePropertyContainerTest| -1790599926236|CPAnimationContextTest| -1790599926249|CPAnimationTest| -1790599926263|CPBinderEchoBug| -1790599926277|CPBoxCibTest| -1790599926291|CPBoxTest| -1790599926305|CPBrowserTest| -1790599926319|CPButtonBarTest| -1790599926333|CPButtonKeyEquivalentDefaultTest| -1790599926348|CPButtonTest| -1790599926362|CPByteCountFormatterTest| -1790599926375|CPCollectionViewNibTest| -1790599926389|CPColorCPImageDescriptionTest| -1790599926403|CPColorWellBindingsTest| -1790599926417|CPComboBoxTest| -1790599926431|CPControlPerformClickExceptionTest| -1790599926444|CPControlSizeTest| -1790599926458|CPCursorTest| -1790599926472|CPDateFormatterTest| -1790599926486|CPDatePickerTest| -1790599926499|CPDictionaryControllerTest| -1790599926513|CPDocumentControllerTest| -1790599926527|CPFormatterTest| -1790599926541|CPGraphicsTest| -1790599926555|CPImageAndTextViewImageScalingTest| -1790599926568|CPImageViewAlignmentScaling| -1790599926582|CPImageViewTest| -1790599926596|CPImageViewbindingsTest| -1790599926609|CPLanguageModelChatbotTest| -1790599926623|CPLevelIndicator| -1790599926637|CPLevelIndicatorTest| -1790599926650|CPLocalizationTest| -1790599926664|CPLogTest| -1790599926678|CPMarkdownParserTest| -1790599926691|CPMenuCALayerTest| -1790599926705|CPMenuEnabledBindingsTest| -1790599926719|CPMenuKeyEquivalentsTest| -1790599926732|CPMenuRemoveAllTest| -1790599926746|CPMenuSubmenuPlacementConstraints| -1790599926759|CPMenuTest| -1790599926773|CPOutlineViewCibTest| -1790599926787|CPOutlineViewTest| -1790599926800|CPOutlineViewViewBasedCibTest| -1790599926814|CPPanelTest| -1790599926828|CPPlatformWindow| -1790599926841|CPPlattformWindowMinSize| -1790599926855|CPPopUpButtonBindingsTest| -1790599926868|CPPopUpButtonTest| -1790599926882|CPPopoverTest| -1790599926895|CPPredicateEditorCibTest| -1790599926909|CPProgressIndicatorTest| -1790599926923|CPPropertyListSerializationTest| -1790599926937|CPRadioBindingsTest| -1790599926951|CPRuleEditorCibTest| -1790599926965|CPRuleEditorTest| -1790599926979|CPScrollView2Test| -1790599926993|CPScrollViewTest| -1790599927006|CPSearchFieldPredicateBinding| -1790599927020|CPSearchFieldTest| -1790599927034|CPSegmentedControlBindingsTest| -1790599927048|CPSegmentedControlTest| -1790599927062|CPSoundTest| -1790599927075|CPSplitViewDividerTest| -1790599927089|CPSplitViewTest| -1790599927102|CPStackViewTest| -1790599927116|CPStepperBindingsTest| -1790599927130|CPStepperNibTest| -1790599927143|CPTabView2Test| -1790599927157|CPTabViewBindingsTest| -1790599927170|CPTabViewNibTest| -1790599927183|CPTableViewGroupRowsTest| -1790599927197|CPTextFieldEditingStyleTest| -1790599927210|CPTextFieldHeightTest| -1790599927224|CPTextFieldMovementsTest| -1790599927238|CPTextFieldMultiLineTest| -1790599927252|CPTextFieldTest| -1790599927266|CPTextViewCibTest| -1790599927280|CPTextViewDelegateAndNotificationsTest| -1790599927293|CPTimeZoneTest| -1790599927307|CPTokenFieldTest| -1790599927321|CPToolTipTest| -1790599927335|CPToolbarTest| -1790599927349|CPTreeControllerTest| -1790599927362|CPURLConnectionAsyncTest| -1790599927376|CPURLConnectionSynchronousTest| -1790599927390|CPUserDefaultsControllerTest| -1790599927404|CPUserDefaultsTest| -1790599927418|CPUserNotificationTest| -1790599927431|CPViewControllerTest| -1790599927445|CPVisualEffectViewTest| -1790599927459|CPWebViewTest| -1790599927473|CPWebViewTest2| -1790599927486|CPWindowLiveResizeTest| -1790599927500|CPWindowMovableTest| -1790599927514|CPWindowResizeStyleTest| -1790599927528|ChildWindowsTest| -1790599927541|CompilationTests| -1790599927555|ContinuouslyUpdatesValueBinding| -1790599927569|CopyAndPasteTest| -1790599927582|CrossOriginTest| -1790599927596|FF4096Test| -1790599927610|FontEnhancementTest| -1790599927623|FontMetricsExplorerTest| -1790599927637|KeyEquivalentsTest| -1790599927650|KeyViewLoopTest| -1790599927664|KeyWindowInTheBackgroundActivation| -1790599927678|LayoutTest| -1790599927691|LoadDynamicFrameworksTest| -1790599927705|LoadTimeTest| -1790599927718|LongBindingsTest| -1790599927732|MobileTest| -1790599927746|MultipleValueBindingsTest| -1790599927759|NSBoxTest| -1790599927773|NSBrowserTest| -1790599927787|NewTextFieldBezelTest| -1790599927801|Nib2CibAlignmentTest| -1790599927815|Nib2CibBaselineAlignementTest| -1790599927829|Nib2CibSubviewsOrderTest| -1790599927843|NibAppRemixedTest| -1790599927856|PatternFillTest| -1790599927870|PlatformWindowsTest| -1790599927883|PopUpButtonEscTest| -1790599927897|PredicateWithFormatTest| -1790599927910|ResignFirstResponderWithCPControlTextDidEndEditingTest| -1790599927924|Scaling2Test| -1790599927938|ScalingTest| -1790599927951|ScrollviewThemingTest| -1790599927964|SimpleBindings2Test| -1790599927978|SizeToFitTest| -1790599927991|SmartFoldersTest| -1790599928005|TableTest| -1790599928018|ThemeBrowserTest| -1790599928032|ThemeKitchenSinkTest| -1790599928045|TrackingAreaTest| -1790599928059|UndoRedoWithMenuUpdateTest| -1790599928073|UserlandNSTest| -1790599928086|WindowSheetOrderTest| -1790599928100|layoutEphemeralSubviewTest| -1790599928113|performKeyEquivalentTest| +1790601394537|ArrayControllerInitialSelectionTest| +1790601394779|ArrayControllerRemovingFirstTest| +1790601394792|ArrayControllerTest| +1790601394805|AttachedSheet2Test| +1790601394818|AttachedSheetTest| +1790601394831|BindingContentArrayTest| +1790601394844|CGCanvasContextTest| +1790601394857|CGPathTest| +1790601394871|CPAlertTest| +1790601394884|CPAnimatablePropertyContainerTest| +1790601394897|CPAnimationContextTest| +1790601394910|CPAnimationTest| +1790601394923|CPBinderEchoBug| +1790601394936|CPBoxCibTest| +1790601394950|CPBoxTest| +1790601394963|CPBrowserTest| +1790601394976|CPButtonBarTest| +1790601394989|CPButtonKeyEquivalentDefaultTest| +1790601395002|CPButtonTest| +1790601395015|CPByteCountFormatterTest| +1790601395028|CPCollectionViewNibTest| +1790601395041|CPColorCPImageDescriptionTest| +1790601395054|CPColorWellBindingsTest| +1790601395067|CPComboBoxTest| +1790601395080|CPControlPerformClickExceptionTest| +1790601395093|CPControlSizeTest| +1790601395106|CPCursorTest| +1790601395119|CPDateFormatterTest| +1790601395132|CPDatePickerTest| +1790601395145|CPDictionaryControllerTest| +1790601395158|CPDocumentControllerTest| +1790601395172|CPFormatterTest| +1790601395185|CPGraphicsTest| +1790601395198|CPImageAndTextViewImageScalingTest| +1790601395211|CPImageViewAlignmentScaling| +1790601395224|CPImageViewTest| +1790601395237|CPImageViewbindingsTest| +1790601395250|CPLanguageModelChatbotTest| +1790601395262|CPLevelIndicator| +1790601395275|CPLevelIndicatorTest| +1790601395288|CPLocalizationTest| +1790601395301|CPLogTest| +1790601395314|CPMarkdownParserTest| +1790601395327|CPMenuCALayerTest| +1790601395340|CPMenuEnabledBindingsTest| +1790601395353|CPMenuKeyEquivalentsTest| +1790601395366|CPMenuRemoveAllTest| +1790601395379|CPMenuSubmenuPlacementConstraints| +1790601395392|CPMenuTest| +1790601395405|CPOutlineViewCibTest| +1790601395419|CPOutlineViewTest| +1790601395432|CPOutlineViewViewBasedCibTest| +1790601395445|CPPanelTest| +1790601395458|CPPlatformWindow| +1790601395472|CPPlattformWindowMinSize| +1790601395485|CPPopUpButtonBindingsTest| +1790601395498|CPPopUpButtonTest| +1790601395511|CPPopoverTest| +1790601395524|CPPredicateEditorCibTest| +1790601395537|CPProgressIndicatorTest| +1790601395550|CPPropertyListSerializationTest| +1790601395563|CPRadioBindingsTest| +1790601395577|CPRuleEditorCibTest| +1790601395590|CPRuleEditorTest| +1790601395603|CPScrollView2Test| +1790601395616|CPScrollViewTest| +1790601395629|CPSearchFieldPredicateBinding| +1790601395642|CPSearchFieldTest| +1790601395655|CPSegmentedControlBindingsTest| +1790601395668|CPSegmentedControlTest| +1790601395681|CPSoundTest| +1790601395695|CPSplitViewDividerTest| +1790601395708|CPSplitViewTest| +1790601395721|CPStackViewTest| +1790601395734|CPStepperBindingsTest| +1790601395747|CPStepperNibTest| +1790601395760|CPTabView2Test| +1790601395773|CPTabViewBindingsTest| +1790601395786|CPTabViewNibTest| +1790601395799|CPTableViewGroupRowsTest| +1790601395813|CPTextFieldEditingStyleTest| +1790601395826|CPTextFieldHeightTest| +1790601395839|CPTextFieldMovementsTest| +1790601395852|CPTextFieldMultiLineTest| +1790601395865|CPTextFieldTest| +1790601395878|CPTextViewCibTest| +1790601395891|CPTextViewDelegateAndNotificationsTest| +1790601395904|CPTimeZoneTest| +1790601395917|CPTokenFieldTest| +1790601395930|CPToolTipTest| +1790601395943|CPToolbarTest| +1790601395956|CPTreeControllerTest| +1790601395969|CPURLConnectionAsyncTest| +1790601395982|CPURLConnectionSynchronousTest| +1790601395995|CPUserDefaultsControllerTest| +1790601396009|CPUserDefaultsTest| +1790601396022|CPUserNotificationTest| +1790601396035|CPViewControllerTest| +1790601396048|CPVisualEffectViewTest| +1790601396062|CPWebViewTest| +1790601396075|CPWebViewTest2| +1790601396088|CPWindowLiveResizeTest| +1790601396102|CPWindowMovableTest| +1790601396115|CPWindowResizeStyleTest| +1790601396128|ChildWindowsTest| +1790601396141|CompilationTests| +1790601396155|ContinuouslyUpdatesValueBinding| +1790601396168|CopyAndPasteTest| +1790601396181|CrossOriginTest| +1790601396194|FF4096Test| +1790601396207|FontEnhancementTest| +1790601396221|FontMetricsExplorerTest| +1790601396234|KeyEquivalentsTest| +1790601396247|KeyViewLoopTest| +1790601396260|KeyWindowInTheBackgroundActivation| +1790601396274|LayoutTest| +1790601396287|LoadDynamicFrameworksTest| +1790601396300|LoadTimeTest| +1790601396314|LongBindingsTest| +1790601396327|MobileTest| +1790601396340|MultipleValueBindingsTest| +1790601396353|NSBoxTest| +1790601396366|NSBrowserTest| +1790601396379|NewTextFieldBezelTest| +1790601396392|Nib2CibAlignmentTest| +1790601396405|Nib2CibBaselineAlignementTest| +1790601396418|Nib2CibSubviewsOrderTest| +1790601396432|NibAppRemixedTest| +1790601396445|PatternFillTest| +1790601396458|PlatformWindowsTest| +1790601396472|PopUpButtonEscTest| +1790601396485|PredicateWithFormatTest| +1790601396498|ResignFirstResponderWithCPControlTextDidEndEditingTest| +1790601396511|Scaling2Test| +1790601396524|ScalingTest| +1790601396538|ScrollviewThemingTest| +1790601396551|SimpleBindings2Test| +1790601396564|SizeToFitTest| +1790601396577|SmartFoldersTest| +1790601396591|TableTest| +1790601396604|ThemeBrowserTest| +1790601396617|ThemeKitchenSinkTest| +1790601396630|TrackingAreaTest| +1790601396643|UndoRedoWithMenuUpdateTest| +1790601396656|UserlandNSTest| +1790601396669|WindowSheetOrderTest| +1790601396682|layoutEphemeralSubviewTest| +1790601396695|performKeyEquivalentTest|