diff --git a/public/images/cursor_dark.png b/public/images/cursor/dark.png similarity index 100% rename from public/images/cursor_dark.png rename to public/images/cursor/dark.png diff --git a/public/images/cursor_light.png b/public/images/cursor/light.png similarity index 100% rename from public/images/cursor_light.png rename to public/images/cursor/light.png diff --git a/public/images/cursor_modern.png b/public/images/cursor/modern.png similarity index 100% rename from public/images/cursor_modern.png rename to public/images/cursor/modern.png diff --git a/public/images/cursor_pointer_dark.png b/public/images/cursor/pointer_dark.png similarity index 100% rename from public/images/cursor_pointer_dark.png rename to public/images/cursor/pointer_dark.png diff --git a/public/images/cursor_pointer_light.png b/public/images/cursor/pointer_light.png similarity index 100% rename from public/images/cursor_pointer_light.png rename to public/images/cursor/pointer_light.png diff --git a/public/images/cursor_pointer_modern.png b/public/images/cursor/pointer_modern.png similarity index 100% rename from public/images/cursor_pointer_modern.png rename to public/images/cursor/pointer_modern.png diff --git a/public/images/cursor/resize_dark_270.png b/public/images/cursor/resize_dark_270.png new file mode 100644 index 0000000..d60009f Binary files /dev/null and b/public/images/cursor/resize_dark_270.png differ diff --git a/public/images/cursor/resize_dark_45.png b/public/images/cursor/resize_dark_45.png new file mode 100644 index 0000000..cecd591 Binary files /dev/null and b/public/images/cursor/resize_dark_45.png differ diff --git a/public/images/cursor/resize_dark_h.png b/public/images/cursor/resize_dark_h.png new file mode 100644 index 0000000..5b43c45 Binary files /dev/null and b/public/images/cursor/resize_dark_h.png differ diff --git a/public/images/cursor/resize_dark_v.png b/public/images/cursor/resize_dark_v.png new file mode 100644 index 0000000..765bacc Binary files /dev/null and b/public/images/cursor/resize_dark_v.png differ diff --git a/public/images/cursor/resize_light_270.png b/public/images/cursor/resize_light_270.png new file mode 100644 index 0000000..8d4993c Binary files /dev/null and b/public/images/cursor/resize_light_270.png differ diff --git a/public/images/cursor/resize_light_45.png b/public/images/cursor/resize_light_45.png new file mode 100644 index 0000000..6e0a907 Binary files /dev/null and b/public/images/cursor/resize_light_45.png differ diff --git a/public/images/cursor/resize_light_h.png b/public/images/cursor/resize_light_h.png new file mode 100644 index 0000000..36e77d4 Binary files /dev/null and b/public/images/cursor/resize_light_h.png differ diff --git a/public/images/cursor/resize_light_v.png b/public/images/cursor/resize_light_v.png new file mode 100644 index 0000000..d7d197c Binary files /dev/null and b/public/images/cursor/resize_light_v.png differ diff --git a/public/images/cursor/resize_modern.png b/public/images/cursor/resize_modern.png new file mode 100644 index 0000000..a5120f5 Binary files /dev/null and b/public/images/cursor/resize_modern.png differ diff --git a/public/images/cursor/resize_modern_270.png b/public/images/cursor/resize_modern_270.png new file mode 100644 index 0000000..c055e07 Binary files /dev/null and b/public/images/cursor/resize_modern_270.png differ diff --git a/public/images/cursor/resize_modern_45.png b/public/images/cursor/resize_modern_45.png new file mode 100644 index 0000000..46381c4 Binary files /dev/null and b/public/images/cursor/resize_modern_45.png differ diff --git a/public/images/cursor/resize_modern_h.png b/public/images/cursor/resize_modern_h.png new file mode 100644 index 0000000..c3656cb Binary files /dev/null and b/public/images/cursor/resize_modern_h.png differ diff --git a/public/images/cursor/resize_modern_v.png b/public/images/cursor/resize_modern_v.png new file mode 100644 index 0000000..5cfe3b5 Binary files /dev/null and b/public/images/cursor/resize_modern_v.png differ diff --git a/public/javascript/os.js b/public/javascript/os.js index 5adda0d..dd6f720 100644 --- a/public/javascript/os.js +++ b/public/javascript/os.js @@ -6,7 +6,6 @@ const isMobile = ( ); let topZ = 100; -const MAX_PADDING = { left: 8, top: 8, right: 8, bottom: 60 }; const maximizeIcon = '▢'; const restoreIcon = '🗗'; @@ -18,6 +17,7 @@ const ctx = new ContextMenu(); const windowCleanup = new Map(); const username = getCookie('sAMAccountName'); const LS_KEY = (key) => `${username}:${key}`; +const MAX_PADDING = { left: 4, top: 4, right: 4, bottom: (56 - 4) }; startBtn.addEventListener('click', (evt) => { evt.stopPropagation(); // verhindert sofortiges Schließen @@ -327,6 +327,7 @@ function handleWindowAction(payload) { // focusWindowById(btn.dataset.winid); // }); + taskbarWindows.addEventListener('click', (e) => { const btn = e.target.closest('.taskbar-item'); if (!btn) return; diff --git a/public/styles/os.css b/public/styles/os.css index c4ee306..ba3f2e3 100644 --- a/public/styles/os.css +++ b/public/styles/os.css @@ -3,7 +3,7 @@ body, html { margin:0; padding:0; height:100%; overflow: hidden; font-family: va #desktop { position:relative; height:100vh; overflow:hidden; background-size:var(--theme-desktop-background-size); background-repeat: no-repeat; background-position: center; touch-action: none; } #windows { z-index: 1; position:absolute; inset:0; padding:8px; box-sizing:border-box; } -.window { min-width:250px; min-height:250px; position:absolute; width: 800px; height: 600px; border-radius:6px; box-shadow: 0 6px 20px rgba(0,0,0,0.4); overflow:hidden; top:50px; left:50px; display:flex; flex-direction:column; resize:both; } +.window { min-width:250px; min-height:250px; position:absolute; width: 800px; height: 600px; border-radius:6px; box-shadow: 0 6px 20px rgba(0,0,0,0.4); overflow:hidden; top:50px; left:50px; display:flex; flex-direction:column; resize:none; } .window-titlebar { padding: 0 0 1px 0; height: auto; display:flex; justify-content:space-between; align-items:center; } .window-titlebar .title { display: flex; align-items: center; min-width: 0; flex: 1; overflow: hidden; } .window-titlebar .window-title { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-left:8px; } @@ -13,16 +13,20 @@ body, html { margin:0; padding:0; height:100%; overflow: hidden; font-family: va .window .controls button { transition: background-color var(--times-transition-colors), color var(--times-transition-colors); padding: 2px 10px; border:none;} .window-content { display: flex; flex-direction: column; flex:1; padding:8px; overflow: auto; } .window[class="max"] .window-resize-handle { display: none; } -.window-resize-handle { position:absolute; right:0; bottom:0; width:12px; height:12px; cursor:se-resize; z-index: 10; } -.window-resize-n { top: -4px; left: 0; right: 0; height: 8px; cursor: n-resize; } -.window-resize-s { bottom: -4px; left: 0; right: 0; height: 8px; cursor: s-resize; } -.window-resize-e { right: -4px; top: 0; bottom: 0; width: 8px; cursor: e-resize; } -.window-resize-w { left: -4px; top: 0; bottom: 0; width: 8px; cursor: w-resize; } -.window-resize-ne { top: -4px; right: -4px; width: 12px; height: 12px; cursor: ne-resize; } -.window-resize-nw { top: -4px; left: -4px; width: 12px; height: 12px; cursor: nw-resize; } -.window-resize-se { bottom: -4px; right: -4px; width: 12px; height: 12px; cursor: se-resize; } -.window-resize-sw { bottom: -4px; left: -4px; width: 12px; height: 12px; cursor: sw-resize; } +.window-resize-n, .window-resize-s { position: absolute; left: 8px; right: 8px; height: 8px; z-index: 10; } +.window-resize-n { top: -4px;cursor: var(--theme-cursor-resize-vertical); } +.window-resize-s { bottom: -4px;cursor: var(--theme-cursor-resize-vertical); } + +.window-resize-e, .window-resize-w { position: absolute;top: 8px;bottom: 8px;width: 8px;z-index: 10; } +.window-resize-e { right: -4px;cursor: var(--theme-cursor-resize-horizontal); } +.window-resize-w { left: -4px;cursor: var(--theme-cursor-resize-horizontal); } + +.window-resize-ne, .window-resize-nw, .window-resize-se, .window-resize-sw { position: absolute;width: 16px;height: 16px;z-index: 11; } +.window-resize-ne { top: -6px;right: -6px;cursor: var(--theme-cursor-resize-45); } +.window-resize-nw { top: -6px;left: -6px;cursor: var(--theme-cursor-resize-270); } +.window-resize-se { bottom: -6px;right: -6px;cursor: var(--theme-cursor-resize-270); } +.window-resize-sw { bottom: -6px;left: -6px;cursor: var(--theme-cursor-resize-45); } #taskbar { z-index: 2; position: absolute; width:100%; bottom:0; left:0; height:auto; overflow:visible; display:flex; flex: 0 0 auto; min-width:0; align-items:center; padding:0 8px; box-sizing:border-box; } #start-btn { transition: background-color var(--times-transition-colors) ease; padding: 8px 12px; border-radius: 5px; border: none; margin-right:8px; } diff --git a/public/views/integrated/usersettings.hbs b/public/views/integrated/usersettings.hbs index 573a67d..9e81033 100644 --- a/public/views/integrated/usersettings.hbs +++ b/public/views/integrated/usersettings.hbs @@ -54,7 +54,7 @@ diff --git a/public/views/partials/window.hbs b/public/views/partials/window.hbs index 1921d78..d60b4c4 100644 --- a/public/views/partials/window.hbs +++ b/public/views/partials/window.hbs @@ -10,7 +10,7 @@ {{/if}} - +