[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdebase/kicker/taskmanager
From: Aaron J. Seigo <aseigo () kde ! org>
Date: 2005-02-24 3:30:15
Message-ID: 20050224033015.C6DDEEDBC () office ! kde ! org
[Download RAW message or body]
CVS commit by aseigo:
make sure the window still is around before accessing its attributes
i wonder if this is the cause of the "crashes when i close the gimp" bugs?
CCBUG:97083
M +45 -35 taskmanager.cpp 1.89
--- kdebase/kicker/taskmanager/taskmanager.cpp #1.88:1.89
@@ -476,35 +476,35 @@ void Task::setActive(bool a)
bool Task::isMaximized() const
{
- return(_info.state() & NET::Max);
+ return _info.valid() && (_info.state() & NET::Max);
}
bool Task::isMinimized() const
{
- return _info.isMinimized();
+ return _info.valid() && _info.isMinimized();
}
bool Task::isIconified() const
{
- return _info.isMinimized();
+ return _info.valid() && _info.isMinimized();
}
bool Task::isAlwaysOnTop() const
{
- return (_info.state() & NET::StaysOnTop);
+ return _info.valid() && (_info.state() & NET::StaysOnTop);
}
bool Task::isShaded() const
{
- return (_info.state() & NET::Shaded);
+ return _info.valid() && (_info.state() & NET::Shaded);
}
bool Task::isOnCurrentDesktop() const
{
- return (_info.isOnCurrentDesktop());
+ return _info.valid() && (_info.isOnCurrentDesktop());
}
bool Task::isOnAllDesktops() const
{
- return _info.onAllDesktops();
+ return _info.valid() && _info.onAllDesktops();
}
@@ -521,5 +521,7 @@ bool Task::isOnTop() const
bool Task::isModified() const
{
- static QString modStr = QString::fromUtf8("[") + i18n("modified") + QString::fromUtf8("]");
+ static QString modStr = QString::fromUtf8("[") +
+ i18n("modified") +
+ QString::fromUtf8("]");
int modStrPos = _info.visibleName().find(modStr);
@@ -529,6 +531,6 @@ bool Task::isModified() const
bool Task::demandsAttention() const
{
- return (_info.state() & NET::DemandsAttention)
- || _transients_demanding_attention.count() > 0;
+ return (_info.valid() && (_info.state() & NET::DemandsAttention)) ||
+ _transients_demanding_attention.count() > 0;
}
@@ -554,8 +556,8 @@ void Task::updateDemandsAttentionState(
void Task::addTransient( WId w, const NETWinInfo& info )
{
- _transients.append( w );
- if( info.state() & NET::DemandsAttention )
+ _transients.append(w);
+ if (_info.valid() && info.state() & NET::DemandsAttention)
{
- _transients_demanding_attention.append( w );
+ _transients_demanding_attention.append(w);
emit changed();
}
@@ -840,11 +842,16 @@ void Task::toDesktop(int desk)
{
NETWinInfo ni(qt_xdisplay(), _win, qt_xrootwin(), NET::WMDesktop);
- if (desk == 0) {
- if (_info.onAllDesktops()) {
+ if (desk == 0)
+ {
+ if (_info.valid() && _info.onAllDesktops())
+ {
ni.setDesktop(TaskManager::the()->winModule()->currentDesktop());
KWin::forceActiveWindow(_win);
}
else
+ {
ni.setDesktop(NETWinInfo::OnAllDesktops);
+ }
+
return;
}
@@ -900,10 +907,11 @@ void Task::publishIconGeometry(QRect rec
void Task::updateThumbnail()
{
- if ( !isOnCurrentDesktop() )
- return;
- if ( !isActive() )
- return;
- if ( !_grab.isNull() ) // We're already processing one...
+ if ( !_info.valid() ||
+ !isOnCurrentDesktop() ||
+ !isActive() ||
+ !_grab.isNull() ) // We're already processing one...
+ {
return;
+ }
//
@@ -914,10 +922,12 @@ void Task::updateThumbnail()
QWidget *rootWin = qApp->desktop();
QRect geom = _info.geometry();
- _grab = QPixmap::grabWindow( rootWin->winId(),
+ _grab = QPixmap::grabWindow(rootWin->winId(),
geom.x(), geom.y(),
- geom.width(), geom.height() );
+ geom.width(), geom.height());
- if ( !_grab.isNull() )
- QTimer::singleShot( 200, this, SLOT( generateThumbnail() ) );
+ if (!_grab.isNull())
+ {
+ QTimer::singleShot(200, this, SLOT(generateThumbnail()));
+ }
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic