fancyzones unity3d crash fix (#1914)

* fancyzones unity3d crash fix

* intelisence warning fix, and review issue fix

* Fix for review comment
This commit is contained in:
PrzemyslawTusinski 2020-04-03 20:17:12 +02:00 committed by GitHub
parent 75f3a30d38
commit 2806c386d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -259,8 +259,12 @@ private:
static const UINT m_showAnimationDuration = 200; // ms static const UINT m_showAnimationDuration = 200; // ms
static const UINT m_flashDuration = 700; // ms static const UINT m_flashDuration = 700; // ms
HWND draggedWindow; HWND draggedWindow = nullptr;
BYTE draggedWindowInitialAlpha; long draggedWindowExstyle = 0;
COLORREF draggedWindowCrKey = RGB(0, 0, 0);
DWORD draggedWindowDwFlags = 0;
BYTE draggedWindowInitialAlpha = 0;
ULONG_PTR gdiplusToken; ULONG_PTR gdiplusToken;
}; };
@ -335,22 +339,27 @@ bool ZoneWindow::Init(IZoneWindowHost* host, HINSTANCE hinstance, HMONITOR monit
IFACEMETHODIMP ZoneWindow::MoveSizeEnter(HWND window, bool dragEnabled) noexcept IFACEMETHODIMP ZoneWindow::MoveSizeEnter(HWND window, bool dragEnabled) noexcept
{ {
if (m_host->isMakeDraggedWindowTransparentActive())
{
draggedWindow = window;
SetWindowLong(window,
GWL_EXSTYLE,
GetWindowLong(window, GWL_EXSTYLE) | WS_EX_LAYERED);
GetLayeredWindowAttributes(window, 0, &draggedWindowInitialAlpha, 0);
SetLayeredWindowAttributes(window, 0, (255 * 50) / 100, LWA_ALPHA);
}
if (m_windowMoveSize) if (m_windowMoveSize)
{ {
return E_INVALIDARG; return E_INVALIDARG;
} }
if (m_host->isMakeDraggedWindowTransparentActive())
{
RestoreOrginalTransparency();
draggedWindowExstyle = GetWindowLong(window, GWL_EXSTYLE);
draggedWindow = window;
SetWindowLong(window,
GWL_EXSTYLE,
draggedWindowExstyle | WS_EX_LAYERED);
GetLayeredWindowAttributes(window, &draggedWindowCrKey, &draggedWindowInitialAlpha, &draggedWindowDwFlags);
SetLayeredWindowAttributes(window, 0, (255 * 50) / 100, LWA_ALPHA);
}
m_dragEnabled = dragEnabled; m_dragEnabled = dragEnabled;
m_windowMoveSize = window; m_windowMoveSize = window;
m_drawHints = true; m_drawHints = true;
@ -415,10 +424,8 @@ ZoneWindow::RestoreOrginalTransparency() noexcept
{ {
if (m_host->isMakeDraggedWindowTransparentActive() && draggedWindow != nullptr) if (m_host->isMakeDraggedWindowTransparentActive() && draggedWindow != nullptr)
{ {
SetLayeredWindowAttributes(draggedWindow, SetLayeredWindowAttributes(draggedWindow, draggedWindowCrKey, draggedWindowInitialAlpha, draggedWindowDwFlags);
0, SetWindowLong(draggedWindow, GWL_EXSTYLE, draggedWindowExstyle);
draggedWindowInitialAlpha == 0 ? 255 : draggedWindowInitialAlpha,
LWA_ALPHA);
draggedWindow = nullptr; draggedWindow = nullptr;
} }
} }
@ -738,7 +745,10 @@ void ZoneWindow::CycleActiveZoneSetInternal(DWORD wparam, Trace::ZoneWindow::Inp
void ZoneWindow::FlashZones() noexcept void ZoneWindow::FlashZones() noexcept
{ {
// "Turning FLASHING_ZONE option off" // "Turning FLASHING_ZONE option off"
if(true) return; if (true)
{
return;
}
m_flashMode = true; m_flashMode = true;