Skip to content

Improvements to reduce repainting #5876

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 35 commits into from
Mar 17, 2023
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
2af4149
Closes #5247
charlesh88 Jul 26, 2022
e02871b
Merge remote-tracking branch 'origin' into fix-repaint-5247
charlesh88 Aug 16, 2022
7ea264c
Merge branch 'master' into fix-repaint-5247
charlesh88 Oct 11, 2022
1bd90f8
Fixes 5247
charlesh88 Oct 12, 2022
8795744
Fixes 5247
charlesh88 Oct 14, 2022
8c6e701
Fixes 5247
charlesh88 Oct 14, 2022
5dd8f2a
Merge branch 'master' into fix-repaint-5247
charlesh88 Oct 14, 2022
45c61a7
Fixes 5247
charlesh88 Oct 14, 2022
0e957f1
Merge branch 'master' into fix-repaint-5247
michaelrogers Dec 8, 2022
2dfb7a5
Merge branch 'master' into fix-repaint-5247
michaelrogers Dec 19, 2022
debf4a5
Merge branch 'master' into fix-repaint-5247
akhenry Jan 9, 2023
b9d262d
Merge branch 'master' into fix-repaint-5247
davetsay Jan 30, 2023
1d5fcb1
Merge branch 'master' into fix-repaint-5247
ozyx Jan 31, 2023
7e8908d
Merge branch 'master' into fix-repaint-5247
michaelrogers Feb 14, 2023
9a7c6d2
Merge branch 'master' into fix-repaint-5247
michaelrogers Feb 16, 2023
4868a45
Merge branch 'master' into fix-repaint-5247
michaelrogers Feb 27, 2023
59dfc4c
Merge branch 'master' into fix-repaint-5247
michaelrogers Mar 6, 2023
1afe2fd
Added back closing bracket after conflict
michaelrogers Mar 6, 2023
f63e2f3
Added hover on input to activate css display on clear-input field
michaelrogers Mar 6, 2023
bd03d72
Removed focused test
michaelrogers Mar 6, 2023
0158e82
Exclude browse-bar from position: absolute to prevent stacking
michaelrogers Mar 7, 2023
31e6ae3
Added toolbar height and include in top calculation for edit mode
michaelrogers Mar 7, 2023
97eabd7
Collapse inspector to prevent pane overlapping save button
michaelrogers Mar 8, 2023
737cc77
Remove focused test keyword
michaelrogers Mar 8, 2023
c76feef
Merge branch 'master' into fix-repaint-5247
michaelrogers Mar 8, 2023
0a77edd
attempt to create multiple plots
unlikelyzero Mar 12, 2023
65e291a
Merge branch 'master' into fix-repaint-5247
unlikelyzero Mar 16, 2023
5f3b7d4
fix post merge
unlikelyzero Mar 16, 2023
c9cbace
Merge branch 'master' of https://github.com/nasa/openmct into fix-rep…
unlikelyzero Mar 16, 2023
94b88dc
revert to master
unlikelyzero Mar 16, 2023
1f4fb0e
snapshots
unlikelyzero Mar 16, 2023
fd71b1c
eol
unlikelyzero Mar 16, 2023
83ff0dc
Merge branch 'master' into fix-repaint-5247
unlikelyzero Mar 17, 2023
3fd0a70
correct location
unlikelyzero Mar 17, 2023
b1c373f
why?
unlikelyzero Mar 17, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 43 additions & 42 deletions e2e/tests/functional/plugins/plot/autoscale.e2e.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
Testsuite for plot autoscale.
*/

const { selectInspectorTab } = require('../../../../appActions');
const { createDomainObjectWithDefaults, selectInspectorTab } = require('../../../../appActions');
const { test, expect } = require('../../../../pluginFixtures');
test.use({
viewport: {
Expand All @@ -34,7 +34,7 @@ test.use({
});

test.describe('Autoscale', () => {
test('User can set autoscale with a valid range @snapshot', async ({ page, openmctConfig }) => {
test.only('User can set autoscale with a valid range @snapshot', async ({ page, openmctConfig }) => {
const { myItemsFolderName } = openmctConfig;

//This is necessary due to the size of the test suite.
Expand Down Expand Up @@ -100,6 +100,9 @@ test.describe('Autoscale', () => {
await canvas.hover({trial: true});

expect.soft(await canvas.screenshot()).toMatchSnapshot('autoscale-canvas-panned.png', { animations: 'disabled' });

await createDisplayLayoutWith2OverlayPlots(page);

});
});

Expand All @@ -123,48 +126,46 @@ async function setTimeRange(page, start = '2022-03-29 22:00:00.000Z', end = '202
/**
* @param {import('@playwright/test').Page} page
* @param {string} myItemsFolderName
* @returns {Promise<CreatedObjectInfo>} An object containing information about the newly created domain object.
*/
async function createSinewaveOverlayPlot(page, myItemsFolderName) {
// click create button
await page.locator('button:has-text("Create")').click();

// add overlay plot with defaults
await page.locator('li[role="menuitem"]:has-text("Overlay Plot")').click();
await Promise.all([
page.waitForNavigation(),
page.locator('button:has-text("OK")').click(),
//Wait for Save Banner to appear1
page.waitForSelector('.c-message-banner__message')
]);
//Wait until Save Banner is gone
await page.locator('.c-message-banner__close-button').click();
await page.waitForSelector('.c-message-banner__message', { state: 'detached'});

// save (exit edit mode)
await page.locator('text=Snapshot Save and Finish Editing Save and Continue Editing >> button').nth(1).click();
await page.locator('text=Save and Finish Editing').click();

// click create button
await page.locator('button:has-text("Create")').click();

// add sine wave generator with defaults
await page.locator('li[role="menuitem"]:has-text("Sine Wave Generator")').click();
await Promise.all([
page.waitForNavigation(),
page.locator('button:has-text("OK")').click(),
//Wait for Save Banner to appear1
page.waitForSelector('.c-message-banner__message')
]);
//Wait until Save Banner is gone
await page.locator('.c-message-banner__close-button').click();
await page.waitForSelector('.c-message-banner__message', { state: 'detached'});

// focus the overlay plot
await page.locator(`text=Open MCT ${myItemsFolderName} >> span`).nth(3).click();
await Promise.all([
page.waitForNavigation(),
page.locator('text=Unnamed Overlay Plot').first().click()
]);

//Create overlayPlot
let overlayPlot = await createDomainObjectWithDefaults(page, {
type: 'Overlay Plot'
});

//Create sinewaveObject
let sineWaveObject = await createDomainObjectWithDefaults(page, {
type: 'Sine Wave Generator'
});

//Add sinewaveObject into overlayPlot
await page.pause();

return {
overlayPlot: overlayPlot.name
};
}

/**
*
* @param {import('@playwright/test').Page} page
* @param {string} myItemsFolderName
* @returns {Promise<CreatedObjectInfo>} An object containing information about the newly created domain object.
*/
async function createDisplayLayoutWith2OverlayPlots(page, myItemsFolderName) {

//Create overlayPlot
let overlayPlot = await createDomainObjectWithDefaults(page, {
type: 'Display Layout'
});

//Add 2 createSinewaveOverlayPlot to this display

return {
overlayPlot: overlayPlot.name
};
}

/**
Expand Down
3 changes: 3 additions & 0 deletions e2e/tests/functional/plugins/plot/stackedPlot.e2e.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ test.describe('Stacked Plot', () => {
await expect(stackedPlotItem2).toHaveAttribute('aria-label', `Stacked Plot Item ${swgC.name}`);
await expect(stackedPlotItem3).toHaveAttribute('aria-label', `Stacked Plot Item ${swgA.name}`);

// collapse inspector
await page.locator('.l-shell__pane-inspector .l-pane__collapse-button').click();

// Save (exit edit mode)
await page.locator('button[title="Save"]').click();
await page.locator('li[title="Save and Finish Editing"]').click();
Expand Down
1 change: 1 addition & 0 deletions e2e/tests/performance/notebook.perf.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ test.describe('Performance tests', () => {
await page.evaluate(() => window.performance.mark("notebook-search-processed"));

//Clear Search
await page.locator('.c-search.c-notebook__search .c-search__input').hover();
await page.locator('.c-search.c-notebook__search .c-search__clear-input').click();
await page.evaluate(() => window.performance.mark("notebook-search-processed"));

Expand Down
2 changes: 1 addition & 1 deletion src/api/overlays/components/overlay-component.scss
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@
}

.c-object-label__name {
filter: $objectLabelNameFilter;
color: $objectLabelNameColorFg;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,9 @@
.is-editing & {
cursor: pointer;
pointer-events: initial;
transition: $transOut;

&:hover {
background: rgba($colorBodyFg, 0.1);
transition: $transIn;
}

&.is-current {
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/displayLayout/components/display-layout.scss
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@
*[s-selected-parent] {
> .l-layout {
// When main shell layout is the parent
@include displayMarquee(deeppink);
@include displayMarquee(deeppink); // TEMP
}
> * > * > * {
// When a sub-layout is the parent
Expand Down
20 changes: 7 additions & 13 deletions src/plugins/displayLayout/components/layout-frame.scss
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,15 @@

// Has-complex-content objects
.c-so-view.has-complex-content {
transition: $transOut;
transition-delay: $moveBarOutDelay;
@include transition($prop: transform, $dur: $transOutTime, $delay: $moveBarOutDelay);

> .c-so-view__local-controls {
transition: transform 250ms ease-in-out;
transition-delay: $moveBarOutDelay;
@include transition($prop: transform, $dur: 250ms, $delay: $moveBarOutDelay);
}

+ .c-frame__move-bar {
display: none;
}

}

.l-layout {
Expand All @@ -65,13 +62,11 @@
> .l-layout__frame {
> .c-so-view.has-complex-content {
> .c-so-view__local-controls {
transition: transform $transOutTime ease-in-out;
transition-delay: $moveBarOutDelay;
@include transition($prop: transform, $dur: $transOutTime, $delay: $moveBarOutDelay);
}

+ .c-frame__move-bar {
transition: $transOut;
transition-delay: $moveBarOutDelay;
@include transition($prop: height, $delay: $moveBarOutDelay);
@include userSelectNone();
background: $editFrameMovebarColorBg;
box-shadow: rgba(black, 0.3) 0 2px;
Expand Down Expand Up @@ -103,18 +98,17 @@

&:hover {
> .c-so-view.has-complex-content {
transition: $transIn;
transition: $transInTransform;
transition-delay: 0s;

> .c-so-view__local-controls {
transform: translateY($editFrameMovebarH);
transition: transform $transInTime ease-in-out;
@include transition(height, $transOutTime);
transition-delay: 0s;
}

+ .c-frame__move-bar {
transition: $transIn;
transition-delay: 0s;
@include transition(height);
height: $editFrameMovebarH;
}
}
Expand Down
6 changes: 2 additions & 4 deletions src/plugins/flexibleLayout/components/flexible-layout.scss
Original file line number Diff line number Diff line change
Expand Up @@ -244,11 +244,10 @@
display: flex;
flex-direction: column;
flex: 0 0 ($margin * 2) + $size;
transition: $transOut;

&:before {
// The visible resize line
background: $editUIColor;
background-color: $editUIColor;
content: '';
display: block;
flex: 1 1 auto;
Expand All @@ -270,10 +269,9 @@
}

&:hover {
transition: $transOut;
&:before {
// The visible resize line
background: $editUIColorHov;
background-color: $editUIColorHov;
}
}
}
Expand Down
8 changes: 1 addition & 7 deletions src/plugins/folderView/components/grid-view.scss
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
.c-grid-item {
// Mobile-first
@include button($bg: $colorItemBg, $fg: $colorItemFg);
@include cControlHov();
cursor: pointer;
display: flex;
padding: $interiorMarginLg;
Expand Down Expand Up @@ -142,15 +143,10 @@
body.desktop & {
$transOutMs: 300ms;
flex-flow: column nowrap;
transition: $transOutMs ease-in-out;

&:hover {
filter: $filterItemHoverFg;
transition: $transIn;

.c-grid-item__type-icon {
transform: scale(1.1);
transition: $transInBounce;
}
}

Expand All @@ -171,8 +167,6 @@
font-size: floor(math.div($gridItemDesk, 3));
margin: $interiorMargin 22.5% $interiorMargin * 3 22.5%;
order: 2;
transform-origin: center;
transition: all $transOutMs ease-in-out;
}

&__details {
Expand Down
6 changes: 0 additions & 6 deletions src/plugins/imagery/components/imagery-view.scss
Original file line number Diff line number Diff line change
Expand Up @@ -495,7 +495,6 @@
&:hover {
z-index: 2;

filter: brightness(1) contrast(1) !important;
[class*='__image-handle'] {
background-color: $colorBodyFg;
}
Expand All @@ -519,9 +518,4 @@
display: block;
align-self: flex-end;
}

&:hover div.c-imagery-tsv__image-wrapper {
// TODO CH: convert to theme constants
filter: brightness(0.5) contrast(0.7);
}
}
Loading