From 697feb2d9dd956875bc574c4c600a110c06d3f81 Mon Sep 17 00:00:00 2001 From: "bnesse%netscape.com" Date: Fri, 8 Mar 2002 21:29:58 +0000 Subject: [PATCH] Fix for bug 129168. Don't call ForceRedraw() when already processing an update event. sr=beard. git-svn-id: svn://10.0.0.236/trunk@116187 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/plugin/oji/MRJCarbon/plugin/CHANGES | 4 ++++ mozilla/plugin/oji/MRJCarbon/plugin/Source/MRJPlugin.cpp | 8 +++++--- mozilla/plugin/oji/MRJCarbon/plugin/Source/MRJPlugin.h | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/mozilla/plugin/oji/MRJCarbon/plugin/CHANGES b/mozilla/plugin/oji/MRJCarbon/plugin/CHANGES index 9870777c7f9..d8375ed8722 100644 --- a/mozilla/plugin/oji/MRJCarbon/plugin/CHANGES +++ b/mozilla/plugin/oji/MRJCarbon/plugin/CHANGES @@ -1,3 +1,7 @@ +Changes since 1.0b1: + +1. Fixed code that was causing recursive painting calls. + Changes since 1.0d8: 1. Unescape file:// URLs when processing them. This allows us to launch local applets when there diff --git a/mozilla/plugin/oji/MRJCarbon/plugin/Source/MRJPlugin.cpp b/mozilla/plugin/oji/MRJCarbon/plugin/Source/MRJPlugin.cpp index 1a248ab09ee..4a256128e3e 100644 --- a/mozilla/plugin/oji/MRJCarbon/plugin/Source/MRJPlugin.cpp +++ b/mozilla/plugin/oji/MRJCarbon/plugin/Source/MRJPlugin.cpp @@ -786,13 +786,15 @@ NS_METHOD MRJPluginInstance::SetWindow(nsPluginWindow* pluginWindow) NS_METHOD MRJPluginInstance::HandleEvent(nsPluginEvent* pluginEvent, PRBool* eventHandled) { *eventHandled = PR_TRUE; + Boolean isUpdate; if (pluginEvent != NULL) { EventRecord* event = pluginEvent->event; // Check for coordinate/clipping changes. // Too bad nsPluginEventType_ClippingChangedEvent events aren't implemented. - inspectInstance(); + isUpdate = (event->what == updateEvt); + inspectInstance(isUpdate); if (event->what == nullEvent) { // Give MRJ another quantum of time. @@ -917,8 +919,8 @@ MRJSession* MRJPluginInstance::getSession() return mSession; } -void MRJPluginInstance::inspectInstance() +void MRJPluginInstance::inspectInstance(Boolean isUpdateEvt) { - if (mContext != NULL && mContext->inspectWindow() && mWindowlessPeer != NULL) + if (mContext != NULL && mContext->inspectWindow() && !isUpdateEvt && mWindowlessPeer != NULL) mWindowlessPeer->ForceRedraw(); } diff --git a/mozilla/plugin/oji/MRJCarbon/plugin/Source/MRJPlugin.h b/mozilla/plugin/oji/MRJCarbon/plugin/Source/MRJPlugin.h index 0969bd48ad9..86035762949 100644 --- a/mozilla/plugin/oji/MRJCarbon/plugin/Source/MRJPlugin.h +++ b/mozilla/plugin/oji/MRJCarbon/plugin/Source/MRJPlugin.h @@ -463,7 +463,7 @@ public: private: void pushInstance(void); void popInstance(void); - void inspectInstance(void); + void inspectInstance(Boolean isUpdateEvt); private: nsIPluginInstancePeer* mPeer;