LINUX.ORG.RU

[kde] Пользователям SmoothTasks: поведение а-ля MacOSX dock

 


0

1

Лично мне дефолтное поведение 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
★★

> а регистрироваться на всяких kde-looks и bitbucket лень

тогда на гитхаб залей :3

anonymous
()
Ответ на: комментарий от anonymous

Здесь *больше* страждущих узнают об этом патче, чем на гитхаюе в репозитории какого-то анонимуса.

bk_ ★★
() автор топика

А видео можешь запилить, чтобы посмотреть, как это работает? А smoothtask мёртв, к сожалению. Насколько мне известно, автор его не поддерживает.

Rakot ★★
()
Ответ на: комментарий от Rakot

Я не в курсе на счет поддерэиваемости, но код очень понятный.

Видео - попробую, за одно потестирую программки.

bk_ ★★
() автор топика
Ответ на: комментарий от bk_

За видео спасибо, но лично для меня профита немного. Но, может, кому-нибудь другому на ЛОРе пригодиться.

Rakot ★★
()

Попробуй приспособить свой патч для icon tasks, он, похоже, пришел на замену (хотя и не форк) smooth task'у

kss ★★★★★
()
Ответ на: комментарий от bk_

А должно быть. Ибо патчить то, что нормально, какой-то фигнёй это тебе не семки грызть.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.