mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-11-09 07:23:14 +00:00
"Select area or window" in the source menu opens a picker over every display. Hovering highlights the window under the cursor, or the whole screen over the desktop, and a click picks it. Dragging draws an area, and moving or resizing any pick turns it into an area. Record, Enter or a double-click starts recording, Select only picks, Escape cancels. The window-list helper gains a --z-order mode that lists windows front to back with their owner process, so the picker hits the frontmost window and skips Recordly's own. A picked window or screen becomes the same source the lists offer. An area becomes an area:<displayId> source that the capture helper crops like a window that never moves, cursor telemetry normalizes to, and a dashed outline marks while recording. The main process validates every pick: a window must be one the picker offered. Picker windows stay hidden until they have painted, so opening the picker does not flash the app background. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
28 lines
925 B
TypeScript
28 lines
925 B
TypeScript
import { installFeedbackDiagnostics } from "./lib/feedback/diagnostics";
|
|
import React from "react";
|
|
import ReactDOM from "react-dom/client";
|
|
import App from "./App.tsx";
|
|
import { I18nProvider } from "./contexts/I18nContext.tsx";
|
|
import { ThemeProvider } from "./contexts/ThemeContext.tsx";
|
|
import "./index.css";
|
|
|
|
installFeedbackDiagnostics();
|
|
|
|
document.documentElement.dataset.platform = /mac/i.test(navigator.platform) ? "macos" : "other";
|
|
|
|
// The capture picker covers whole displays, so it must never paint the app background.
|
|
if (new URLSearchParams(window.location.search).get("windowType") === "capture-picker") {
|
|
document.documentElement.style.background = "transparent";
|
|
document.body.style.background = "transparent";
|
|
}
|
|
|
|
ReactDOM.createRoot(document.getElementById("root")!).render(
|
|
<React.StrictMode>
|
|
<ThemeProvider>
|
|
<I18nProvider>
|
|
<App />
|
|
</I18nProvider>
|
|
</ThemeProvider>
|
|
</React.StrictMode>,
|
|
);
|