MacOSX: Ensure that main window is visible on screen when About is display as a way to workaround for situations where UI is not visible or can't be move (for example, when changing display monitor with a different resolution).
This commit is contained in:
parent
a4ed6be38c
commit
a81d45df82
|
@ -725,6 +725,7 @@ namespace VeraCrypt
|
|||
#ifdef TC_MACOSX
|
||||
if (Gui->IsInBackgroundMode())
|
||||
Gui->SetBackgroundMode (false);
|
||||
EnsureVisible ();
|
||||
#endif
|
||||
AboutDialog dialog (this);
|
||||
dialog.ShowModal();
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
#include "Forms.h"
|
||||
#include "ChangePasswordDialog.h"
|
||||
#include <wx/display.h>
|
||||
|
||||
namespace VeraCrypt
|
||||
{
|
||||
|
@ -161,6 +162,26 @@ namespace VeraCrypt
|
|||
void UpdateVolumeList ();
|
||||
void UpdateWipeCacheButton ();
|
||||
void WipeCache ();
|
||||
|
||||
void EnsureVisible()
|
||||
{
|
||||
wxDisplay display (this);
|
||||
wxRect displayRect = display.GetClientArea();
|
||||
|
||||
bool bMove = false;
|
||||
wxPoint p = GetScreenPosition();
|
||||
wxRect r = GetRect ();
|
||||
if (p.x < displayRect.x)
|
||||
p.x = 0, bMove = true;
|
||||
if (p.y < displayRect.y)
|
||||
p.y = displayRect.y, bMove = true;
|
||||
if (p.x + r.width > displayRect.x + displayRect.width)
|
||||
p.x = displayRect.x + displayRect.width - r.width, bMove = true;
|
||||
if (p.y + r.height > displayRect.y + displayRect.height)
|
||||
p.y = displayRect.y + displayRect.height - r.height, bMove = true;
|
||||
if (bMove)
|
||||
Move (p);
|
||||
}
|
||||
|
||||
struct VolumeActivityMapEntry
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue