ocornut
a88e5be7f4
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui_widgets.cpp
2023-06-28 14:56:33 +02:00
ocornut
6137443d24
Overlap: moved ImGuiItemflags_AllowOverlap handling from ButtoBehavior() to ItemHoverable() now that it is possible. ( #6512 , #3909 , #517 )
...
This allows DragXXX, SliderXXX, PlotXXX etc to honor SetNextItemAllowOverlap().
2023-06-28 14:42:14 +02:00
ocornut
4dee919bc0
(Breaking) Internals: added ImGuiItemFlags param to ItemHoverable(), so it can be called from ButtonBehavior() not following an ItemAdd().
...
This also allow moving AllowOverlap logic from ButtonBehavior() to ItemHoverable(), allowing other widgets to honor it. (#6512 , #3909 , #517 )
2023-06-28 14:42:14 +02:00
ocornut
10c7709f30
Overlap: IsItemHovered: Changed behavior to return false when querying an item using AllowOverlap mode. Added ImGuiHoveredFlags_AllowWhenOverlappedByItem, ImGuiHoveredFlags_AllowWhenOverlappedByWindow., ( #6512 , #3909 , #517 )
2023-06-28 14:40:47 +02:00
ocornut
8439a73645
Overlap: Added 'SetNextItemAllowOverlap()' as a replacement for 'SetItemAllowOverlap()'. ( #6512 , #3909 , #517 )
...
# Conflicts:
# imgui.cpp
# imgui_widgets.cpp
2023-06-28 14:40:47 +02:00
ocornut
a9a5cbf431
Overlap: Internals: add NextItemData.ItemFlags to facilitate implementation of SetNextItemAllowOverlap() + potentially remove extra_flags from ItemAdd(). ( #6512 , #3909 )
2023-06-28 14:40:47 +02:00
ocornut
07e24b4058
ButtonBehavior: pull ImGuiButtonFlags_Repeat from ImGuiItemFlags_ButtonRepeat, matching ItemHoverable() logic. So more widgets can take advantage of Repeat logic.
2023-06-28 14:40:47 +02:00
ocornut
51f564eea6
(Breaking) Overlap: Renamed 'ImGuiTreeNodeFlags_AllowItemOverlap' to 'ImGuiTreeNodeFlags_AllowOverlap', 'ImGuiSelectableFlags_AllowItemOverlap' to 'ImGuiSelectableFlags_AllowOverlap'. Kept redirecting enums (will obsolete). ( #6512 , #3909 , #517 )
...
+ Internals: Renamed 'ImGuiButtonFlags_AllowItemOverlap' to 'ImGuiButtonFlags_AllowOverlap' without redirection.
2023-06-28 14:37:05 +02:00
ocornut
06f5b46133
Overlap: Fixed first frame of an overlap highlighting underlying item if previous frame didn't hover anything. ( #6512 , #3909 , #517 )
2023-06-27 15:46:35 +02:00
ocornut
b03a4993b3
Internals: reorder tests in ItemHoverable() so most likely early out are taken first.
2023-06-27 15:44:35 +02:00
ocornut
836aff3467
Drag and Drop: Amend ItemHoverable() logic for item with no identifier.
...
Amend d5d4d70
2023-06-27 15:23:19 +02:00
ocornut
d5d4d709c7
Drag and Drop: moved "drag souce doesn't report as hovered" from ButtonBehavior() to ItemHoverable().
...
Ensure DragXXX, SliderXXXX, InputText, PlotXXX follow same logic. Amend 251f178a6
, a33f0d1f7
2023-06-27 14:44:39 +02:00
ocornut
a2f6581171
Selectable: Fixed bad manual cherry-pick/merge (fixes 3ec128c
)
2023-06-27 10:57:08 +02:00
ocornut
3ec128c5fd
Selectable, TreeNode: When using ImGuiSelectableFlags_AllowOverlap/ImGuiTreeNodeFlags_AllowOverlap and holding item held, overlapping widgets won't appear as hovered. ( #6512 , #3909 )
...
Essentially we are going to remove calls to SetItemAllowOverlap() and standardize the fact that only 'HoveredId == id' test from it is performed.
# Conflicts:
# imgui_widgets.cpp
2023-06-26 19:08:10 +02:00
ocornut
cada78917c
Tables: removed misleading, seemingy useless use of ImGuiButtonFlags_AllowtemOverlap in TableUpdateBorders(). ( #6512 , #3909 )
...
This was copied from SplitterBehavior(). The only hypothetical value in SplitterBehavior() would be ability to manually call SetItemAllowOverlap() after the call.
Btw generally AllowOverlap is undesirable for columns as e.g. a spanning selectable would cover entire width and prevent columns from being used.
# Conflicts:
# imgui_tables.cpp
2023-06-26 19:05:47 +02:00
ocornut
0a53b45858
CollapsingHeader/TreeNode: Fixed text padding when using _Framed+_Leaf flags. ( #6549 )
2023-06-26 11:15:55 +02:00
ocornut
6b01114057
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_opengl3.cpp
2023-06-23 16:04:13 +02:00
ocornut
057fcae30c
Docking+Viewports: Fixed extraneous viewport+platform-window recreation. Part 4.
...
Part 4: store reference viewport id from last visible single window stored in node. So Win1 -> Win1|Win2 can reuse viewport on split.
Refer to "viewport_owner_change_1" and "viewport_owner_change_2" in ImGuiTestSuite.
2023-06-23 16:03:01 +02:00
ocornut
35b41949fb
Docking+Viewports: Fixed extraneous viewport+platform-window recreation. Part 3.
...
Part 3: DockNodeRemoveWindow() clears viewports so it doesn't get bounced back and forth.
Note that in case of called from e.g. dock builder this can happen mid-frame. Clearing Viewport here isn't well exercised yet. If window doesn't get a Begin() in same-frame it'll be hidden.
Refer to "viewport_owner_change_1" and "viewport_owner_change_2" in ImGuiTestSuite.
Amend 6b77668171
2023-06-23 15:55:14 +02:00
ocornut
099e8533e2
Docking+Viewports: Fixed extraneous viewport+platform-window recreation. Part 2.
...
Part 2: Fixed various transfer cases.
Refer to "viewport_owner_change_1" and "viewport_owner_change_2" in ImGuiTestSuite.
2023-06-23 15:51:43 +02:00
ocornut
66c09fc05b
Docking+Viewports: Fixed extraneous viewport+platform-window recreation. Part 1.
...
Part 1: Add counters. Amend logs.
Refer to "viewport_owner_change_1" and "viewport_owner_change_2" in ImGuiTestSuite.
2023-06-23 15:49:45 +02:00
ocornut
7d81a166f9
Docking: Fixed one-frame flickering on reappearing windows binding to a dock node where a later-submitted window was already bound.
2023-06-23 15:49:45 +02:00
ocornut
6b2e03c5b1
GetKeyName(): Fixed assert with ImGuiMod_XXX values when IMGUI_DISABLE_OBSOLETE_KEYIO is set.
2023-06-22 22:03:02 +02:00
ocornut
e4aeef4b9f
Viewports: Closing a viewport via OS/platform means (e.g. OS close button or task-bar menu), mark all windows in this viewport as closed.
2023-06-21 15:34:51 +02:00
ocornut
94c46d7486
InputText: Fixed not returning true when buffer is cleared by ImGuiInputTextFlags_EscapeClearsAll. ( #5688 , #2620 )
2023-06-21 14:20:13 +02:00
ocornut
cb5542bce5
Backends: OpenGL3: Fixed erroneous use glGetIntegerv(GL_CONTEXT_PROFILE_MASK) on contexts lower than 3.2. ( #6539 , #6333 )
2023-06-20 15:30:52 +02:00
Krzysztof Adamek
959a9c79bd
TreeNode: Added support for ImGuiTreeNodeFlags_UpsideDownArrow in frameless tree nodes ( #6517 , #6538 )
2023-06-20 15:30:40 +02:00
ocornut
e0583975cd
Demo: Fix typo (amusingly had no side effect).
2023-06-20 15:18:37 +02:00
ocornut
1450d23b60
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# docs/CHANGELOG.txt
# imgui.cpp
2023-06-20 15:12:09 +02:00
ocornut
9214c28aad
IsWindowHovered, IsItemHovered: Assert when passed any unsupported flags.
2023-06-20 15:04:15 +02:00
ocornut
e7a4327eb8
IsWindowHovered: Added support for ImGuiHoveredFlags_Stationary.
2023-06-20 15:04:14 +02:00
ocornut
b60acfa87d
Tooltips: Added SetItemTooltip(), BeginItemTooltip(). Improved Demo section.
2023-06-20 15:04:14 +02:00
ocornut
0f72652c2d
IsItemHovered, Tooltips: Added io.HoveredFlagsForTooltipMouse, io.HoveredFlagsForTooltipNav now pulled by ImGuiHoveredFlags_Tooltip. ( #1485 )
2023-06-20 15:04:14 +02:00
ocornut
b3b8cbd001
IsItemHovered, Tooltips: Added ImGuiHoveredFlags_ForTooltip, ImGuiHoveredFlags_Stationary. ( #1485 )
...
Update demo accordingly.
2023-06-20 15:04:14 +02:00
ocornut
d4b94bd65b
(Breaking) Moved io.HoverDelayShort/io.HoverDelayNormal to style.HoverDelayShort/style.HoverDelayNormal. ( #1485 )
2023-06-20 15:04:13 +02:00
ocornut
f09ef23ae6
IsItemHovered, Tooltips: Tweak default delay again. ( #1485 )
...
Amend eec344c
2023-06-20 14:43:38 +02:00
ocornut
d96bbf0aae
TreeNode: Added undocumented ImGuiTreeNodeFlags_UpsideDownArrow flag. ( #6517 )
...
+ Minor tweak comment/layout in ImGuiIO
2023-06-19 14:33:23 +02:00
ocornut
194916135a
Internals: renamed HoverDelay fields.
2023-06-16 16:56:33 +02:00
ocornut
15d74bad1d
Internals: Tooltips: renamed internal flags (expecting to expose later when we publish priority stuff).
2023-06-16 16:55:51 +02:00
ocornut
b9db5c566b
Backends: Win32: Added support for updating ParentViewportID after viewport creation.
...
This tends to be desirable for applicaton manipulating this value via ImGuiWindowClass::ParentViewportID.
I thought it would be a simple call to SetParent(), it's only slightly more complicated but added comments about it.
2023-06-15 11:26:27 +02:00
ocornut
89d3dabf2e
Modals: In the case of nested modal, made sure that focused or appearing windows are moved below the lowest blocking modal (rather than the highest one). ( #4317 )
...
Fix FindBlockingkModal() which didn't do what the comments say for the first 2 lines.
This is also fixing a crash in FindBlockingModal() which can only happen with dock node, see "window_popup_nested_interruptions_2" and viewport_platform_focus_4" tests.
The dock-node related crash comes from the fact that automatic dock node and implicit debug window don't share a common ancestor, so ParentWindowInBeginStack ends up NULL before the loop had a chance to find a match.
2023-06-14 21:58:28 +02:00
ocornut
eec344cc1e
Tweak HoverDelayClearTimer. Not exposing since I am unsure logic is viable (and is rather complex with upcoming addition of stationary logic). ( #1485 )
...
+ Tweaked default value of io.HoverDelayNormal from 0.30 to 0.35.
2023-06-14 18:29:49 +02:00
ocornut
6cabad6e7a
Encode version string in binary to facilitate identification when demo/tools are striped + amend About window.
2023-06-14 16:18:40 +02:00
ocornut
534340cd88
Tooltips: Tweak default offset for non-drag and drop tooltips.
2023-06-13 15:27:46 +02:00
ocornut
e95d66faa8
Clipper: Rework inner logic to allow functioning with a zero-clear constructor. ( #5856 )
2023-06-13 14:55:02 +02:00
ocornut
ef07ddf087
Debug Tools: Added 'io.ConfigDebugIniSettings' option to save .ini data with extra comments.
...
Moved from compile-time to runtime flag. Applied docking specific change to this cherry-picked commit.
# Conflicts:
# docs/CHANGELOG.txt
2023-06-13 11:55:21 +02:00
ocornut
9c16976749
Debug Tools: Added 'io.ConfigDebugIniSettings' option to save .ini data with extra comments.
...
Moved from compile-time to runtime flag. Note: commit in master is not particularly useful. Docking version will add stuff.
2023-06-13 11:54:29 +02:00
ocornut
fa5d2656b0
Docking: DockBuilderDockWindow() API calls don't clear docking order if the target node is same as existing one
...
+ Add more debug log + Display DockOrder in metrics.
2023-06-13 11:37:35 +02:00
ocornut
3cc9d2051a
Examples: Win32+OpenGL3: Fixed not calling DefWindowProcW() as with other Win32 examples. ( #6516 , #5725 , #5961 , #5975 )
...
Amend fe0a24f
2023-06-13 11:24:09 +02:00
ocornut
3f63cee4c1
Docking: Fixed dragging from title-bar empty space ( #5181 , #2645 )
...
This would need a test in ImGuiTestSuite.
2023-06-12 15:33:20 +02:00