Revision: 29594
          http://sourceforge.net/p/bibdesk/svn/29594
Author:   hofman
Date:     2025-09-17 09:27:32 +0000 (Wed, 17 Sep 2025)
Log Message:
-----------
use a shared script message handler

Modified Paths:
--------------
    trunk/bibdesk/BDSKWKWebView.m

Modified: trunk/bibdesk/BDSKWKWebView.m
===================================================================
--- trunk/bibdesk/BDSKWKWebView.m       2025-09-17 09:16:15 UTC (rev 29593)
+++ trunk/bibdesk/BDSKWKWebView.m       2025-09-17 09:27:32 UTC (rev 29594)
@@ -40,6 +40,7 @@
 #import "NSEvent_BDSKExtensions.h"
 
 @interface BDSKScriptMessageHandler : NSObject <WKScriptMessageHandler>
++ (BDSKScriptMessageHandler *)sharedMessageHandler;
 @end
 
 @implementation BDSKWKWebView
@@ -59,7 +60,7 @@
         "}";
     WKUserContentController *userController = [[self configuration] 
userContentController];
     if ([[userController userScripts] count] == 0 || [[[userController 
userScripts] valueForKey:@"source"] containsObject:jsSource] == NO) {
-        BDSKScriptMessageHandler *messageHandler = [[BDSKScriptMessageHandler 
alloc] init];
+        BDSKScriptMessageHandler *messageHandler = [BDSKScriptMessageHandler 
sharedMessageHandler];
         [userController addScriptMessageHandler:messageHandler 
name:@"didChangeSelection"];
         [userController addScriptMessageHandler:messageHandler 
name:@"mouseDidMoveOverLink"];
         WKUserScript *script = [[WKUserScript alloc] initWithSource:jsSource 
injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:NO];
@@ -99,6 +100,13 @@
 
 @implementation BDSKScriptMessageHandler
 
++ (BDSKScriptMessageHandler *)sharedMessageHandler {
+    static BDSKScriptMessageHandler *sharedMessageHandler = nil;
+    if (sharedMessageHandler == nil)
+        sharedMessageHandler = [[self alloc] init];
+    return sharedMessageHandler;
+}
+
 - (void)userContentController:(WKUserContentController *)userContentController 
didReceiveScriptMessage:(WKScriptMessage *)message {
     WKWebView *webView = [message webView];
     if ([webView isKindOfClass:[BDSKWKWebView class]] == NO)

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to