Skip to content

Fix OSC listener settings control#6

Open
Alberto-Aguilar-UCR wants to merge 2 commits into
riskcapital:mainfrom
Alberto-Aguilar-UCR:fix/osc-listener-control
Open

Fix OSC listener settings control#6
Alberto-Aguilar-UCR wants to merge 2 commits into
riskcapital:mainfrom
Alberto-Aguilar-UCR:fix/osc-listener-control

Conversation

@Alberto-Aguilar-UCR

Copy link
Copy Markdown

Summary

This PR fixes the OSC listener control in Settings by replacing the hidden toggle with a visible button.

In the packaged desktop app, the OSC backend was already present and functional, but the Settings UI did not provide a usable visible control to start or stop the listener. As a result, the UDP listener was never started from the UI.

Verification

Tested on Windows desktop build:

  • The OSC control is now visible in Settings.
  • Clicking the control starts the OSC listener.
  • The app reports the OSC status as Listening.
  • netstat -ano -p UDP | findstr :8000 confirms the app is listening on UDP port 8000.
  • Sending an OSC command to /preset/0 with value 1.0 correctly triggers the mapped preset.

Also ran:

npm run check

Result:

svelte-check found 0 errors and 907 warnings in 56 files

Notes

The existing warnings are unrelated to this change.

Signed-off-by: Alberto Aguilar <carlos.aguilarlopez@ucr.ac.cr>
Signed-off-by: Alberto Aguilar <carlos.aguilarlopez@ucr.ac.cr>
@Alberto-Aguilar-UCR

Copy link
Copy Markdown
Author

Additional fix included: slice display fullscreen sizing on Windows

While testing the OSC listener fix on the updated v1.9.7 base, I found a second Windows-specific issue affecting the Screens → Open on display workflow.

Bug

When opening a slice display on a selected physical monitor, the output window was created on the correct display but did not fill the full screen area. On a 1920×1080 display, the slice window was rendered smaller than the physical output area, leaving visible desktop space around the right/bottom edges.

Measured from the slice display DevTools:

innerWidth: 1888
innerHeight: 1064
outerWidth: 1888
outerHeight: 1064

Expected:

innerWidth: 1920
innerHeight: 1080
outerWidth: 1920
outerHeight: 1080

The incoming slice frames were already correct at 1920x1080, so this was not a renderer/canvas scaling issue. The problem was the Electron window sizing behavior for the borderless slice display window on Windows.

Fix

The slice display window now uses kiosk mode instead of forcing Electron fullscreen directly:

- fullscreen: isSliceWin ? true : fullscreen,
+ kiosk: isSliceWin,
+ fullscreen: isSliceWin ? false : fullscreen,

Additionally, after Electron creates the slice window, the content bounds are explicitly matched to the selected display bounds:

try { newWindow.setMenuBarVisibility(false); } catch { /* */ }

try {
  const display = screen.getDisplayMatching(newWindow.getBounds());
  const b = display.bounds;
  newWindow.setContentBounds({
    x: b.x,
    y: b.y,
    width: b.width,
    height: b.height,
  });
} catch { /* best-effort projector sizing */ }

With both changes applied, the same display correctly reports:

innerWidth: 1920
innerHeight: 1080
outerWidth: 1920
outerHeight: 1080

Updated branch status

This branch has been rebased/recreated on top of v1.9.7 and now includes both fixes:

Fix OSC listener settings control
fix: make slice display fill selected screen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant