summaryrefslogtreecommitdiffstats
path: root/hoverwindow.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-10-17 08:14:47 +0200
committerArno <am@disconnect.de>2010-10-17 08:14:47 +0200
commita3a556cc8af3433de1f8d5e22a4ba62cc029f145 (patch)
treed1b793941906c9a681ce39562df69ec84aa064df /hoverwindow.cpp
parentd7db872a15418d20392990a65d9525c11e2a4fa4 (diff)
downloadSheMov-a3a556cc8af3433de1f8d5e22a4ba62cc029f145.tar.gz
SheMov-a3a556cc8af3433de1f8d5e22a4ba62cc029f145.tar.bz2
SheMov-a3a556cc8af3433de1f8d5e22a4ba62cc029f145.zip
Let HoverWindow always stay on screen
Fixed HoverWindow so it always stays completely on screeen.
Diffstat (limited to 'hoverwindow.cpp')
-rw-r--r--hoverwindow.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/hoverwindow.cpp b/hoverwindow.cpp
index 8c5f227..100f278 100644
--- a/hoverwindow.cpp
+++ b/hoverwindow.cpp
@@ -7,6 +7,8 @@
#include <QHBoxLayout>
#include <QLabel>
+#include <QApplication>
+#include <QDesktopWidget>
#include "hoverwindow.h"
@@ -51,3 +53,17 @@ int HoverWindow::pixmapHeight() const{
const QPixmap *pm = mLabel->pixmap();
return pm ? pm->height() : 0;
}
+
+void HoverWindow::setPos(const QPoint &cursorPos){
+ if(cursorPos.y() - height() / 2 < 0){
+ move(QPoint(cursorPos.x(), 0));
+ return;
+ }
+ QDesktopWidget *desktop = qApp->desktop();
+ int desktopHeight = desktop->availableGeometry().height();
+ if(cursorPos.y() + height() / 2 > desktopHeight){
+ move(QPoint(cursorPos.x(), desktopHeight - height()));
+ return;
+ }
+ move(cursorPos);
+}