Improved window blacklist
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@229 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
parent
699befe618
commit
f533ea45a7
|
@ -5,7 +5,7 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>574</width>
|
<width>525</width>
|
||||||
<height>145</height>
|
<height>145</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -161,7 +161,8 @@ void AutoType::perform(IEntryHandle* entry, QString& err,bool hideWindow,int nr)
|
||||||
#ifdef GLOBAL_AUTOTYPE
|
#ifdef GLOBAL_AUTOTYPE
|
||||||
|
|
||||||
Window windowRoot;
|
Window windowRoot;
|
||||||
QStringList windowBlacklist;
|
//QSet<QString> windowBlacklist;
|
||||||
|
QSet<QString> classBlacklist;
|
||||||
Atom wm_state;
|
Atom wm_state;
|
||||||
|
|
||||||
void windowTitles(Window window, QStringList& titleList){
|
void windowTitles(Window window, QStringList& titleList){
|
||||||
|
@ -179,9 +180,17 @@ void windowTitles(Window window, QStringList& titleList){
|
||||||
int count;
|
int count;
|
||||||
if (Xutf8TextPropertyToTextList(d, &textProp, &list, &count)>=0 && list){
|
if (Xutf8TextPropertyToTextList(d, &textProp, &list, &count)>=0 && list){
|
||||||
QString title = QString::fromUtf8(list[0]);
|
QString title = QString::fromUtf8(list[0]);
|
||||||
|
|
||||||
|
QString className;
|
||||||
|
XClassHint* wmClass = XAllocClassHint();
|
||||||
|
if (XGetClassHint(d, window, wmClass)!=0 && wmClass->res_name!=NULL)
|
||||||
|
className = QString::fromLocal8Bit(wmClass->res_name);
|
||||||
|
XFree(wmClass);
|
||||||
|
|
||||||
if (window!=windowRoot && window!=AutoType::MainWin->winId() &&
|
if (window!=windowRoot && window!=AutoType::MainWin->winId() &&
|
||||||
(QApplication::activeWindow()==NULL || window!=QApplication::activeWindow()->winId()) &&
|
(QApplication::activeWindow()==NULL || window!=QApplication::activeWindow()->winId()) &&
|
||||||
!windowBlacklist.contains(title)
|
// !windowBlacklist.contains(title) &&
|
||||||
|
(className.isNull() || !classBlacklist.contains(className))
|
||||||
){
|
){
|
||||||
titleList.append(title);
|
titleList.append(title);
|
||||||
}
|
}
|
||||||
|
@ -207,7 +216,10 @@ void AutoType::init(){
|
||||||
Display* d = QX11Info::display();
|
Display* d = QX11Info::display();
|
||||||
wm_state = XInternAtom(d, "WM_STATE", true);
|
wm_state = XInternAtom(d, "WM_STATE", true);
|
||||||
windowRoot = XRootWindow(d, MainWin->x11Info().screen());
|
windowRoot = XRootWindow(d, MainWin->x11Info().screen());
|
||||||
windowBlacklist << "kicker" << "KDE Desktop";
|
//windowBlacklist << "kicker" << "KDE Desktop";
|
||||||
|
classBlacklist << "desktop_window" << "gnome-panel"; // Gnome
|
||||||
|
classBlacklist << "kdesktop" << "kicker"; // KDE 3
|
||||||
|
classBlacklist << "xfdesktop" << "xfce4-panel"; // Xfce 4
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList AutoType::getAllWindowTitles(){
|
QStringList AutoType::getAllWindowTitles(){
|
||||||
|
|
Loading…
Reference in New Issue