Classic Shell http://www.classicshell.net/forum/ |
|
Can ClassicShell Better Enable Aero Glass for Win 8.1? http://www.classicshell.net/forum/viewtopic.php?f=7&t=1889 |
Page 1 of 1 |
Author: | NoelC [ Mon Dec 16, 2013 11:20 am ] |
Post subject: | Can ClassicShell Better Enable Aero Glass for Win 8.1? |
Due to a change in scope of the Aero Glass for Windows 8.1 product, the author is no longer able to blur the Taskbar unless the ClassicShell Disable Taskbar Transparency option is set. At the moment this setting causes the Taskbar to have the blur effect but with somewhat less translucency than it ought to have, and the author of Aero Glass for Win 8.1 has mentioned: "As I know, ClassicShell has an option which can bring the taskbar blur back. I just tested and it works but I think they do not disable accent so taskbar will be double-colorized resulting in less transparency." -and- "The 'Disable Taskbar Transparancy' label is a bit inconsistent with DWM API description. If you want any window (not window frame!) to be blurred you must call DwmEnableBlurBehindWindow with fEnable = TRUE, there is no other way to achieve it. The main problem is that documentation does not mention that enabling blur in Win8 results in fully opaque window - which is the reason why most of the software has label 'disable transparency'." I'm wondering if perhaps a "Reduce Taskbar Glass Color" option could be added to ClassicShell... All I can say is this: The two products together make a dynamite usability improvement in Windows 8.1. I wouldn't be running it if ClassicShell and Aero Glass for Win 8.1 weren't available. Please see also: http://www.msfn.org/board/topic/163570- ... try1063132 -Noel |
Author: | Ivo [ Tue Dec 17, 2013 9:29 am ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
The only thing I'm doing is call DwmEnableBlurBehindWindow with DWM_BB_ENABLE set to true: Code: if (taskBar->bOpaque) { DWM_BLURBEHIND blur={DWM_BB_ENABLE,GetWinVersion()>=WIN_VER_WIN8}; DwmEnableBlurBehindWindow(hWnd,&blur); } I do not know what it means to "disable accent". If BM has some insight what else needs to be done, I'll be glad to hear it. |
Author: | NoelC [ Mon Dec 23, 2013 4:31 am ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
I'm guessing neither of you product developers is going to directly reach out to one another. That's a pity, though it's quite a minor thing, and I don't personally mind the partially transparent non-blurred look of the Taskbar myself. -Noel |
Author: | Ivo [ Mon Dec 23, 2013 9:34 am ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
I'm sure both of us have much more important things to worry about than compatibility with another software. |
Author: | NoelC [ Mon Dec 23, 2013 10:24 am ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
I can see how you might feel that way, but from a user's perspective, the two packages fit together VERY well, and I think both your goals are the same - make Windows 8 better to use. A code snippet has been posted into the thread identified that describes "setting accent" (or rather, how to block setting it). But never mind; I'm speaking for others to try to help make things even better. I'm perfectly happy with the way the combination of the two products works right now, without any changes. -Noel |
Author: | Ivo [ Mon Dec 23, 2013 10:49 am ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
Can you point me to the code snippet? It seems to be a rather long thread ![]() If all it takes is a few system calls (even undocumented), and they don't have an adverse effect when Aero Glass is not installed, I'm willing to give it a try. |
Author: | Ivo [ Mon Dec 23, 2013 10:59 am ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
Ah, I found it near the end. It is not very complete, but seems to suggest to hook some system API function and alter its behavior. Looks like BM is using some sort of hooking library that makes this a breeze. Classic Shell doesn't have any such functionality. I'll see what I can do. Also last time I tried to install Aero Glass it didn't work. Most likely I messed something up following the directions. I will wait for the official release with installer and all before I work on this. Ideally it would be great if the presence of Aero Glass can be detected, so I can do this hack only if necessary. |
Author: | Ivo [ Mon Dec 23, 2013 11:22 am ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
BTW, does this issue exist on Windows 8.1 only, or on Windows 8 as well? |
Author: | NoelC [ Mon Dec 23, 2013 8:58 pm ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
Sorry, I've not remembered to get back here before now. I don't believe the same issue exists with his released Windows 8 product, just the Windows 8.1 version nearing completion. You're probably right to await his final release. Unless something new pops up that should be very soon. BigMuscle's Aero Glass tool really makes your "Classic View" menus look nice; very similar to what I had in Windows 7. I don't know if there's an easy, direct way to detect Aero Glass for Win 8.1 running, but I do know the process aerohost.exe is present whenever it's running. -Noel |
Author: | Big Muscle [ Tue Dec 24, 2013 3:17 am ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
Hello, although this problem is not visible on Windows 8, it is still there. My opinion is that DWM as rendering engine should take care of rendering/desktop composition itself only and it should not alter any window attributes explicitly. That's why I changed the behaviour and it will blur only windows which enables the blur with the DwmEnableBlurBehindWindow API function. It will NOT alter any window on its own. And because Win8.x taskbar is accented (= transparent with active window color accent) but not blurred by default, user won't see the blur behind it unless some application enables it. The same thing pays also for e.g. Alt-Tab window, any custom Start menu etc. This behaviour will also change with next Win8.0 release. Btw, enabling blur is just one (documented) API function call and disabling accent is just one (undocumented) API function call. |
Author: | Ivo [ Tue Dec 24, 2013 9:54 am ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
Hey, Big Muscle. Thanks for posting here. I am already doing the DwmEnableBlurBehindWindow call. I saw on the MSFN thread that the in addition I should hook the SetWindowCompositionAttribute function in the explorer process and let it do nothing for taskbars. Since I am already sub-classing the taskbar windows (and I'm calling DwmEnableBlurBehindWindow on every WM_PAINT), do you think it will be enough to simply call SetWindowCompositionAttribute with {0x13, 0, 4} on WM_PAINT? I would like to avoid hooking system calls if possible. Unhooking can be hard. Also, can you share when you will get the final versions for Win 8 and 8.1? I would prefer to wait until your software is finalized before I do any work. |
Author: | Big Muscle [ Wed Dec 25, 2013 2:53 am ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
I think it should be enough to call it once but you must ensure that it will happen after Explorer itself sets the attribute (so e.g. WM_CREATE won't be the correct place). I don't remember SetWindowCompositionAttribute parameters exactly but I think that "4" means ENABLE_ACCENT, so I guess you will need something like "0" or other value to disable it (some values will skin the window with Start screen background, so you must experiment to find the correct value). I do hooking just for reason - to ensure there is no visible state change between Explorer enables accent and I disable accent, and I didn't check whether accent is enabled only on startup or it can happen at another time too. Hooking solves all possible cases. Unhooking is not hard - it is pure Import Address Table hook, so hooking and unhooking are exactly same operations with only different function address (you store the pointer during hooking and restore it on unhooking). |
Author: | NoelC [ Sun Dec 29, 2013 5:27 pm ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? |
Thanks very much for coordinating Taskbar coloring in your two fine tools, guys. -Noel |
Author: | NoelC [ Mon Jan 27, 2014 9:39 am ] |
Post subject: | Re: Can ClassicShell Better Enable Aero Glass for Win 8.1? ![]() |
4.0.4 works like a charm. Now the taskbar has the same coloring and density as an active Window title bar. Thank you! -Noel |
Page 1 of 1 | All times are UTC - 8 hours [ DST ] |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |