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:
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user