Nicer behaviour for edgescroll in windowed mode

This commit is contained in:
Paul Chote
2010-09-10 22:23:27 +12:00
parent 4ad0a52104
commit 1bc2136771
3 changed files with 5 additions and 2 deletions

View File

@@ -42,6 +42,7 @@ namespace OpenRA
public static Renderer Renderer; public static Renderer Renderer;
public static Session LobbyInfo = new Session(); public static Session LobbyInfo = new Session();
public static bool HasInputFocus = false;
static void LoadMap(string uid) static void LoadMap(string uid)
{ {

View File

@@ -125,7 +125,7 @@ namespace OpenRA.Widgets
public override void Tick(World world) public override void Tick(World world)
{ {
Edge = ScrollDirection.None; Edge = ScrollDirection.None;
if (Game.Settings.Game.ViewportEdgeScroll) if (Game.Settings.Game.ViewportEdgeScroll && Game.HasInputFocus)
{ {
// Check for edge-scroll // Check for edge-scroll
if (Viewport.LastMousePos.X < EdgeScrollThreshold) if (Viewport.LastMousePos.X < EdgeScrollThreshold)
@@ -137,6 +137,7 @@ namespace OpenRA.Widgets
if (Viewport.LastMousePos.Y >= Game.viewport.Height - EdgeScrollThreshold) if (Viewport.LastMousePos.Y >= Game.viewport.Height - EdgeScrollThreshold)
Edge = Edge.Set(ScrollDirection.Down, true); Edge = Edge.Set(ScrollDirection.Down, true);
} }
if(Keyboard != ScrollDirection.None || Edge != ScrollDirection.None) if(Keyboard != ScrollDirection.None || Edge != ScrollDirection.None)
{ {
var scroll = new float2(0,0); var scroll = new float2(0,0);

View File

@@ -182,7 +182,8 @@ namespace OpenRA.GlRenderer
public void Present() public void Present()
{ {
Sdl.SDL_GL_SwapBuffers(); Sdl.SDL_GL_SwapBuffers();
Game.HasInputFocus = 0 != (Sdl.SDL_GetAppState() & Sdl.SDL_APPINPUTFOCUS);
var mods = MakeModifiers(Sdl.SDL_GetModState()); var mods = MakeModifiers(Sdl.SDL_GetModState());
Game.HandleModifierKeys(mods); Game.HandleModifierKeys(mods);
MouseEventArgs pendingMotion = null; MouseEventArgs pendingMotion = null;