Always make sure emulator is not off-screen when resizing
This commit is contained in:
@@ -798,6 +798,30 @@ MainWindow::closeEvent(QCloseEvent *event)
|
|||||||
event->accept();
|
event->accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
MainWindow::resizeEvent(QResizeEvent *event)
|
||||||
|
{
|
||||||
|
//qDebug() << pos().x() + event->size().width();
|
||||||
|
//qDebug() << pos().y() + event->size().height();
|
||||||
|
if (vid_resize == 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int newX = pos().x();
|
||||||
|
int newY = pos().y();
|
||||||
|
|
||||||
|
if (((frameGeometry().x() + event->size().width() + 1) > util::screenOfWidget(this)->availableGeometry().right())) {
|
||||||
|
//move(util::screenOfWidget(this)->availableGeometry().right() - size().width() - 1, pos().y());
|
||||||
|
newX = util::screenOfWidget(this)->availableGeometry().right() - frameGeometry().width() - 1;
|
||||||
|
if (newX < 1) newX = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((frameGeometry().y() + event->size().height() + 1) > util::screenOfWidget(this)->availableGeometry().bottom())) {
|
||||||
|
newY = util::screenOfWidget(this)->availableGeometry().bottom() - frameGeometry().height() - 1;
|
||||||
|
if (newY < 1) newY = 1;
|
||||||
|
}
|
||||||
|
move(newX, newY);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MainWindow::initRendererMonitorSlot(int monitor_index)
|
MainWindow::initRendererMonitorSlot(int monitor_index)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ protected:
|
|||||||
void showEvent(QShowEvent *event) override;
|
void showEvent(QShowEvent *event) override;
|
||||||
void closeEvent(QCloseEvent *event) override;
|
void closeEvent(QCloseEvent *event) override;
|
||||||
void changeEvent(QEvent *event) override;
|
void changeEvent(QEvent *event) override;
|
||||||
|
void resizeEvent(QResizeEvent *event) override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_actionPen_triggered();
|
void on_actionPen_triggered();
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
#include <QStackedWidget>
|
#include <QStackedWidget>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QCursor>
|
#include <QCursor>
|
||||||
|
#include <QScreen>
|
||||||
|
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
@@ -14,6 +15,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "qt_renderercommon.hpp"
|
#include "qt_renderercommon.hpp"
|
||||||
|
#include "qt_util.hpp"
|
||||||
|
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
|
|
||||||
@@ -21,6 +23,11 @@ namespace Ui {
|
|||||||
class RendererStack;
|
class RendererStack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
extern int vid_resize;
|
||||||
|
}
|
||||||
|
|
||||||
class RendererCommon;
|
class RendererCommon;
|
||||||
class RendererStack : public QStackedWidget {
|
class RendererStack : public QStackedWidget {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -43,6 +50,22 @@ public:
|
|||||||
void changeEvent(QEvent *event) override;
|
void changeEvent(QEvent *event) override;
|
||||||
void resizeEvent(QResizeEvent *event) override
|
void resizeEvent(QResizeEvent *event) override
|
||||||
{
|
{
|
||||||
|
if (this->m_monitor_index != 0 && vid_resize != 1) {
|
||||||
|
int newX = pos().x();
|
||||||
|
int newY = pos().y();
|
||||||
|
|
||||||
|
if (((frameGeometry().x() + event->size().width() + 1) > util::screenOfWidget(this)->availableGeometry().right())) {
|
||||||
|
//move(util::screenOfWidget(this)->availableGeometry().right() - size().width() - 1, pos().y());
|
||||||
|
newX = util::screenOfWidget(this)->availableGeometry().right() - frameGeometry().width() - 1;
|
||||||
|
if (newX < 1) newX = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((frameGeometry().y() + event->size().height() + 1) > util::screenOfWidget(this)->availableGeometry().bottom())) {
|
||||||
|
newY = util::screenOfWidget(this)->availableGeometry().bottom() - frameGeometry().height() - 1;
|
||||||
|
if (newY < 1) newY = 1;
|
||||||
|
}
|
||||||
|
move(newX, newY);
|
||||||
|
}
|
||||||
onResize(event->size().width(), event->size().height());
|
onResize(event->size().width(), event->size().height());
|
||||||
}
|
}
|
||||||
void keyPressEvent(QKeyEvent *event) override
|
void keyPressEvent(QKeyEvent *event) override
|
||||||
|
|||||||
Reference in New Issue
Block a user