Support for UrgencyHint - such windows are demanding attention when inactive.
svn path=/trunk/kdebase/kwin/; revision=257691
This commit is contained in:
parent
128085b3d7
commit
2981785b56
4 changed files with 19 additions and 3 deletions
|
@ -727,6 +727,7 @@ void Client::setActive( bool act)
|
|||
if( decoration != NULL )
|
||||
decoration->activeChange();
|
||||
updateMouseGrab();
|
||||
updateUrgency(); // demand attention again if it's still urgent
|
||||
}
|
||||
|
||||
void Client::startupIdChanged()
|
||||
|
@ -749,5 +750,10 @@ void Client::startupIdChanged()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void Client::updateUrgency()
|
||||
{
|
||||
if( urgency )
|
||||
demandAttention();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
|
|
@ -123,6 +123,7 @@ Client::Client( Workspace *ws )
|
|||
noborder = false;
|
||||
user_noborder = false;
|
||||
not_obscured = false;
|
||||
urgency = false;
|
||||
|
||||
Pdeletewindow = 0;
|
||||
Ptakefocus = 0;
|
||||
|
@ -1224,15 +1225,18 @@ void Client::getWMHints()
|
|||
XWMHints *hints = XGetWMHints(qt_xdisplay(), window() );
|
||||
input = true;
|
||||
window_group = None;
|
||||
urgency = false;
|
||||
if ( hints )
|
||||
{
|
||||
if ( hints->flags & InputHint )
|
||||
if( hints->flags & InputHint )
|
||||
input = hints->input;
|
||||
if( hints->flags & WindowGroupHint )
|
||||
window_group = hints->window_group;
|
||||
XFree((char*)hints);
|
||||
urgency = ( hints->flags & UrgencyHint ) ? true : false; // true/false needed, it's uint bitfield
|
||||
XFree( (char*)hints );
|
||||
}
|
||||
checkGroup();
|
||||
updateUrgency();
|
||||
updateAllowedActions(); // group affects isMinimizable()
|
||||
}
|
||||
|
||||
|
|
2
client.h
2
client.h
|
@ -346,6 +346,7 @@ class Client : public QObject, public KDecorationDefines
|
|||
|
||||
void pingWindow();
|
||||
void killProcess( bool ask, Time timestamp = CurrentTime );
|
||||
void updateUrgency();
|
||||
|
||||
void embedClient( Window w );
|
||||
void detectNoBorder();
|
||||
|
@ -424,6 +425,7 @@ class Client : public QObject, public KDecorationDefines
|
|||
uint noborder : 1;
|
||||
uint user_noborder : 1;
|
||||
uint not_obscured : 1;
|
||||
uint urgency : 1; // XWMHints, UrgencyHint
|
||||
void getWMHints();
|
||||
void readIcons();
|
||||
void getWindowProtocols();
|
||||
|
|
4
utils.h
4
utils.h
|
@ -132,6 +132,10 @@ class KWinSelectionOwner
|
|||
QCString getStringProperty(WId w, Atom prop, char separator=0);
|
||||
void kwin_updateTime();
|
||||
|
||||
// the docs say it's UrgencyHint, but it's often #defined as XUrgencyHint
|
||||
#ifndef UrgencyHint
|
||||
#define UrgencyHint XUrgencyHint
|
||||
#endif
|
||||
|
||||
// for STL-like algo's
|
||||
#define KWIN_CHECK_PREDICATE( name, check ) \
|
||||
|
|
Loading…
Reference in a new issue