diff --git a/gui/src/main_gui/fsguiapp.cpp b/gui/src/main_gui/fsguiapp.cpp index 9da9bf74..88c27ab6 100644 --- a/gui/src/main_gui/fsguiapp.cpp +++ b/gui/src/main_gui/fsguiapp.cpp @@ -246,6 +246,8 @@ void FsGuiMainCanvas::Initialize(int argc,char *argv[]) View_ShowTip(nullptr); } + FitWindowToGUI(); + YsDisregardVariable(argc); YsDisregardVariable(argv); YsGLSLCreateSharedRenderer(); @@ -692,6 +694,7 @@ void FsGuiMainCanvas::ReallyRunWithinSameProcess(VMClass &VM) { AddDialog(profileDlg); RemoveDialog(resumeVMDlg); + FitWindowToGUI(); } SetNeedRedraw(YSTRUE); } @@ -836,6 +839,7 @@ bool FsGuiMainCanvas::ResumeVMIfSameProc(VMClass &VM) { AddDialog(profileDlg); RemoveDialog(resumeVMDlg); + FitWindowToGUI(); } SetNeedRedraw(YSTRUE); return true; @@ -989,6 +993,24 @@ YsWString FsGuiMainCanvas::GetDefaultNewEventLogFileName(void) const return ful; } +void FsGuiMainCanvas::FitWindowToGUI(void) +{ + auto dim=GetGUIDimension(); + FsResizeWindow(dim.x(),dim.y()); +} + +YsVec2i FsGuiMainCanvas::GetGUIDimension(void) const +{ + YsVec2i dim(1,1); + if(nullptr!=profileDlg) + { + int xLim=profileDlg->GetLeftX()+profileDlg->GetWidth(); + int yLim=profileDlg->GetTopY()+profileDlg->GetHeight(); + dim.Set(xLim,yLim); + } + return dim; +} + std::vector FsGuiMainCanvas::CheckMissingROMFiles(void) const { std::vector missing; diff --git a/gui/src/main_gui/fsguiapp.h b/gui/src/main_gui/fsguiapp.h index 702d4ab1..117b197e 100644 --- a/gui/src/main_gui/fsguiapp.h +++ b/gui/src/main_gui/fsguiapp.h @@ -181,6 +181,9 @@ class FsGuiMainCanvas : public FsGuiCanvas YsWString GetDefaultNewHardDiskImageFileName(void) const; YsWString GetDefaultNewEventLogFileName(void) const; + void FitWindowToGUI(void); + YsVec2i GetGUIDimension(void) const; + public: static std::string GamePortEmulationTypeToHumanReadable(unsigned int emuType); static unsigned int HumanReadableToGamePortEmulationType(std::string);