alt-f4 quits; window is placed at (0,0); ctrl/alt/shift work on mouse click
This commit is contained in:
@@ -288,7 +288,7 @@ namespace OpenRa
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int2 lastPos;
|
static int2 lastPos;
|
||||||
public static void DispatchMouseInput(MouseInputEvent ev, MouseEventArgs e, Keys ModifierKeys)
|
public static void DispatchMouseInput(MouseInputEvent ev, MouseEventArgs e, Modifiers modifierKeys)
|
||||||
{
|
{
|
||||||
int sync = Game.world.SyncHash();
|
int sync = Game.world.SyncHash();
|
||||||
|
|
||||||
@@ -308,7 +308,7 @@ namespace OpenRa
|
|||||||
Button = (MouseButton)(int)e.Button,
|
Button = (MouseButton)(int)e.Button,
|
||||||
Event = ev,
|
Event = ev,
|
||||||
Location = new int2(e.Location),
|
Location = new int2(e.Location),
|
||||||
Modifiers = (Modifiers)(int)ModifierKeys,
|
Modifiers = modifierKeys,
|
||||||
});
|
});
|
||||||
|
|
||||||
if( sync != Game.world.SyncHash() )
|
if( sync != Game.world.SyncHash() )
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ namespace OpenRa.GlRenderer
|
|||||||
Sdl.SDL_GL_SetAttribute(Sdl.SDL_GL_BLUE_SIZE, 8);
|
Sdl.SDL_GL_SetAttribute(Sdl.SDL_GL_BLUE_SIZE, 8);
|
||||||
Sdl.SDL_GL_SetAttribute(Sdl.SDL_GL_ALPHA_SIZE, 8);
|
Sdl.SDL_GL_SetAttribute(Sdl.SDL_GL_ALPHA_SIZE, 8);
|
||||||
|
|
||||||
|
Sdl.SDL_putenv( "SDL_VIDEO_WINDOW_POS=0,0" );
|
||||||
|
|
||||||
surf = Sdl.SDL_SetVideoMode(width, height, 0, Sdl.SDL_OPENGL | (windowed ? 0 : Sdl.SDL_FULLSCREEN));
|
surf = Sdl.SDL_SetVideoMode(width, height, 0, Sdl.SDL_OPENGL | (windowed ? 0 : Sdl.SDL_FULLSCREEN));
|
||||||
Sdl.SDL_WM_SetCaption("OpenRA", "OpenRA");
|
Sdl.SDL_WM_SetCaption("OpenRA", "OpenRA");
|
||||||
Sdl.SDL_ShowCursor(0);
|
Sdl.SDL_ShowCursor(0);
|
||||||
@@ -122,6 +124,7 @@ namespace OpenRa.GlRenderer
|
|||||||
CheckGlError();
|
CheckGlError();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Modifiers mods = 0;
|
||||||
MouseButtons lastButtonBits = (MouseButtons)0;
|
MouseButtons lastButtonBits = (MouseButtons)0;
|
||||||
|
|
||||||
static MouseButtons MakeButton(byte b)
|
static MouseButtons MakeButton(byte b)
|
||||||
@@ -152,7 +155,7 @@ namespace OpenRa.GlRenderer
|
|||||||
|
|
||||||
Game.DispatchMouseInput(MouseInputEvent.Down,
|
Game.DispatchMouseInput(MouseInputEvent.Down,
|
||||||
new MouseEventArgs(button, 1, e.button.x, e.button.y, 0),
|
new MouseEventArgs(button, 1, e.button.x, e.button.y, 0),
|
||||||
Keys.None);
|
mods);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case Sdl.SDL_MOUSEBUTTONUP:
|
case Sdl.SDL_MOUSEBUTTONUP:
|
||||||
@@ -162,19 +165,19 @@ namespace OpenRa.GlRenderer
|
|||||||
|
|
||||||
Game.DispatchMouseInput(MouseInputEvent.Up,
|
Game.DispatchMouseInput(MouseInputEvent.Up,
|
||||||
new MouseEventArgs(button, 1, e.button.x, e.button.y, 0),
|
new MouseEventArgs(button, 1, e.button.x, e.button.y, 0),
|
||||||
Keys.None);
|
mods);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case Sdl.SDL_MOUSEMOTION:
|
case Sdl.SDL_MOUSEMOTION:
|
||||||
{
|
{
|
||||||
Game.DispatchMouseInput(MouseInputEvent.Move,
|
Game.DispatchMouseInput(MouseInputEvent.Move,
|
||||||
new MouseEventArgs(lastButtonBits, 0, e.motion.x, e.motion.y, 0),
|
new MouseEventArgs(lastButtonBits, 0, e.motion.x, e.motion.y, 0),
|
||||||
Keys.None);
|
mods);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case Sdl.SDL_KEYDOWN:
|
case Sdl.SDL_KEYDOWN:
|
||||||
{
|
{
|
||||||
var mods = ( ( e.key.keysym.mod & Sdl.KMOD_ALT ) != 0 ? Modifiers.Alt : 0 )
|
mods = ( ( e.key.keysym.mod & Sdl.KMOD_ALT ) != 0 ? Modifiers.Alt : 0 )
|
||||||
| ( ( e.key.keysym.mod & Sdl.KMOD_CTRL ) != 0 ? Modifiers.Ctrl : 0 )
|
| ( ( e.key.keysym.mod & Sdl.KMOD_CTRL ) != 0 ? Modifiers.Ctrl : 0 )
|
||||||
| ( ( e.key.keysym.mod & Sdl.KMOD_SHIFT ) != 0 ? Modifiers.Shift : 0 );
|
| ( ( e.key.keysym.mod & Sdl.KMOD_SHIFT ) != 0 ? Modifiers.Shift : 0 );
|
||||||
if( e.key.keysym.unicode != 0 )
|
if( e.key.keysym.unicode != 0 )
|
||||||
@@ -185,6 +188,8 @@ namespace OpenRa.GlRenderer
|
|||||||
var keyName = Sdl.SDL_GetKeyName( e.key.keysym.sym );
|
var keyName = Sdl.SDL_GetKeyName( e.key.keysym.sym );
|
||||||
if( keyName.Length == 1 )
|
if( keyName.Length == 1 )
|
||||||
Game.HandleKeyPress( new KeyPressEventArgs( keyName[ 0 ] ), mods );
|
Game.HandleKeyPress( new KeyPressEventArgs( keyName[ 0 ] ), mods );
|
||||||
|
else if( keyName == "f4" && ( ( mods & Modifiers.Alt ) != 0 ) )
|
||||||
|
OpenRa.Game.Exit();
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user