Fix keyboard multi-select failure in ksysguard

(cherry picked from commit 64f3533baa)
v3.5.13-sru
Timothy Pearson 12 years ago committed by Slávek Banko
parent 6d0a6c6224
commit d873dc1dba

@ -228,6 +228,8 @@ ProcessList::ProcessList(TQWidget *parent, const char* name)
* settings. */
connect(header(), TQT_SIGNAL(clicked(int)), this, TQT_SLOT(sortingChanged(int)));
ctrlKeyDown = false;
shiftKeyDown = false;
treeViewEnabled = false;
openAll = true;
@ -293,6 +295,8 @@ ProcessList::getSelectedAsStrings()
}
bool
ProcessList::update(const TQString& list)
{
if ((!shiftKeyDown) && (!ctrlKeyDown))
{
/* Disable painting to avoid flickering effects,
* especially when in tree view mode.
@ -353,6 +357,7 @@ ProcessList::update(const TQString& list)
viewport()->setUpdatesEnabled(true);
triggerUpdate();
}
return (true);
}
@ -360,7 +365,7 @@ ProcessList::update(const TQString& list)
void
ProcessList::setTreeView(bool tv)
{
if (treeViewEnabled = tv)
if ((treeViewEnabled = tv))
{
savedWidth[0] = columnWidth(0);
openAll = true;
@ -938,4 +943,28 @@ ProcessList::selectAllChilds(int pid, bool select)
}
}
void
ProcessList::keyPressEvent(TQKeyEvent *e)
{
if (e->key() == Key_Shift) {
shiftKeyDown = true;
}
if (e->key() == Key_Control) {
ctrlKeyDown = true;
}
KListView::keyPressEvent(e);
}
void
ProcessList::keyReleaseEvent(TQKeyEvent *e)
{
if (e->key() == Key_Shift) {
shiftKeyDown = false;
}
if (e->key() == Key_Control) {
ctrlKeyDown = false;
}
KListView::keyReleaseEvent(e);
}
#include "ProcessList.moc"

@ -170,6 +170,10 @@ signals:
void listModified(bool);
protected:
void keyPressEvent(TQKeyEvent *e);
void keyReleaseEvent(TQKeyEvent *e);
private:
// items of table header RMB popup menu
enum
@ -244,6 +248,8 @@ private:
bool killSupported;
bool treeViewEnabled;
bool openAll;
bool ctrlKeyDown;
bool shiftKeyDown;
/* The following lists are primarily used to store table specs between
* load() and the actual table creation in addColumn(). */

Loading…
Cancel
Save