diff --git a/app/menu.js b/app/menu.js index 7ff1e1cf1..f2f470f4a 100644 --- a/app/menu.js +++ b/app/menu.js @@ -27,6 +27,7 @@ exports.createTemplate = (options, messages) => { submenu: [ { label: messages.mainMenuSettings.message, + accelerator: 'CommandOrControl+,', click: showSettings, }, { diff --git a/main.js b/main.js index 24b07418b..8aae8a21f 100644 --- a/main.js +++ b/main.js @@ -243,9 +243,6 @@ function createWindow() { if (!_.isNumber(windowOptions.height) || windowOptions.height < MIN_HEIGHT) { windowOptions.height = DEFAULT_HEIGHT; } - if (!_.isBoolean(windowOptions.maximized)) { - delete windowOptions.maximized; - } if (!_.isBoolean(windowOptions.autoHideMenuBar)) { delete windowOptions.autoHideMenuBar; } @@ -270,10 +267,10 @@ function createWindow() { // Create the browser window. mainWindow = new BrowserWindow(windowOptions); - if (windowOptions.maximized) { + if (windowConfig && windowConfig.maximized) { mainWindow.maximize(); } - if (windowOptions.fullscreen) { + if (windowConfig && windowConfig.fullscreen) { mainWindow.setFullScreen(true); } diff --git a/stylesheets/_modules.scss b/stylesheets/_modules.scss index 7f697b297..e561d4272 100644 --- a/stylesheets/_modules.scss +++ b/stylesheets/_modules.scss @@ -750,9 +750,12 @@ .module-message__link-preview { @include button-reset; + display: block; margin-left: -12px; margin-right: -12px; + width: calc(100% + 24px); + margin-top: -10px; margin-bottom: 5px; border-top-left-radius: 16px; @@ -1033,6 +1036,9 @@ // Because this is absolutely positioned, we 100% is too big, take it down by parent // padding sizes. padding-right: 24px; + + // This is so all clicks go right through to the underlying image. + pointer-events: none; } .module-message__metadata__date { @@ -1325,6 +1331,9 @@ $timer-icons: '55', '50', '45', '40', '35', '30', '25', '20', '15', '10', '05', @include light-theme { background-color: $color-white; } + @include ios-theme { + background-color: $color-white; + } @include dark-theme { background-color: $color-gray-02; } @@ -1717,6 +1726,9 @@ $timer-icons: '55', '50', '45', '40', '35', '30', '25', '20', '15', '10', '05', padding-right: 8px; background-color: $color-white-alpha-80; + @include dark-theme { + background-color: $color-white-alpha-20; + } @include ios-theme { background-color: $color-signal-blue-tint-alpha-50; } @@ -2920,7 +2932,6 @@ $timer-icons: '55', '50', '45', '40', '35', '30', '25', '20', '15', '10', '05', .module-conversation-list-item__unread-count { text-align: center; - padding-top: 1px; padding-left: 3px; padding-right: 3px; @@ -3141,6 +3152,7 @@ $timer-icons: '55', '50', '45', '40', '35', '30', '25', '20', '15', '10', '05', @include button-reset; // Ensures that the border of the item sticks tight to the inner contents + width: 100%; line-height: 0; border-radius: 50%; @@ -3282,7 +3294,7 @@ $timer-icons: '55', '50', '45', '40', '35', '30', '25', '20', '15', '10', '05', .module-avatar__label--80 { width: 80px; font-size: 40px; - line-height: 82px; + line-height: 80px; } .module-avatar__icon--80 { @@ -3545,7 +3557,7 @@ $timer-icons: '55', '50', '45', '40', '35', '30', '25', '20', '15', '10', '05', bottom: 0; left: 0; right: 0; - z-index: 1; + z-index: 2; } .module-image__border-overlay--with-click-handler { @@ -3627,7 +3639,7 @@ button.module-image__border-overlay:hover { ); position: absolute; bottom: 0; - z-index: 2; + z-index: 1; left: 0; right: 0; } diff --git a/test/app/fixtures/menu-windows-linux-setup.json b/test/app/fixtures/menu-windows-linux-setup.json index 7c0ca81de..2c1572300 100644 --- a/test/app/fixtures/menu-windows-linux-setup.json +++ b/test/app/fixtures/menu-windows-linux-setup.json @@ -14,6 +14,7 @@ "type": "separator" }, { + "accelerator": "CommandOrControl+,", "label": "Preferences…", "click": null }, diff --git a/test/app/fixtures/menu-windows-linux.json b/test/app/fixtures/menu-windows-linux.json index 16ee53229..905788e06 100644 --- a/test/app/fixtures/menu-windows-linux.json +++ b/test/app/fixtures/menu-windows-linux.json @@ -3,6 +3,7 @@ "label": "&File", "submenu": [ { + "accelerator": "CommandOrControl+,", "label": "Preferences…", "click": null }, diff --git a/ts/components/Avatar.md b/ts/components/Avatar.md index 0cedf54f2..0fd0bf153 100644 --- a/ts/components/Avatar.md +++ b/ts/components/Avatar.md @@ -3,19 +3,49 @@ ```jsx + +
+ console.log('onClick')} + i18n={util.i18n} + /> + console.log('onClick')} + i18n={util.i18n} + /> + console.log('onClick')} i18n={util.i18n} />
@@ -39,13 +69,6 @@ conversationType="direct" i18n={util.i18n} /> - ``` @@ -63,6 +86,59 @@ ``` +### Letters + +```jsx + + + + +
+ console.log('onClick')} + i18n={util.i18n} + /> + console.log('onClick')} + i18n={util.i18n} + /> + console.log('onClick')} + i18n={util.i18n} + /> +
+``` + ### Note to self ```jsx diff --git a/ts/components/ConversationListItem.tsx b/ts/components/ConversationListItem.tsx index a7b4a1724..67e0fa4fc 100644 --- a/ts/components/ConversationListItem.tsx +++ b/ts/components/ConversationListItem.tsx @@ -6,6 +6,7 @@ import { MessageBody } from './conversation/MessageBody'; import { Timestamp } from './conversation/Timestamp'; import { ContactName } from './conversation/ContactName'; import { TypingAnimation } from './conversation/TypingAnimation'; +import { cleanId } from './_util'; import { LocalizerType } from '../types/Util'; @@ -33,10 +34,6 @@ export type PropsData = { }; }; -export function cleanId(id: string): string { - return id.replace(/[^\u0020-\u007e\u00a0-\u00ff]/g, '_'); -} - type PropsHousekeeping = { i18n: LocalizerType; style?: Object; diff --git a/ts/components/LeftPane.tsx b/ts/components/LeftPane.tsx index 3e40ee564..3afa6ca96 100644 --- a/ts/components/LeftPane.tsx +++ b/ts/components/LeftPane.tsx @@ -3,7 +3,6 @@ import { AutoSizer, List } from 'react-virtualized'; import { debounce } from 'lodash'; import { - cleanId, ConversationListItem, PropsData as ConversationListItemPropsType, } from './ConversationListItem'; @@ -12,6 +11,7 @@ import { SearchResults, } from './SearchResults'; import { LocalizerType } from '../types/Util'; +import { cleanId } from './_util'; export interface PropsType { conversations?: Array; diff --git a/ts/components/SearchResults.tsx b/ts/components/SearchResults.tsx index a7f3f0317..d59867825 100644 --- a/ts/components/SearchResults.tsx +++ b/ts/components/SearchResults.tsx @@ -11,11 +11,11 @@ import { Intl } from './Intl'; import { Emojify } from './conversation/Emojify'; import { Spinner } from './Spinner'; import { - cleanId, ConversationListItem, PropsData as ConversationListItemPropsType, } from './ConversationListItem'; import { StartNewConversation } from './StartNewConversation'; +import { cleanId } from './_util'; import { LocalizerType } from '../types/Util'; diff --git a/ts/components/ShortcutGuide.tsx b/ts/components/ShortcutGuide.tsx index 8780ac0ac..f8ecd32a4 100644 --- a/ts/components/ShortcutGuide.tsx +++ b/ts/components/ShortcutGuide.tsx @@ -21,8 +21,8 @@ type KeyType = | 'A' | 'C' | 'D' - | 'E' | 'F' + | 'J' | 'L' | 'M' | 'P' @@ -84,7 +84,7 @@ const NAVIGATION_SHORTCUTS: Array = [ }, { description: 'Keyboard--open-emoji-chooser', - keys: ['commandOrCtrl', 'shift', 'E'], + keys: ['commandOrCtrl', 'shift', 'J'], }, { description: 'Keyboard--open-sticker-chooser', diff --git a/ts/components/_util.ts b/ts/components/_util.ts new file mode 100644 index 000000000..b2346d3cf --- /dev/null +++ b/ts/components/_util.ts @@ -0,0 +1,5 @@ +// A separate file so this doesn't get picked up by StyleGuidist over real components + +export function cleanId(id: string): string { + return id.replace(/[^\u0020-\u007e\u00a0-\u00ff]/g, '_'); +} diff --git a/ts/components/conversation/Image.tsx b/ts/components/conversation/Image.tsx index cde70076b..ad52ec8b2 100644 --- a/ts/components/conversation/Image.tsx +++ b/ts/components/conversation/Image.tsx @@ -162,7 +162,6 @@ export class Image extends React.Component { alt={i18n('imageCaptionIconAlt')} /> ) : null} - {overlay} {closeButton ? (