mirror of
https://github.com/ONLYOFFICE/desktop-apps.git
synced 2026-02-10 18:05:16 +08:00
Merge pull request 'Fix bug 65777' (#196) from fix/bug-65777 into develop
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/desktop-apps/pulls/196
This commit is contained in:
@ -1022,7 +1022,7 @@ void CAscApplicationManagerWrapper::handleInputCmd(const std::vector<wstring>& v
|
||||
} else {
|
||||
if ( !_app.m_pMainWindow ) {
|
||||
_app.m_pMainWindow = _app.prepareMainWindow(_start_rect);
|
||||
_app.m_pMainWindow->show(reg_user.value("maximized", false).toBool());
|
||||
_app.m_pMainWindow->show(reg_user.value("maximized", WindowHelper::defaultWindowMaximizeState()).toBool());
|
||||
} else
|
||||
if (!_app.m_pMainWindow->isVisible())
|
||||
_app.m_pMainWindow->show(_app.m_pMainWindow->windowState().testFlag(Qt::WindowMaximized));
|
||||
@ -1042,7 +1042,7 @@ void CAscApplicationManagerWrapper::handleInputCmd(const std::vector<wstring>& v
|
||||
if ( !list_failed.empty() && !open_in_new_window ) {
|
||||
if ( !_app.m_pMainWindow ) {
|
||||
_app.m_pMainWindow = _app.prepareMainWindow(_start_rect);
|
||||
_app.m_pMainWindow->show(reg_user.value("maximized", false).toBool());
|
||||
_app.m_pMainWindow->show(reg_user.value("maximized", WindowHelper::defaultWindowMaximizeState()).toBool());
|
||||
}
|
||||
|
||||
for ( auto & o : list_failed ) {
|
||||
@ -1119,7 +1119,7 @@ void CAscApplicationManagerWrapper::startApp()
|
||||
GET_REGISTRY_USER(reg_user)
|
||||
|
||||
// QRect _start_rect = reg_user.value("position").toRect();
|
||||
bool _is_maximized = reg_user.value("maximized", false).toBool();
|
||||
bool _is_maximized = reg_user.value("maximized", WindowHelper::defaultWindowMaximizeState()).toBool();
|
||||
|
||||
#if 0
|
||||
CMainWindow * _window = createMainWindow(_start_rect);
|
||||
@ -1404,7 +1404,7 @@ void CAscApplicationManagerWrapper::gotoMainWindow(size_t src)
|
||||
}
|
||||
|
||||
_app.m_pMainWindow = _app.prepareMainWindow(_start_rect);
|
||||
_app.m_pMainWindow->show(reg_user.value("maximized", false).toBool());
|
||||
_app.m_pMainWindow->show(reg_user.value("maximized", WindowHelper::defaultWindowMaximizeState()).toBool());
|
||||
}
|
||||
|
||||
if ( !_app.m_pMainWindow->isVisible() )
|
||||
|
||||
@ -440,7 +440,7 @@ public:
|
||||
if (etype == AscEditorType::etUndefined) {
|
||||
if (!rc.isEmpty())
|
||||
rc.adjust(50,50,50,50);
|
||||
isMaximized = mainWindow() ? mainWindow()->windowState().testFlag(Qt::WindowMaximized) : reg_user.value("maximized", false).toBool();
|
||||
isMaximized = mainWindow() ? mainWindow()->windowState().testFlag(Qt::WindowMaximized) : reg_user.value("maximized", WindowHelper::defaultWindowMaximizeState()).toBool();
|
||||
} else {
|
||||
QString baseKey = "EditorsGeometry/" + QString::number(int(etype)) + "/";
|
||||
if (reg_user.contains(baseKey + "position"))
|
||||
@ -453,7 +453,7 @@ public:
|
||||
if (reg_user.contains(baseKey + "maximized"))
|
||||
isMaximized = reg_user.value(baseKey + "maximized").toBool();
|
||||
else {
|
||||
isMaximized = mainWindow() ? mainWindow()->windowState().testFlag(Qt::WindowMaximized) : reg_user.value("maximized", false).toBool();
|
||||
isMaximized = mainWindow() ? mainWindow()->windowState().testFlag(Qt::WindowMaximized) : reg_user.value("maximized", WindowHelper::defaultWindowMaximizeState()).toBool();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1178,4 +1178,13 @@ namespace WindowHelper {
|
||||
return wgt;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto defaultWindowMaximizeState() -> bool
|
||||
{
|
||||
GET_REGISTRY_USER(reg_user);
|
||||
if (reg_user.contains("position") || reg_user.childGroups().contains("EditorsGeometry"))
|
||||
return false;
|
||||
auto scr_rc = qApp->primaryScreen()->geometry();
|
||||
return (scr_rc.width() <= SCREEN_THRESHOLD_SIZE.width() || scr_rc.height() <= SCREEN_THRESHOLD_SIZE.height());
|
||||
}
|
||||
}
|
||||
|
||||
@ -174,6 +174,7 @@ namespace WindowHelper {
|
||||
auto useNativeDialog() -> bool;
|
||||
auto activeWindow() -> QWidget*;
|
||||
auto currentTopWindow() -> QWidget*;
|
||||
auto defaultWindowMaximizeState() -> bool;
|
||||
}
|
||||
|
||||
#endif // UTILS_H
|
||||
|
||||
@ -88,8 +88,10 @@ CWindowBase::~CWindowBase()
|
||||
|
||||
QRect CWindowBase::startRect(const QRect &rc, double &dpi)
|
||||
{
|
||||
dpi = Utils::getScreenDpiRatio(rc.isEmpty() ? qApp->primaryScreen()->geometry().topLeft() : rc.topLeft());
|
||||
QRect def_rc = QRect(QPoint(100, 100) * dpi, MAIN_WINDOW_DEFAULT_SIZE * dpi),
|
||||
QRect prim_scr_rc = qApp->primaryScreen()->availableGeometry();
|
||||
dpi = Utils::getScreenDpiRatio(rc.isEmpty() ? prim_scr_rc.topLeft() : rc.topLeft());
|
||||
QSize def_size = MAIN_WINDOW_DEFAULT_SIZE * dpi;
|
||||
QRect def_rc = QRect(prim_scr_rc.center() - QPoint(def_size.width()/2, def_size.height()/2), def_size),
|
||||
out_rc = rc.isEmpty() ? def_rc : rc,
|
||||
scr_rc = Utils::getScreenGeometry(out_rc.topLeft());
|
||||
return scr_rc.intersects(out_rc) ? scr_rc.intersected(out_rc) : def_rc;
|
||||
|
||||
@ -38,8 +38,9 @@
|
||||
|
||||
#define MAIN_WINDOW_MIN_WIDTH 960
|
||||
#define MAIN_WINDOW_MIN_HEIGHT 661
|
||||
#define MAIN_WINDOW_DEFAULT_SIZE QSize(1324,800)
|
||||
#define MAIN_WINDOW_DEFAULT_SIZE QSize(1200,740)
|
||||
#define EDITOR_WINDOW_MIN_WIDTH 920
|
||||
#define SCREEN_THRESHOLD_SIZE QSize(1366,768)
|
||||
|
||||
#define BUTTON_MAIN_WIDTH 112
|
||||
#define MAIN_WINDOW_BORDER_WIDTH 3
|
||||
|
||||
Reference in New Issue
Block a user