Is there is a way to block mouse hover events outside current focused Editor window rect in Unity Editor?

Issue

This Content is from Stack Overflow. Question asked by alicewithalex25

I am working on custom enum popup with search and facing next problem. When clicking button to show popup list of enums I can hover over that list and select items inside, but also I can as always move mouse outside popup rect and move around. And when I hover over other GUI element it reacts to that movement (hover highlight or so happens). I remembered that default Unity’s enum don’t have this feature and it blocks all events outside popup’s rect exclude outside mouse click to close this popup.

So… My question is: How can I implement this feature in my popup window? I look into Unity’s source code and don’t find anything related to this. Except one moment when they are using internal function “GUI.GrabMouseControl(id);”

I think that may be that magic thing to block mouse hovering. Also I think that GUIUtility.hotControll is second canditate to solve my issue. But I dont know how properly use it in my OnGUI() method. I am trying to it and get not correct result,
but I blocked hovering outside popup’s rect. But it always spam console with these logs:
Should not grab hot control with an active capture. So I dropped this idea with my implementation, cause of these logs…

I will be realy glad to see some advices or straight anwsers on this problem is someone can solve it 🙂
Thank you!



Solution

This question is not yet answered, be the first one who answer using the comment. Later the confirmed answer will be published as the solution.

This Question and Answer are collected from stackoverflow and tested by JTuto community, is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.

people found this article helpful. What about you?