Git Product home page Git Product logo

Comments (2)

freedom7341 avatar freedom7341 commented on June 16, 2024

It'll be interesting to come up with a solution for this. I really like the proposal you came up with and searching for UIRibbon using enumprocessmodules seems to be the best way to do it, especially considering I don't intend to support anything older than Server 2003/XP x64. Eventually I want NTStyle to be on the level of Windowblinds, where it can run alongside DWM and still draw over the glass frames, so any solution to fix this should ideally be temporary. If it takes me too long to find my holy drawing procedure, then I'll implement a hack for this. It's worth testing to see if this happens with a Windhawk mod called... DWMUnextendFrames? If I end up wrangling DWM further then that's the method I will follow.

from ntstyle.

kawapure avatar kawapure commented on June 16, 2024

The exact same behaviour can be seen in classic theme or basic theme with 9200+ UIRibbon and no DWM.

All that Windhawk mod does is hook public DWM APIs (like DwmIsCompositionEnabled, DwmExtendFrameIntoClientArea) and forces them to not call out to the real module. This basically forces applications to act as they would without DWM enabled. You can technically see the same thing if you force DWM to be killed on Windows 8 or 10 and open mspaint.

The latest UIRibbon binary I know of that handles DWM-less situations correctly is from the Windows 8 beta build 8032, which looks exactly like the Windows 7 version, but works in Explorer.

Of course, drawing over glass frames would work too, but be careful to not overdo it. DWM draws the entire window client area over its server-side decorations, which allows applications to draw any content over them (even custom titlebars). Many popular programs today use this approach (Discord, Visual Studio Code, Google Chrome, Mozilla Firefox, etc.), which could cause flickering or draw over application titlebars (sometimes this isn't desirable, particularly when they have custom buttons in the titlebar, think Office 2007).

Speaking of Office, I guess Office 2010 should be checked. Even though the UIRibbon code in Windows is directly taken from Office 2007, Office 2007 does use Office-specific naming for its module and window classes. This is probably also the case with Office 2010, but I don't have it installed to check.

from ntstyle.

Related Issues (7)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.