This commit is contained in:
parent
d00a87565b
commit
e4f7c5c722
@ -47,6 +47,12 @@ Breaking Changes:
|
|||||||
of directly poking to io.ConfigColorEditFlags. More consistent and easier to discover.
|
of directly poking to io.ConfigColorEditFlags. More consistent and easier to discover.
|
||||||
- Drag and Drop: commented out legacy name `ImGuiDragDropFlags_SourceAutoExpirePayload`
|
- Drag and Drop: commented out legacy name `ImGuiDragDropFlags_SourceAutoExpirePayload`
|
||||||
which obsoleted in 1.90.9 (July 2024). Use `ImGuiDragDropFlags_PayloadAutoExpire`.
|
which obsoleted in 1.90.9 (July 2024). Use `ImGuiDragDropFlags_PayloadAutoExpire`.
|
||||||
|
- DragXXX, SliderXXX, InputScalar: with `ImGuiItemFlags_LiveEditOnInputScalar` now
|
||||||
|
defaulting to being disabled: inputting a value with the keyboard doesn't write
|
||||||
|
intermediate values to the backing variable. (#9476)
|
||||||
|
Before: DragFloat() with user typing "123" --> write back 1, then 12, then 123.
|
||||||
|
After: DragFloat() with user typing "123" --> write back 123 when validated/unfocused.
|
||||||
|
You can enable the flag back for a given scope if needed by specific widget/behavior.
|
||||||
|
|
||||||
|
|
||||||
Other Changes:
|
Other Changes:
|
||||||
@ -63,9 +69,13 @@ Other Changes:
|
|||||||
- Added `ImGuiItemFlags_LiveEditOnInputText` and `ImGuiItemFlags_LiveEditOnInputScalar`
|
- Added `ImGuiItemFlags_LiveEditOnInputText` and `ImGuiItemFlags_LiveEditOnInputScalar`
|
||||||
flags to configure the timing of applying edits of backing variables when typing
|
flags to configure the timing of applying edits of backing variables when typing
|
||||||
values using a keyboard.
|
values using a keyboard.
|
||||||
(#701, #9476, #3936, #3946, #5904, #6284, #8149, #8065, #8665, #9117, #9299, #700, #1351,
|
(#9476, #701, #3936, #3946, #5904, #6284, #8149, #8065, #8665, #9117, #9299, #700, #1351,
|
||||||
#1875, #2060, #2215, #2380, #2550, #3083, #3338, #3556, #4373, #4714, #4885, #5184,
|
#1875, #2060, #2215, #2380, #2550, #3083, #3338, #3556, #4373, #4714, #4885, #5184,
|
||||||
#5777, #6707, #6766, #8004, #8303, #8915, #9308)
|
#5777, #6707, #6766, #8004, #8303, #8915, #9308)
|
||||||
|
- ImGuiItemFlags_LiveEditOnInputText is enabled by default (same as before):
|
||||||
|
- The expectation is that for strings/text, enabling LiveEdit is a better default.
|
||||||
|
- ImGuiItemFlags_LiveEditOnInputScalar is disabled by default (new behavior):
|
||||||
|
- The expectation is that for numeric/scalars values, disabling LiveEdit is a better default.
|
||||||
- Until now:
|
- Until now:
|
||||||
- Edits where always applied immediately to backing variable, which is equivalent
|
- Edits where always applied immediately to backing variable, which is equivalent
|
||||||
to the `ImGuiItemFlags_LiveEditXXX` flags being enabled.
|
to the `ImGuiItemFlags_LiveEditXXX` flags being enabled.
|
||||||
@ -76,28 +86,25 @@ Other Changes:
|
|||||||
Workarounds often required a backing store for scalar values, and there were
|
Workarounds often required a backing store for scalar values, and there were
|
||||||
also a few niggles related to `IsItemDeactivatedAfterEdit()` when using +/-
|
also a few niggles related to `IsItemDeactivatedAfterEdit()` when using +/-
|
||||||
buttons of an `InputInt()` widgets.
|
buttons of an `InputInt()` widgets.
|
||||||
Many of those situations can now be naturally simplified by disabling
|
- Many of those situations can now be naturally simplified when disabling
|
||||||
`ImGuiItemFlags_LiveEditOnInputScalar`, which is expected to become the default.
|
`ImGuiItemFlags_LiveEditOnInputScalar` is disabled.
|
||||||
- The new flags allows disabling this behavior selectively for strings fields
|
- The new flags allows disabling this behavior selectively for strings fields
|
||||||
such as `InputText()` vs scalar fields: `SliderInt()`, `InputFloat()`, etc.
|
such as `InputText()` vs scalar fields: `SliderInt()`, `InputFloat()`, etc.
|
||||||
- When LiveEdit is disabled, edits are applied when pressing enter, tabbing out,
|
- When LiveEdit is disabled, edits are applied when pressing enter, tabbing out,
|
||||||
clearing a field or deactivating due to a focus loss.
|
clearing a field or deactivating due to a focus loss.
|
||||||
- The flag may be altered programmatically:
|
- The flag may be altered programmatically, e.g. for the entire frame scope:
|
||||||
PushItemFlag(ImGuiItemFlags_LiveEditOnInputScalar, false); // Disable for scalars
|
NewFrame();
|
||||||
|
PushItemFlag(ImGuiItemFlags_LiveEditOnInputScalar, true); // Enable for scalars for the whole frame
|
||||||
|
....
|
||||||
|
PopItemFlag();
|
||||||
|
EndFrame();
|
||||||
|
Or for a specific widget:
|
||||||
|
PushItemFlag(ImGuiItemFlags_LiveEditOnInput, true); // Enable for one widget
|
||||||
SliderInt(...);
|
SliderInt(...);
|
||||||
PopItemFlag();
|
PopItemFlag();
|
||||||
PushItemFlag(ImGuiItemFlags_LiveEditOnInput, true); // Enable for all
|
|
||||||
SliderInt(...);
|
|
||||||
PopItemFlag();
|
|
||||||
But with upcoming new defaults it is expected you shouldn't touch them much.
|
|
||||||
- Both flags currently defaults to true, which matches previous behavior.
|
|
||||||
- The expectation is that for strings/text, enabling LiveEdit is a better default.
|
|
||||||
- The expectation is that for scalars, disable LiveEdit is a better default.
|
|
||||||
- The short-term intent is to change `ImGuiItemFlags_LiveEditOnInputScalar` to
|
|
||||||
default to being disabled, as soon as we get more feedback from users (SOON).
|
|
||||||
- We intentionally are not adding `io.ConfigLiveEditXXX` fields to dictate the
|
- We intentionally are not adding `io.ConfigLiveEditXXX` fields to dictate the
|
||||||
default value of each `ImGuiItemFlags_LiveEditXXX`, because this is not
|
default value of each `ImGuiItemFlags_LiveEditXXX`, because this is not expected
|
||||||
expected to be a user preference but a programmer/widget preferences.
|
to be a user preference but a programmer/widget preferences.
|
||||||
Also, we strive to make the toolkit consistent.
|
Also, we strive to make the toolkit consistent.
|
||||||
- InputText:
|
- InputText:
|
||||||
- Added `style.InputTextCursorSize` to configure cursor/caret thickness. (#7031, #9409)
|
- Added `style.InputTextCursorSize` to configure cursor/caret thickness. (#7031, #9409)
|
||||||
|
|||||||
@ -395,6 +395,11 @@ IMPLEMENTING SUPPORT for ImGuiBackendFlags_RendererHasTextures:
|
|||||||
When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.
|
When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.
|
||||||
You can read releases logs https://github.com/ocornut/imgui/releases for more details.
|
You can read releases logs https://github.com/ocornut/imgui/releases for more details.
|
||||||
|
|
||||||
|
- 2026/07/20 (1.92.9) - DragXXX, SliderXXX, InputScalar: with `ImGuiItemFlags_LiveEditOnInputScalar` now defaulting to being disabled:
|
||||||
|
inputting a value with the keyboard doesn't write intermediate values to backing variable. (#9476)
|
||||||
|
- Before: DragFloat() with user typing "123" --> write back 1, then 12, then 123.
|
||||||
|
- After: DragFloat() with user typing "123" --> write back 123 when validated/unfocused.
|
||||||
|
You can enable the flag back for a given scope if needed by specific widget/behavior.
|
||||||
- 2026/07/08 (1.92.9) - Drag and Drop: commented out legacy name `ImGuiDragDropFlags_SourceAutoExpirePayload` which obsoleted in 1.90.9 (July 2024). Use `ImGuiDragDropFlags_PayloadAutoExpire`.
|
- 2026/07/08 (1.92.9) - Drag and Drop: commented out legacy name `ImGuiDragDropFlags_SourceAutoExpirePayload` which obsoleted in 1.90.9 (July 2024). Use `ImGuiDragDropFlags_PayloadAutoExpire`.
|
||||||
- 2026/07/06 (1.92.9) - ColorEdit: obsoleted SetColorEditOptions() function added in 1.51 (June 2017) in favor of directly poking to io.ConfigColorEditFlags. More consistent and easier to discover.
|
- 2026/07/06 (1.92.9) - ColorEdit: obsoleted SetColorEditOptions() function added in 1.51 (June 2017) in favor of directly poking to io.ConfigColorEditFlags. More consistent and easier to discover.
|
||||||
- 2026/06/02 (1.92.9) - TreeNode: commented out legacy name ImGuiTreeNodeFlags_SpanTextWidth which was obsoleted in 1.90.7 (May 2024). Use ImGuiTreeNodeFlags_SpanLabelWidth instead.
|
- 2026/06/02 (1.92.9) - TreeNode: commented out legacy name ImGuiTreeNodeFlags_SpanTextWidth which was obsoleted in 1.90.7 (May 2024). Use ImGuiTreeNodeFlags_SpanLabelWidth instead.
|
||||||
|
|||||||
14
imgui.h
14
imgui.h
@ -30,7 +30,7 @@
|
|||||||
// Library Version
|
// Library Version
|
||||||
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
||||||
#define IMGUI_VERSION "1.92.9 WIP"
|
#define IMGUI_VERSION "1.92.9 WIP"
|
||||||
#define IMGUI_VERSION_NUM 19286
|
#define IMGUI_VERSION_NUM 19287
|
||||||
#define IMGUI_HAS_TABLE // Added BeginTable() - from IMGUI_VERSION_NUM >= 18000
|
#define IMGUI_HAS_TABLE // Added BeginTable() - from IMGUI_VERSION_NUM >= 18000
|
||||||
#define IMGUI_HAS_TEXTURES // Added ImGuiBackendFlags_RendererHasTextures - from IMGUI_VERSION_NUM >= 19198
|
#define IMGUI_HAS_TEXTURES // Added ImGuiBackendFlags_RendererHasTextures - from IMGUI_VERSION_NUM >= 19198
|
||||||
|
|
||||||
@ -1248,18 +1248,16 @@ enum ImGuiItemFlags_
|
|||||||
ImGuiItemFlags_Disabled = 1 << 6, // false // [Internal] Disable interactions. DOES NOT affect visuals. This is used by BeginDisabled()/EndDisabled() and only provided here so you can read back via GetItemFlags().
|
ImGuiItemFlags_Disabled = 1 << 6, // false // [Internal] Disable interactions. DOES NOT affect visuals. This is used by BeginDisabled()/EndDisabled() and only provided here so you can read back via GetItemFlags().
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
// LiveEdit refers to applying edits to backing variables _while_ typing.
|
// LiveEdit refers to applying edits to backing variables _while_ typing a value using the keyboard.
|
||||||
// Widget: | Input: | w/ LiveEdit: | Output:
|
// Widget: | Input: | w/ LiveEdit: | Output:
|
||||||
// InputText() | "123" | on(default) | "1" then "12" then "123"
|
// InputText() | "123" | on(default) | "1" then "12" then "123"
|
||||||
// InputText() | "123" | off | "123" after validating or tabbing out or losing focus.
|
// InputText() | "123" | off | "123" after validating or tabbing out or losing focus.
|
||||||
// DragFloat(), SliderInt(), etc. | "123" | on(default)* | 1 then 12 then 123
|
// DragFloat(), SliderInt(), etc. | "123" | on* | 1 then 12 then 123
|
||||||
// DragFloat(), SliderInt(), etc. | "123" | off* | 123 after validation or tabbing out or losing focus.
|
// DragFloat(), SliderInt(), etc. | "123" | off(default)* | 123 after validation or tabbing out or losing focus.
|
||||||
//---------------------------------------------------------------------------------
|
// (*) Since 1.92.9 (July 2026), ImGuiItemFlags_LiveEditOnInputScalar is OFF by default. In prior version it was ON for everything.
|
||||||
// (*) The feature is currently being evaluated, and the aim is to change ImGuiItemFlags_LiveEditOnInputScalar to OFF by default.
|
|
||||||
// The legacy behavior until July 2026 was that LiveEdit was always ON for everything.
|
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
ImGuiItemFlags_LiveEditOnInputText = 1 << 7, // true // InputText: apply keyboard edits to backing value while typing. Otherwise, edits are applied when validating, tabbing out or losing focus.
|
ImGuiItemFlags_LiveEditOnInputText = 1 << 7, // true // InputText: apply keyboard edits to backing value while typing. Otherwise, edits are applied when validating, tabbing out or losing focus.
|
||||||
ImGuiItemFlags_LiveEditOnInputScalar = 1 << 8, // true* // DragXXX, SliderXXX, InputScalar: apply keyboard edits to backing value while typing. Otherwise, edits are applied when validating, tabbing out or losing focus.
|
ImGuiItemFlags_LiveEditOnInputScalar = 1 << 8, // false // DragXXX, SliderXXX, InputScalar: apply keyboard edits to backing value while typing. Otherwise, edits are applied when validating, tabbing out or losing focus.
|
||||||
ImGuiItemFlags_LiveEditOnInput = ImGuiItemFlags_LiveEditOnInputText | ImGuiItemFlags_LiveEditOnInputScalar,
|
ImGuiItemFlags_LiveEditOnInput = ImGuiItemFlags_LiveEditOnInputText | ImGuiItemFlags_LiveEditOnInputScalar,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1006,7 +1006,7 @@ enum ImGuiItemFlagsPrivate_
|
|||||||
ImGuiItemFlags_HasSelectionUserData = 1 << 21, // false // Set by SetNextItemSelectionUserData()
|
ImGuiItemFlags_HasSelectionUserData = 1 << 21, // false // Set by SetNextItemSelectionUserData()
|
||||||
ImGuiItemFlags_IsMultiSelect = 1 << 22, // false // Set by SetNextItemSelectionUserData()
|
ImGuiItemFlags_IsMultiSelect = 1 << 22, // false // Set by SetNextItemSelectionUserData()
|
||||||
|
|
||||||
ImGuiItemFlags_Default_ = ImGuiItemFlags_AutoClosePopups | ImGuiItemFlags_LiveEditOnInputText | ImGuiItemFlags_LiveEditOnInputScalar, // Please don't change, use PushItemFlag() instead.
|
ImGuiItemFlags_Default_ = ImGuiItemFlags_AutoClosePopups | ImGuiItemFlags_LiveEditOnInputText, // Please don't change, use PushItemFlag() instead.
|
||||||
|
|
||||||
// Obsolete
|
// Obsolete
|
||||||
//ImGuiItemFlags_SelectableDontClosePopup = !ImGuiItemFlags_AutoClosePopups, // Can't have a redirect as we inverted the behavior
|
//ImGuiItemFlags_SelectableDontClosePopup = !ImGuiItemFlags_AutoClosePopups, // Can't have a redirect as we inverted the behavior
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user