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