1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-09-14 10:32:10 +02:00

Compare commits

..

14 Commits

62 changed files with 101 additions and 31 deletions

View File

@@ -6,6 +6,6 @@ using TweetDuck;
namespace TweetDuck {
internal static class Version {
public const string Tag = "1.25.1";
public const string Tag = "1.26";
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bld/Redist/ucrtbase.dll Normal file

Binary file not shown.

View File

@@ -77,10 +77,8 @@ Type: files; Name: "{app}\cef_200_percent.pak"
Type: files; Name: "{app}\cef_extensions.pak"
Type: files; Name: "{app}\devtools_resources.pak"
Type: files; Name: "{app}\natives_blob.bin"
Type: files; Name: "{app}\api-ms-win-*.dll"
Type: files; Name: "{app}\dbgshim.dll"
Type: files; Name: "{app}\mscordaccore_x86_x86_6.*.dll"
Type: files; Name: "{app}\ucrtbase.dll"
Type: filesandordirs; Name: "{app}\guide"
Type: filesandordirs; Name: "{app}\plugins\official"
Type: filesandordirs; Name: "{app}\resources"

View File

@@ -67,6 +67,7 @@ import setup_tweet_context_menu from "./tweetdeck/setup_tweet_context_menu.js";
import setup_tweetduck_account_bamboozle from "./tweetdeck/setup_tweetduck_account_bamboozle.js";
import setup_video_player from "./tweetdeck/setup_video_player.js";
import skip_pre_login_page from "./tweetdeck/skip_pre_login_page.js";
import tweetdeck_preview_warning from "./tweetdeck/tweetdeck_preview_warning.js";
import update from "./update/update.js";
const globalFunctions = [

View File

@@ -133,6 +133,14 @@ button {
bottom: 192px !important;
}
/***********************/
/* Hide Preview button */
/***********************/
.js-gryphon-beta-btn {
display: none !important;
}
/*************************************/
/* Tweak collapsed left panel layout */
/*************************************/

View File

@@ -0,0 +1,7 @@
import { $TD } from "../api/bridge.js";
export default function() {
if (location.pathname === "/" && !("TD" in window)) {
$TD.alert("warning", "Some TweetDuck features failed to load. This might happen if your Twitter account is enrolled into the TweetDeck Preview, which TweetDuck does not support. Try opting out of the TweetDeck Preview to restore TweetDuck's functionality.");
}
}

View File

@@ -32,7 +32,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CefSharp.Common.NETCore" Version="107.1.90" />
<PackageReference Include="CefSharp.Common.NETCore" Version="109.1.110" />
</ItemGroup>
<ItemGroup>

View File

@@ -237,7 +237,7 @@ namespace TweetDuck.Video {
int maxWidth = Math.Min(DpiScaled(media.imageSourceWidth), ownerWidth * 3 / 4);
int maxHeight = Math.Min(DpiScaled(media.imageSourceHeight), ownerHeight * 3 / 4);
bool isCursorInside = ClientRectangle.Contains(PointToClient(Cursor.Position));
bool isCursorInside = ClientRectangle.Contains(PointToClient(Cursor.Position)) && Handle == NativeMethods.GetFormHandleAt(Cursor.Position);
Size newSize = new Size(Math.Max(minWidth + 2, maxWidth), Math.Max(minHeight + 2, maxHeight));
Point newLocation = new Point(ownerLeft + (ownerWidth - newSize.Width) / 2, ownerTop + (ownerHeight - newSize.Height + SystemInformation.CaptionHeight) / 2);

View File

@@ -1,11 +1,13 @@
#nullable enable
using System;
using System.Diagnostics.CodeAnalysis;
using System.Drawing;
using System.Runtime.InteropServices;
namespace TweetDuck.Video {
[SuppressMessage("ReSharper", "InconsistentNaming")]
static class NativeMethods {
private const int GA_ROOT = 2;
private const int GWL_HWNDPARENT = -8;
[DllImport("user32.dll")]
@@ -24,6 +26,12 @@ namespace TweetDuck.Video {
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
private static extern IntPtr WindowFromPoint(Point point);
[DllImport("user32.dll")]
private static extern IntPtr GetAncestor(IntPtr hwnd, int flags);
[DllImport("user32.dll")]
public static extern bool SetProcessDPIAware();
@@ -49,5 +57,10 @@ namespace TweetDuck.Video {
* ...so technically, this is following the documentation to the word.
*/
}
public static IntPtr GetFormHandleAt(Point point) {
IntPtr window = WindowFromPoint(point);
return window == IntPtr.Zero ? IntPtr.Zero : GetAncestor(window, GA_ROOT);
}
}
}

View File

@@ -9,6 +9,7 @@ namespace TweetDuck.Configuration {
public const string ArgIgnoreGDPR = "-nogdpr";
public const string ArgHttpVideo = "-httpvideo";
public const string ArgFreeze = "-freeze";
public const string ArgHideDeprecation = "-hidedeprecation";
// internal args
public const string ArgRestart = "-restart";

View File

@@ -0,0 +1,36 @@
using System;
using System.Windows.Forms;
using TweetLib.Core;
namespace TweetDuck.Dialogs;
static class DeprecationNoticeDialog {
public static bool Show() {
const string contents = """
TweetDuck is no longer being maintained:
- Twitter has been constantly breaking TweetDeck and therefore also breaking TweetDuck.
- Twitter will be replacing TweetDeck with a new version that is incompatible with most of the app's features.
- Twitter is planning to put TweetDeck behind a subscription paywall.
There will be no more updates.
Continue at your own risk.
""";
using FormMessage message = new FormMessage("TweetDuck Deprecation Notice", contents, MessageBoxIcon.Warning);
message.AddButton("Exit", DialogResult.Cancel, ControlType.Cancel);
message.AddButton("Continue", DialogResult.OK, ControlType.Accept | ControlType.Focused);
Button btnLearnMore = message.CreateButton("Learn More", x: 9, width: 106);
btnLearnMore.Anchor |= AnchorStyles.Left;
btnLearnMore.Margin = new Padding(0, 0, 48, 0);
btnLearnMore.Click += OnBtnLearnMoreClick;
message.AddActionControl(btnLearnMore);
return message.ShowDialog() == DialogResult.OK;
}
private static void OnBtnLearnMoreClick(object? sender, EventArgs args) {
App.SystemHandler.OpenBrowser(Program.Website + "/deprecation");
}
}

View File

@@ -124,15 +124,7 @@ namespace TweetDuck.Dialogs {
}
public Button AddButton(string title, DialogResult result = DialogResult.OK, ControlType type = ControlType.None) {
Button button = new Button {
Anchor = AnchorStyles.Bottom,
Font = SystemFonts.MessageBoxFont,
Location = new Point(0, 12),
Size = new Size(BrowserUtils.Scale(88, dpiScale), BrowserUtils.Scale(26, dpiScale)),
TabIndex = 256 - buttonCount,
Text = title,
UseVisualStyleBackColor = true
};
Button button = CreateButton(title);
button.Click += (_, _) => {
ClickedButton = button;
@@ -162,6 +154,18 @@ namespace TweetDuck.Dialogs {
return button;
}
public Button CreateButton(string title, int x = 0, int width = 88) {
return new Button {
Anchor = AnchorStyles.Bottom,
Font = SystemFonts.MessageBoxFont,
Location = new Point(x, 12),
Size = new Size(BrowserUtils.Scale(width, dpiScale), BrowserUtils.Scale(26, dpiScale)),
TabIndex = 256 - buttonCount,
Text = title,
UseVisualStyleBackColor = true
};
}
public void AddActionControl(Control control) {
panelActions.Controls.Add(control);

View File

@@ -50,10 +50,10 @@
| System.Windows.Forms.AnchorStyles.Right)));
this.panelContents.AutoScroll = true;
this.panelContents.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panelContents.Location = new System.Drawing.Point(135, 12);
this.panelContents.Location = new System.Drawing.Point(134, 12);
this.panelContents.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.panelContents.Name = "panelContents";
this.panelContents.Size = new System.Drawing.Size(662, 482);
this.panelContents.Size = new System.Drawing.Size(663, 482);
this.panelContents.TabIndex = 1;
//
// panelButtons

View File

@@ -108,6 +108,10 @@ namespace TweetDuck {
if (Config.System.Migrate()) {
Config.System.Save();
}
if (!Arguments.HasFlag(Arguments.ArgHideDeprecation) && !DeprecationNoticeDialog.Show()) {
Environment.Exit(0);
}
}
public void Launch(ResourceCache resourceCache, PluginManager pluginManager) {

View File

@@ -1,6 +1,5 @@
using System;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
using TweetDuck.Dialogs;
using TweetDuck.Management;
@@ -36,16 +35,10 @@ namespace TweetDuck {
btnIgnore.Enabled = canIgnore;
form.ActiveControl = canIgnore ? btnIgnore : btnExit;
Button btnOpenLog = new Button {
Anchor = AnchorStyles.Bottom | AnchorStyles.Left,
Enabled = loggedSuccessfully,
Font = SystemFonts.MessageBoxFont,
Location = new Point(9, 12),
Margin = new Padding(0, 0, 48, 0),
Size = new Size(106, 26),
Text = "Show Error Log",
UseVisualStyleBackColor = true
};
Button btnOpenLog = form.CreateButton("Show Error Log", x: 9, width: 106);
btnOpenLog.Anchor |= AnchorStyles.Left;
btnOpenLog.Enabled = loggedSuccessfully;
btnOpenLog.Margin = new Padding(0, 0, 48, 0);
btnOpenLog.Click += static (_, _) => {
if (!OpenLogFile()) {

View File

@@ -36,7 +36,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CefSharp.WinForms.NETCore" Version="107.1.90" />
<PackageReference Include="CefSharp.WinForms.NETCore" Version="109.1.110" />
</ItemGroup>
<ItemGroup>

View File

@@ -23,6 +23,7 @@ namespace TweetDuck.Updates {
FileName = Path,
Arguments = arguments,
Verb = runElevated ? "runas" : string.Empty,
UseShellExecute = true,
ErrorDialog = true
})) {
return true;

View File

@@ -59,11 +59,15 @@ namespace TweetImpl.CefSharp.Component {
}
private void OnFrameLoadStart(object? sender, FrameLoadStartEventArgs e) {
base.OnFrameLoadStart(e.Url, e.Frame);
if (!string.IsNullOrEmpty(e.Url)) {
base.OnFrameLoadStart(e.Url, e.Frame);
}
}
private void OnFrameLoadEnd(object? sender, FrameLoadEndEventArgs e) {
base.OnFrameLoadEnd(e.Url, e.Frame);
if (!string.IsNullOrEmpty(e.Url)) {
base.OnFrameLoadEnd(e.Url, e.Frame);
}
}
}
}

View File

@@ -28,7 +28,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CefSharp.WinForms.NETCore" Version="107.1.90" />
<PackageReference Include="CefSharp.WinForms.NETCore" Version="109.1.110" />
</ItemGroup>
<ItemGroup>