Лично мне дефолтное поведение smoothtasks, когда щелкаешь по иконке приложения, и оно (приложение) сворачивается/разворачивается, - не нравится.
Дабы решить такую супер-проблему, накатал патчик, который это дело фиксит:
- повторный щелчок по иконке открытого приложения ничего не делает (приложение, как и было, остается активным);
- повторный щелчок по иконке группы приложений открывает список приложений в группе.
Хотел написать автору SmoothTasks, но нигде не мог найти его email, а регистрироваться на всяких kde-looks и bitbucket лень.
Привожу сам патч, может кому пригодится.
--- smooth-tasks-src-wip-2010-11-06/applet/SmoothTasks/TaskItem.cpp 2010-11-06 02:39:20.000000000 +0200
+++ smooth-tasks-src-wip-2010-11-06-patched/applet/SmoothTasks/TaskItem.cpp 2011-09-30 22:08:07.000000000 +0300
@@ -453,11 +453,10 @@
void TaskItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
TaskManager::TaskPtr task;
-
+ bool shouldHideTooltip = true;
+
switch (event->button()) {
case Qt::LeftButton:
- m_applet->toolTip()->hide();
-
publishIconGeometry();
switch (m_task->type()) {
@@ -465,11 +464,12 @@
task = m_task->task();
if (task) {
- task->activateRaiseOrIconify();
+ task->activate();
}
break;
case Task::GroupItem:
activateOrIconifyGroup();
+ shouldHideTooltip = false;
// {
// TaskManager::GroupPopupMenu *groupMenu = new TaskManager::GroupPopupMenu(
// NULL,
@@ -488,6 +488,10 @@
default:
break;
}
+
+ if (shouldHideTooltip) {
+ m_applet->toolTip()->hide();
+ }
}
void TaskItem::activateOrIconifyGroup() {
@@ -514,13 +518,9 @@
}
if (includesActive && items.size() - iconified > iconified) {
- // iconify
- foreach (TaskManager::AbstractGroupableItem *item, items) {
- TaskManager::TaskItem *task = qobject_cast<TaskManager::TaskItem*>(item);
- if (task) {
- task->task()->setIconified(true);
- }
- }
+ // show tooltip if not yet
+ if (!m_applet->toolTip()->isShown())
+ m_applet->toolTip()->quickShow(this);
}
else {
// activate