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();
|
||||
}
|
||||
|
||||
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
|
||||
MainWindow::initRendererMonitorSlot(int monitor_index)
|
||||
{
|
||||
|
||||
@@ -137,6 +137,7 @@ protected:
|
||||
void showEvent(QShowEvent *event) override;
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
void changeEvent(QEvent *event) override;
|
||||
void resizeEvent(QResizeEvent *event) override;
|
||||
|
||||
private slots:
|
||||
void on_actionPen_triggered();
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <QStackedWidget>
|
||||
#include <QWidget>
|
||||
#include <QCursor>
|
||||
#include <QScreen>
|
||||
|
||||
#include <atomic>
|
||||
#include <memory>
|
||||
@@ -14,6 +15,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "qt_renderercommon.hpp"
|
||||
#include "qt_util.hpp"
|
||||
|
||||
#include <atomic>
|
||||
|
||||
@@ -21,6 +23,11 @@ namespace Ui {
|
||||
class RendererStack;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
extern int vid_resize;
|
||||
}
|
||||
|
||||
class RendererCommon;
|
||||
class RendererStack : public QStackedWidget {
|
||||
Q_OBJECT
|
||||
@@ -43,6 +50,22 @@ public:
|
||||
void changeEvent(QEvent *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());
|
||||
}
|
||||
void keyPressEvent(QKeyEvent *event) override
|
||||
|
||||
Reference in New Issue
Block a user