ModernFlyouts icon indicating copy to clipboard operation
ModernFlyouts copied to clipboard

Broken "Brightness" Flyout in 0.10.0.0 version : showing incorrect data

Open user1888425 opened this issue 2 years ago • 27 comments

ModernFlyouts Version

0.10.0.0

Windows version

Windows 10 22H2

OS build

No response

Platform

x64

Area(s) with issue?

General

Steps to reproduce

in version 0.9.3 there is a problem with Keyboard Input Flyout appearing on Audio change according to comments in "issues" chapter, this is fixed in ver 0.10.0.0 I can confirm thats true, but instead in ver 0.10.0.0 there exists another bug

Steps to reproduce :

  • Enable "Brightness" flyout
  • change brightness using default laptop keys
  • now, compared to the ver 0.9.3 the Flyout shows maximum level of brightess as 66%, and showing the label of brightness "Generic PnP Monitor". In ver 0.9.3 the Brightness Flyout was clean, had no lables and the scale was from 1% to 100%, just like Audio Flyout.

please fix that

✔️ Expected Behavior

Brightness Flyout reflects changes in accurate way, similar to Audio changes, from 1% to 100% presented on the Flyout, just like in ver 0.9.3

❌ Actual Behavior

in ver 0.10.0.0 The Flyout is limited to 66% and not showing any changes above, also displaying the name of the Display (Generic PnP Monitor), compared to the stable 0.9.3 that was a clean flyout without any labels and having full scale from 1% to 100%

Other Software

No response

Additional Context

No response

user1888425 avatar Aug 20 '23 15:08 user1888425

So do both flyouts actually change the brightness? Can the v10 one at least change the brightness until 66% or does it not work?

manstheram avatar Aug 20 '23 15:08 manstheram

And also, can you check what the max is on the settings page. In the settings app, there's a section for Brightness, so please the max at which you can change it there.

manstheram avatar Aug 20 '23 15:08 manstheram

thanks for your reply

let me add more context into my report

in ver 0.10.00 I m able to enable the Brightness Flyout. when enabled, the Brighness section into the app looks like that : image

I can change brightness using default buttons, and also by moving the slider of the flyout.

But the main issue is that by using slider Im limited to 66%, and I still can go beyond 66% using Laptop Brightness Keys, but the Flyout just keep showing 66% as a maximum level. It also now has some counter badge at this flyout, as if it counts the number of attached displays. The problem is that I dont have any displays attached.

those things I mentions were different in 0.9.3 and worked much better and without additional visual bothering information. Ver 0.9.3 was much cleaner in visual aspect and better in technical aspect of Brighness Flyout

UPD :

66% in Flyout is not just graphical representation of 100%, like if 66 = 100 If I set my global Brightness at 100, and then move the slider of the Flyout from 66 to 60, the global Brightness reverts to 60

user1888425 avatar Aug 20 '23 15:08 user1888425

I'll try working on this when I can.

manstheram avatar Aug 20 '23 16:08 manstheram

thank you ! maybe just return to settings of Brightness from 0.9.3 ? just to not waste time

user1888425 avatar Aug 20 '23 18:08 user1888425

Maybe?

manstheram avatar Aug 20 '23 18:08 manstheram

I had a look at the commit that had added the new apis and stuff and it has a lot of changes.

1,047 additions and 489 deletions

manstheram avatar Aug 20 '23 18:08 manstheram

@user1888425 Can you send me a screenshot of the brightness flyout while it shows on screen as that will be a huge help?

manstheram avatar Aug 20 '23 18:08 manstheram

@manstheram I can make my screen 70, 80, 100 using Laptop Keys but the Flyout show only 66, but if I put it to 65 by using the Flyout slider, it quickly falls from 100 to 65

also please see the "badge" counter with 1 it bothers, because it makes a flyout not clean and beautiful anymore

image (1)

user1888425 avatar Aug 20 '23 18:08 user1888425

You said "Generic PnP Monitor" was showing on your screen but I cannot see it?

manstheram avatar Aug 20 '23 18:08 manstheram

Were you referring to just the settings window?

manstheram avatar Aug 20 '23 18:08 manstheram

here is Generic it is not the main issue, the real main issue is 66 instead of 100

by referring to "Generic..." I indicate to what is changed from 0.9.3, which includes also 66, and also includes showing the name of a display image (2)

user1888425 avatar Aug 20 '23 18:08 user1888425

Ah, ok.

manstheram avatar Aug 20 '23 18:08 manstheram

@user1888425 Could you tell me the output of this program that I just wrote: https://github.com/manstheram/GetBrightnessInfo/releases/tag/v1.0 I used the win32 api similar to how ModernFlyouts does it but in C++, so I want to verify that it isn't Windows that is causing the issue. ModernFlyouts asks Windows what the max brightness for each screen is so that may be causing the issue.

manstheram avatar Aug 21 '23 17:08 manstheram

@user1888425 Could you tell me the output of this program that I just wrote: https://github.com/manstheram/GetBrightnessInfo/releases/tag/v1.0 I used the win32 api similar to how ModernFlyouts does it but in C++, so I want to verify that it isn't Windows that is causing the issue. ModernFlyouts asks Windows what the max brightness for each screen is so that may be causing the issue.

I have the same issue and I have run the program you wrote. It said: ": The error code is 3223725449" image

lehuymanhtan avatar Aug 26 '23 16:08 lehuymanhtan

Also, in my case, the min brightness is 5 instead of 0. image

lehuymanhtan avatar Aug 26 '23 16:08 lehuymanhtan

@user1888425 Could you tell me the output of this program...

hello @manstheram exuse me for the late responce, I may confirm in my case I also get the error Code instead of any brightness information

: The error code is 3223725442

No difference if I run the app "with admin priveledges" or as usual

user1888425 avatar Sep 14 '23 21:09 user1888425

Well this means that Win32 api's don't work with all monitors/screens. I need to figure out a way to make sure it's compatible for other monitors as well.

manstheram avatar Sep 15 '23 06:09 manstheram

Well this means that Win32 api's don't work with all monitors/screens. I need to figure out a way to make sure it's compatible for other monitors as well.

greetings, @manstheram, thanks for your reply ! let me only remind that "brightness slider" worked just perfect in 0.9.3 version, and probably it was still using that Win32 api ? if yes, maybe Win32 api is not what now makes "brightness" section work incorrectly in ver 0.10 ?

the reason I switched to beta 0.10 version was the issue with language flyout bug in ver 0.9.3, which is fixed in ver 0.10, there was nothing wrong with brightness control

user1888425 avatar Sep 15 '23 20:09 user1888425

@user1888425 The old way was quite different and used .NET capabilities. The new way is using Microsoft's api's from inside dll's. However, the old way doesn't work for me but the new way does. For you guys, it's the other way around.

manstheram avatar Sep 16 '23 16:09 manstheram

I might just make a switch in the settings that allows you to swap to some "compatibility mode" or something along those lines.

manstheram avatar Sep 16 '23 16:09 manstheram

Also, I believe the new api's aren't working since you're using a laptop. I use a PC so perhaps that is the difference that is causing the issues. How about you, @lehuymanhtan? Are you using a laptop too?

manstheram avatar Sep 16 '23 16:09 manstheram

Also, I believe the new api's aren't working since you're using a laptop. I use a PC so perhaps that is the difference that is causing the issues. How about you, @lehuymanhtan? Are you using a laptop too?

that right, i'm using laptop.

lehuymanhtan avatar Sep 16 '23 17:09 lehuymanhtan

@user1888425 Can you send me a screenshot of the brightness flyout while it shows on screen as that will be a huge help?

@user1888425 The old way was quite different and used .NET capabilities. The new way is using Microsoft's api's from inside dll's. However, the old way doesn't work for me but the new way does. For you guys, it's the other way around.

hi there, thanks for clarifying how the old and new approach are different in its nature. I believe your suggestion about some kind of "compatibility mode" switcher might be a very elegant and clean solution

user1888425 avatar Sep 17 '23 06:09 user1888425

@user1888425 I think I am partially wrong on what is going on. I think that both approachs are being used at the moment. And it already switches between the two.

You shouldn't even be able to access the 2nd approach at all since it's an internal screen inside your laptop. Using a dll won't work.

I think what's going on is that the laptop way of detecting min/max is not working. The reason why v9.3.0 works is being it doesn't bother detecting min and max. It just tells Windows to set it.

The issue is with WMI not reporting the correct number of brightness levels. Effectively, for your laptop, it should be an array with entries starting from 0, 1, 2, 3, and so on in bytes till 100 (101 levels). But this isn't the case. For you it's probably going from 0 to 66 (67 levels in total).

What I'll make my compatibility mode do is just force it to be 101 levels. This could cause bugs and errors for certain people which is why the mode will be off by default.

(The reason why the set command works is since it just asks for a percent which is why I think it should work even if I mess with the brightness levels. I get this is confusing but it's what I understand so far from reading the code.)

manstheram avatar Sep 18 '23 16:09 manstheram

However, I cannot verify that the code works myself since I've got an external monitor. 😅

manstheram avatar Sep 18 '23 16:09 manstheram

I have added this to my pull-request but hopefully it works. @Samuel12321

manstheram avatar Sep 18 '23 16:09 manstheram