Adding SDL2 window grab on loading the game. Made this behaviour configurable in the 'Input' tab of the Settings menu

Updated settings file for TD to expose the new 'Lock mouse to window' display configuration option

A text label notes that modifying the 'Lock mouse' check box requires a restart
This commit is contained in:
Gordon Martin
2014-06-09 01:35:03 +01:00
parent bc103f8ffd
commit 5eab479c34
5 changed files with 36 additions and 0 deletions

View File

@@ -129,6 +129,7 @@ namespace OpenRA
public bool ShowShellmap = true; public bool ShowShellmap = true;
public bool ViewportEdgeScroll = true; public bool ViewportEdgeScroll = true;
public bool LockMouseWindow = true;
public MouseScrollType MouseScroll = MouseScrollType.Standard; public MouseScrollType MouseScroll = MouseScrollType.Standard;
public float ViewportEdgeScrollStep = 10f; public float ViewportEdgeScrollStep = 10f;
public float UIScrollSpeed = 50f; public float UIScrollSpeed = 50f;

View File

@@ -289,6 +289,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
BindCheckboxPref(panel, "CLASSICORDERS_CHECKBOX", gs, "UseClassicMouseStyle"); BindCheckboxPref(panel, "CLASSICORDERS_CHECKBOX", gs, "UseClassicMouseStyle");
BindCheckboxPref(panel, "EDGESCROLL_CHECKBOX", gs, "ViewportEdgeScroll"); BindCheckboxPref(panel, "EDGESCROLL_CHECKBOX", gs, "ViewportEdgeScroll");
BindCheckboxPref(panel, "LOCKMOUSE_CHECKBOX", gs, "LockMouseWindow");
BindSliderPref(panel, "SCROLLSPEED_SLIDER", gs, "ViewportEdgeScrollStep"); BindSliderPref(panel, "SCROLLSPEED_SLIDER", gs, "ViewportEdgeScrollStep");
BindSliderPref(panel, "UI_SCROLLSPEED_SLIDER", gs, "UIScrollSpeed"); BindSliderPref(panel, "UI_SCROLLSPEED_SLIDER", gs, "UIScrollSpeed");
@@ -347,6 +348,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{ {
gs.UseClassicMouseStyle = dgs.UseClassicMouseStyle; gs.UseClassicMouseStyle = dgs.UseClassicMouseStyle;
gs.MouseScroll = dgs.MouseScroll; gs.MouseScroll = dgs.MouseScroll;
gs.LockMouseWindow = dgs.LockMouseWindow;
gs.ViewportEdgeScroll = dgs.ViewportEdgeScroll; gs.ViewportEdgeScroll = dgs.ViewportEdgeScroll;
gs.ViewportEdgeScrollStep = dgs.ViewportEdgeScrollStep; gs.ViewportEdgeScrollStep = dgs.ViewportEdgeScrollStep;
gs.UIScrollSpeed = dgs.UIScrollSpeed; gs.UIScrollSpeed = dgs.UIScrollSpeed;

View File

@@ -62,6 +62,9 @@ namespace OpenRA.Renderer.Sdl2
window = SDL.SDL_CreateWindow("OpenRA", SDL.SDL_WINDOWPOS_CENTERED, SDL.SDL_WINDOWPOS_CENTERED, size.Width, size.Height, SDL.SDL_WindowFlags.SDL_WINDOW_OPENGL); window = SDL.SDL_CreateWindow("OpenRA", SDL.SDL_WINDOWPOS_CENTERED, SDL.SDL_WINDOWPOS_CENTERED, size.Width, size.Height, SDL.SDL_WindowFlags.SDL_WINDOW_OPENGL);
var lockWindow = Game.Settings.Game.LockMouseWindow ? SDL.SDL_bool.SDL_TRUE : SDL.SDL_bool.SDL_FALSE;
SDL.SDL_SetWindowGrab(window, lockWindow);
if (windowMode == WindowMode.Fullscreen) if (windowMode == WindowMode.Fullscreen)
SDL.SDL_SetWindowFullscreen(window, (uint)SDL.SDL_WindowFlags.SDL_WINDOW_FULLSCREEN); SDL.SDL_SetWindowFullscreen(window, (uint)SDL.SDL_WindowFlags.SDL_WINDOW_FULLSCREEN);
else if (windowMode == WindowMode.PseudoFullscreen) else if (windowMode == WindowMode.PseudoFullscreen)

View File

@@ -311,6 +311,21 @@ Container@SETTINGS_PANEL:
Height: 20 Height: 20
Font: Regular Font: Regular
Text: Edge Scrolling Text: Edge Scrolling
Checkbox@LOCKMOUSE_CHECKBOX:
X: 15
Y: 100
Width: 130
Height: 20
Font: Regular
Text: Lock mouse to window
Label@LOCKMOUSE_DESC:
X: 25
Y: 110
Width: 130
Height: 25
Font: Tiny
Align: Right
Text: (Requires restart)
Label@SCROLL_SPEED_LABEL: Label@SCROLL_SPEED_LABEL:
X: PARENT_RIGHT - WIDTH - 270 X: PARENT_RIGHT - WIDTH - 270
Y: 67 Y: 67

View File

@@ -315,6 +315,21 @@ Background@SETTINGS_PANEL:
Height: 20 Height: 20
Font: Regular Font: Regular
Text: Edge Scrolling Text: Edge Scrolling
Checkbox@LOCKMOUSE_CHECKBOX:
X: 15
Y: 100
Width: 130
Height: 20
Font: Regular
Text: Lock mouse to window
Label@LOCKMOUSE_DESC:
X: 25
Y: 110
Width: 130
Height: 25
Font: Tiny
Align: Right
Text: (Requires restart)
Label@SCROLL_SPEED_LABEL: Label@SCROLL_SPEED_LABEL:
X: PARENT_RIGHT - WIDTH - 270 X: PARENT_RIGHT - WIDTH - 270
Y: 67 Y: 67