Fix for bug 129168. Don't call ForceRedraw() when already processing an update event. sr=beard.

This commit is contained in:
bnesse%netscape.com 2002-03-08 21:29:58 +00:00
Родитель 6e14b2d1a5
Коммит f9ac3882ab
3 изменённых файлов: 10 добавлений и 4 удалений

Просмотреть файл

@ -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

Просмотреть файл

@ -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();
}

Просмотреть файл

@ -463,7 +463,7 @@ public:
private:
void pushInstance(void);
void popInstance(void);
void inspectInstance(void);
void inspectInstance(Boolean isUpdateEvt);
private:
nsIPluginInstancePeer* mPeer;