diff --git a/res/css/views/settings/_ProfileSettings.scss b/res/css/views/settings/_ProfileSettings.scss
index 732cbedf02..4cbcb8e708 100644
--- a/res/css/views/settings/_ProfileSettings.scss
+++ b/res/css/views/settings/_ProfileSettings.scss
@@ -14,6 +14,12 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
+.mx_ProfileSettings_controls_topic {
+ & > textarea {
+ resize: vertical;
+ }
+}
+
.mx_ProfileSettings_profile {
display: flex;
}
diff --git a/src/components/views/elements/EditableItemList.js b/src/components/views/elements/EditableItemList.js
index 34e53906a2..5a07a400d7 100644
--- a/src/components/views/elements/EditableItemList.js
+++ b/src/components/views/elements/EditableItemList.js
@@ -124,7 +124,7 @@ export default class EditableItemList extends React.Component {
-
+
{_t("Add")}
diff --git a/src/components/views/room_settings/RoomProfileSettings.js b/src/components/views/room_settings/RoomProfileSettings.js
index ca09c3093a..c76c0823e4 100644
--- a/src/components/views/room_settings/RoomProfileSettings.js
+++ b/src/components/views/room_settings/RoomProfileSettings.js
@@ -120,17 +120,21 @@ export default class RoomProfileSettings extends React.Component {
};
_onDisplayNameChanged = (e) => {
- this.setState({
- displayName: e.target.value,
- enableProfileSave: true,
- });
+ this.setState({displayName: e.target.value});
+ if (this.state.originalDisplayName === e.target.value) {
+ this.setState({enableProfileSave: false});
+ } else {
+ this.setState({enableProfileSave: true});
+ }
};
_onTopicChanged = (e) => {
- this.setState({
- topic: e.target.value,
- enableProfileSave: true,
- });
+ this.setState({topic: e.target.value});
+ if (this.state.originalTopic === e.target.value) {
+ this.setState({enableProfileSave: false});
+ } else {
+ this.setState({enableProfileSave: true});
+ }
};
_onAvatarChanged = (e) => {
@@ -158,31 +162,10 @@ export default class RoomProfileSettings extends React.Component {
render() {
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
const AvatarSetting = sdk.getComponent('settings.AvatarSetting');
- return (
-
);
}
diff --git a/src/components/views/settings/AvatarSetting.js b/src/components/views/settings/AvatarSetting.js
index 487c752c38..93b982467a 100644
--- a/src/components/views/settings/AvatarSetting.js
+++ b/src/components/views/settings/AvatarSetting.js
@@ -65,7 +65,7 @@ const AvatarSetting = ({avatarUrl, avatarAltText, avatarName, uploadAvatar, remo
const avatarClasses = classNames({
"mx_AvatarSetting_avatar": true,
- "mx_AvatarSetting_avatar_hovering": isHovering,
+ "mx_AvatarSetting_avatar_hovering": isHovering && uploadAvatar,
});
return
{avatarElement}