Browse Source

Event Pass Through Fixes

This fixes a few problems with event pass through.
Peter Robinson 1 năm trước cách đây
mục cha
commit
6a7798afd5
2 tập tin đã thay đổi với 11 bổ sung3 xóa
  1. 1 1
      engine/source/2d/gui/SceneWindow.cc
  2. 10 2
      engine/source/gui/guiCanvas.cc

+ 1 - 1
engine/source/2d/gui/SceneWindow.cc

@@ -1223,7 +1223,7 @@ bool SceneWindow::sendWindowInputEvent( StringTableEntry name, const GuiEvent& e
     dSprintf(argBuffer[2], 64, "%d", event.mouseClickCount);
 
     // Call Scripts.
-    consumed = Con::executef(this, 4, name, argBuffer[0], argBuffer[1], argBuffer[2]);
+    consumed = dAtob(Con::executef(this, 4, name, argBuffer[0], argBuffer[1], argBuffer[2]));
 
     // Iterate listeners.
     for( SimSet::iterator listenerItr = mInputListeners.begin(); listenerItr != mInputListeners.end(); ++listenerItr )

+ 10 - 2
engine/source/gui/guiCanvas.cc

@@ -796,7 +796,11 @@ void GuiCanvas::rootMouseUp(const GuiEvent &event)
       mMouseCapturedControl->onTouchUp(event);
    else
    {
-      handleTouchUp(event, event.mousePoint);
+		findMouseControl(event);
+		if (bool(mMouseControl))
+		{
+			handleTouchUp(event, event.mousePoint);
+		}
    }
 }
 
@@ -850,7 +854,11 @@ void GuiCanvas::rootMouseMove(const GuiEvent &event)
    }
    else
    {
-	   handleTouchMove(event, event.mousePoint);
+		findMouseControl(event);
+		if (bool(mMouseControl))
+		{
+			handleTouchMove(event, event.mousePoint);
+		}
    }
 }