From 34926703d41859a1e225638fa6d3c62e66332e65 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Wed, 15 Mar 2017 12:20:52 +0000 Subject: 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 --- src/plugins/Ui/skinned/eqwidget.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/plugins/Ui/skinned/eqwidget.cpp') diff --git a/src/plugins/Ui/skinned/eqwidget.cpp b/src/plugins/Ui/skinned/eqwidget.cpp index f1985c893..bc772995a 100644 --- a/src/plugins/Ui/skinned/eqwidget.cpp +++ b/src/plugins/Ui/skinned/eqwidget.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 * @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -143,7 +144,16 @@ void EqWidget::setMimimalMode(bool b) void EqWidget::readSettings() { QSettings settings (Qmmp::configFile(), QSettings::IniFormat); - move (settings.value ("Skinned/eq_pos", QPoint (100, 216)).toPoint()); //geometry + QDesktopWidget *desktop = qApp->desktop(); + QPoint pos = settings.value("Skinned/eq_pos", QPoint(100, 216)).toPoint(); + if(!desktop->availableGeometry().contains(pos)) + { + QRect availableGeometry = desktop->availableGeometry(); + int r = m_skin->ratio(); + pos.setX(qBound(availableGeometry.left(), pos.x(), availableGeometry.right() - r*275)); + pos.setY(qBound(availableGeometry.top(), pos.y(), availableGeometry.bottom() - r*116)); + } + move (pos); //geometry readEq(); //equalizer presets QString preset_path = Qmmp::configDir() + "eq.preset"; -- cgit v1.2.3-13-gbd6f