macOS: make conversation and main header draggable
This commit is contained in:
parent
ecc04d36de
commit
729d808f62
7 changed files with 119 additions and 11 deletions
74
ts/test-electron/util/isWindowDragElement_test.ts
Normal file
74
ts/test-electron/util/isWindowDragElement_test.ts
Normal file
|
@ -0,0 +1,74 @@
|
|||
// Copyright 2021 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { isWindowDragElement } from '../../util/isWindowDragElement';
|
||||
|
||||
describe('isWindowDragElement', () => {
|
||||
const crel = (tagName: string, appRegion?: string): Element => {
|
||||
const result = document.createElement(tagName);
|
||||
if (appRegion) {
|
||||
result.style.cssText = `-webkit-app-region: ${appRegion}`;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
let sandboxEl: HTMLElement;
|
||||
|
||||
beforeEach(() => {
|
||||
sandboxEl = document.createElement('div');
|
||||
document.body.appendChild(sandboxEl);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
sandboxEl.remove();
|
||||
});
|
||||
|
||||
it('returns false for elements with no -webkit-app-region property in the heirarchy', () => {
|
||||
const root = crel('div');
|
||||
const outer = crel('span');
|
||||
const inner = crel('div');
|
||||
root.appendChild(outer);
|
||||
outer.appendChild(inner);
|
||||
sandboxEl.appendChild(root);
|
||||
|
||||
assert.isFalse(isWindowDragElement(root));
|
||||
assert.isFalse(isWindowDragElement(outer));
|
||||
assert.isFalse(isWindowDragElement(inner));
|
||||
});
|
||||
|
||||
it('returns false for elements with -webkit-app-region: drag on a sub-element', () => {
|
||||
const parent = crel('div');
|
||||
const child = crel('div', 'drag');
|
||||
parent.appendChild(child);
|
||||
sandboxEl.appendChild(parent);
|
||||
|
||||
assert.isFalse(isWindowDragElement(parent));
|
||||
});
|
||||
|
||||
it('returns false if any element up the chain is found to be -webkit-app-region: no-drag', () => {
|
||||
const root = crel('div', 'drag');
|
||||
const outer = crel('div', 'no-drag');
|
||||
const inner = crel('div');
|
||||
root.appendChild(outer);
|
||||
outer.appendChild(inner);
|
||||
sandboxEl.appendChild(root);
|
||||
|
||||
assert.isFalse(isWindowDragElement(outer));
|
||||
assert.isFalse(isWindowDragElement(inner));
|
||||
});
|
||||
|
||||
it('returns true if any element up the chain is found to be -webkit-app-region: drag', () => {
|
||||
const root = crel('div', 'drag');
|
||||
const outer = crel('div');
|
||||
const inner = crel('div');
|
||||
root.appendChild(outer);
|
||||
outer.appendChild(inner);
|
||||
sandboxEl.appendChild(root);
|
||||
|
||||
assert.isTrue(isWindowDragElement(root));
|
||||
assert.isTrue(isWindowDragElement(outer));
|
||||
assert.isTrue(isWindowDragElement(inner));
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue