mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-31 18:19:49 -06:00
Merge branch 'master' into android-new-control-input-overlay
Conflicts: Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java
This commit is contained in:
@ -1028,6 +1028,59 @@ void CFrame::OnMouse(wxMouseEvent& event)
|
||||
event.GetPosition().x, event.GetPosition().y, event.ButtonDown());
|
||||
}
|
||||
#endif
|
||||
|
||||
// next handlers are all for FreeLook, so we don't need to check them if disabled
|
||||
if(!g_Config.bFreeLook)
|
||||
{
|
||||
event.Skip();
|
||||
return;
|
||||
}
|
||||
|
||||
// Free look variables
|
||||
static bool mouseLookEnabled = false;
|
||||
static bool mouseMoveEnabled = false;
|
||||
static float lastMouse[2];
|
||||
|
||||
if(event.MiddleDown())
|
||||
{
|
||||
lastMouse[0] = event.GetX();
|
||||
lastMouse[1] = event.GetY();
|
||||
mouseMoveEnabled = true;
|
||||
}
|
||||
else if(event.RightDown())
|
||||
{
|
||||
lastMouse[0] = event.GetX();
|
||||
lastMouse[1] = event.GetY();
|
||||
mouseLookEnabled = true;
|
||||
}
|
||||
else if(event.MiddleUp())
|
||||
{
|
||||
mouseMoveEnabled = false;
|
||||
}
|
||||
else if(event.RightUp())
|
||||
{
|
||||
mouseLookEnabled = false;
|
||||
}
|
||||
// no button, so it's a move event
|
||||
else if(event.GetButton() == wxMOUSE_BTN_NONE)
|
||||
{
|
||||
if (mouseLookEnabled)
|
||||
{
|
||||
VertexShaderManager::RotateView((event.GetX() - lastMouse[0]) / 200.0f,
|
||||
(event.GetY() - lastMouse[1]) / 200.0f);
|
||||
lastMouse[0] = event.GetX();
|
||||
lastMouse[1] = event.GetY();
|
||||
}
|
||||
|
||||
if (mouseMoveEnabled)
|
||||
{
|
||||
VertexShaderManager::TranslateView((event.GetX() - lastMouse[0]) / 50.0f,
|
||||
(event.GetY() - lastMouse[1]) / 50.0f);
|
||||
lastMouse[0] = event.GetX();
|
||||
lastMouse[1] = event.GetY();
|
||||
}
|
||||
}
|
||||
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,6 @@
|
||||
#include "Host.h"
|
||||
#include "VideoConfig.h"
|
||||
#include "../GLInterface.h"
|
||||
#include "VertexShaderManager.h"
|
||||
|
||||
#if USE_EGL
|
||||
bool cXInterface::ServerConnect(void)
|
||||
@ -166,10 +165,6 @@ void cX11Window::DestroyXWindow(void)
|
||||
void cX11Window::XEventThread()
|
||||
#endif
|
||||
{
|
||||
// Free look variables
|
||||
static bool mouseLookEnabled = false;
|
||||
static bool mouseMoveEnabled = false;
|
||||
static float lastMouse[2];
|
||||
while (GLWin.win)
|
||||
{
|
||||
XEvent event;
|
||||
@ -177,58 +172,6 @@ void cX11Window::XEventThread()
|
||||
{
|
||||
XNextEvent(GLWin.evdpy, &event);
|
||||
switch(event.type) {
|
||||
case ButtonPress:
|
||||
if (g_Config.bFreeLook)
|
||||
{
|
||||
switch (event.xbutton.button)
|
||||
{
|
||||
case 2: // Middle button
|
||||
lastMouse[0] = event.xbutton.x;
|
||||
lastMouse[1] = event.xbutton.y;
|
||||
mouseMoveEnabled = true;
|
||||
break;
|
||||
case 3: // Right button
|
||||
lastMouse[0] = event.xbutton.x;
|
||||
lastMouse[1] = event.xbutton.y;
|
||||
mouseLookEnabled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ButtonRelease:
|
||||
if (g_Config.bFreeLook)
|
||||
{
|
||||
switch (event.xbutton.button)
|
||||
{
|
||||
case 2: // Middle button
|
||||
mouseMoveEnabled = false;
|
||||
break;
|
||||
case 3: // Right button
|
||||
mouseLookEnabled = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MotionNotify:
|
||||
if (g_Config.bFreeLook)
|
||||
{
|
||||
if (mouseLookEnabled)
|
||||
{
|
||||
VertexShaderManager::RotateView((event.xmotion.x - lastMouse[0]) / 200.0f,
|
||||
(event.xmotion.y - lastMouse[1]) / 200.0f);
|
||||
lastMouse[0] = event.xmotion.x;
|
||||
lastMouse[1] = event.xmotion.y;
|
||||
}
|
||||
|
||||
if (mouseMoveEnabled)
|
||||
{
|
||||
VertexShaderManager::TranslateView((event.xmotion.x - lastMouse[0]) / 50.0f,
|
||||
(event.xmotion.y - lastMouse[1]) / 50.0f);
|
||||
lastMouse[0] = event.xmotion.x;
|
||||
lastMouse[1] = event.xmotion.y;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ConfigureNotify:
|
||||
GLInterface->SetBackBufferDimensions(event.xconfigure.width, event.xconfigure.height);
|
||||
break;
|
||||
|
Reference in New Issue
Block a user