diff --git a/.gitignore b/.gitignore index 8e51a1faec..573c25b10d 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,4 @@ npm-debug.log electron/dist electron/pub /.idea -config.json +/config.json diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js index e6ffffac9b..a1fc9c1a6d 100644 --- a/electron/src/electron-main.js +++ b/electron/src/electron-main.js @@ -171,6 +171,7 @@ const shouldQuit = electron.app.makeSingleInstance((commandLine, workingDirector }); if (shouldQuit) { + console.log("Other instance detected: exiting"); electron.app.quit() } diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js index f8a3d9e981..cdf8d19e55 100644 --- a/src/components/structures/RoomDirectory.js +++ b/src/components/structures/RoomDirectory.js @@ -548,7 +548,7 @@ module.exports = React.createClass({ const DirectorySearchBox = sdk.getComponent('elements.DirectorySearchBox'); return (
- +
+ { DateUtils.formatTime(date) } ); diff --git a/src/components/views/rooms/RoomDropTarget.js b/src/components/views/rooms/RoomDropTarget.js index 1c5eb3c115..f5ca4f015d 100644 --- a/src/components/views/rooms/RoomDropTarget.js +++ b/src/components/views/rooms/RoomDropTarget.js @@ -22,20 +22,12 @@ module.exports = React.createClass({ displayName: 'RoomDropTarget', render: function() { - if (this.props.placeholder) { - return ( -
+ return ( +
+
+ { this.props.label }
- ); - } - else { - return ( -
-
- { this.props.label } -
-
- ); - } +
+ ); } }); diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss index 9f33e1bcc2..739ac88ab9 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss @@ -176,6 +176,15 @@ limitations under the License. cursor: pointer; } +.mx_UserSettings_phoneSection { + display:table; +} + +.mx_UserSettings_phoneCountry { + width: 70px; + display: table-cell; +} + input.mx_UserSettings_phoneNumberField { margin-left: 3px; width: 172px; diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss index 124304802a..93173ed336 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss @@ -179,11 +179,11 @@ limitations under the License. align-self: flex-end; } -.mx_Login_username_group { +.mx_Login_field_group { display: flex; } -.mx_Login_username_prefix { +.mx_Login_field_prefix { height: 33px; padding: 0px 5px; line-height: 33px; @@ -196,7 +196,7 @@ limitations under the License. text-align: center; } -.mx_Login_username_suffix { +.mx_Login_field_suffix { height: 33px; padding: 0px 5px; line-height: 33px; @@ -214,7 +214,9 @@ limitations under the License. flex-shrink: 1; min-width: 0px; border-radius: 3px; - /* The "@" is always prefixed, so no rounded corners */ +} + +.mx_Login_field_has_prefix { border-top-left-radius: 0px; border-bottom-left-radius: 0px; } @@ -224,13 +226,8 @@ limitations under the License. border-bottom-right-radius: 0px; } -.mx_Login_phoneSection { - display: table; -} - .mx_Login_phoneCountry { - display: table-cell; - width: 70px; + margin-bottom: 14px; } .mx_Login_phoneCountry .mx_Dropdown_option { @@ -246,8 +243,3 @@ limitations under the License. margin: 4px; vertical-align: top; } - -.mx_Login_phoneNumberField { - width: 210px; - margin-left: 3px; -} diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_Dropdown.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_Dropdown.scss index 1f9cbb63dd..26fe3792e8 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/elements/_Dropdown.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_Dropdown.scss @@ -31,6 +31,11 @@ limitations under the License. border-color: $accent-color; } +/* Disable dropdown highlight on focus */ +.mx_Dropdown_input.mx_AccessibleButton:focus { + filter: none; +} + .mx_Dropdown_arrow { border-color: $primary-fg-color transparent transparent; border-style: solid; diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss index 4f01aeeee7..cbd7142285 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss @@ -218,8 +218,8 @@ limitations under the License. } .mx_EventTile_continuation .mx_EventTile_readAvatars, -.mx_EventTile_info .mx_EventTile_readAvatars -{ +.mx_EventTile_info .mx_EventTile_readAvatars, +.mx_EventTile_emote .mx_EventTile_readAvatars { top: 7px; } @@ -331,6 +331,14 @@ limitations under the License. font-family: inherit ! important; } + +/* Make h1 and h2 the same size as h3. */ +.mx_EventTile_content .markdown-body h1, +.mx_EventTile_content .markdown-body h2 +{ + font-size: 1.5em; +} + .mx_EventTile_content .markdown-body a { color: $accent-color; } diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss index 4affc99490..bb80832deb 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss @@ -31,6 +31,7 @@ limitations under the License. margin-left: -2px; order: 1; flex: 1; + overflow: hidden; } .mx_RoomHeader_spinner { @@ -95,6 +96,12 @@ limitations under the License. float: right; } +.mx_RoomHeader_simpleHeader .mx_RoomHeader_icon { + margin-left: 14px; + margin-right: 24px; + vertical-align: -4px; +} + .mx_RoomHeader_name { vertical-align: middle; width: 100%; diff --git a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss index 6e508ec78f..91cf86c934 100644 --- a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss +++ b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss @@ -21,12 +21,17 @@ limitations under the License. margin-right: auto; margin-bottom: 12px; color: $primary-fg-color; + word-break: break-word; display: flex; flex-direction: column; } +.mx_RoomDirectory .mx_RoomHeader_simpleHeader { + margin-left: 0px; +} + .mx_RoomDirectory_list { flex: 1; diff --git a/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss b/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss index e0a50a95c7..08229e377b 100644 --- a/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss +++ b/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss @@ -33,11 +33,6 @@ limitations under the License. margin-left: 10px; } -.mx_RoomDropTarget_placeholder { - padding-top: 1px; - padding-bottom: 1px; -} - .mx_RoomDropTarget_label { position: relative; margin-top: 3px; diff --git a/src/vector/platform/ElectronPlatform.js b/src/vector/platform/ElectronPlatform.js index b0928a8f41..9c857e3524 100644 --- a/src/vector/platform/ElectronPlatform.js +++ b/src/vector/platform/ElectronPlatform.js @@ -24,12 +24,12 @@ import q from 'q'; const electron = require('electron'); const remote = electron.remote; -electron.remote.autoUpdater.on('update-downloaded', onUpdateDownloaded); +remote.autoUpdater.on('update-downloaded', onUpdateDownloaded); function onUpdateDownloaded(ev, releaseNotes, ver, date, updateURL) { dis.dispatch({ action: 'new_version', - currentVersion: electron.remote.app.getVersion(), + currentVersion: remote.app.getVersion(), newVersion: ver, releaseNotes: releaseNotes, }); @@ -68,7 +68,7 @@ export default class ElectronPlatform extends VectorBasePlatform { try { remote.app.setBadgeCount(count); } catch (e) { - console.error("Failed to set notification count", e); + console.error('Failed to set notification count', e); } } @@ -89,7 +89,7 @@ export default class ElectronPlatform extends VectorBasePlatform { // we only have to strip out < and > as the spec doesn't include anything about things like & // so we shouldn't assume that all implementations will treat those properly. Very basic tag parsing is done. if (window.process.platform === 'linux') { - msg = msg.replace(//g, ">"); + msg = msg.replace(//g, '>'); } // Notifications in Electron use the HTML5 notification API @@ -98,7 +98,7 @@ export default class ElectronPlatform extends VectorBasePlatform { { body: msg, icon: avatarUrl, - tag: "vector", + tag: 'vector', silent: true, // we play our own sounds } ); @@ -106,13 +106,14 @@ export default class ElectronPlatform extends VectorBasePlatform { notification.onclick = function() { dis.dispatch({ action: 'view_room', - room_id: room.roomId + room_id: room.roomId, }); global.focus(); - const currentWin = electron.remote.getCurrentWindow(); - currentWin.show(); - currentWin.restore(); - currentWin.focus(); + const win = remote.getCurrentWindow(); + + if (win.isMinimized()) win.restore(); + else if (!win.isVisible()) win.show(); + else win.focus(); }; return notification; @@ -123,7 +124,7 @@ export default class ElectronPlatform extends VectorBasePlatform { } getAppVersion() { - return q(electron.remote.app.getVersion()); + return q(remote.app.getVersion()); } pollForUpdate() { @@ -140,7 +141,7 @@ export default class ElectronPlatform extends VectorBasePlatform { } getDefaultDeviceDisplayName() { - return "Riot Desktop on " + platformFriendlyName(); + return 'Riot Desktop on ' + platformFriendlyName(); } screenCaptureErrorString() { @@ -152,6 +153,6 @@ export default class ElectronPlatform extends VectorBasePlatform { } reload() { - electron.remote.getCurrentWebContents().reload(); + remote.getCurrentWebContents().reload(); } }