Skip to content

[Windows] Window cannot be dragged by the title bar (drag region only 5px tall) #121

Description

@redfireblade

Describe the bug

On Windows, the DSH Desktop window cannot be dragged by its title bar / the top area of the window. Clicking and dragging anywhere on the visible top bar does not move the window.

Environment

  • dsh-desktop version: 0.4.0
  • OS: Windows 10 Pro

Root cause (from installed code)

The window is created with frame: true, titleBarStyle: "hidden" and titleBarOverlay (36 px) — Window Controls Overlay mode — so the app must provide its own drag region.

In out/preload/index.cjs, mountWindowsTitlebar() injects a full-width 36 px .bar marked -webkit-app-region: no-drag with pointer-events: none, and the only draggable area is .safeArea::before:

.safeArea::before {
  content: "";
  position: absolute;
  top: 0;
  right: 44px;
  height: 5px;        /* <-- only 5px tall */
  left: var(--dsh-desktop-windows-sidebar-width, 280px);
  pointer-events: auto;
  -webkit-app-region: drag;
}

The drag region is only 5 px tall (between the sidebar edge ~280 px and ~44 px before the overlay controls), while the rest of the 36 px title-bar strip is no-drag. The web frontend defines no -webkit-app-region: drag anywhere (verified across all @deepseek-ai/* dist files), so the visible header area is not draggable. Note the macOS path (syncNativeTheme in out/main/index.js) injects a 24 px drag region instead, which is why this only affects Windows.

Expected behavior

The whole title-bar strip (36 px, between the sidebar and the window-control overlay) should be draggable so the window can be moved by its title bar.

Workaround

Grab the invisible ~1-2 px top edge of the window, or use Alt+SpaceM to move via keyboard.

Suggested fix

In out/preload/index.cjs:

 .safeArea::before {
   content: "";
   position: absolute;
   top: 0;
   right: 44px;
-  height: 5px;
+  height: ${WINDOWS_TITLEBAR_HEIGHT}px;
   left: var(${SIDEBAR_WIDTH_PROPERTY}, 280px);
   pointer-events: auto;
   -webkit-app-region: drag;
 }

(With the caveat that the region will then intercept clicks in the top strip — normal title-bar behavior.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions