Stabilize Start menu and desktop shortcut migration with persistent versioned icon resources, stale-registration recovery, and explicit Windows shell notifications. Keep development, packaged, and shortcut identities aligned, and add regression coverage for orphaned per-user installs, reduced-motion changelog transitions, and update-popover pointer transit.
This commit is contained in:
+3
-3
@@ -20,9 +20,9 @@
|
||||
<div class="update-changelog-card is-hidden" id="updateChangelogCard">
|
||||
<div class="update-changelog-header">
|
||||
<span class="update-changelog-label" id="updateChangelogLabel">Changelog</span>
|
||||
<button type="button" class="update-changelog-toggle" id="updateChangelogToggle" onclick="toggleUpdateChangelog()">Changelog anzeigen</button>
|
||||
<button type="button" class="update-changelog-toggle" id="updateChangelogToggle" onclick="toggleUpdateChangelog()" aria-controls="updateChangelogPanel" aria-expanded="false">Changelog anzeigen</button>
|
||||
</div>
|
||||
<div class="update-changelog-panel" id="updateChangelogPanel" hidden>
|
||||
<div class="update-changelog-panel" id="updateChangelogPanel" aria-hidden="true">
|
||||
<div class="update-changelog-content" id="updateChangelogContent"></div>
|
||||
<p class="update-changelog-empty" id="updateChangelogEmpty" hidden>Kein Changelog verfügbar.</p>
|
||||
</div>
|
||||
@@ -940,7 +940,7 @@
|
||||
|
||||
<div class="settings-card" data-settings-pane="updates" hidden>
|
||||
<h3 id="updateTitle">Updates</h3>
|
||||
<p id="versionInfo" class="card-intro">Version: v1.0.6</p>
|
||||
<p id="versionInfo" class="card-intro">Version: v1.0.7</p>
|
||||
<button type="button" class="btn-secondary" id="checkUpdateBtn" onclick="checkUpdate()">Nach Updates suchen</button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -293,7 +293,8 @@ function renderUpdateChangelog(notes?: string): void {
|
||||
|
||||
if (!normalized) {
|
||||
card.classList.add('is-hidden');
|
||||
panel.hidden = true;
|
||||
panel.classList.remove('is-expanded');
|
||||
panel.setAttribute('aria-hidden', 'true');
|
||||
updateChangelogExpanded = false;
|
||||
return;
|
||||
}
|
||||
@@ -372,7 +373,8 @@ function renderUpdateChangelog(notes?: string): void {
|
||||
content.appendChild(fragment);
|
||||
}
|
||||
|
||||
panel.hidden = !updateChangelogExpanded;
|
||||
panel.classList.toggle('is-expanded', updateChangelogExpanded);
|
||||
panel.setAttribute('aria-hidden', String(!updateChangelogExpanded));
|
||||
}
|
||||
|
||||
function refreshUpdateChangelogToggleText(): void {
|
||||
@@ -383,6 +385,7 @@ function refreshUpdateChangelogToggleText(): void {
|
||||
}
|
||||
|
||||
toggle.textContent = updateChangelogExpanded ? UI_TEXT.updates.hideChangelog : UI_TEXT.updates.showChangelog;
|
||||
toggle.setAttribute('aria-expanded', String(updateChangelogExpanded));
|
||||
}
|
||||
|
||||
function refreshUpdateModalTexts(): void {
|
||||
@@ -459,7 +462,9 @@ function toggleUpdateChangelog(): void {
|
||||
}
|
||||
|
||||
updateChangelogExpanded = !updateChangelogExpanded;
|
||||
byId<HTMLElement>('updateChangelogPanel').hidden = !updateChangelogExpanded;
|
||||
const panel = byId<HTMLElement>('updateChangelogPanel');
|
||||
panel.classList.toggle('is-expanded', updateChangelogExpanded);
|
||||
panel.setAttribute('aria-hidden', String(!updateChangelogExpanded));
|
||||
refreshUpdateChangelogToggleText();
|
||||
}
|
||||
|
||||
|
||||
@@ -3000,9 +3000,20 @@ input[type="checkbox"].vod-select-checkbox {
|
||||
}
|
||||
|
||||
.update-changelog-panel {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
padding: 0 14px;
|
||||
opacity: 0;
|
||||
transform: translateY(-4px);
|
||||
transition: max-height 260ms cubic-bezier(0.22, 0.76, 0.22, 1), padding 260ms cubic-bezier(0.22, 0.76, 0.22, 1), opacity 180ms ease, transform 260ms cubic-bezier(0.22, 0.76, 0.22, 1);
|
||||
}
|
||||
|
||||
.update-changelog-panel.is-expanded {
|
||||
max-height: 320px;
|
||||
overflow: auto;
|
||||
padding: 14px;
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.update-changelog-content {
|
||||
|
||||
@@ -2646,6 +2646,10 @@ input[type="checkbox"].vod-select-checkbox:focus-visible {
|
||||
transition-delay: 0s !important;
|
||||
}
|
||||
|
||||
.update-changelog-panel {
|
||||
transition: max-height 260ms cubic-bezier(0.22, 0.76, 0.22, 1), padding 260ms cubic-bezier(0.22, 0.76, 0.22, 1), opacity 180ms ease, transform 260ms cubic-bezier(0.22, 0.76, 0.22, 1) !important;
|
||||
}
|
||||
|
||||
.top-nav::before {
|
||||
transition: transform 420ms cubic-bezier(0.22, 0.76, 0.22, 1), width 420ms cubic-bezier(0.22, 0.76, 0.22, 1), height 420ms cubic-bezier(0.22, 0.76, 0.22, 1) !important;
|
||||
}
|
||||
@@ -2873,6 +2877,15 @@ input[type="checkbox"].vod-select-checkbox:focus-visible {
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
.workspace-update-popover::after {
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
height: 7px;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.workspace-update.show:not(.popover-dismissed):hover .workspace-update-popover,
|
||||
.workspace-update.show:not(.popover-dismissed):focus-within .workspace-update-popover {
|
||||
visibility: visible;
|
||||
|
||||
Reference in New Issue
Block a user