From 056bb92037bf054f16b0599bf7a1c69d32e2a7f4 Mon Sep 17 00:00:00 2001 From: Ximi1970 Date: Mon, 9 Mar 2020 21:34:27 +0100 Subject: [PATCH] Check for valid winId --- app/SysTray-X/windowctrl-unix.cpp | 20 ++++++++++++++++++++ app/SysTray-X/windowctrl-win.cpp | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/app/SysTray-X/windowctrl-unix.cpp b/app/SysTray-X/windowctrl-unix.cpp index 6b29914..f69545b 100644 --- a/app/SysTray-X/windowctrl-unix.cpp +++ b/app/SysTray-X/windowctrl-unix.cpp @@ -237,6 +237,11 @@ QList< quint64 > WindowCtrlUnix::getWinIds() */ void WindowCtrlUnix::minimizeWindow( quint64 window, bool hide ) { + if( !window ) + { + return; + } + Window win = static_cast( window ); if( hide ) @@ -254,6 +259,11 @@ void WindowCtrlUnix::minimizeWindow( quint64 window, bool hide ) */ void WindowCtrlUnix::normalizeWindow( quint64 window ) { + if( !window ) + { + return; + } + Window win = static_cast( window ); hideWindow( win, false ); @@ -278,6 +288,11 @@ void WindowCtrlUnix::normalizeWindow( quint64 window ) */ void WindowCtrlUnix::hideWindow( quint64 window, bool set ) { + if( !window ) + { + return; + } + Window win = static_cast( window ); char prop_name[] = "_NET_WM_STATE"; @@ -360,6 +375,11 @@ void WindowCtrlUnix::hideWindow( quint64 window, bool set ) */ void WindowCtrlUnix::deleteWindow( quint64 window ) { + if( !window ) + { + return; + } + Window win = static_cast( window ); Atom prop = XInternAtom( m_display, "WM_PROTOCOLS", True ); diff --git a/app/SysTray-X/windowctrl-win.cpp b/app/SysTray-X/windowctrl-win.cpp index fb6b2ff..f8cd18d 100644 --- a/app/SysTray-X/windowctrl-win.cpp +++ b/app/SysTray-X/windowctrl-win.cpp @@ -198,6 +198,11 @@ QList< quint64 > WindowCtrlWin::getWinIds() */ void WindowCtrlWin::minimizeWindow( quint64 window, bool hide ) { + if( !window ) + { + return; + } + ShowWindow( (HWND)window, SW_MINIMIZE ); if( hide ) @@ -212,6 +217,11 @@ void WindowCtrlWin::minimizeWindow( quint64 window, bool hide ) */ void WindowCtrlWin::normalizeWindow( quint64 window ) { + if( !window ) + { + return; + } + ShowWindow( (HWND)window, SW_RESTORE ); SetForegroundWindow( (HWND)window ); } @@ -222,6 +232,11 @@ void WindowCtrlWin::normalizeWindow( quint64 window ) */ void WindowCtrlWin::hideWindow( quint64 window, bool state ) { + if( !window ) + { + return; + } + if( state ) { hideWindow( (HWND)window ); @@ -249,6 +264,11 @@ void WindowCtrlWin::hideWindow( HWND hwnd ) */ void WindowCtrlWin::deleteWindow( quint64 window ) { + if( !window ) + { + return; + } + SendMessageA( (HWND)window, WM_CLOSE, 0, 0 ); }