diff -c -3 -r1.106 engine.cpp
*** plugins/engine/3d/engine.cpp 8 Dec 2005 07:30:47 -0000 1.106
--- plugins/engine/3d/engine.cpp 15 Dec 2005 19:26:47 -0000
***************
*** 812,819 ****
// Tell event queue that we want to handle broadcast events
CS_INITIALIZE_SYSTEM_EVENT_SHORTCUTS(objectRegistry);
! CanvasResize = csevCanvasResize (objectRegistry, G2D);
! CanvasClose = csevCanvasClose (objectRegistry, G2D);
csRef<iEventQueue> q = CS_QUERY_REGISTRY (objectRegistry, iEventQueue);
if (q)
--- 812,822 ----
// Tell event queue that we want to handle broadcast events
CS_INITIALIZE_SYSTEM_EVENT_SHORTCUTS(objectRegistry);
! if (G2D)
! {
! CanvasResize = csevCanvasResize (objectRegistry, G2D);
! CanvasClose = csevCanvasClose (objectRegistry, G2D);
! }
csRef<iEventQueue> q = CS_QUERY_REGISTRY (objectRegistry, iEventQueue);
if (q)
***************
*** 821,826 ****
--- 824,833 ----
csEventID events[5] = { SystemOpen, SystemClose,
CanvasResize, CanvasClose,
CS_EVENTLIST_END };
+
+ // discard canvas events if there is no canvas, by truncating the array
+ if (!G2D) events[2] = CS_EVENTLIST_END;
+
q->RegisterListener (scfiEventHandler, events);
}
***************
*** 953,967 ****
DeleteAll ();
return true;
}
! else if (Event.Name == CanvasResize)
{
if (((iGraphics2D *)csCommandEventHelper::GetInfo(&Event)) == G2D)
resize = true;
return false;
! }
! else if (Event.Name == CanvasClose)
! {
return false;
}
return false;
--- 960,977 ----
DeleteAll ();
return true;
}
! else if (G2D)
{
+ if (Event.Name == CanvasResize)
+ {
if (((iGraphics2D *)csCommandEventHelper::GetInfo(&Event)) == G2D)
resize = true;
return false;
! }
! else if (Event.Name == CanvasClose)
! {
return false;
+ }
}
return false;
I just noticed one other change that has to be made to make this bugfix
robust. An updated patch is attached.
- [CsMain] CVS getting stable again Jorrit Tyberghein
- Re: [CsMain] CVS getting stable again Chris Case
- [CsMain] Fix for small bug with new event syste... Mathew Sutcliffe
- Re: [CsMain] Fix for small bug with new eve... Mathew Sutcliffe
- Re: [CsMain] Fix for small bug with new eve... Eric Sunshine
