kando-menu / kando

🥧 The Cross-Platform Pie Menu.
https://ko-fi.com/post/Kando-1-0-0-released-G2G5Z1DOS
Other
1.19k stars 26 forks source link

Kando makes a small 237px X 39px portion of the screen in lower left, above the start menu, unclickable after activation #375

Closed denis-roy closed 3 months ago

denis-roy commented 3 months ago

The red overlay below is drawn in GIMP to help you visualize it, in reality there is nothing visible.

20240401T002706

I also attach the info that Binary Fortress Window Inspector gives when I hover my mouse above the zone, in case it is useful

WindowInspector.zip


CONTEXT

HOW TO REPLICATE

EXPECTED BEHAVIOR

Thanks! :)

Schneegans commented 3 months ago

Hi again! This is pretty weird. How the heck did you discover this in the first place? :laughing:

I can indeed reproduce this. However, I have no idea why this happens. I can only assume that Electron creates a small, mostly invisible window when the Kando window is hidden. On Windows, Kando's window is not closed but minimized. This is done to make the window re-appear faster and without any window animation.

If you replace this line with this.window.hide(); you can observe the difference. The weird area is gone, but closing and showing the menu is not as smooth as before.

I think we should experiment with the window properties to learn what makes Electron to create this area. Maybe it's because Kando's window is not shown in the taskbar? Maybe it's impossible to minimize windows on Windows if they are not shown in the taskbar and hence Electron creates this invisible window as a work around? If you want to play around a bit, you could try altering the various attributes here.

Overall, this is maybe a "feature" of Electron. In which way does this annoy you? Is there some application where this invisible area causes trouble?

denis-roy commented 3 months ago

I actually found out by not being able to click on the controls of a maximized VLC :)

20240401T102718

For a while I just worked around it but having a couple of minutes yesterday while I was waiting for something to finish I decided to troubleshoot it and part of the steps was to kill all active process until it started to work again and that's how I realized :)

I have just found this: https://github.com/electron/electron/issues/27327

I don't know if these suggestion would be possible: allowing "click-through" when minimized, or sending it at the back of the window stack when minimized and toggling always on top when invoked?

My curious mind would love to go down the rabbit hole of electron apps, typescript and kando but a few hard projects at work are behaving like black holes these last few months, they are sucking every minute of my work schedule time and it would seems a big chunk of my free time inadvertently went accross the event horizon and is being stretched into oblivion as well 😅 ehehe

Schneegans commented 3 months ago

I just tried the "fix" with setIgnoreMouseEvents and this seems to work pretty nicely. I'll just merge this to main and then you can test it.

I would love to receive more contributions and reports from you :smile:. However, take your time, "real-life" obligations have always a high priority :wink:. We just moved to a different city - hence I had very little time for my FOSS projects for a couple of months as well. But it's getting better now!

denis-roy commented 3 months ago

Couldn't resist... Compiled a new zip package from main... Tested both this fix and the #373 aaaaaaand.....

...It all works like a charm 🥳

Thanks! :)