diff --git a/lib/RELEASE-NOTES b/lib/RELEASE-NOTES index e7c4b9feca..64191591aa 100644 --- a/lib/RELEASE-NOTES +++ b/lib/RELEASE-NOTES @@ -15,6 +15,10 @@ !!!The following LyX functions have been changed in 2.5: +- The funcion window_new does not take an optional + parameter anymore. This only worked in windows and existed for + internal reasons. + !!!The following LyX functions have been removed in 2.5: !!!The following LyX function has been added and then removed in 2.5 development cycle: diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp index e07f260b25..489002364c 100644 --- a/src/LyXAction.cpp +++ b/src/LyXAction.cpp @@ -4417,9 +4417,7 @@ void LyXAction::init() * \var lyx::FuncCode lyx::LFUN_WINDOW_NEW * \li Action: Creates new empty LyX window. * \li Notion: Already opened documents from the previous window can be found under View menu. - * \li Syntax: window-new [] - * \li Params: : pass the geometry of the window. This parameter is currently - accepted only on Windows platform. + * \li Syntax: window-new * \li Origin: Abdel, 21 Oct 2006 * \endvar */ diff --git a/src/frontends/qt/GuiApplication.cpp b/src/frontends/qt/GuiApplication.cpp index 00648c1561..a4c8b328b3 100644 --- a/src/frontends/qt/GuiApplication.cpp +++ b/src/frontends/qt/GuiApplication.cpp @@ -1771,7 +1771,7 @@ void GuiApplication::dispatch(FuncRequest const & cmd, DispatchResult & dr) switch (cmd.action()) { case LFUN_WINDOW_NEW: - createView(toqstr(cmd.argument())); + createAndShowView(); break; case LFUN_WINDOW_CLOSE: @@ -1811,7 +1811,7 @@ void GuiApplication::dispatch(FuncRequest const & cmd, DispatchResult & dr) validateCurrentView(); if (!current_view_ || (!lyxrc.open_buffers_in_tabs && current_view_->documentBufferView() != nullptr)) { - createView(QString(), false); // keep hidden + createView(); // keep hidden current_view_->newDocument(to_utf8(cmd.argument())); current_view_->show(); current_view_->activateWindow(); @@ -1826,7 +1826,7 @@ void GuiApplication::dispatch(FuncRequest const & cmd, DispatchResult & dr) validateCurrentView(); if (!current_view_ || (!lyxrc.open_buffers_in_tabs && current_view_->documentBufferView() != nullptr)) { - createView(); + createAndShowView(); current_view_->newDocument(file, temp, true); if (!current_view_->documentBufferView()) current_view_->close(); @@ -1850,7 +1850,7 @@ void GuiApplication::dispatch(FuncRequest const & cmd, DispatchResult & dr) && !is_open)) { // We want the ui session to be saved per document and not per // window number. The filename crc is a good enough identifier. - createView(support::checksum(fname)); + createAndShowView(support::checksum(fname)); current_view_->openDocuments(fname, cmd.origin()); if (!current_view_->documentBufferView()) current_view_->close(); @@ -1873,7 +1873,7 @@ void GuiApplication::dispatch(FuncRequest const & cmd, DispatchResult & dr) case LFUN_HELP_OPEN: { // FIXME: create a new method shared with LFUN_FILE_OPEN. if (current_view_ == nullptr) - createView(); + createAndShowView(); string const arg = to_utf8(cmd.argument()); if (arg.empty()) { current_view_->message(_("Missing argument")); @@ -2263,7 +2263,7 @@ void GuiApplication::dispatch(FuncRequest const & cmd, DispatchResult & dr) || name == "progress" || name == "texinfo") { if (current_view_ == nullptr) - createView(); + createAndShowView(); } } // fall through @@ -2572,14 +2572,13 @@ bool GuiApplication::rtlContext() const } -void GuiApplication::createView(int view_id) +void GuiApplication::createAndShowView(int view_id) { - createView(QString(), true, view_id); + createView(true, view_id); } -void GuiApplication::createView(QString const & geometry_arg, bool autoShow, - int view_id) +void GuiApplication::createView(bool autoShow, int view_id) { // release the keyboard which might have been grabbed by the global // menubar on Mac to catch shortcuts even without any GuiView. @@ -2603,44 +2602,6 @@ void GuiApplication::createView(QString const & geometry_arg, bool autoShow, view->activateWindow(); } - if (!geometry_arg.isEmpty()) { -#if defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN) - int x, y; - int w, h; - QChar sx, sy; - QRegularExpression re( "[=]*(?:([0-9]+)[xX]([0-9]+)){0,1}[ ]*(?:([+-][0-9]*)){0,1}(?:([+-][0-9]*)){0,1}" ); - QRegularExpressionMatch match = re.match(geometry_arg); - w = match.captured(1).toInt(); - h = match.captured(2).toInt(); - x = match.captured(3).toInt(); - y = match.captured(4).toInt(); - sx = match.captured(3).isEmpty() ? '+' : match.captured(3).at(0); - sy = match.captured(4).isEmpty() ? '+' : match.captured(4).at(0); - - // Set initial geometry such that we can get the frame size. - view->setGeometry(x, y, w, h); - int framewidth = view->geometry().x() - view->x(); - int titleheight = view->geometry().y() - view->y(); - // Negative displacements must be interpreted as distances - // from the right or bottom screen borders. - if (sx == '-' || sy == '-') { - QRect rec = QGuiApplication::primaryScreen()->geometry(); - if (sx == '-') - x += rec.width() - w - framewidth; - if (sy == '-') - y += rec.height() - h - titleheight; - view->setGeometry(x, y, w, h); - } - // Make sure that the left and top frame borders are visible. - if (view->x() < 0 || view->y() < 0) { - if (view->x() < 0) - x = framewidth; - if (view->y() < 0) - y = titleheight; - view->setGeometry(x, y, w, h); - } -#endif - } view->setFocus(); } @@ -2900,7 +2861,7 @@ void GuiApplication::restoreGuiSession() if (!current_view_ || (!lyxrc.open_buffers_in_tabs && current_view_->documentBufferView() != nullptr)) { string const & fname = file_name.absFileName(); - createView(support::checksum(fname)); + createAndShowView(support::checksum(fname)); } current_view_->loadDocument(file_name, false); @@ -3469,7 +3430,7 @@ void GuiApplication::onApplicationStateChanged(Qt::ApplicationState state) /// cmd+tab only one QEvent::ApplicationStateChangeEvent event if (d->views_.empty() && d->last_state_ == state) { LYXERR(Debug::GUI, "Open new window..."); - createView(); + createAndShowView(); } break; } diff --git a/src/frontends/qt/GuiApplication.h b/src/frontends/qt/GuiApplication.h index a2fce4d6fe..22e35c7d9f 100644 --- a/src/frontends/qt/GuiApplication.h +++ b/src/frontends/qt/GuiApplication.h @@ -132,13 +132,12 @@ public: #endif //@} - /// Create the main window with given geometry settings. - /// \param geometry_arg: only for Windows platform. - /// \param optional id identifier. - void createView(QString const & geometry_arg = QString(), - bool autoShow = true, int id = 0); - /// FIXME: this method and the one above are quite ugly. - void createView(int id); + /// Create the main window + /// \param autoShow: show the created window + /// \param id: optional identifier. + void createView(bool autoShow = false, int id = 0); + /// Same as createView, but with \c autoShow = true + void createAndShowView(int id = 0); /// GuiView const * currentView() const { return current_view_; } ///