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 ? (