Fix EnableDarkTitlebar being called before handle is created

This commit is contained in:
Charles Milette 2019-05-22 17:06:45 -04:00
parent 71bfdd8ba4
commit 6b88125b46
No known key found for this signature in database
GPG key ID: 1A5AE81377AD973A
2 changed files with 9 additions and 3 deletions

View file

@ -71,13 +71,13 @@ public void Dispose()
}
}
public static bool EnableDarkTitlebar(Form form, bool enabled)
public static bool EnableDarkTitlebar(IntPtr handle, bool enabled)
{
if (Helpers.IsWindows10OrGreater() && Helpers.IsWindowsBuildOrGreater(17763))
{
try
{
NativeMethods.SetWindowAttribute(form.Handle, WindowAttribute.DWMWA_USE_IMMERSIVE_DARK_MODE, enabled);
NativeMethods.SetWindowAttribute(handle, WindowAttribute.DWMWA_USE_IMMERSIVE_DARK_MODE, enabled);
return true;
}
catch (Exception e)

View file

@ -66,6 +66,8 @@ private void MainForm_HandleCreated(object sender, EventArgs e)
{
TaskHelpers.OpenActionsToolbar();
}
DWMManager.EnableDarkTitlebar(Handle, ShareXResources.UseDarkTheme);
}
private void InitializeControls()
@ -761,7 +763,11 @@ private void UpdateTaskViewMode()
private void UpdateTheme()
{
DWMManager.EnableDarkTitlebar(this, ShareXResources.UseDarkTheme);
if (IsHandleCreated)
{
DWMManager.EnableDarkTitlebar(Handle, ShareXResources.UseDarkTheme);
}
if (ShareXResources.UseDarkTheme)
{
tsMain.Renderer = new ToolStripDarkRenderer();