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 Session LobbyInfo = new Session();
public static bool HasInputFocus = false;
static void LoadMap(string uid)
{

View File

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

View File

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