snap cursor to center of HMD tools dialog when shown, or app when the dialog is hidden

This commit is contained in:
ZappoMan 2014-11-26 10:46:47 -08:00
parent c580617921
commit ad6680553c
2 changed files with 20 additions and 2 deletions

View file

@ -170,4 +170,19 @@ void HMDToolsDialog::closeEvent(QCloseEvent* event) {
emit closed();
}
void HMDToolsDialog::centerCursorOnWidget(QWidget* widget) {
QWindow* window = widget->windowHandle();
QScreen* screen = window->screen();
QPoint windowCenter = window->geometry().center();
QCursor::setPos(screen, windowCenter);
}
void HMDToolsDialog::showEvent(QShowEvent* event) {
centerCursorOnWidget(this);
}
void HMDToolsDialog::hideEvent(QHideEvent* event) {
centerCursorOnWidget(Application::getInstance()->getWindow());
}

View file

@ -35,10 +35,13 @@ public slots:
void applicationWindowScreenChanged(QScreen* screen);
protected:
// Emits a 'closed' signal when this dialog is closed.
void closeEvent(QCloseEvent*);
virtual void closeEvent(QCloseEvent*); // Emits a 'closed' signal when this dialog is closed.
virtual void showEvent(QShowEvent* event);
virtual void hideEvent(QHideEvent* event);
private:
void centerCursorOnWidget(QWidget* widget);
bool _wasMoved;
QRect _previousRect;
QScreen* _previousScreen;