--- gigedit/trunk/src/gigedit/mainwindow.cpp 2020/10/10 19:54:18 3830 +++ gigedit/trunk/src/gigedit/mainwindow.cpp 2020/10/15 18:08:49 3831 @@ -1734,6 +1734,24 @@ #endif raise(); present(); + + // restore user specified splitter position + if (Settings::singleton()->mainWindowSplitterPosX >= 0 && + Settings::singleton()->autoRestoreWindowDimension) + { + const int pos = Settings::singleton()->mainWindowSplitterPosX; + printf("Restoring user's preferred splitter position=%d\n", pos); + m_HPaned.set_position(pos); + } + // this signal handler is late-connected after the UI build-up has settled + // to prevent the UI build-up from overwriting user's setting for splitter + // position unintentionally + m_HPaned.property_position().signal_changed().connect([this]{ + if (!Settings::singleton()->autoRestoreWindowDimension) return; + const int pos = m_HPaned.get_position(); + printf("Saving user's preferred splitter position=%d\n", pos); + Settings::singleton()->mainWindowSplitterPosX = pos; + }); } void MainWindow::updateMacroMenu() {