alt-f4 quits; window is placed at (0,0); ctrl/alt/shift work on mouse click

This commit is contained in:
Bob
2010-02-22 15:02:13 +13:00
parent 70a0d13c50
commit ebeb10e018
2 changed files with 11 additions and 6 deletions

View File

@@ -288,7 +288,7 @@ namespace OpenRa
}
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();
@@ -308,7 +308,7 @@ namespace OpenRa
Button = (MouseButton)(int)e.Button,
Event = ev,
Location = new int2(e.Location),
Modifiers = (Modifiers)(int)ModifierKeys,
Modifiers = modifierKeys,
});
if( sync != Game.world.SyncHash() )

View File

@@ -60,6 +60,8 @@ namespace OpenRa.GlRenderer
Sdl.SDL_GL_SetAttribute(Sdl.SDL_GL_BLUE_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));
Sdl.SDL_WM_SetCaption("OpenRA", "OpenRA");
Sdl.SDL_ShowCursor(0);
@@ -122,6 +124,7 @@ namespace OpenRa.GlRenderer
CheckGlError();
}
Modifiers mods = 0;
MouseButtons lastButtonBits = (MouseButtons)0;
static MouseButtons MakeButton(byte b)
@@ -152,7 +155,7 @@ namespace OpenRa.GlRenderer
Game.DispatchMouseInput(MouseInputEvent.Down,
new MouseEventArgs(button, 1, e.button.x, e.button.y, 0),
Keys.None);
mods);
} break;
case Sdl.SDL_MOUSEBUTTONUP:
@@ -162,19 +165,19 @@ namespace OpenRa.GlRenderer
Game.DispatchMouseInput(MouseInputEvent.Up,
new MouseEventArgs(button, 1, e.button.x, e.button.y, 0),
Keys.None);
mods);
} break;
case Sdl.SDL_MOUSEMOTION:
{
Game.DispatchMouseInput(MouseInputEvent.Move,
new MouseEventArgs(lastButtonBits, 0, e.motion.x, e.motion.y, 0),
Keys.None);
mods);
} break;
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_SHIFT ) != 0 ? Modifiers.Shift : 0 );
if( e.key.keysym.unicode != 0 )
@@ -185,6 +188,8 @@ namespace OpenRa.GlRenderer
var keyName = Sdl.SDL_GetKeyName( e.key.keysym.sym );
if( keyName.Length == 1 )
Game.HandleKeyPress( new KeyPressEventArgs( keyName[ 0 ] ), mods );
else if( keyName == "f4" && ( ( mods & Modifiers.Alt ) != 0 ) )
OpenRa.Game.Exit();
}
} break;