diff --git a/src/mumble/MainWindow.cpp b/src/mumble/MainWindow.cpp
index d4255dbe9..556ab0ee6 100644
--- a/src/mumble/MainWindow.cpp
+++ b/src/mumble/MainWindow.cpp
@@ -1662,10 +1662,9 @@ void MainWindow::qmUser_aboutToShow() {
qmUser->clear();
- if (self && p && !isSelf) {
+ if (self && p && !isSelf && self->cChannel != p->cChannel) {
qmUser->addAction(qaUserJoin);
- qaUserJoin->setEnabled(self->cChannel != p->cChannel);
-
+ qmUser->addAction(qaUserMove);
qmUser->addSeparator();
}
@@ -2344,6 +2343,18 @@ void MainWindow::on_qaUserJoin_triggered() {
}
}
+void MainWindow::on_qaUserMove_triggered() {
+ const ClientUser *user = getContextMenuUser();
+
+ if (user) {
+ const Channel *channel = ClientUser::get(Global::get().uiSession)->cChannel;
+
+ if (channel) {
+ Global::get().sh->joinChannel(user->uiSession, channel->iId);
+ }
+ }
+}
+
void MainWindow::on_qaChannelListen_triggered() {
Channel *c = getContextMenuChannel();
diff --git a/src/mumble/MainWindow.h b/src/mumble/MainWindow.h
index 00daee90e..dccdfd126 100644
--- a/src/mumble/MainWindow.h
+++ b/src/mumble/MainWindow.h
@@ -260,6 +260,7 @@ public slots:
void qmChannel_aboutToShow();
void on_qaChannelJoin_triggered();
void on_qaUserJoin_triggered();
+ void on_qaUserMove_triggered();
void on_qaChannelListen_triggered();
void on_qaChannelAdd_triggered();
void on_qaChannelRemove_triggered();
diff --git a/src/mumble/MainWindow.ui b/src/mumble/MainWindow.ui
index ad6c98108..da0346153 100644
--- a/src/mumble/MainWindow.ui
+++ b/src/mumble/MainWindow.ui
@@ -1034,6 +1034,14 @@ the channel's context menu.
Joins the channel of this user.
+
+
+ M&ove To Own Channel
+
+
+ Moves this user to your current channel.
+
+
true