author | coredump <coredump> | 2003-11-27 12:43:02 (UTC) |
---|---|---|
committer | coredump <coredump> | 2003-11-27 12:43:02 (UTC) |
commit | 42fe0f26da22ba708f1d4b08ef93052c5ee4f444 (patch) (unidiff) | |
tree | 70dcac5c2a13b80255fe3f535e4b6f5f9cef5b1c | |
parent | d0bf022b91a6b8ae3ffef5438dc924823aacedb9 (diff) | |
download | opie-42fe0f26da22ba708f1d4b08ef93052c5ee4f444.zip opie-42fe0f26da22ba708f1d4b08ef93052c5ee4f444.tar.gz opie-42fe0f26da22ba708f1d4b08ef93052c5ee4f444.tar.bz2 |
Bugfix: Made sure that the window is always inside the visible area of
the display.
-rw-r--r-- | core/applets/screenshotapplet/screenshot.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/core/applets/screenshotapplet/screenshot.cpp b/core/applets/screenshotapplet/screenshot.cpp index 2af860a..f2cc2c5 100644 --- a/core/applets/screenshotapplet/screenshot.cpp +++ b/core/applets/screenshotapplet/screenshot.cpp | |||
@@ -493,8 +493,24 @@ void ScreenshotApplet::mousePressEvent( QMouseEvent *) | |||
493 | { | 493 | { |
494 | ScreenshotControl *sc = new ScreenshotControl ( ); | 494 | ScreenshotControl *sc = new ScreenshotControl ( ); |
495 | QPoint curPos = mapToGlobal ( QPoint ( 0, 0 )); | 495 | QPoint curPos = mapToGlobal ( QPoint ( 0, 0 )); |
496 | sc-> move ( curPos. x ( ) - ( sc-> sizeHint ( ). width ( ) - width ( )) / 2, | 496 | |
497 | curPos. y ( ) - sc-> sizeHint ( ). height ( )); | 497 | // windowPosX is the windows position centered above the applets icon. |
498 | // If the icon is near the edge of the screen, the window would leave the visible area | ||
499 | // so we check the position against the screen width and correct the difference if needed | ||
500 | |||
501 | int screenWidth = qApp->desktop()->width(); | ||
502 | int windowPosX = curPos. x ( ) - ( sc-> sizeHint ( ). width ( ) - width ( )) / 2 ; | ||
503 | int ZwindowPosX, XwindowPosX; | ||
504 | |||
505 | // the window would be placed beyond the screen wich doesn't look tooo good | ||
506 | if ( (windowPosX + sc-> sizeHint ( ). width ( )) > screenWidth ) { | ||
507 | XwindowPosX = windowPosX + sc-> sizeHint ( ). width ( ) - screenWidth; | ||
508 | ZwindowPosX = windowPosX - XwindowPosX - 1; | ||
509 | } else { | ||
510 | ZwindowPosX = windowPosX; | ||
511 | } | ||
512 | |||
513 | sc-> move ( ZwindowPosX, curPos. y ( ) - sc-> sizeHint ( ). height ( ) ); | ||
498 | sc-> show ( ); | 514 | sc-> show ( ); |
499 | } | 515 | } |
500 | 516 | ||