Classic Shell development was stopped in December 2017. For now the forum remains online as reference, but is read-only. Registration of new users is disabled.
It is currently Mon Sep 15, 2025 10:43 am

All times are UTC - 8 hours [ DST ]


Forum rules


Please, keep discussions on topic and in the right forum. The start menu topics go into the Classic Start Menu forum, etc. This makes it easier for people to locate topics they are looking for.
If you get a satisfactory response to your question, please mark the topic as "solved". Click the green √ button in the bottom-right of the post.



Post new topic Reply to topic  [ 14 posts ] 
Author Message
PostPosted: Mon Dec 16, 2013 11:20 am 
Offline

Joined: Mon Apr 08, 2013 3:13 pm
Posts: 128
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


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 17, 2013 9:29 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5333
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.


Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 23, 2013 4:31 am 
Offline

Joined: Mon Apr 08, 2013 3:13 pm
Posts: 128
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


Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 23, 2013 9:34 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5333
I'm sure both of us have much more important things to worry about than compatibility with another software.


Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 23, 2013 10:24 am 
Offline

Joined: Mon Apr 08, 2013 3:13 pm
Posts: 128
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


Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 23, 2013 10:49 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5333
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.


Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 23, 2013 10:59 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5333
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.


Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 23, 2013 11:22 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5333
BTW, does this issue exist on Windows 8.1 only, or on Windows 8 as well?


Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 23, 2013 8:58 pm 
Offline

Joined: Mon Apr 08, 2013 3:13 pm
Posts: 128
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


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 24, 2013 3:17 am 
Offline

Joined: Tue Dec 24, 2013 3:08 am
Posts: 2
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.


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 24, 2013 9:54 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5333
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.


Top
 Profile  
Reply with quote  
PostPosted: Wed Dec 25, 2013 2:53 am 
Offline

Joined: Tue Dec 24, 2013 3:08 am
Posts: 2
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).


Top
 Profile  
Reply with quote  
PostPosted: Sun Dec 29, 2013 5:27 pm 
Offline

Joined: Mon Apr 08, 2013 3:13 pm
Posts: 128
Thanks very much for coordinating Taskbar coloring in your two fine tools, guys.

-Noel


Top
 Profile  
Reply with quote  
PostPosted: Mon Jan 27, 2014 9:39 am 
Offline

Joined: Mon Apr 08, 2013 3:13 pm
Posts: 128
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


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 245 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group, Almsamim WYSIWYG Classic Shell © 2010-2016, Ivo Beltchev.
All right reserved.