Skip to content

Commit

Permalink
force reblur every 40ms
Browse files Browse the repository at this point in the history
  • Loading branch information
eagleoflqj committed Feb 4, 2024
1 parent 10079a7 commit 1797ac0
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 19 deletions.
4 changes: 4 additions & 0 deletions page/generic.scss
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,7 @@ body {
.hidden {
display: none;
}

.blur {
backdrop-filter: blur(16px); /* blur background */
}
14 changes: 8 additions & 6 deletions page/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@
</head>
<body>
<div class="panel macos">
<div class="header">
<div class="aux-up hidden"></div>
<div class="preedit hidden"></div>
</div>
<div class="aux-down hidden"></div>
<div class="candidates">
<div class="panel-blur">
<div class="header">
<div class="aux-up hidden"></div>
<div class="preedit hidden"></div>
</div>
<div class="aux-down hidden"></div>
<div class="candidates">
</div>
</div>
</div>
<script type="module">
Expand Down
18 changes: 18 additions & 0 deletions page/ux.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,21 @@ document.addEventListener('mouseup', e => {
}
}
})

// HACK: force redraw blur every 40ms so that window background change counts
let blurSwitch = false
const panelBlur = document.querySelector('.panel-blur')!
function redrawBlur () {
if (!panel.classList.contains('macos')) {
return
}
if (blurSwitch) {
panelBlur.classList.add('blur')
panel.classList.remove('blur')
} else {
panel.classList.add('blur')
panelBlur.classList.remove('blur')
}
blurSwitch = !blurSwitch
}
setInterval(redrawBlur, 40)
32 changes: 19 additions & 13 deletions tests/test-generic.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,30 @@ import {

test('HTML structure', async ({ page }) => {
await init(page)
await page.evaluate(() => {
document.querySelector('.panel')?.classList.remove('macos', 'blur')
document.querySelector('.panel-blur')?.classList.remove('blur')
})
await setCandidates(page, ['页面结构', '测试'], ['1', '2'], 0)

const actual = (await panel(page).evaluate(el => el.outerHTML)).replaceAll('> <', '><')
const expected = `
<div class="macos panel dark">
<div class="header">
<div class="aux-up hidden"></div>
<div class="hidden preedit"></div>
</div>
<div class="aux-down hidden"></div>
<div class="candidates">
<div class="candidate highlighted">
<div class="label">1</div>
<div class="text">页面结构</div>
<div class="panel dark">
<div class="panel-blur">
<div class="header">
<div class="aux-up hidden"></div>
<div class="hidden preedit"></div>
</div>
<div class="candidate">
<div class="label">2</div>
<div class="text">测试</div>
<div class="aux-down hidden"></div>
<div class="candidates">
<div class="candidate highlighted">
<div class="label">1</div>
<div class="text">页面结构</div>
</div>
<div class="candidate">
<div class="label">2</div>
<div class="text">测试</div>
</div>
</div>
</div>
</div>
Expand Down

0 comments on commit 1797ac0

Please sign in to comment.