1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-04-22 18:15:47 +02:00

Add notification.js to run for notification browser instance (fixes links)

This commit is contained in:
chylex 2016-04-11 21:33:24 +02:00
parent cf58ac5665
commit ffe430a4a5
4 changed files with 38 additions and 2 deletions

View File

@ -38,7 +38,7 @@ public FormBrowser(){
Controls.Add(browser);
notification = new FormNotification(this,true);
notification = new FormNotification(this,bridge,true);
notification.Show();
}

View File

@ -6,6 +6,7 @@
using System.Collections.Generic;
using TweetDick.Core.Handling;
using TweetDick.Configuration;
using TweetDick.Resources;
namespace TweetDick.Core{
partial class FormNotification : Form{
@ -16,7 +17,9 @@ partial class FormNotification : Form{
private readonly bool autoHide;
private int timeLeft, totalTime;
public FormNotification(Form owner, bool autoHide){
private readonly string notificationJS;
public FormNotification(Form owner, TweetDeckBridge bridge, bool autoHide){
InitializeComponent();
this.owner = owner;
@ -24,10 +27,26 @@ public FormNotification(Form owner, bool autoHide){
owner.FormClosed += (sender, args) => Close();
notificationJS = ScriptLoader.LoadResource("notification.js");
browser = new ChromiumWebBrowser("about:blank"){ MenuHandler = new MenuHandlerEmpty() };
browser.FrameLoadEnd += Browser_FrameLoadEnd;
if (bridge != null){
browser.RegisterJsObject("$TD",bridge);
}
panelBrowser.Controls.Add(browser);
}
public FormNotification(Form owner, bool autoHide) : this(owner,null,autoHide){}
private void Browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e){
if (e.Frame.IsMain && notificationJS != null){
browser.ExecuteScriptAsync(notificationJS);
}
}
public void ShowNotification(TweetNotification notification){
MoveToVisibleLocation();

11
Resources/notification.js Normal file
View File

@ -0,0 +1,11 @@
(function($TD){
//
// Block: Hook into links to bypass default open function
//
document.body.addEventListener("click",function(e){
if (e.target.tagName == "A"){
$TD.openBrowser(e.target.getAttribute("href"));
e.preventDefault();
}
});
})($TD);

View File

@ -200,6 +200,12 @@
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<ContentWithTargetPath Include="Resources\notification.js">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<TargetPath>notification.js</TargetPath>
</ContentWithTargetPath>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>