mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-05-08 20:34:05 +02:00
Fix spacebar not toggling video pause when the main app was focused
This commit is contained in:
parent
017f883e0b
commit
68dca6e3d9
@ -87,6 +87,7 @@ public FormBrowser(UpdaterSettings updaterSettings){
|
||||
this.browser = new ChromiumWebBrowser("https://tweetdeck.twitter.com/"){
|
||||
MenuHandler = new ContextMenuBrowser(this),
|
||||
JsDialogHandler = new JavaScriptDialogHandler(),
|
||||
KeyboardHandler = new KeyboardHandlerBrowser(this),
|
||||
LifeSpanHandler = new LifeSpanHandler(),
|
||||
RequestHandler = new RequestHandlerBrowser()
|
||||
};
|
||||
@ -527,6 +528,15 @@ public void PlayVideo(string url){
|
||||
videoPlayer.Launch(url);
|
||||
}
|
||||
|
||||
public bool ToggleVideoPause(){
|
||||
if (videoPlayer != null && videoPlayer.Running){
|
||||
videoPlayer.TogglePause();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void HideVideoOverlay(){
|
||||
browser.ExecuteScriptAsync("$('#td-video-player-overlay').remove()");
|
||||
}
|
||||
|
24
Core/Handling/KeyboardHandlerBrowser.cs
Normal file
24
Core/Handling/KeyboardHandlerBrowser.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using System.Windows.Forms;
|
||||
using CefSharp;
|
||||
|
||||
namespace TweetDuck.Core.Handling{
|
||||
sealed class KeyboardHandlerBrowser : IKeyboardHandler{
|
||||
private readonly FormBrowser form;
|
||||
|
||||
public KeyboardHandlerBrowser(FormBrowser form){
|
||||
this.form = form;
|
||||
}
|
||||
|
||||
bool IKeyboardHandler.OnPreKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey, ref bool isKeyboardShortcut){
|
||||
if (type == KeyType.RawKeyDown && (Keys)windowsKeyCode == Keys.Space){
|
||||
return form.ToggleVideoPause();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool IKeyboardHandler.OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -68,6 +68,10 @@ public void Launch(string url){
|
||||
}
|
||||
}
|
||||
|
||||
public void TogglePause(){
|
||||
currentPipe?.Write("pause");
|
||||
}
|
||||
|
||||
private void currentPipe_DataIn(object sender, DuplexPipe.PipeReadEventArgs e){
|
||||
owner.InvokeSafe(() => {
|
||||
switch(e.Key){
|
||||
|
@ -98,6 +98,7 @@
|
||||
<Compile Include="Core\FormBrowser.Designer.cs">
|
||||
<DependentUpon>FormBrowser.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Core\Handling\KeyboardHandlerBrowser.cs" />
|
||||
<Compile Include="Core\Handling\KeyboardHandlerNotification.cs" />
|
||||
<Compile Include="Core\Handling\RequestHandlerBrowser.cs" />
|
||||
<Compile Include="Core\Handling\General\RequestHandlerBase.cs" />
|
||||
|
@ -60,6 +60,10 @@ private void FormPlayer_Load(object sender, EventArgs e){
|
||||
|
||||
private void pipe_DataIn(object sender, DuplexPipe.PipeReadEventArgs e){
|
||||
switch(e.Key){
|
||||
case "pause":
|
||||
TogglePause();
|
||||
break;
|
||||
|
||||
case "die":
|
||||
timerSync.Stop();
|
||||
Visible = false;
|
||||
|
Loading…
Reference in New Issue
Block a user