[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
cblu
cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 05:54:51 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 81caa02325baf3b06f596dc21338307927718d1f
Author: cblu <cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jan 31 23:23:12 2002 +0000
Added support for hidden plug-ins. Added focus events
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@571 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/kwq/WKPluginView.h b/WebCore/kwq/WKPluginView.h
index 37c3e0a..ffad78d 100644
--- a/WebCore/kwq/WKPluginView.h
+++ b/WebCore/kwq/WKPluginView.h
@@ -10,27 +10,29 @@
#include <qwidget.h>
#import <WKPlugin.h>
#include "npapi.h"
-#include "kwqdebug.h"
typedef NPStream* NPS;
@interface WKPluginView : NSQuickDrawView {
QWidget *widget;
- bool isFlipped;
+ WKPlugin *plugin;
+
NPP instance;
NPP_t instanceStruct;
NPStream streamStruct;
NPS stream;
- int32 streamOffset;
- NSString *url, *mime;
- WKPlugin *plugin;
- bool transferred;
NPWindow window;
NP_Port nPort;
+
+ int32 streamOffset;
uint16 transferMode;
char **cAttributes, **cValues;
-
+ bool isFlipped, transferred, hidden;
+
+ NSString *url, *mime;
+ NSTrackingRectTag trackingTag;
+
NPP_NewProcPtr NPP_New;
NPP_DestroyProcPtr NPP_Destroy;
NPP_SetWindowProcPtr NPP_SetWindow;
@@ -49,16 +51,20 @@ typedef NPStream* NPS;
- initWithFrame: (NSRect) r widget: (QWidget *)w plugin: (WKPlugin *)plug url: (NSString *)location mime:(NSString *)mime arguments:(NSDictionary *)arguments;
-(void)drawRect:(NSRect)rect;
+-(void) setWindow:(NSRect)rect;
-(BOOL)acceptsFirstResponder;
+-(BOOL)becomeFirstResponder;
+-(BOOL)resignFirstResponder;
+-(void)sendActivateEvent;
+-(void)sendUpdateEvent;
-(void)sendNullEvents;
-(void)mouseDown:(NSEvent *)theEvent;
-(void)mouseUp:(NSEvent *)theEvent;
-- (void)mouseDragged:(NSEvent *)theEvent;
-- (void)mouseEntered:(NSEvent *)theEvent;
-- (void)mouseExited:(NSEvent *)theEvent;
-- (void)mouseMoved:(NSEvent *)theEvent;
-- (void)keyDown:(NSEvent *)theEvent;
-- (void)keyUp:(NSEvent *)theEvent;
+-(void)mouseDragged:(NSEvent *)theEvent;
+-(void)mouseEntered:(NSEvent *)theEvent;
+-(void)mouseExited:(NSEvent *)theEvent;
+-(void)keyDown:(NSEvent *)theEvent;
+-(void)keyUp:(NSEvent *)theEvent;
-(void)dealloc;
// plug-in to browser calls
diff --git a/WebCore/kwq/WKPluginView.mm b/WebCore/kwq/WKPluginView.mm
index d97b702..f993925 100644
--- a/WebCore/kwq/WKPluginView.mm
+++ b/WebCore/kwq/WKPluginView.mm
@@ -10,6 +10,11 @@
#include <WCURICacheData.h>
#include <WCURICache.h>
#include <Carbon/Carbon.h>
+#include "kwqdebug.h"
+
+//#define USE_CARBON 1
+//#import <AppKit/NSWindow_Private.h>
+
@implementation WKPluginView
@@ -22,7 +27,7 @@
NSArray *attributes, *values;
NSString *attributeString;
uint i;
-
+
[super initWithFrame: r];
instance = &instanceStruct;
@@ -60,40 +65,36 @@
cValues[i] = s;
}
[mime getCString:cMime];
- npErr = NPP_New(cMime, instance, NP_EMBED, [arguments count], cAttributes, cValues, &saved); // need to pass attributes to plug-in
+ npErr = NPP_New(cMime, instance, NP_EMBED, [arguments count], cAttributes, cValues, &saved);
KWQDebug("NPP_New: %d\n", npErr);
+
+ if([attributes containsObject:@"HIDDEN"]){
+ hidden = TRUE;
+ }else{
+ hidden = FALSE;
+ }
transferred = FALSE;
- [[self window] setAcceptsMouseMovedEvents:YES];
- [self performSelector:@selector(sendNullEvents) withObject:nil afterDelay:0];
+ trackingTag = [self addTrackingRect:r owner:self userData:nil assumeInside:NO];
+ [self performSelector:@selector(sendNullEvents) withObject:nil afterDelay:2];
return self;
}
-- (void)drawRect:(NSRect)rect {
+- (void)drawRect:(NSRect)rect
+{
NPError npErr;
char cMime[200], cURL[800];
id <WCURICache> cache;
- NSRect frame;
+ //WindowRef windowRef;
- frame = [self frame];
- nPort.port = [self qdPort];
- nPort.portx = (int32)rect.origin.x;
- nPort.porty = (int32)rect.origin.y;
- window.window = &nPort;
- window.x = 0;
- window.y = 0;
- window.width = (uint32)frame.size.width;
- window.height = (uint32)frame.size.height;
- window.clipRect.top = (uint16)rect.origin.y; // clip rect
- window.clipRect.left = (uint16)rect.origin.x;
- window.clipRect.bottom = (uint16)rect.size.height;
- window.clipRect.right = (uint16)rect.size.width;
- window.type = NPWindowTypeDrawable;
+ //windowRef = [[self window] _windowRef]; // give the window a WindowRef
+ //windowRef->port = [self qdPort];
- npErr = NPP_SetWindow(instance, &window);
- KWQDebug("NPP_SetWindow: %d rect.size.height=%d rect.size.width=%d port=%d rect.origin.x=%f rect.origin.y=%f\n", npErr, (int)rect.size.height, (int)rect.size.width, (int)nPort.port, rect.origin.x, rect.origin.y);
- KWQDebug("frame.size.height=%d frame.size.width=%d frame.origin.x=%f frame.origin.y=%f\n", (int)frame.size.height, (int)frame.size.width, frame.origin.x, frame.origin.y);
+ //MoveTo(0,0); // diagnol line test
+ //LineTo((short)rect.size.width, (short)rect.size.height);
+ [self setWindow:rect];
if(!transferred){
+ [self sendActivateEvent];
[url getCString:cURL];
stream->url = cURL;
stream->end = 0;
@@ -107,23 +108,54 @@
cache = WCGetDefaultURICache();
if(transferMode == NP_NORMAL){
KWQDebug("Stream type: NP_NORMAL\n");
- transferMode = NP_ASFILEONLY;
[cache requestWithString:url requestor:self userData:nil];
}else if(transferMode == NP_ASFILEONLY){
KWQDebug("Stream type: NP_ASFILEONLY not yet supported\n");
- transferMode = NP_ASFILEONLY;
}else if(transferMode == NP_ASFILE){
KWQDebug("Stream type: NP_ASFILE not fully supported\n");
- transferMode = NP_ASFILE;
[cache requestWithString:url requestor:self userData:nil];
}else if(transferMode == NP_SEEK){
KWQDebug("Stream type: NP_SEEK not yet supported\n");
- transferMode = NP_SEEK;
}
transferred = TRUE;
+
}
+ [self sendUpdateEvent];
}
+- (void) setWindow:(NSRect)rect
+{
+ NPError npErr;
+ NSRect frame, frameInWindow;
+
+ frame = [self frame];
+ frameInWindow = [self convertRect:rect toView:nil];
+
+ nPort.port = [self qdPort];
+ nPort.portx = 0;
+ nPort.porty = 0;
+ window.window = &nPort;
+
+ window.x = 0;
+ window.y = 0;
+
+ window.width = (uint32)frame.size.width;
+ window.height = (uint32)frame.size.height;
+
+ window.clipRect.top = (uint16)rect.origin.y; // clip rect
+ window.clipRect.left = (uint16)rect.origin.x;
+ window.clipRect.bottom = (uint16)rect.size.height;
+ window.clipRect.right = (uint16)rect.size.width;
+
+ window.type = NPWindowTypeDrawable;
+
+ npErr = NPP_SetWindow(instance, &window);
+ KWQDebug("NPP_SetWindow: %d rect.size.height=%d rect.size.width=%d port=%d rect.origin.x=%f rect.origin.y=%f\n", npErr, (int)rect.size.height, (int)rect.size.width, (int)nPort.port, rect.origin.x, rect.origin.y);
+ KWQDebug("frame.size.height=%d frame.size.width=%d frame.origin.x=%f frame.origin.y=%f\n", (int)frame.size.height, (int)frame.size.width, frame.origin.x, frame.origin.y);
+ KWQDebug("frameInWindow.size.height=%d frameInWindow.size.width=%d frameInWindow.origin.x=%f frameInWindow.origin.y=%f\n", (int)frameInWindow.size.height, (int)frameInWindow.size.width, frameInWindow.origin.x, frameInWindow.origin.y);
+}
+
+// cache methods
-(void)cacheDataAvailable:(NSNotification *)notification
{
@@ -151,12 +183,40 @@
KWQDebug("NPP_DestroyStream: %d\n", npErr);
}
+// event methods
+
-(BOOL)acceptsFirstResponder
{
- return true;
+ return YES;
}
-// event methods
+- (BOOL)becomeFirstResponder
+{
+ EventRecord event;
+ bool acceptedEvent;
+ UnsignedWide msecs;
+
+ event.what = getFocusEvent;
+ Microseconds(&msecs);
+ event.when = (uint32)((double)UnsignedWideToUInt64(msecs) / 1000000 * 60); // microseconds to ticks
+ acceptedEvent = NPP_HandleEvent(instance, &event);
+ KWQDebug("NPP_HandleEvent(getFocusEvent): %d when: %u\n", acceptedEvent, event.when);
+ return YES;
+}
+
+- (BOOL)resignFirstResponder
+{
+ EventRecord event;
+ bool acceptedEvent;
+ UnsignedWide msecs;
+
+ event.what = loseFocusEvent;
+ Microseconds(&msecs);
+ event.when = (uint32)((double)UnsignedWideToUInt64(msecs) / 1000000 * 60); // microseconds to ticks
+ acceptedEvent = NPP_HandleEvent(instance, &event);
+ KWQDebug("NPP_HandleEvent(loseFocusEvent): %d when: %u\n", acceptedEvent, event.when);
+ return YES;
+}
-(void)sendNullEvents
{
@@ -167,11 +227,39 @@
event.what = nullEvent;
Microseconds(&msecs);
event.when = (uint32)((double)UnsignedWideToUInt64(msecs) / 1000000 * 60); // microseconds to ticks
- acceptedEvent = NPP_HandleEvent(instance, &event);
+ acceptedEvent = NPP_HandleEvent(instance, &event);
//KWQDebug("NPP_HandleEvent(nullEvent): %d when: %u\n", acceptedEvent, event.when);
[self performSelector:@selector(sendNullEvents) withObject:nil afterDelay:0];
}
+-(void)sendActivateEvent
+{
+ EventRecord event;
+ bool acceptedEvent;
+ UnsignedWide msecs;
+
+ event.what = activateEvt;
+ event.message = (UInt32)[self qdPort];
+ Microseconds(&msecs);
+ event.when = (uint32)((double)UnsignedWideToUInt64(msecs) / 1000000 * 60); // microseconds to ticks
+ acceptedEvent = NPP_HandleEvent(instance, &event);
+ KWQDebug("NPP_HandleEvent(activateEvent): %d when: %u\n", acceptedEvent, event.when);
+}
+
+-(void)sendUpdateEvent
+{
+ EventRecord event;
+ bool acceptedEvent;
+ UnsignedWide msecs;
+
+ event.what = updateEvt;
+ event.message = (UInt32)[self qdPort];
+ Microseconds(&msecs);
+ event.when = (uint32)((double)UnsignedWideToUInt64(msecs) / 1000000 * 60); // microseconds to ticks
+ acceptedEvent = NPP_HandleEvent(instance, &event);
+ KWQDebug("NPP_HandleEvent(updateEvt): %d when: %u\n", acceptedEvent, event.when);
+}
+
-(void)mouseDown:(NSEvent *)theEvent
{
EventRecord event;
@@ -233,11 +321,15 @@
KWQDebug("NPP_HandleEvent(mouseDragged): %d pt.v=%d, pt.h=%d ticks=%u\n", acceptedEvent, pt.v, pt.h, event.when);
}
+//FIXME: mouseEntered and mouseExited are not being called for some reason
- (void)mouseEntered:(NSEvent *)theEvent
{
EventRecord event;
bool acceptedEvent;
+ KWQDebug("NPP_HandleEvent(mouseEntered)\n");
+ if([theEvent trackingNumber] != trackingTag)
+ return;
event.what = adjustCursorEvent;
event.when = (uint32)([theEvent timestamp] * 60);
acceptedEvent = NPP_HandleEvent(instance, &event);
@@ -249,27 +341,25 @@
EventRecord event;
bool acceptedEvent;
+ if([theEvent trackingNumber] != trackingTag)
+ return;
event.what = adjustCursorEvent;
event.when = (uint32)([theEvent timestamp] * 60);
acceptedEvent = NPP_HandleEvent(instance, &event);
KWQDebug("NPP_HandleEvent(mouseExited): %d\n", acceptedEvent);
}
-- (void)mouseMoved:(NSEvent *)theEvent{
- KWQDebug("mouseMoved\n");
-}
-
- (void)keyUp:(NSEvent *)theEvent
{
-
EventRecord event;
bool acceptedEvent;
-
+
event.what = keyUp;
- event.message = [theEvent keyCode];
+ event.message = [[theEvent charactersIgnoringModifiers] characterAtIndex:0];
event.when = (uint32)([theEvent timestamp] * 60);
acceptedEvent = NPP_HandleEvent(instance, &event);
- KWQDebug("NPP_HandleEvent(keyUp): %d key:%d\n", acceptedEvent, event.message);
+ KWQDebug("NPP_HandleEvent(keyUp): %d key:%c\n", acceptedEvent, (event.message & charCodeMask));
+ //Note: QT Plug-in doesn't use keyUp's
}
- (void)keyDown:(NSEvent *)theEvent
@@ -278,10 +368,10 @@
bool acceptedEvent;
event.what = keyDown;
- event.message = [theEvent keyCode];
+ event.message = [[theEvent charactersIgnoringModifiers] characterAtIndex:0];
event.when = (uint32)([theEvent timestamp] * 60);
acceptedEvent = NPP_HandleEvent(instance, &event);
- KWQDebug("NPP_HandleEvent(keyDown): %d key:%d\n", acceptedEvent, event.message);
+ KWQDebug("NPP_HandleEvent(keyDown): %d key:%c\n", acceptedEvent, (event.message & charCodeMask));
}
// plug-in to browser calls
@@ -364,7 +454,8 @@
-(void)dealloc
{
NPError npErr;
- //[self cancelPreviousPerformRequestsWithTarget:self selector:@selector(sendNullEvents) object:nil]; //compiler can't find this method!
+ //FIX ME: compiler can't find this method!
+ //[self cancelPreviousPerformRequestsWithTarget:self selector:@selector(sendNullEvents) object:nil];
npErr = NPP_Destroy(instance, NULL);
KWQDebug("NPP_Destroy: %d\n", npErr);
[super dealloc];
diff --git a/WebCore/kwq/npapi.mm b/WebCore/kwq/npapi.mm
index 3165dda..b884d5e 100644
--- a/WebCore/kwq/npapi.mm
+++ b/WebCore/kwq/npapi.mm
@@ -1,32 +1,33 @@
#include "npapi.h"
#include <WKPluginView.h>
+#include "kwqdebug.h"
// general plug-in to browser functions
const char* NPN_UserAgent(NPP instance){
- printf("NPN_UserAgent\n");
+ KWQDebug("NPN_UserAgent\n");
return "IE";
}
void* NPN_MemAlloc(UInt32 size){
- printf("NPN_MemAlloc\n");
+ KWQDebug("NPN_MemAlloc\n");
return malloc(size);
}
void NPN_MemFree(void* ptr){
- printf("NPN_MemFree\n");
+ KWQDebug("NPN_MemFree\n");
free(ptr);
}
UInt32 NPN_MemFlush(UInt32 size){
- printf("NPN_MemFlush\n");
+ KWQDebug("NPN_MemFlush\n");
return 0;
}
void NPN_ReloadPlugins(NPBool reloadPages){
- printf("NPN_ReloadPlugins\n");
+ KWQDebug("NPN_ReloadPlugins\n");
}
diff --git a/WebCore/src/kwq/WKPluginView.h b/WebCore/src/kwq/WKPluginView.h
index 37c3e0a..ffad78d 100644
--- a/WebCore/src/kwq/WKPluginView.h
+++ b/WebCore/src/kwq/WKPluginView.h
@@ -10,27 +10,29 @@
#include <qwidget.h>
#import <WKPlugin.h>
#include "npapi.h"
-#include "kwqdebug.h"
typedef NPStream* NPS;
@interface WKPluginView : NSQuickDrawView {
QWidget *widget;
- bool isFlipped;
+ WKPlugin *plugin;
+
NPP instance;
NPP_t instanceStruct;
NPStream streamStruct;
NPS stream;
- int32 streamOffset;
- NSString *url, *mime;
- WKPlugin *plugin;
- bool transferred;
NPWindow window;
NP_Port nPort;
+
+ int32 streamOffset;
uint16 transferMode;
char **cAttributes, **cValues;
-
+ bool isFlipped, transferred, hidden;
+
+ NSString *url, *mime;
+ NSTrackingRectTag trackingTag;
+
NPP_NewProcPtr NPP_New;
NPP_DestroyProcPtr NPP_Destroy;
NPP_SetWindowProcPtr NPP_SetWindow;
@@ -49,16 +51,20 @@ typedef NPStream* NPS;
- initWithFrame: (NSRect) r widget: (QWidget *)w plugin: (WKPlugin *)plug url: (NSString *)location mime:(NSString *)mime arguments:(NSDictionary *)arguments;
-(void)drawRect:(NSRect)rect;
+-(void) setWindow:(NSRect)rect;
-(BOOL)acceptsFirstResponder;
+-(BOOL)becomeFirstResponder;
+-(BOOL)resignFirstResponder;
+-(void)sendActivateEvent;
+-(void)sendUpdateEvent;
-(void)sendNullEvents;
-(void)mouseDown:(NSEvent *)theEvent;
-(void)mouseUp:(NSEvent *)theEvent;
-- (void)mouseDragged:(NSEvent *)theEvent;
-- (void)mouseEntered:(NSEvent *)theEvent;
-- (void)mouseExited:(NSEvent *)theEvent;
-- (void)mouseMoved:(NSEvent *)theEvent;
-- (void)keyDown:(NSEvent *)theEvent;
-- (void)keyUp:(NSEvent *)theEvent;
+-(void)mouseDragged:(NSEvent *)theEvent;
+-(void)mouseEntered:(NSEvent *)theEvent;
+-(void)mouseExited:(NSEvent *)theEvent;
+-(void)keyDown:(NSEvent *)theEvent;
+-(void)keyUp:(NSEvent *)theEvent;
-(void)dealloc;
// plug-in to browser calls
diff --git a/WebCore/src/kwq/WKPluginView.mm b/WebCore/src/kwq/WKPluginView.mm
index d97b702..f993925 100644
--- a/WebCore/src/kwq/WKPluginView.mm
+++ b/WebCore/src/kwq/WKPluginView.mm
@@ -10,6 +10,11 @@
#include <WCURICacheData.h>
#include <WCURICache.h>
#include <Carbon/Carbon.h>
+#include "kwqdebug.h"
+
+//#define USE_CARBON 1
+//#import <AppKit/NSWindow_Private.h>
+
@implementation WKPluginView
@@ -22,7 +27,7 @@
NSArray *attributes, *values;
NSString *attributeString;
uint i;
-
+
[super initWithFrame: r];
instance = &instanceStruct;
@@ -60,40 +65,36 @@
cValues[i] = s;
}
[mime getCString:cMime];
- npErr = NPP_New(cMime, instance, NP_EMBED, [arguments count], cAttributes, cValues, &saved); // need to pass attributes to plug-in
+ npErr = NPP_New(cMime, instance, NP_EMBED, [arguments count], cAttributes, cValues, &saved);
KWQDebug("NPP_New: %d\n", npErr);
+
+ if([attributes containsObject:@"HIDDEN"]){
+ hidden = TRUE;
+ }else{
+ hidden = FALSE;
+ }
transferred = FALSE;
- [[self window] setAcceptsMouseMovedEvents:YES];
- [self performSelector:@selector(sendNullEvents) withObject:nil afterDelay:0];
+ trackingTag = [self addTrackingRect:r owner:self userData:nil assumeInside:NO];
+ [self performSelector:@selector(sendNullEvents) withObject:nil afterDelay:2];
return self;
}
-- (void)drawRect:(NSRect)rect {
+- (void)drawRect:(NSRect)rect
+{
NPError npErr;
char cMime[200], cURL[800];
id <WCURICache> cache;
- NSRect frame;
+ //WindowRef windowRef;
- frame = [self frame];
- nPort.port = [self qdPort];
- nPort.portx = (int32)rect.origin.x;
- nPort.porty = (int32)rect.origin.y;
- window.window = &nPort;
- window.x = 0;
- window.y = 0;
- window.width = (uint32)frame.size.width;
- window.height = (uint32)frame.size.height;
- window.clipRect.top = (uint16)rect.origin.y; // clip rect
- window.clipRect.left = (uint16)rect.origin.x;
- window.clipRect.bottom = (uint16)rect.size.height;
- window.clipRect.right = (uint16)rect.size.width;
- window.type = NPWindowTypeDrawable;
+ //windowRef = [[self window] _windowRef]; // give the window a WindowRef
+ //windowRef->port = [self qdPort];
- npErr = NPP_SetWindow(instance, &window);
- KWQDebug("NPP_SetWindow: %d rect.size.height=%d rect.size.width=%d port=%d rect.origin.x=%f rect.origin.y=%f\n", npErr, (int)rect.size.height, (int)rect.size.width, (int)nPort.port, rect.origin.x, rect.origin.y);
- KWQDebug("frame.size.height=%d frame.size.width=%d frame.origin.x=%f frame.origin.y=%f\n", (int)frame.size.height, (int)frame.size.width, frame.origin.x, frame.origin.y);
+ //MoveTo(0,0); // diagnol line test
+ //LineTo((short)rect.size.width, (short)rect.size.height);
+ [self setWindow:rect];
if(!transferred){
+ [self sendActivateEvent];
[url getCString:cURL];
stream->url = cURL;
stream->end = 0;
@@ -107,23 +108,54 @@
cache = WCGetDefaultURICache();
if(transferMode == NP_NORMAL){
KWQDebug("Stream type: NP_NORMAL\n");
- transferMode = NP_ASFILEONLY;
[cache requestWithString:url requestor:self userData:nil];
}else if(transferMode == NP_ASFILEONLY){
KWQDebug("Stream type: NP_ASFILEONLY not yet supported\n");
- transferMode = NP_ASFILEONLY;
}else if(transferMode == NP_ASFILE){
KWQDebug("Stream type: NP_ASFILE not fully supported\n");
- transferMode = NP_ASFILE;
[cache requestWithString:url requestor:self userData:nil];
}else if(transferMode == NP_SEEK){
KWQDebug("Stream type: NP_SEEK not yet supported\n");
- transferMode = NP_SEEK;
}
transferred = TRUE;
+
}
+ [self sendUpdateEvent];
}
+- (void) setWindow:(NSRect)rect
+{
+ NPError npErr;
+ NSRect frame, frameInWindow;
+
+ frame = [self frame];
+ frameInWindow = [self convertRect:rect toView:nil];
+
+ nPort.port = [self qdPort];
+ nPort.portx = 0;
+ nPort.porty = 0;
+ window.window = &nPort;
+
+ window.x = 0;
+ window.y = 0;
+
+ window.width = (uint32)frame.size.width;
+ window.height = (uint32)frame.size.height;
+
+ window.clipRect.top = (uint16)rect.origin.y; // clip rect
+ window.clipRect.left = (uint16)rect.origin.x;
+ window.clipRect.bottom = (uint16)rect.size.height;
+ window.clipRect.right = (uint16)rect.size.width;
+
+ window.type = NPWindowTypeDrawable;
+
+ npErr = NPP_SetWindow(instance, &window);
+ KWQDebug("NPP_SetWindow: %d rect.size.height=%d rect.size.width=%d port=%d rect.origin.x=%f rect.origin.y=%f\n", npErr, (int)rect.size.height, (int)rect.size.width, (int)nPort.port, rect.origin.x, rect.origin.y);
+ KWQDebug("frame.size.height=%d frame.size.width=%d frame.origin.x=%f frame.origin.y=%f\n", (int)frame.size.height, (int)frame.size.width, frame.origin.x, frame.origin.y);
+ KWQDebug("frameInWindow.size.height=%d frameInWindow.size.width=%d frameInWindow.origin.x=%f frameInWindow.origin.y=%f\n", (int)frameInWindow.size.height, (int)frameInWindow.size.width, frameInWindow.origin.x, frameInWindow.origin.y);
+}
+
+// cache methods
-(void)cacheDataAvailable:(NSNotification *)notification
{
@@ -151,12 +183,40 @@
KWQDebug("NPP_DestroyStream: %d\n", npErr);
}
+// event methods
+
-(BOOL)acceptsFirstResponder
{
- return true;
+ return YES;
}
-// event methods
+- (BOOL)becomeFirstResponder
+{
+ EventRecord event;
+ bool acceptedEvent;
+ UnsignedWide msecs;
+
+ event.what = getFocusEvent;
+ Microseconds(&msecs);
+ event.when = (uint32)((double)UnsignedWideToUInt64(msecs) / 1000000 * 60); // microseconds to ticks
+ acceptedEvent = NPP_HandleEvent(instance, &event);
+ KWQDebug("NPP_HandleEvent(getFocusEvent): %d when: %u\n", acceptedEvent, event.when);
+ return YES;
+}
+
+- (BOOL)resignFirstResponder
+{
+ EventRecord event;
+ bool acceptedEvent;
+ UnsignedWide msecs;
+
+ event.what = loseFocusEvent;
+ Microseconds(&msecs);
+ event.when = (uint32)((double)UnsignedWideToUInt64(msecs) / 1000000 * 60); // microseconds to ticks
+ acceptedEvent = NPP_HandleEvent(instance, &event);
+ KWQDebug("NPP_HandleEvent(loseFocusEvent): %d when: %u\n", acceptedEvent, event.when);
+ return YES;
+}
-(void)sendNullEvents
{
@@ -167,11 +227,39 @@
event.what = nullEvent;
Microseconds(&msecs);
event.when = (uint32)((double)UnsignedWideToUInt64(msecs) / 1000000 * 60); // microseconds to ticks
- acceptedEvent = NPP_HandleEvent(instance, &event);
+ acceptedEvent = NPP_HandleEvent(instance, &event);
//KWQDebug("NPP_HandleEvent(nullEvent): %d when: %u\n", acceptedEvent, event.when);
[self performSelector:@selector(sendNullEvents) withObject:nil afterDelay:0];
}
+-(void)sendActivateEvent
+{
+ EventRecord event;
+ bool acceptedEvent;
+ UnsignedWide msecs;
+
+ event.what = activateEvt;
+ event.message = (UInt32)[self qdPort];
+ Microseconds(&msecs);
+ event.when = (uint32)((double)UnsignedWideToUInt64(msecs) / 1000000 * 60); // microseconds to ticks
+ acceptedEvent = NPP_HandleEvent(instance, &event);
+ KWQDebug("NPP_HandleEvent(activateEvent): %d when: %u\n", acceptedEvent, event.when);
+}
+
+-(void)sendUpdateEvent
+{
+ EventRecord event;
+ bool acceptedEvent;
+ UnsignedWide msecs;
+
+ event.what = updateEvt;
+ event.message = (UInt32)[self qdPort];
+ Microseconds(&msecs);
+ event.when = (uint32)((double)UnsignedWideToUInt64(msecs) / 1000000 * 60); // microseconds to ticks
+ acceptedEvent = NPP_HandleEvent(instance, &event);
+ KWQDebug("NPP_HandleEvent(updateEvt): %d when: %u\n", acceptedEvent, event.when);
+}
+
-(void)mouseDown:(NSEvent *)theEvent
{
EventRecord event;
@@ -233,11 +321,15 @@
KWQDebug("NPP_HandleEvent(mouseDragged): %d pt.v=%d, pt.h=%d ticks=%u\n", acceptedEvent, pt.v, pt.h, event.when);
}
+//FIXME: mouseEntered and mouseExited are not being called for some reason
- (void)mouseEntered:(NSEvent *)theEvent
{
EventRecord event;
bool acceptedEvent;
+ KWQDebug("NPP_HandleEvent(mouseEntered)\n");
+ if([theEvent trackingNumber] != trackingTag)
+ return;
event.what = adjustCursorEvent;
event.when = (uint32)([theEvent timestamp] * 60);
acceptedEvent = NPP_HandleEvent(instance, &event);
@@ -249,27 +341,25 @@
EventRecord event;
bool acceptedEvent;
+ if([theEvent trackingNumber] != trackingTag)
+ return;
event.what = adjustCursorEvent;
event.when = (uint32)([theEvent timestamp] * 60);
acceptedEvent = NPP_HandleEvent(instance, &event);
KWQDebug("NPP_HandleEvent(mouseExited): %d\n", acceptedEvent);
}
-- (void)mouseMoved:(NSEvent *)theEvent{
- KWQDebug("mouseMoved\n");
-}
-
- (void)keyUp:(NSEvent *)theEvent
{
-
EventRecord event;
bool acceptedEvent;
-
+
event.what = keyUp;
- event.message = [theEvent keyCode];
+ event.message = [[theEvent charactersIgnoringModifiers] characterAtIndex:0];
event.when = (uint32)([theEvent timestamp] * 60);
acceptedEvent = NPP_HandleEvent(instance, &event);
- KWQDebug("NPP_HandleEvent(keyUp): %d key:%d\n", acceptedEvent, event.message);
+ KWQDebug("NPP_HandleEvent(keyUp): %d key:%c\n", acceptedEvent, (event.message & charCodeMask));
+ //Note: QT Plug-in doesn't use keyUp's
}
- (void)keyDown:(NSEvent *)theEvent
@@ -278,10 +368,10 @@
bool acceptedEvent;
event.what = keyDown;
- event.message = [theEvent keyCode];
+ event.message = [[theEvent charactersIgnoringModifiers] characterAtIndex:0];
event.when = (uint32)([theEvent timestamp] * 60);
acceptedEvent = NPP_HandleEvent(instance, &event);
- KWQDebug("NPP_HandleEvent(keyDown): %d key:%d\n", acceptedEvent, event.message);
+ KWQDebug("NPP_HandleEvent(keyDown): %d key:%c\n", acceptedEvent, (event.message & charCodeMask));
}
// plug-in to browser calls
@@ -364,7 +454,8 @@
-(void)dealloc
{
NPError npErr;
- //[self cancelPreviousPerformRequestsWithTarget:self selector:@selector(sendNullEvents) object:nil]; //compiler can't find this method!
+ //FIX ME: compiler can't find this method!
+ //[self cancelPreviousPerformRequestsWithTarget:self selector:@selector(sendNullEvents) object:nil];
npErr = NPP_Destroy(instance, NULL);
KWQDebug("NPP_Destroy: %d\n", npErr);
[super dealloc];
diff --git a/WebCore/src/kwq/npapi.mm b/WebCore/src/kwq/npapi.mm
index 3165dda..b884d5e 100644
--- a/WebCore/src/kwq/npapi.mm
+++ b/WebCore/src/kwq/npapi.mm
@@ -1,32 +1,33 @@
#include "npapi.h"
#include <WKPluginView.h>
+#include "kwqdebug.h"
// general plug-in to browser functions
const char* NPN_UserAgent(NPP instance){
- printf("NPN_UserAgent\n");
+ KWQDebug("NPN_UserAgent\n");
return "IE";
}
void* NPN_MemAlloc(UInt32 size){
- printf("NPN_MemAlloc\n");
+ KWQDebug("NPN_MemAlloc\n");
return malloc(size);
}
void NPN_MemFree(void* ptr){
- printf("NPN_MemFree\n");
+ KWQDebug("NPN_MemFree\n");
free(ptr);
}
UInt32 NPN_MemFlush(UInt32 size){
- printf("NPN_MemFlush\n");
+ KWQDebug("NPN_MemFlush\n");
return 0;
}
void NPN_ReloadPlugins(NPBool reloadPages){
- printf("NPN_ReloadPlugins\n");
+ KWQDebug("NPN_ReloadPlugins\n");
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list