mirror of
https://github.com/QL-Win/QuickLook.git
synced 2025-09-07 05:27:58 +00:00
reponse to arrow keys
This commit is contained in:
@@ -56,8 +56,6 @@ namespace QuickLook.Plugin.VideoViewer
|
||||
mediaElement.Stop();
|
||||
|
||||
_context.ShowNotification("", "An error occurred while loading the video.");
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public void LoadAndPlay(string path)
|
||||
|
@@ -18,9 +18,13 @@ namespace QuickLook
|
||||
|
||||
protected override void OnStartup(StartupEventArgs e)
|
||||
{
|
||||
AppDomain.CurrentDomain.UnhandledException +=
|
||||
(sender, args) => MessageBox.Show(((Exception) args.ExceptionObject).Message + Environment.NewLine +
|
||||
((Exception) args.ExceptionObject).StackTrace);
|
||||
AppDomain.CurrentDomain.UnhandledException += (sender, args) =>
|
||||
{
|
||||
MessageBox.Show(((Exception) args.ExceptionObject).Message + Environment.NewLine +
|
||||
((Exception) args.ExceptionObject).StackTrace);
|
||||
|
||||
Current.Shutdown();
|
||||
};
|
||||
|
||||
base.OnStartup(e);
|
||||
}
|
||||
@@ -68,9 +72,9 @@ namespace QuickLook
|
||||
|
||||
PidHelper.WritePid();
|
||||
|
||||
TrayIcon.GetInstance();
|
||||
TrayIconManager.GetInstance();
|
||||
if (!e.Args.Contains("/autorun"))
|
||||
TrayIcon.GetInstance().ShowNotification("", "QuickLook is running in the background.");
|
||||
TrayIconManager.GetInstance().ShowNotification("", "QuickLook is running in the background.");
|
||||
|
||||
PluginManager.GetInstance();
|
||||
|
||||
@@ -79,7 +83,7 @@ namespace QuickLook
|
||||
|
||||
private void App_OnExit(object sender, ExitEventArgs e)
|
||||
{
|
||||
TrayIcon.GetInstance().Dispose();
|
||||
TrayIconManager.GetInstance().Dispose();
|
||||
BackgroundListener.GetInstance().Dispose();
|
||||
|
||||
PidHelper.DeletePid();
|
||||
|
@@ -24,7 +24,7 @@ namespace QuickLook
|
||||
if (e.Modifiers != Keys.None)
|
||||
return;
|
||||
|
||||
ViewWindowManager.GetInstance().InvokeRoutine();
|
||||
ViewWindowManager.GetInstance().InvokeRoutine(e.KeyCode != Keys.Space);
|
||||
}
|
||||
|
||||
private void InstallHook(KeyEventHandler handler)
|
||||
@@ -32,6 +32,10 @@ namespace QuickLook
|
||||
_hook = GlobalKeyboardHook.GetInstance();
|
||||
|
||||
_hook.HookedKeys.Add(Keys.Space);
|
||||
_hook.HookedKeys.Add(Keys.Up);
|
||||
_hook.HookedKeys.Add(Keys.Down);
|
||||
_hook.HookedKeys.Add(Keys.Left);
|
||||
_hook.HookedKeys.Add(Keys.Right);
|
||||
|
||||
_hook.KeyUp += handler;
|
||||
}
|
||||
|
@@ -1,7 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Input;
|
||||
using QuickLook.NativeMethods;
|
||||
using KeyEventArgs = System.Windows.Forms.KeyEventArgs;
|
||||
using KeyEventHandler = System.Windows.Forms.KeyEventHandler;
|
||||
|
||||
namespace QuickLook
|
||||
{
|
||||
@@ -62,6 +65,8 @@ namespace QuickLook
|
||||
var key = (Keys) lParam.vkCode;
|
||||
if (HookedKeys.Contains(key))
|
||||
{
|
||||
key = AddModifiers(key);
|
||||
|
||||
var kea = new KeyEventArgs(key);
|
||||
if (wParam == User32.WM_KEYDOWN || wParam == User32.WM_SYSKEYDOWN)
|
||||
KeyDown?.Invoke(this, kea);
|
||||
@@ -73,5 +78,19 @@ namespace QuickLook
|
||||
}
|
||||
return User32.CallNextHookEx(_hhook, code, wParam, ref lParam);
|
||||
}
|
||||
|
||||
private Keys AddModifiers(Keys key)
|
||||
{
|
||||
//Ctrl
|
||||
if ((Keyboard.Modifiers & ModifierKeys.Control) != 0) key = key | Keys.Control;
|
||||
|
||||
//Shift
|
||||
if ((Keyboard.Modifiers & ModifierKeys.Shift) != 0) key = key | Keys.Shift;
|
||||
|
||||
//Alt
|
||||
if ((Keyboard.Modifiers & ModifierKeys.Alt) != 0) key = key | Keys.Alt;
|
||||
|
||||
return key;
|
||||
}
|
||||
}
|
||||
}
|
@@ -28,7 +28,7 @@ namespace QuickLook.Helpers
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
TrayIcon.GetInstance().ShowNotification("", "Failed to add QuickLook to Startup folder.");
|
||||
TrayIconManager.GetInstance().ShowNotification("", "Failed to add QuickLook to Startup folder.");
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -21,11 +21,6 @@ namespace QuickLook
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
// revert designer changes
|
||||
windowPanel.Opacity = 0d;
|
||||
busyIndicatorLayer.Visibility = Visibility.Visible;
|
||||
busyIndicatorLayer.Opacity = 1d;
|
||||
|
||||
// do not set TopMost property if we are now debugging. it makes debugging painful...
|
||||
if (!Debugger.IsAttached)
|
||||
Topmost = true;
|
||||
@@ -59,6 +54,9 @@ namespace QuickLook
|
||||
|
||||
private new void Show()
|
||||
{
|
||||
// revert UI changes
|
||||
ContextObject.IsBusy = true;
|
||||
|
||||
Height = ContextObject.PreferredSize.Height + titlebar.Height + windowBorder.BorderThickness.Top +
|
||||
windowBorder.BorderThickness.Bottom;
|
||||
Width = ContextObject.PreferredSize.Width + windowBorder.BorderThickness.Left +
|
||||
|
@@ -84,7 +84,7 @@ namespace QuickLook.Plugin
|
||||
/// <param name="isError">Is this indicates a error?</param>
|
||||
public void ShowNotification(string title, string content, bool isError = false)
|
||||
{
|
||||
TrayIcon.GetInstance().ShowNotification(title, content, isError);
|
||||
TrayIconManager.GetInstance().ShowNotification(title, content, isError);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@@ -121,7 +121,7 @@
|
||||
<Compile Include="Plugin\InfoPanel\WindowsThumbnailProvider.cs" />
|
||||
<Compile Include="Plugin\IViewer.cs" />
|
||||
<Compile Include="Helpers\DpiHelpers.cs" />
|
||||
<Compile Include="TrayIcon.cs" />
|
||||
<Compile Include="TrayIconManager.cs" />
|
||||
<Compile Include="Plugin\ContextObject.cs" />
|
||||
<Compile Include="Helpers\WindowHelper.cs" />
|
||||
<Compile Include="ViewWindowManager.cs" />
|
||||
|
@@ -7,9 +7,9 @@ using Application = System.Windows.Application;
|
||||
|
||||
namespace QuickLook
|
||||
{
|
||||
public class TrayIcon : IDisposable
|
||||
public class TrayIconManager : IDisposable
|
||||
{
|
||||
private static TrayIcon _instance;
|
||||
private static TrayIconManager _instance;
|
||||
|
||||
private readonly NotifyIcon _icon;
|
||||
|
||||
@@ -22,11 +22,11 @@ namespace QuickLook
|
||||
AutoStartupHelper.CreateAutorunShortcut();
|
||||
});
|
||||
|
||||
private TrayIcon()
|
||||
private TrayIconManager()
|
||||
{
|
||||
_icon = new NotifyIcon
|
||||
{
|
||||
Icon = Resources.app_white,
|
||||
Icon = Resources.app,
|
||||
Visible = true,
|
||||
ContextMenu = new ContextMenu(new[]
|
||||
{
|
||||
@@ -50,9 +50,9 @@ namespace QuickLook
|
||||
_icon.ShowBalloonTip(5000, title, content, isError ? ToolTipIcon.Error : ToolTipIcon.Info);
|
||||
}
|
||||
|
||||
internal static TrayIcon GetInstance()
|
||||
internal static TrayIconManager GetInstance()
|
||||
{
|
||||
return _instance ?? (_instance = new TrayIcon());
|
||||
return _instance ?? (_instance = new TrayIconManager());
|
||||
}
|
||||
}
|
||||
}
|
@@ -22,13 +22,13 @@ namespace QuickLook
|
||||
_viewWindow = new MainWindow();
|
||||
}
|
||||
|
||||
internal void InvokeRoutine()
|
||||
internal void InvokeRoutine(bool replaceView = false)
|
||||
{
|
||||
if (!WindowHelper.IsFocusedControlExplorerItem())
|
||||
if (!WindowHelper.IsFocusedWindowSelf())
|
||||
return;
|
||||
|
||||
if (_viewWindow.BeginHide())
|
||||
if (!replaceView && _viewWindow.BeginHide())
|
||||
return;
|
||||
|
||||
var path = GetCurrentSelection();
|
||||
|
Reference in New Issue
Block a user