diff --git a/res/css/views/dialogs/_RoomSettingsDialog.scss b/res/css/views/dialogs/_RoomSettingsDialog.scss
index de675abe32..e2a0238756 100644
--- a/res/css/views/dialogs/_RoomSettingsDialog.scss
+++ b/res/css/views/dialogs/_RoomSettingsDialog.scss
@@ -32,3 +32,13 @@ limitations under the License.
.mx_RoomSettingsDialog_warningIcon:before {
mask-image: url('$(res)/img/feather-icons/warning-triangle.svg');
}
+
+.mx_RoomSettingsDialog .mx_Dialog_title {
+ -ms-text-overflow: ellipsis;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ margin: 0 auto;
+ padding-left: 40px;
+ padding-right: 80px;
+}
diff --git a/src/components/views/context_menus/RoomTileContextMenu.js b/src/components/views/context_menus/RoomTileContextMenu.js
index 23c5411e2d..f494fbd961 100644
--- a/src/components/views/context_menus/RoomTileContextMenu.js
+++ b/src/components/views/context_menus/RoomTileContextMenu.js
@@ -273,10 +273,9 @@ module.exports = React.createClass({
_onClickSettings: function() {
dis.dispatch({
- action: 'view_room',
+ action: 'open_room_settings',
room_id: this.props.room.roomId,
- }, true);
- dis.dispatch({ action: 'open_room_settings' });
+ });
if (this.props.onFinished) {
this.props.onFinished();
}
@@ -373,8 +372,9 @@ module.exports = React.createClass({
// Can't set notif level or tags on non-join rooms
if (myMembership !== 'join') {
return
- { this._renderSettingsMenu() }
{ this._renderLeaveMenu(myMembership) }
+
+ { this._renderSettingsMenu() }
;
}
@@ -382,10 +382,11 @@ module.exports = React.createClass({
{ this._renderNotifMenu() }
- { this._renderSettingsMenu() }
{ this._renderLeaveMenu(myMembership) }
{ this._renderRoomTagMenu() }
+
+ { this._renderSettingsMenu() }
);
},
diff --git a/src/components/views/dialogs/RoomSettingsDialog.js b/src/components/views/dialogs/RoomSettingsDialog.js
index c73edb179c..1d53425755 100644
--- a/src/components/views/dialogs/RoomSettingsDialog.js
+++ b/src/components/views/dialogs/RoomSettingsDialog.js
@@ -23,6 +23,7 @@ import RolesRoomSettingsTab from "../settings/tabs/RolesRoomSettingsTab";
import GeneralRoomSettingsTab from "../settings/tabs/GeneralRoomSettingsTab";
import SecurityRoomSettingsTab from "../settings/tabs/SecurityRoomSettingsTab";
import sdk from "../../../index";
+import MatrixClientPeg from "../../../MatrixClientPeg";
export default class RoomSettingsDialog extends React.Component {
static propTypes = {
@@ -60,9 +61,12 @@ export default class RoomSettingsDialog extends React.Component {
render() {
const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
+ const room = MatrixClientPeg.get().getRoom(this.props.roomId);
+ const title = _t("Room Settings") + ' - ' + room.name;
+
return (
+ onFinished={this.props.onFinished} title={title}>
diff --git a/src/stores/RoomViewStore.js b/src/stores/RoomViewStore.js
index 7d425ec94c..73eff6f6d4 100644
--- a/src/stores/RoomViewStore.js
+++ b/src/stores/RoomViewStore.js
@@ -119,7 +119,7 @@ class RoomViewStore extends Store {
case 'open_room_settings': {
const RoomSettingsDialog = sdk.getComponent("dialogs.RoomSettingsDialog");
Modal.createTrackedDialog('Room settings', '', RoomSettingsDialog, {
- roomId: this._state.roomId,
+ roomId: payload.room_id || this._state.roomId,
}, 'mx_SettingsDialog');
break;
}