Nicer behaviour for edgescroll in windowed mode
This commit is contained in:
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user