зеркало из https://github.com/mozilla/gecko-dev.git
Fix for bug 129168. Don't call ForceRedraw() when already processing an update event. sr=beard.
This commit is contained in:
Родитель
6e14b2d1a5
Коммит
f9ac3882ab
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче