Ver Fonte

Merge pull request #606 from Ragora/bugfix-linux-assert-free-cursor

* [Linux] BugFix: Free the mouse cursor when triggering SIGTRAP
Jeff Hutchinson há 3 anos atrás
pai
commit
026409ed7f
1 ficheiros alterados com 11 adições e 0 exclusões
  1. 11 0
      Engine/source/platformX86UNIX/x86UNIXProcessControl.cpp

+ 11 - 0
Engine/source/platformX86UNIX/x86UNIXProcessControl.cpp

@@ -24,6 +24,8 @@
 #include "platformX86UNIX/x86UNIXState.h"
 #include "platformX86UNIX/x86UNIXStdConsole.h"
 #include "platform/platformInput.h"
+#include "windowManager/platformWindow.h"
+#include "windowManager/platformWindowMgr.h"
 #include "console/console.h"
 
 #include <stdlib.h>
@@ -165,6 +167,15 @@ void Platform::debugBreak()
    Con::errorf(ConsoleLogEntry::General, 
       "Platform::debugBreak: triggering SIGSEGV for core dump");
    //kill(getpid(), SIGSEGV);
+
+   // On Linux, the mouse cursor will remain trapped when the SIGTRAP below triggers so we ensure the mouse
+   // locked state is disabled prior to dropping to debug
+   PlatformWindow* firstWindow = WindowManager->getFirstWindow();
+   if (firstWindow)
+   {
+       firstWindow->setMouseLocked(false);
+   }
+
    kill(getpid(), SIGTRAP);
 }