fix(desktop): fix Linux window control order and drop auto position (#2434)

Left-side controls now use macOS traffic-light order (close, minimize,
maximize). Remove the unused auto option and default window controls to
the right for Windows and Linux frameless chrome.

Authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>
This commit is contained in:
Serhii Dziupin
2026-07-26 13:39:46 +03:00
committed by GitHub
parent c9f673582a
commit ae40f0fe7d
18 changed files with 165 additions and 70 deletions
@@ -0,0 +1,32 @@
import { describe, expect, test } from 'bun:test';
import {
DEFAULT_DESKTOP_WINDOW_CONTROLS_POSITION,
getDesktopWindowControlsOrder,
normalizeDesktopWindowControlsPosition,
resolveDesktopWindowControlsSide,
} from './desktop';
describe('desktop window controls position', () => {
test('defaults to right', () => {
expect(DEFAULT_DESKTOP_WINDOW_CONTROLS_POSITION).toBe('right');
expect(resolveDesktopWindowControlsSide(undefined)).toBe('right');
expect(resolveDesktopWindowControlsSide('right')).toBe('right');
expect(resolveDesktopWindowControlsSide('left')).toBe('left');
});
test('maps legacy auto to right', () => {
expect(normalizeDesktopWindowControlsPosition('auto')).toBe('right');
expect(normalizeDesktopWindowControlsPosition('left')).toBe('left');
expect(normalizeDesktopWindowControlsPosition('right')).toBe('right');
expect(normalizeDesktopWindowControlsPosition('invalid')).toEqual(undefined);
});
test('left uses macOS traffic-light order', () => {
expect(getDesktopWindowControlsOrder('left')).toEqual(['close', 'minimize', 'maximize']);
});
test('right uses Windows order', () => {
expect(getDesktopWindowControlsOrder('right')).toEqual(['minimize', 'maximize', 'close']);
});
});