[Suggestion] Windows 7 frame highlights
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.
Here is the image from the Windows 7 theme:
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:
Because of this, sheet-of-glass windows, which have no defined inner frames, do not have side highlights:
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:
Here is the image from the Windows 7 theme:
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:
To clarify, private PDBs include type definitions (struct members, enum names) and function argument names.
Because of this, sheet-of-glass windows, which have no defined inner frames, do not have side highlights:
Just to be clear, Sheet of glass windows in Windows 7 had no side highlights either, that was just part of these sheet of glass windows. Some did, but I can't remember which applications or what caused it. But if you take a look at the gadget gallery, it renders the window as the sheet of glass with the corner highlights, but no side highlights. So this also affects things like Firefox-based browsers where it is drawn as a sheet of glass, even on Windows 7 it does not have the side highlights (unless the URL text box is being used, oddly enough? Only know this from developing my CSS theme.)
Just to be clear, Sheet of glass windows in Windows 7 had no side highlights either, that was just part of these sheet of glass windows. Some did, but I can't remember which applications or what caused it. But if you take a look at the gadget gallery, it renders the window as the sheet of glass with the corner highlights, but no side highlights. So this also affects things like Firefox-based browsers where it is drawn as a sheet of glass, even on Windows 7 it does not have the side highlights (unless the URL text box is being used, oddly enough? Only know this from developing my CSS theme.)
That's... exactly what I said in my original post, LOL.
That's... exactly what I said in my original post, LOL.
Oops, my bad and apologies. I must have misunderstood what you meant. I was confused, because sheet of glass windows still don't have the side highlights on either Windows 7 or Windows 10, so I wasn't sure if you were getting at that Windows 10 should have side highlights on sheet of glass windows.
I was listing Windows 7's behavior, not showing side highlights on sheet-of-glass windows, so it can be accurately replicated in an OpenGlass implementation.
any way we can like.. bump this request to the top, lol
someday
always bet on nothing
needs more likes
I know it’s not easy to say this, but OpenGlass is almost reaching the end of its lifecycle, as I no longer have the extra energy to continue maintaining it. I understand that many people were hoping I could add more features, including this one, but one person’s strength is limited, that’s exactly why I made OpenGlass open source in the first place.
Since late 2023, I’ve been researching DWM and working on restoring aero visual elements, but I feel it’s time for me to take a rest.
I know it’s not easy to say this, but OpenGlass is almost reaching the end of its lifecycle, as I no longer have the extra energy to continue maintaining it. I understand that many people were hoping I could add more features, including this one, but one person’s strength is limited, that’s exactly why I made OpenGlass open source in the first place.
Since late 2023, I’ve been researching DWM and working on restoring aero visual elements, but I feel it’s time for me to take a rest.
Thank you for all you’ve done so far! We all really appreciate your hard work in restoring Aero to modern Windows, and a quite advanced version at that.
I think perhaps more research needs to be done from an .msstyles standpoint. Perhaps this is something we can figure out how to do with theming rather than relying on OpenGlass to reimplement the function back into DWM. Although I’m certain that DWM did govern how glows were drawn, I think that the theme still has a large part to do with this. It’s just going to be a matter of figuring it out.
I know it’s not easy to say this, but OpenGlass is almost reaching the end of its lifecycle, as I no longer have the extra energy to continue maintaining it. I understand that many people were hoping I could add more features, including this one, but one person’s strength is limited, that’s exactly why I made OpenGlass open source in the first place.
Since late 2023, I’ve been researching DWM and working on restoring aero visual elements, but I feel it’s time for me to take a rest.
I'd love to work on it myself but the main blocker is the lack of documentation surrounding DWM internals. Even something like a Ghidra database (or IDB) would be immensely helpful.
I'd love to work on it myself but the main blocker is the lack of documentation surrounding DWM internals. Even something like a Ghidra database (or IDB) would be immensely helpful.
I’m almost positive the implementation shouldn’t be too difficult, in theory at least. Since these glow regions apply to windows, and not elements like the taskbar, start menu or other elements like the Windows Sidebar (which is glassy when it is marked to stay on top of other windows) I’m sure it could be targeted by using fTransitionOnMaximized, but I don’t know if this would also apply to things such as the system volume window, or the clock window, if the “legacy experience” is enabled via registry, since you can’t maximize those windows.
It wonder if it would also apply to things like Firefox, which you could make context menus use Windows Aero styling instead of the system default context menu. These also had the glow from edges, but of course, not the border highlights.
Other than that, (and not to sound like an armchair developer,) you’d just have to pin it to the corner of window frames. They do seem to truncate if they overlap, cutting the glow off in the middle, and I don’t know how that functionality would be implemented or how it presently does in Windows Vista/7.
The border highlights to the left and right of the window frame seems like another beast. I lean more that this is an .msstyles thing, and not so much DWM. However it’s very likely that DWM still has a role in how they are rendered on certain windows, as is likely evident with some of the pictures OP provided.
That’s just my two cents.