fix: update window positioning to prevent overlap with the top of the viewport

This commit is contained in:
shiyu
2025-12-15 15:14:37 +08:00
parent b319b545fc
commit 18f59f8d33
3 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -58,7 +58,7 @@ export const AppWindowsLayer: React.FC<AppWindowsLayerProps> = ({ windows, onClo
const dx = e.clientX - startX; const dx = e.clientX - startX;
const dy = e.clientY - startY; const dy = e.clientY - startY;
let newX = Math.max(0, originX + dx); let newX = Math.max(0, originX + dx);
let newY = Math.max(48, originY + dy); let newY = Math.max(0, originY + dy);
dragRef.current.newX = newX; dragRef.current.newX = newX;
dragRef.current.newY = newY; dragRef.current.newY = newY;
const el = windowEls.current[id]; const el = windowEls.current[id];
+2 -2
View File
@@ -63,7 +63,7 @@ export const AppWindowsProvider: React.FC<{ children: React.ReactNode }> = ({ ch
const finalW = Math.min(baseW, vw - 40); const finalW = Math.min(baseW, vw - 40);
const finalH = Math.min(baseH, vh - 60); const finalH = Math.min(baseH, vh - 60);
const finalX = Math.min(Math.max(0, baseX), vw - finalW - 8); const finalX = Math.min(Math.max(0, baseX), vw - finalW - 8);
const finalY = Math.min(Math.max(48, baseY), vh - finalH - 8); const finalY = Math.min(Math.max(0, baseY), vh - finalH - 8);
return [ return [
...ws, ...ws,
{ {
@@ -99,7 +99,7 @@ export const AppWindowsProvider: React.FC<{ children: React.ReactNode }> = ({ ch
const finalW = Math.min(baseW, vw - 40); const finalW = Math.min(baseW, vw - 40);
const finalH = Math.min(baseH, vh - 60); const finalH = Math.min(baseH, vh - 60);
const finalX = Math.min(Math.max(0, baseX), vw - finalW - 8); const finalX = Math.min(Math.max(0, baseX), vw - finalW - 8);
const finalY = Math.min(Math.max(48, baseY), vh - finalH - 8); const finalY = Math.min(Math.max(0, baseY), vh - finalH - 8);
return [ return [
...ws, ...ws,
{ {
@@ -24,7 +24,7 @@ export function useAppWindows(path: string) {
const finalW = Math.min(baseW, vw - 40); const finalW = Math.min(baseW, vw - 40);
const finalH = Math.min(baseH, vh - 60); const finalH = Math.min(baseH, vh - 60);
const finalX = Math.min(Math.max(0, baseX), vw - finalW - 8); const finalX = Math.min(Math.max(0, baseX), vw - finalW - 8);
const finalY = Math.min(Math.max(48, baseY), vh - finalH - 8); const finalY = Math.min(Math.max(0, baseY), vh - finalH - 8);
return [...ws, { return [...ws, {
id: Date.now().toString(36) + Math.random().toString(36).slice(2), id: Date.now().toString(36) + Math.random().toString(36).slice(2),
app, app,