diff -ur kdebase-workspace-4.5.80/plasma/desktop/applets/kickoff/core/itemhandlers.cpp kdebase-workspace-4.5.80-classicmenu-logout/plasma/desktop/applets/kickoff/core/itemhandlers.cpp --- kdebase-workspace-4.5.80/plasma/desktop/applets/kickoff/core/itemhandlers.cpp 2010-01-06 18:00:18.000000000 +0100 +++ kdebase-workspace-4.5.80-classicmenu-logout/plasma/desktop/applets/kickoff/core/itemhandlers.cpp 2010-11-20 20:31:20.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.5.80/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp kdebase-workspace-4.5.80-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp --- kdebase-workspace-4.5.80/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp 2010-11-19 11:51:20.000000000 +0100 +++ kdebase-workspace-4.5.80-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp 2010-11-20 20:31:20.000000000 +0100 @@ -209,6 +209,7 @@ case Shutdown: return i18n("Shut down"); case Logout: return i18n("Log out"); case Leave: return i18n("Leave"); + case LeaveDialog: return i18n("Leave..."); } return QString(); } @@ -234,6 +235,7 @@ case Shutdown: return "system-shutdown"; case Logout: return "system-log-out"; case Leave: return "system-shutdown"; + case LeaveDialog: return "system-shutdown"; } return QString(); } @@ -725,6 +727,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.5.80/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h kdebase-workspace-4.5.80-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h --- kdebase-workspace-4.5.80/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h 2010-06-06 22:35:40.000000000 +0200 +++ kdebase-workspace-4.5.80-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h 2010-11-20 20:31:20.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 }; /**