Author: toshok
Date: 2008-01-23 21:57:03 -0500 (Wed, 23 Jan 2008)
New Revision: 93760
Modified:
trunk/moon/src/ChangeLog
trunk/moon/src/runtime.cpp
Log:
2008-01-23 Chris Toshok <[EMAIL PROTECTED]>
* runtime.cpp (Surface::HandleMouseEvent): don't crash when we
re-enter HandleMouseEvent, which can happen when that stupid JS
timeout dialog pops up.
Modified: trunk/moon/src/ChangeLog
===================================================================
--- trunk/moon/src/ChangeLog 2008-01-24 01:58:43 UTC (rev 93759)
+++ trunk/moon/src/ChangeLog 2008-01-24 02:57:03 UTC (rev 93760)
@@ -1,5 +1,11 @@
2008-01-23 Chris Toshok <[EMAIL PROTECTED]>
+ * runtime.cpp (Surface::HandleMouseEvent): don't crash when we
+ re-enter HandleMouseEvent, which can happen when that stupid JS
+ timeout dialog pops up.
+
+2008-01-23 Chris Toshok <[EMAIL PROTECTED]>
+
* runtime.cpp (Surface::SetMouseCapture): this fails not only if
there's an existing capture, but also if there's a pending
capture (so if both a parent and child capture on the same event,
Modified: trunk/moon/src/runtime.cpp
===================================================================
--- trunk/moon/src/runtime.cpp 2008-01-24 01:58:43 UTC (rev 93759)
+++ trunk/moon/src/runtime.cpp 2008-01-24 02:57:03 UTC (rev 93760)
@@ -1111,6 +1111,19 @@
void
Surface::HandleMouseEvent (MoonlightEventEmitFunc emitter, bool emit_leave,
bool emit_enter, bool force_emit, GdkEvent *event)
{
+ // we can end up here if mozilla pops up the JS timeout
+ // dialog. The problem is that JS might have registered a
+ // handler for the event we're going to emit, so when we end
+ // up tripping the timeout while in JS, mozilla pops up the
+ // dialog, which causes a crossing-notify event to be emitted.
+ // This causes HandleMouseEvent to be called, and the original
+ // input_list is deleted. the crossing-notify event is
+ // handled, then we return to the event that tripped the
+ // timeout, we crash.
+ if (emittingMouseEvent) {
+ return;
+ }
+
if (event == NULL)
return;
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches