Skip to content

[Suggestion] Windows 7 frame highlights #175

@aubymori

Description

@aubymori

This was suggested in DWMBlurGlass before, but I'd like to re-suggest it here, with a greater knowledge of how it works.

Windows 7's frames had highlights, which consisted of two parts:

The corner highlights

The image for these in Windows 7 is defined in the DWMWindow class, part 34 (named LeftHighlightCorner).

These can be observed in just about every window with a frame, and the highlight on the right uses the same image as the left, but flipped.

Image

Here is the image from the Windows 7 theme:

Image

The side highlights

The image for these in Windows 7 is defined in the DWMWindow class, part 43 (named SideHighlight).

These can be observed in most windows with a frame, and they start relative to where the bottom of the top frame is:

Image

Because of this, sheet-of-glass windows, which have no defined inner frames, do not have side highlights:

Image

It should also be noted that "frame" in the context of this issue means any frame, not just windows with a titlebar. As such, the titlebar-lacking tray flyouts have these side highlights, as well as the aforementioned corner highlights:

Image

Here is the image from the Windows 7 theme:

Image

Implementation

Some people may remember that I once tried restoring these highlights in OpenGlass, via directly rendering them on top of the glass shader, akin to what is done for the reflection texture. This is incorrect behavior and should not be done. From my understanding, the highlights are simply MIL visuals that are children of the CTopLevelWindow visual.

To assist with anyone wishing to implement this, here are the binaries and private PDBs for uDWM.dll and dwmcore.dll from Windows 8 build 7762, the DWM of which is nearly if not completely identical to that of Windows 7's:

dwm7.zip

To clarify, private PDBs include type definitions (struct members, enum names) and function argument names.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions