From 813f23e762cc8cf04406e623ca3edff42a941a2a Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Tue, 7 Feb 2012 01:21:56 +0000 Subject: [PATCH] Check whether the dialog is maximized rather than whether it's not iconized in PersistLocation. Updates #1451. Originally committed to SVN as r6445. --- aegisub/src/persist_location.cpp | 14 ++++++++------ aegisub/src/persist_location.h | 6 +++--- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/aegisub/src/persist_location.cpp b/aegisub/src/persist_location.cpp index 95c05e05b..3939c72b0 100644 --- a/aegisub/src/persist_location.cpp +++ b/aegisub/src/persist_location.cpp @@ -38,9 +38,7 @@ PersistLocation::PersistLocation(wxDialog *dialog, std::string options_prefix) , dialog(dialog) { dialog->Bind(wxEVT_MOVE, &PersistLocation::OnMove, this); - dialog->Bind(wxEVT_ICONIZE, &PersistLocation::OnMinimize, this); - - if (maximize_opt->GetBool()) dialog->Maximize(); + dialog->Bind(wxEVT_SIZE, &PersistLocation::OnSize, this); int x = x_opt->GetInt(); int y = y_opt->GetInt(); @@ -77,14 +75,18 @@ PersistLocation::PersistLocation(wxDialog *dialog, std::string options_prefix) dialog->Move(x, y); } + + if (maximize_opt->GetBool()) dialog->Maximize(); } -void PersistLocation::OnMove(wxMoveEvent &) { +void PersistLocation::OnMove(wxMoveEvent &e) { wxPoint pos = dialog->GetPosition(); x_opt->SetInt(pos.x); y_opt->SetInt(pos.y); + e.Skip(); } -void PersistLocation::OnMinimize(wxIconizeEvent &evt) { - maximize_opt->SetBool(!evt.IsIconized()); +void PersistLocation::OnSize(wxSizeEvent &e) { + maximize_opt->SetBool(dialog->IsMaximized()); + e.Skip(); } diff --git a/aegisub/src/persist_location.h b/aegisub/src/persist_location.h index 07c50368b..586237f61 100644 --- a/aegisub/src/persist_location.h +++ b/aegisub/src/persist_location.h @@ -40,10 +40,10 @@ class PersistLocation { agi::OptionValue *x_opt; agi::OptionValue *y_opt; agi::OptionValue *maximize_opt; - class wxDialog *dialog; + wxDialog *dialog; - void OnMove(wxMoveEvent &); - void OnMinimize(wxIconizeEvent &evt); + void OnMove(wxMoveEvent&); + void OnSize(wxSizeEvent&); public: /// Persist the location of a dialog