[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kalarm
From: David Jarvie <djarvie () kde ! org>
Date: 2009-10-31 23:03:51
Message-ID: 1257030231.058010.32637.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1043172 by djarvie:
Bug 211696: If dual screens, show alarm in other screen if active window is \
full screen
M +8 -8 lib/desktop.cpp
M +2 -2 lib/desktop.h
M +10 -13 messagewin.cpp
M +1 -1 messagewin.h
--- trunk/KDE/kdepim/kalarm/lib/desktop.cpp #1043171:1043172
@@ -1,7 +1,7 @@
/*
* desktop.cpp - desktop functions
* Program: kalarm
- * Copyright © 2008 by David Jarvie <djarvie@kde.org>
+ * Copyright © 2008,2009 by David Jarvie <djarvie@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -21,23 +21,23 @@
#include "desktop.h"
#ifdef Q_WS_X11
#include <kwindowsystem.h>
-#else
+#endif
#include <QApplication>
#include <QDesktopWidget>
-#endif
namespace KAlarm {
/******************************************************************************
-* Return the size of the usable area of the desktop.
+* Return the size of the usable area of the desktop, optionally for a \
specific +* screen in a multi-head setup.
*/
-QRect desktopWorkArea()
+QRect desktopWorkArea(int screen)
{
#ifdef Q_WS_X11
- return KWindowSystem::workArea();
-#else
- return qApp->desktop()->availableGeometry();
+ if (screen < 0)
+ return KWindowSystem::workArea();
#endif
+ return qApp->desktop()->availableGeometry(screen);
}
} // namespace KAlarm
--- trunk/KDE/kdepim/kalarm/lib/desktop.h #1043171:1043172
@@ -1,7 +1,7 @@
/*
* desktop.h - desktop functions
* Program: kalarm
- * Copyright © 2008 by David Jarvie <djarvie@kde.org>
+ * Copyright © 2008,2009 by David Jarvie <djarvie@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@
namespace KAlarm {
-QRect desktopWorkArea();
+QRect desktopWorkArea(int screen = -1);
} // namespace KAlarm
--- trunk/KDE/kdepim/kalarm/messagewin.cpp #1043171:1043172
@@ -516,7 +516,7 @@
topLayout->addSpacing(vspace);
topLayout->addStretch();
// Don't include any horizontal margins if message is 2/3 screen width
- if (text->sizeHint().width() >= mDesktopArea.width()*2/3)
+ if (text->sizeHint().width() >= \
KAlarm::desktopWorkArea(mScreenNumber).width()*2/3) \
topLayout->addWidget(text, 1, Qt::AlignHCenter); else
{
@@ -1531,7 +1531,7 @@
}
// Limit the size to fit inside the working area of the desktop
- QSize desktop = KAlarm::desktopWorkArea().size();
+ QSize desktop = KAlarm::desktopWorkArea(mScreenNumber).size();
QSize frameThickness = frameGeometry().size() - geometry().size(); // \
title bar & window frame return desired.boundedTo(desktop - \
frameThickness); }
@@ -1565,7 +1565,7 @@
KAlarm::readConfigWindowSize("FileMessage", s);
resize(s);
- QRect desk = KAlarm::desktopWorkArea();
+ QRect desk = KAlarm::desktopWorkArea(mScreenNumber);
QRect frame = frameGeometry();
mButtonDelay = Preferences::messageButtonDelay() * 1000;
@@ -1638,7 +1638,7 @@
void MessageWin::moveEvent(QMoveEvent* e)
{
MainWindowBase::moveEvent(e);
- theApp()->setSpreadWindowsState(isSpread(KAlarm::desktopWorkArea().topLeft()));
+ theApp()->setSpreadWindowsState(isSpread(KAlarm::desktopWorkArea(mScreenNumber).topLeft()));
if (mPositioning)
{
// The window has just been initially positioned
@@ -1660,7 +1660,7 @@
if (width() > s.width() || height() > s.height())
resize(s);
}
- theApp()->setSpreadWindowsState(isSpread(KAlarm::desktopWorkArea().topLeft()));
+ theApp()->setSpreadWindowsState(isSpread(KAlarm::desktopWorkArea(mScreenNumber).topLeft()));
}
/******************************************************************************
@@ -1997,7 +1997,7 @@
*/
bool MessageWin::getWorkAreaAndModal()
{
- mDesktopArea = KAlarm::desktopWorkArea();
+ mScreenNumber = -1;
bool modal = Preferences::modalMessages();
if (modal)
{
@@ -2014,26 +2014,23 @@
{
// There are multiple screens
QRect winRect = wi.frameGeometry();
- int screen = desktop->screenNumber(MainWindow::mainMainWindow()); // \
KAlarm's screen
- if (!winRect.intersects(desktop->screenGeometry(screen)))
+ mScreenNumber = desktop->screenNumber(MainWindow::mainMainWindow()); \
// KAlarm's screen + if \
(!winRect.intersects(desktop->screenGeometry(mScreenNumber))) modal = \
true; // full screen window isn't on KAlarm's screen else
{
for (int s = 0; s < numScreens; ++s)
{
- if (s != screen
+ if (s != mScreenNumber
&& !winRect.intersects(desktop->screenGeometry(s)))
{
// The full screen window isn't on this screen
- screen = s;
+ mScreenNumber = s;
modal = true;
break;
}
}
- if (!modal)
- return modal;
}
- mDesktopArea = desktop->availableGeometry(screen);
}
}
}
--- trunk/KDE/kdepim/kalarm/messagewin.h #1043171:1043172
@@ -163,10 +163,10 @@
QCheckBox* mDontShowAgainCheck;
DeferAlarmDlg* mDeferDlg;
QDateTime mDeferLimit; // last time to which the message \
can currently be deferred
- QRect mDesktopArea; // usable area of \
desktop (excluding panel etc.) int mFlags; // \
event flags int mLateCancel;
int mButtonDelay; // delay (ms) after window is \
shown before buttons are enabled + int mScreenNumber; \
// screen to display on, or -1 for default bool \
mAlwaysHide; // the window should never be displayed bool \
mErrorWindow; // the window is simply an error message bool \
mNoPostAction; // don't execute any post-alarm action
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic