mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-01-02 02:33:32 +00:00
Disable layers by default when Toggle Enable keybind is first keybind
Layer editor move and resize selected layer when underneath other layers Fix copy-paste crash
This commit is contained in:
parent
954f4864d8
commit
5c8968a32d
@ -61,7 +61,7 @@ namespace Artemis
|
||||
}
|
||||
|
||||
// If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen
|
||||
if ((e != null) && (input != null))
|
||||
if (e != null && input != null)
|
||||
return e.GetPosition(input).X;
|
||||
|
||||
// Return 0 if no processing could be done
|
||||
@ -98,7 +98,7 @@ namespace Artemis
|
||||
logger.Info("Artemis was run using the autorun shortcut, sleeping for 15 sec.");
|
||||
Thread.Sleep(15000);
|
||||
}
|
||||
InputHook.Start();
|
||||
|
||||
_kernel = new StandardKernel(new BaseModules(), new ManagerModules());
|
||||
|
||||
_kernel.Bind<IWindowManager>().To<WindowManager>().InSingletonScope();
|
||||
@ -145,6 +145,7 @@ namespace Artemis
|
||||
protected override void OnStartup(object sender, StartupEventArgs e)
|
||||
{
|
||||
DisplayRootViewFor<ShellViewModel>();
|
||||
InputHook.Start();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -63,9 +63,15 @@ namespace Artemis.Profiles.Layers.Models
|
||||
switch (ToggleType)
|
||||
{
|
||||
case ToggleType.Enable:
|
||||
// Apply RenderAllowed only if this is the first keybind
|
||||
if (index == 0)
|
||||
layerModel.RenderAllowed = false;
|
||||
action = () => layerModel.RenderAllowed = true;
|
||||
break;
|
||||
case ToggleType.Disable:
|
||||
// Apply RenderAllowed only if this is the first keybind
|
||||
if (index == 0)
|
||||
layerModel.RenderAllowed = false;
|
||||
action = () => layerModel.RenderAllowed = false;
|
||||
break;
|
||||
case ToggleType.Toggle:
|
||||
|
||||
@ -324,7 +324,7 @@ namespace Artemis.ViewModels
|
||||
|
||||
public void LayerToClipboard()
|
||||
{
|
||||
if (SelectedLayer == null || !ActiveWindowHelper.MainWindowActive)
|
||||
if (SelectedLayer == null || !ActiveWindowHelper.MainWindowActive || !IsActive)
|
||||
return;
|
||||
|
||||
// Probably not how the cool kids do it but leveraging on JsonConvert gives flawless serialization
|
||||
@ -333,28 +333,35 @@ namespace Artemis.ViewModels
|
||||
|
||||
public void ClipboardToLayer()
|
||||
{
|
||||
if (!ActiveWindowHelper.MainWindowActive)
|
||||
if (!ActiveWindowHelper.MainWindowActive || !IsActive)
|
||||
return;
|
||||
|
||||
GeneralHelpers.ExecuteSta(() =>
|
||||
try
|
||||
{
|
||||
var data = (string) Clipboard.GetData("layer");
|
||||
if (data == null)
|
||||
return;
|
||||
|
||||
var layerModel = JsonConvert.DeserializeObject<LayerModel>(data);
|
||||
if (layerModel == null)
|
||||
return;
|
||||
|
||||
if (SelectedLayer != null)
|
||||
SelectedLayer.InsertAfter(layerModel);
|
||||
else
|
||||
GeneralHelpers.ExecuteSta(() =>
|
||||
{
|
||||
SelectedProfile.Layers.Add(layerModel);
|
||||
SelectedProfile.FixOrder();
|
||||
}
|
||||
Execute.OnUIThread(() => UpdateLayerList(layerModel));
|
||||
});
|
||||
var data = (string) Clipboard.GetData("layer");
|
||||
if (data == null)
|
||||
return;
|
||||
|
||||
var layerModel = JsonConvert.DeserializeObject<LayerModel>(data);
|
||||
if (layerModel == null)
|
||||
return;
|
||||
|
||||
if (SelectedLayer != null)
|
||||
SelectedLayer.InsertAfter(layerModel);
|
||||
else
|
||||
{
|
||||
SelectedProfile.Layers.Add(layerModel);
|
||||
SelectedProfile.FixOrder();
|
||||
}
|
||||
Execute.OnUIThread(() => UpdateLayerList(layerModel));
|
||||
});
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateLayerList(LayerModel selectModel)
|
||||
@ -665,7 +672,7 @@ namespace Artemis.ViewModels
|
||||
return;
|
||||
|
||||
var pos = GetScaledPosition(e);
|
||||
var hoverLayer = GetLayers().Where(l => l.MustDraw()).FirstOrDefault(l => l.Properties.PropertiesRect(1).Contains(pos.X, pos.Y));
|
||||
var hoverLayer = GetHoverLayer(pos.X, pos.Y);
|
||||
|
||||
if (hoverLayer != null)
|
||||
SelectedLayer = hoverLayer;
|
||||
@ -681,7 +688,7 @@ namespace Artemis.ViewModels
|
||||
return;
|
||||
|
||||
var pos = GetScaledPosition(e);
|
||||
var hoverLayer = GetLayers().Where(l => l.MustDraw()).FirstOrDefault(l => l.Properties.PropertiesRect(1).Contains(pos.X, pos.Y));
|
||||
var hoverLayer = GetHoverLayer(pos.X, pos.Y);
|
||||
|
||||
HandleDragging(e, pos.X, pos.Y, hoverLayer);
|
||||
|
||||
@ -703,6 +710,8 @@ namespace Artemis.ViewModels
|
||||
KeyboardPreviewCursor = Cursors.Hand;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private Point GetScaledPosition(MouseEventArgs e)
|
||||
{
|
||||
var previewSettings = _deviceManager.ActiveKeyboard.PreviewSettings;
|
||||
@ -723,6 +732,15 @@ namespace Artemis.ViewModels
|
||||
return pos;
|
||||
}
|
||||
|
||||
private LayerModel GetHoverLayer(double x, double y)
|
||||
{
|
||||
// Prefer the selected layer as the hover layer even if it's underneath something else
|
||||
if (SelectedLayer != null && SelectedLayer.Properties.PropertiesRect(1).Contains(x, y))
|
||||
return SelectedLayer;
|
||||
|
||||
return GetLayers().Where(l => l.MustDraw()).FirstOrDefault(l => l.Properties.PropertiesRect(1).Contains(x, y));
|
||||
}
|
||||
|
||||
public Cursor KeyboardPreviewCursor
|
||||
{
|
||||
get { return _keyboardPreviewCursor; }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user