diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2017-03-15 12:20:52 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2017-03-15 12:20:52 +0000 |
| commit | 34926703d41859a1e225638fa6d3c62e66332e65 (patch) | |
| tree | fada633346b9f51d6e423134fea70b2912cfe59b /src/plugins/Ui/skinned/playlist.cpp | |
| parent | d2f5650a291016b2894b93e85a16ade5a5a8f899 (diff) | |
| download | qmmp-34926703d41859a1e225638fa6d3c62e66332e65.tar.gz qmmp-34926703d41859a1e225638fa6d3c62e66332e65.tar.bz2 qmmp-34926703d41859a1e225638fa6d3c62e66332e65.zip | |
skinned: prevent off-screen position (#898)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7094 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/skinned/playlist.cpp')
| -rw-r--r-- | src/plugins/Ui/skinned/playlist.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/plugins/Ui/skinned/playlist.cpp b/src/plugins/Ui/skinned/playlist.cpp index 7a33b95b0..93b15e6ac 100644 --- a/src/plugins/Ui/skinned/playlist.cpp +++ b/src/plugins/Ui/skinned/playlist.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2016 by Ilya Kotov * + * Copyright (C) 2006-2017 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -25,6 +25,7 @@ #include <QSignalMapper> #include <QCloseEvent> #include <QInputDialog> +#include <QDesktopWidget> #include <qmmpui/playlistitem.h> #include <qmmpui/playlistmodel.h> #include <qmmpui/playlistmanager.h> @@ -502,7 +503,16 @@ void PlayList::readSettings() } else { - move (settings.value ("Skinned/pl_pos", QPoint (100, 332)).toPoint()); //position + QDesktopWidget *desktop = qApp->desktop(); + QPoint pos = settings.value ("Skinned/pl_pos", QPoint (100, 332)).toPoint(); + if(!desktop->availableGeometry().contains(pos)) + { + QRect availableGeometry = desktop->availableGeometry(); + m_ratio = m_skin->ratio(); + pos.setX(qBound(availableGeometry.left(), pos.x(), availableGeometry.right() - m_ratio*275)); + pos.setY(qBound(availableGeometry.top(), pos.y(), availableGeometry.bottom() - m_ratio*116)); + } + move (pos); //position m_update = true; } } |
