-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add PopupCloseBehavior
#4636
Add PopupCloseBehavior
#4636
Conversation
`PopupCloseBehavior` determines when popup will be closed. - `CloseOnClick` popup will be closed if the click happens anywhere even in the popup's body - `CloseOnClickAway` popup will be closed if the click happens somewhere else but in the popup's body.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good idea!
crates/egui/src/containers/popup.rs
Outdated
/// Popup will be closed on click | ||
/// It is used in the [`ComboBox`] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/// Popup will be closed on click | |
/// It is used in the [`ComboBox`] | |
/// Popup will be closed on click anywhere, inside or outside the popup. | |
/// | |
/// It is used in [`ComboBox`]. |
crates/egui/src/containers/popup.rs
Outdated
|
||
/// Popup will be closed if the click happened somewhere else | ||
/// but in the popup's body | ||
CloseOnClickAway, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CloseOnClickAway, | |
CloseOnClickOutside, |
crates/egui/src/containers/popup.rs
Outdated
.inner; | ||
}); | ||
|
||
let is_close = match close_behavior { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let is_close = match close_behavior { | |
let should_close = match close_behavior { |
("is close" sounds like it is about proximity)
CI is red though |
@emilk I fixed the doc test so now everything should be fine |
This PR adds `PopupCloseBehavior` to improve state of the <emilk#4607> `PopupCloseBehavior` determines when popup will be closed. - `CloseOnClick` popup will be closed if the click happens anywhere even in the popup's body - `CloseOnClickAway` popup will be closed if the click happens somewhere else but in the popup's body. It also adds a test in the demo app which contains several popups examples. --- My ideas about <emilk#4607> is to make every tooltip and popup a menu. So it will provide more control over popups and tooltips (you will be able to close a popup by calling something similar to the `ui.close_menu` if you need to). You won't need to manually handle it's opening. And also will allow to have multiple popups opened. That means you can have a popup inside a popup. And it will also lead to the easier creation of the popups. (should we create a tracking issue to track changes because to me it seems like a huge amount of changes to be done?) --- - Improvements on <emilk#4607>
This PR adds
PopupCloseBehavior
to improve state of the #4607PopupCloseBehavior
determines when popup will be closed.CloseOnClick
popup will be closed if the click happens anywhere even in the popup's bodyCloseOnClickAway
popup will be closed if the click happens somewhere else but in the popup's body.It also adds a test in the demo app which contains several popups examples.
My ideas about #4607 is to make every tooltip and popup a menu. So it will provide more control over popups and tooltips (you will be able to close a popup by calling something similar to the
ui.close_menu
if you need to). You won't need to manually handle it's opening. And also will allow to have multiple popups opened. That means you can have a popup inside a popup. And it will also lead to the easier creation of the popups. (should we create a tracking issue to track changes because to me it seems like a huge amount of changes to be done?)