diff -ur kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/core/itemhandlers.cpp kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/core/itemhandlers.cpp --- kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/core/itemhandlers.cpp 2010-01-06 18:00:18.000000000 +0100 +++ kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/core/itemhandlers.cpp 2010-02-13 12:47:31.000000000 +0100 @@ -110,7 +110,8 @@ QTimer::singleShot(0, this, SLOT(switchUser())); return true; } else if (m_logoutAction == "logout" || m_logoutAction == "logoutonly" || - m_logoutAction == "restart" || m_logoutAction == "shutdown") { + m_logoutAction == "restart" || m_logoutAction == "shutdown" || + m_logoutAction == "leave") { // decouple dbus call, otherwise we'll run into a dead-lock QTimer::singleShot(0, this, SLOT(logout())); return true; @@ -163,6 +164,10 @@ type = KWorkSpace::ShutdownTypeReboot; } else if (m_logoutAction == "shutdown") { type = KWorkSpace::ShutdownTypeHalt; + } else if (m_logoutAction == "leave") { + // This one brings up the dialog, for use in the classic menu. + confirm = KWorkSpace::ShutdownConfirmYes; + type = KWorkSpace::ShutdownTypeDefault; } //FIXME: the proper fix is to implement the KWorkSpace methods for Windows diff -ur kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp --- kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp 2010-01-06 18:00:18.000000000 +0100 +++ kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp 2010-02-13 12:49:23.000000000 +0100 @@ -207,6 +207,7 @@ case Shutdown: return i18n("Shutdown"); case Logout: return i18n("Logout"); case Leave: return i18n("Leave"); + case LeaveDialog: return i18n("Leave..."); } return QString(); } @@ -232,6 +233,7 @@ case Shutdown: return "system-shutdown"; case Logout: return "system-log-out"; case Leave: return "system-shutdown"; + case LeaveDialog: return "system-shutdown"; } return QString(); } @@ -727,6 +729,8 @@ menuview->addAction(KIcon(d->viewIcon(LockScreen)), d->viewText(LockScreen))->setData(KUrl("leave:/lock")); } else if(vtname == "Logout") { menuview->addAction(KIcon(d->viewIcon(Logout)), d->viewText(Logout))->setData(KUrl("leave:/logout")); + } else if(vtname == "LeaveDialog") { + menuview->addAction(KIcon(d->viewIcon(LeaveDialog)), d->viewText(LeaveDialog))->setData(KUrl("leave:/leave")); } else if(vtname == "Leave") { Kickoff::LeaveModel *leavemodel = new Kickoff::LeaveModel(menuview); leavemodel->updateModel(); diff -ur kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h --- kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h 2009-09-16 13:40:52.000000000 +0200 +++ kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h 2010-02-13 12:47:31.000000000 +0100 @@ -59,7 +59,8 @@ Restart, ///< Restart Action Shutdown, ///< Shutdown Action Logout, ///< Logout Action - Leave ///< Leave Menu + Leave, ///< Leave Menu + LeaveDialog ///< Leave Dialog Action }; /**