#3

Photoshop 2025: OWL.MenuBar child paints as solid white strip while menus remain clickable

Opensgpascoeopened 4mo ago

Summary

Photoshop 2025 under wine-11.10-adobe can render the top application menu strip as a solid white rectangle with no visible menu text. The menu is still functional/clickable; the failure is visual paint of a specific Adobe OWL menu-bar child window.

This was reproduced on Linux Mint/Cinnamon X11 with Photoshop 2025 v26.3 in both an existing prefix and a comparison/clean prefix.

Exact failing surface

Wine trace and screenshots identify the bad surface as:

  • top window: class Photoshop, title Adobe Photoshop 2025
  • child: class OWL.ApplicationBar
  • failing child: class OWL.MenuBar
  • failing geometry: 445x20, positioned at about 29,0

The screenshot rectangle exactly matched this child:

  • pure white pixel count: 8900
  • bbox: x=33..477, y=3..22
  • size: 445x20

Trace excerpts:

WIN_CreateWindowEx (null) L"OWL.ApplicationBar" ... parent=0x10068
WIN_CreateWindowEx (null) L"OWL.MenuBar" ... parent=0x111f2
NtUserCreateWindowEx hwnd 0x111f4 ...
NtUserSetWindowPos hwnd 0x111f4 ... 29,0 (445x20)
nc_paint 0x111f4 0
nc_paint rect after menu (0,0)-(445,20)

So the issue is not Photoshop document/canvas rendering, not Edge WebView, not Cinnamon/Metacity decorations, and not a general D2D triangulation issue. It is the OWL.MenuBar child being painted white through Wine's non-client/menu paint path.

Things tested / falsified

  • Reproduced in both current and comparison prefixes.
  • Changing HKCU\\Control Panel\\Colors and ThemeManager\\Control Panel\\Colors entries such as Menu, MenuBar, MenuText, ButtonFace, ButtonHilight, ButtonAlternateFace, and Window to sentinel colors did not change the white strip.
  • ThemeActive=1 with aero.msstyles in the comparison prefix did not fix it.
  • Manually painting the OWL.MenuBar DC dark did not persist.
  • Hiding the exact OWL.MenuBar child removed all white pixels and revealed Photoshop's native dark application bar underneath.
  • Sending click messages to the hidden OWL.MenuBar still opens the real Photoshop menus.

Practical workaround that proves the target

A small Win32 helper inside the same Wine prefix:

  1. finds the OWL.MenuBar child with geometry 445x20;
  2. calls ShowWindow(hwnd, SW_HIDE) on that child;
  3. creates a transparent topmost overlay with menu labels;
  4. forwards clicks into the hidden OWL.MenuBar with WM_LBUTTONDOWN/UP.

That produces a visually correct top menu and the real Photoshop dropdowns open.

This workaround is not a real upstream fix, but it proves the root surface: the hidden OWL.MenuBar remains functional, only its paint is wrong.

Suggested Wine-side fix direction

Please inspect Wine's non-client/menu painting for child OWL.MenuBar windows. The failing path appears to be nc_paint / "rect after menu" for a child menu-like window. Since system color registry changes do not affect the result, it looks like this path is selecting a stock/default white brush or otherwise clearing the menu rect to white rather than using the app/menu background.

A proper fix may be one of:

  • avoid non-client menu background painting for this OWL child menu bar;
  • use COLOR_MENUBAR / COLOR_MENU consistently instead of a stock white brush;
  • respect the class/app background for child OWL.MenuBar windows before/after menu nc-paint;
  • or route this child menu bar through the themed menu background path when theming is active.

The important behavioral constraint is that hit-testing/click handling already works; only painting is wrong.

Environment

  • Photoshop: Adobe Photoshop 2025 v26.3
  • Wine: wine-11.10-adobe from this Adobe fork
  • Desktop: Linux Mint/Cinnamon X11
  • GPU stack: NVIDIA, vkd3d path

I can provide the local trace/captures if useful. The key diagnostic is the OWL.MenuBar 445x20 child and nc_paint rect after menu (0,0)-(445,20).

Activity

1
undefined068554mo ago

Can you share the Win32 helper? I'm running into the same issue and it would be nice to be able to see the top menu.