Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 14 additions & 0 deletions .github/workflows/visual-tray.yml
Original file line number Diff line number Diff line change
Expand Up @@ -222,12 +222,26 @@ jobs:
libayatana-appindicator3-1
# Heavy DEs (KDE, Cinnamon, Budgie) pull hundreds of MB of packages;
# cache them by package set so subsequent runs skip the download.
# execute_install_scripts: true is required because the DE setup
# depends on postinstall hooks like glib-compile-schemas — without
# it the cached restore leaves gsettings schemas uncompiled and
# budgie-daemon/cinnamon-session crash with "Settings schema
# 'com.solus-project.budgie-panel' is not installed".
- name: Install desktop environment (cached)
if: matrix.cache_apt
uses: awalsh128/cache-apt-pkgs-action@v1.6.0
with:
packages: ${{ matrix.apt }}
version: '1.0'
execute_install_scripts: 'true'
# The action's execute_install_scripts only runs a subset of
# postinst (e.g. polkitd) — glib-compile-schemas is silently
# skipped, so we run it explicitly. Without this, budgie-daemon
# and cinnamon-session crash with "Settings schema ... not
# installed" on cache restore.
- name: Compile glib schemas after cache restore
if: matrix.cache_apt
run: sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
- name: Install desktop environment (uncached)
if: '!matrix.cache_apt'
env:
Expand Down
7 changes: 7 additions & 0 deletions tests/visual/fixture/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ mb.on('ready', () => {
// Force topmost so the screenshot captures our window even when GHA
// runners pre-launch File Explorer / Notepad windows over the tray area.
mb.window?.setAlwaysOnTop(true, 'screen-saver');
// Move the window away from any OS panel/taskbar. Linux SNI panels
// return {0,0,0,0} for tray bounds, so menubar's Positioner falls back
// to the bottom-right corner — which on bottom-panel DEs (Budgie,
// Cinnamon, KDE) puts our opaque window right on top of the tray icon
// and the test can no longer detect it. Moving to a fixed mid-screen
// position guarantees no overlap on any platform.
mb.window?.setPosition(400, 200);
// Wait for the WM (especially Mutter on GNOME) to settle the window's
// final position before querying — getBounds() right after showWindow()
// returned a stale/intended coord on GNOME while the actual paint was
Expand Down
Loading