diff --git a/modules/onscreengui/onscreenguimodule.cpp b/modules/onscreengui/onscreenguimodule.cpp index c4096e8726..83bc00f106 100644 --- a/modules/onscreengui/onscreenguimodule.cpp +++ b/modules/onscreengui/onscreenguimodule.cpp @@ -42,6 +42,7 @@ namespace openspace { gui::GUI OnScreenGUIModule::gui; +Touch OnScreenGUIModule::touchInput; OnScreenGUIModule::OnScreenGUIModule() : OpenSpaceModule("OnScreenGUI") @@ -135,7 +136,10 @@ OnScreenGUIModule::OnScreenGUIModule() uint32_t mouseButtons = wrapper.mouseButtons(2); double dt = std::max(wrapper.averageDeltaTime(), 0.0); - + if (touchInput.active && mouseButtons == 0) { + mouseButtons = touchInput.action; + mousePosition = touchInput.pos; + } // We don't do any collection of immediate mode user interface, so it is // fine to open and close a frame immediately gui.startFrame( diff --git a/modules/onscreengui/onscreenguimodule.h b/modules/onscreengui/onscreenguimodule.h index 6576843c68..cd94b58d28 100644 --- a/modules/onscreengui/onscreenguimodule.h +++ b/modules/onscreengui/onscreenguimodule.h @@ -30,12 +30,19 @@ #include namespace openspace { - + +struct Touch { + bool active; + glm::vec2 pos; + uint32_t action; +}; + class OnScreenGUIModule : public OpenSpaceModule { public: OnScreenGUIModule(); static gui::GUI gui; + static Touch touchInput; }; } // namespace openspace