1
0
mirror of https://github.com/ocornut/imgui.git synced 2024-12-18 18:46:13 +01:00
Commit Graph

5891 Commits

Author SHA1 Message Date
ocornut
d39ca33b63 Fixed false positive with PVS-Studio.
Amend ae8218a.
2024-05-17 17:13:55 +02:00
ocornut
ae8218a3ea Inputs, Shortcut: fixes some edge cases for GetKeyChordName(), clarify that it is aimed at display. (#456)
Rename IsNamedKeyOrModKey() to IsNamedKeyOrMod() for consistency.
Fixed GetKeyName(ImGuiKey_None) from returning "N/A" or "None" depending on IMGUI_DISABLE_OBSOLETE_KEYIO.
See "inputs_keychord_name" in imgui_test_suite.
2024-05-17 17:07:50 +02:00
ocornut
25e279ee73 Inputs: Treat ctrl-left-click as right click when ConfigMacOSXBehaviors is set. (#2343) 2024-05-17 15:26:34 +02:00
ocornut
b4f564c1ed Internals: Shortcuts: *Breaking* : rename ImGuiInputFlags_RouteGlobalLow -> ImGuiInputFlags_RouteGlobal, ImGuiInputFlags_RouteGlobal -> ImGuiInputFlags_RouteGlobalOverFocused, ImGuiInputFlags_RouteGlobalHigh -> ImGuiInputFlags_RouteGlobalHighest (#456) 2024-05-17 14:18:22 +02:00
ocornut
b39fc84f89 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
2024-05-16 19:57:04 +02:00
ocornut
5107e58b0f Inputs: amend changelog and clarify how the swap might be a breaking change for a minority of users. (#2343) 2024-05-16 19:56:29 +02:00
ocornut
8bd5d1d42f Inputs: Fixed swapping of keys associated to mods. Fixed warnings. (#2343, #4084, #5923, #456)
Amend 7747106.
2024-05-16 19:23:05 +02:00
ocornut
7747106647 Inputs: swap Ctrl and Cmd on macOS X, remove ImGuiMod_Shortcut. (#2343, #4084, #5923, #456) 2024-05-16 19:16:55 +02:00
Hubert Maier
07dbcf1f70 Fixed typos. (#7593) 2024-05-16 16:13:01 +02:00
ocornut
5d973a87d4 Backends: SDL_Renderer2/SDL_Renderer3: and ImGui_ImplSDLRenderer2_RenderDrawData() and ImGui_ImplSDLRenderer3_RenderDrawData() now takes a SDL_Renderer* parameter. 2024-05-15 13:44:54 +02:00
Erin M
af2fbf043d
Backends/Internals: Don't use IME and clipboard default win32 functions when WINAPI_FAMILY_GAMES (#7585) 2024-05-15 11:42:56 +02:00
ocornut
eabe98f6d5 Merge branch 'master' into docking (incl merge moved CurrentDpiScale field)
# Conflicts:
#	backends/imgui_impl_osx.mm
#	backends/imgui_impl_win32.cpp
#	imgui.cpp
2024-05-14 16:29:06 +02:00
ocornut
e4576914cb Internals: amend f806c76 to better match docking + fixed unused static forward declaration warning. 2024-05-14 16:22:27 +02:00
ocornut
d0524df887 Internals: slight refactor FindHoveredWindow() -> FindHoveredWindowEx() toward reducing far-away code duplication. 2024-05-14 16:03:00 +02:00
ocornut
f806c76e97 Tables, Dpi: added dummy g.DpiScale storage (to be altered in docking), using to scale tables border hit thickness.
+ Added note about how equivalent resize padding for windows (sourced from WINDOWS_HOVER_PADDING) would need further rework.
2024-05-14 15:03:20 +02:00
ocornut
5e23680454 Backends: all backends + demo now call IMGUI_CHECKVERSION() to verify ABI compatibility between caller code and compiled version of dear imgui. (#7568) 2024-05-13 15:07:13 +02:00
ocornut
f48aae600a Version 1.90.7 WIP 2024-05-13 14:47:37 +02:00
ocornut
e391fe2e66 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_opengl3.cpp
#	imgui.cpp
#	imgui_internal.h
2024-05-08 16:17:32 +02:00
ocornut
6ccc561a2a Version 1.90.6 2024-05-08 15:38:33 +02:00
ocornut
d4495446d5 Windows, Internal: added experimental SkipRefresh mode. (#3515, #4763, #7556, #5116 , #4076, #2749, #2268)
currently: ImGui::SetNextWindowRefreshPolicy(ImGuiWindowRefreshFlags_TryToAvoidRefresh);
- This is NOT meant to replace frame-wide/app-wide idle mode.
- This is another tool: the idea that a given window could avoid refresh and reuse last frame contents.
- I think it needs to be backed by a careful and smart design overall (refresh policy, load balancing, making it easy and obvious to user).
- It's not there yet, this is currently a toy for experimenting.
My other issues with this:
- It appears to be very simple, but skipping most of Begin() logic will inevitably lead to tricky/confusing bugs. Let's see how it goes.
- I don't like very much that this opens a door to varying inconsistencies
- I don't like very much that it can lead us to situation where the lazy refresh gets disabled in bulk due to some reason (e.g. resizing a dock space) and we get sucked in the temptation to update for idle rather than update for dynamism.
2024-05-07 11:44:43 +02:00
ocornut
2f2d5070f5 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui.h
2024-05-03 16:30:09 +02:00
ocornut
0b309471f2 Windows: Changed default ClipRect to extend to windows' left and right borders. (#3312, #7540, #3756, #6170, #6365) 2024-05-03 16:00:20 +02:00
ocornut
0c9c12c1bb InnerClipRect use ImFloor() matching docking branch (fix c41868531 for #6861, #2884, followed by rename 94da5842)
Since negative windows can never be visibile in master it didn't show as a difference.
2024-05-03 15:51:49 +02:00
ocornut
6ebbecc6a0 Realign assignments.
No functional changes.
2024-05-03 12:57:07 +02:00
thedmd
fc4d818e17 Tables: Angled headers: added TableAngledHeadersTextAlign, ImGuiStyleVar_TableAngledHeadersTextAlign. (#6917) 2024-05-03 12:54:59 +02:00
ocornut
4bb7567141 Tables: Angled headers: fixed multi-line label display when angle is flipped. (#6917) 2024-05-02 13:49:26 +02:00
ocornut
9d6818d0ce Docking: comments, clairfy why we store style override on dragged windows. Clarify why we don't need to store alpha. (#7535, #2771)
Amend ebbb98d51
2024-04-30 14:10:11 +02:00
ocornut
5717f0a33e Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_vulkan.cpp
#	backends/imgui_impl_win32.cpp
2024-04-30 10:42:46 +02:00
ocornut
50b2ff0bf0 ImGuiIO: moved IMGUI_DISABLE_OBSOLETE_KEYIO block lower in the structure so other fields layout are not affected by it (#7534)
This is essentially a misleading grace feature allowing a build mistake to be made, as we technically are more flexible now. BUT if we reintroduce a need we may more harshly move it to the top of the structure to detect issues.
2024-04-30 10:23:03 +02:00
ocornut
b555984a94 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_opengl3.cpp
#	imgui.cpp
2024-04-18 21:18:18 +02:00
ocornut
fa0120ea5e Windows: Fixed subsequent Begin() append calls from setting last item information for title-bar. (#7506, #823)
Amend 067605052, 27fd1b913b
2024-04-18 21:17:12 +02:00
ocornut
361432a0bb TreeNode: fixed layout so that TreeNode("") or TreeNode("##HiddenLabel") may properly be used with SameLine(0,0). (#7505, #282)
Also adjust some of the interact_bb padding, arbitrary interact padding not meaningful as empty label is likely to be followed by extra item. User likely to use ImGuiTreeNodeFlags_SpanAvailWidth.
2024-04-18 20:50:00 +02:00
ocornut
eba46cb0d2 Drag and Drop: assert when nesting BeginDragDropSource() and BeginDragDropTarget() (#7504) + update Gallery links 2024-04-17 18:00:55 +02:00
ocornut
4cb0fe3c7d Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_sdl3.cpp
#	backends/imgui_impl_sdl3.h
#	docs/CHANGELOG.txt
#	imgui_internal.h
2024-04-16 14:24:13 +02:00
ocornut
c1743eef48 Docking: when io.ConfigDockingWithShift is enabled, fixed help tooltip erroneously reading SetNextWindowXXX() data. (#6709, #4643, #7491) 2024-04-15 11:43:16 +02:00
ocornut
3caa79c8a5 Version 1.90.6 WIP 2024-04-15 11:27:07 +02:00
ocornut
76bc1b825e Extracted part of NewFrame() into SetupDrawListSharedData() for documentation purpose. (#7495, #6406)
Also changed g.Font->ContainerAtlas->Flags to g.IO.Fonts->Flags
2024-04-15 11:24:43 +02:00
ocornut
f790d51665 Silent zealous/stupid warning introduced by Clang 16 (shipping with VS2022) with -Weverything. Pointers are now illegal! 2024-04-12 16:55:32 +02:00
ocornut
1db579d458 Merge branch 'master' into docking 2024-04-11 16:21:56 +02:00
ocornut
231cbee0fc Version 1.90.5 2024-04-11 15:54:39 +02:00
ocornut
e7712ff103 Out of courtesy/consistency move all the DebugHookIdInfo compares into ifndef block. 2024-04-03 10:50:32 +09:00
ocornut
f959c417fe Refactor moving ID stack functions to their own section (part 2) 2024-04-03 10:48:32 +09:00
ocornut
0bf134a8e2 Refactor moving ID stack functions to their own section. 2024-04-03 10:42:57 +09:00
ocornut
9638c2839a Internals: adding ImGuiNavMoveFlags_NoClearActiveId even though there's currently no satisfying way to take advantage of it. (#1418) 2024-03-27 12:00:50 +09:00
ocornut
742e53434f Child Windows: adjust resizing limits to match window padding rather than inner clipping rectangle. (#7440) 2024-03-27 11:36:57 +09:00
cfillion
515b437c08 Child windows: look at the parent window's flags to decide whether to clamp child resizes. (#7440, #1710) 2024-03-27 11:24:07 +09:00
cfillion
976dc23965 Windows: extend outer resize borders to the edges when there are no corner grips. (#7440, #1710) 2024-03-27 11:01:14 +09:00
cfillion
cf4c10bef7 Style: added ImGuiStyleVar_TabBorderSize, ImGuiStyleVar_TableAngledHeadersAngle. (#7411) 2024-03-26 14:38:38 +09:00
ocornut
085781f5ca Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
2024-03-18 22:52:40 -07:00
cfillion
868facff9d ImDrawList: (Breaking) merge float radius_x/radius_y parameters into ImVec2 radius in PathEllipticalArcTo(), AddEllipse(), AddEllipseFilled(). (#2743, #7417) 2024-03-18 22:50:47 -07:00
ocornut
40df3db1a2 Tweaking terminology 2024-03-17 19:46:12 +09:00
ocornut
3c435c0297 Inputs: (Breaking) More formally obsoleted GetKeyIndex() when IMGUI_DISABLE_OBSOLETE_FUNCTIONS is set. (#4921) 2024-03-08 12:16:24 +01:00
ocornut
286cd5bd41 Internals, InputText: removed ImGuiInputSource_Clipboard. (#4005)
Added by f08566b4d
2024-03-07 15:02:38 +01:00
ocornut
fd75685fb0 Merge branch 'master' into docking 2024-03-05 18:12:11 +01:00
ocornut
65dc67f63c Windows: Double-click to collapse may be disabled via key-ownership mechanism. (#7369) 2024-03-05 17:34:34 +01:00
ocornut
04f40014a6 Docs: added a mini wiki index in main source files. 2024-02-29 15:17:08 +01:00
ocornut
0573513d6d Windows: Scrollbar visibility decision uses current size when both size and contents size are submitted by API. (#7252) 2024-02-28 17:09:20 +01:00
ocornut
44c7dfca03 Menus, Popup: Amend c3f8f4d for static analyzer warning ("condition always true"). (#7325) 2024-02-27 19:42:20 +01:00
ocornut
1a487165b1 Merge branch 'master' into docking 2024-02-27 18:44:51 +01:00
ocornut
c3f8f4de25 Menus, Popups: Fixed an issue where sibling menu popups re-opening in successive frames would erroneously close the window. (#7325, #7287, #7063)
Amend 014e0ac8
2024-02-27 18:36:46 +01:00
ocornut
9877941775 Popups, Menus: rename ImGuiPopupData::BackupNavWindow > RestoreNavWindow and minor tweaks. Should be functionally a no-op.
This is expected to clear the noise so next commit can be cleared to read. (#7325)
Last renamed in b3ea01d86
2024-02-27 17:56:51 +01:00
ocornut
e46d1e69ac Version 1.90.5 WIP 2024-02-26 13:31:10 +01:00
ocornut
c6aa051629 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
2024-02-22 20:01:46 +01:00
ocornut
277ae93c41 Version 1.90.4 2024-02-22 19:56:39 +01:00
ocornut
f5be90523d Nav: Fixed SetKeyboardFocusHere() or programmatic tabbing API from not working on windows with the ImGuiWindowFlags_NoNavInputs flag.
Amend/fix 13d91ff 3a078466
2024-02-22 19:43:03 +01:00
ocornut
13d91ff918 Nav: Fixed SetKeyboardFocusHere() or programmatic tabbing API from not working on windows with the ImGuiWindowFlags_NoNavInputs flag.
Amend/fix 3a078466a
2024-02-22 19:39:10 +01:00
ocornut
34965cf23a Modals: Temporary changes of ImGuiCol_ModalWindowDimBg are properly handled by BeginPopupModal(). (#7340)
+ Misc: Added optional alpha multiplier parameter to GetColorU32(ImU32) variant.
2024-02-22 14:53:33 +01:00
ocornut
659fb41d0a Debug Tools: moved DebugStartItemPicker() to public API. Added to Demo->Tools menu. (#2673) 2024-02-20 17:33:17 +01:00
ocornut
2b662b1ab9 Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui.cpp
2024-02-20 15:33:20 +01:00
ocornut
d3f1a7165c Popups: allow Child Popups to be resizable if not explicitly disabling. 2024-02-20 15:03:09 +01:00
ocornut
e78ce72eb6 Popups: Fixed resizable popup minimum size being too small. Standardized CalcWindowMinSize() logic a bit more. (#73290
Amend e2035a514, 623bff23ce, 923535240, etc.
2024-02-20 15:00:01 +01:00
ocornut
014e0ac8c9 Menus, Popups: Fixed an issue where hovering a parent-menu upward would erroneously close the window. (#7325, #7287, #7063)
Amend 76e09c4b0. Initial call to ClosePopupToLevel d31fe97f7 (#2880).
See "widgets_menu_reopen_2" in TestSuite.
2024-02-20 14:01:24 +01:00
Tim-Rex
9159cd7b4a
Updated invalid documentation link (#7331) 2024-02-18 12:51:32 +01:00
cvionis
ccc5347e45
Fix typos (#7332) 2024-02-18 12:50:51 +01:00
ocornut
8a14b71f22 Version 1.90.4 WIP 2024-02-15 16:51:57 +01:00
ocornut
d79514c407 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_dx9.cpp
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	backends/imgui_impl_vulkan.cpp
#	imgui.cpp
2024-02-14 14:32:17 +01:00
ocornut
5b6f03213d Version 1.90.3 2024-02-14 13:58:19 +01:00
ocornut
9dfa2397de Internals: Fixed ImFileOpen not working before context is created. (#7314, #7315)
Amend daf49e9d8
2024-02-14 11:02:24 +01:00
ocornut
3af739a2d1 Menus, Popups: fixed menus and popups with child window flag erroneously not displaying a scrollbar when contents is over parent viewport size. (#7287, #7063)
Amend f37f6f6
2024-02-12 15:21:48 +01:00
ocornut
915c6393ad Version 1.90.3 WIP 2024-02-12 14:54:48 +01:00
ocornut
8490a262c4 Debug Tools: Metrics: Improved Monitors and Viewports minimap display. Highlight on hover. (amends) 2024-02-09 17:28:41 +01:00
ocornut
71bcf350bd Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
2024-02-09 17:26:45 +01:00
ocornut
536090303a Version 1.90.2 2024-02-09 16:59:31 +01:00
ocornut
7b5357d817 Debug Tools: Metrics: Improved Monitors and Viewports minimap display. Highlight on hover.
Added ImGuiViewport ID in Master branch.
2024-02-09 16:32:26 +01:00
ocornut
30ba3c347c Viewports: Fixed moving accross monitors when io.ConfigWindowsMoveFromTitleBarOnly is set. (#7299, #3071) 2024-02-09 15:43:25 +01:00
ocornut
70aa717a8e Combo: Fixed not reusing windows optimally when used inside a popup stack. 2024-02-09 15:23:43 +01:00
ocornut
76e09c4b0f ClosePopupsOverWindow(): amend to remove _ChildWindow test.
Said test seems unnecessary and incorrect as we test hierarchy now. See test "nav_ctrl_tab_popups" in ImGuiTestSuite.
2024-02-08 17:08:01 +01:00
ocornut
3a078466a7 Nav: ImGuiWindowFlags_NoNavInputs is tested during scoring so NavFlattened windows can use it. 2024-02-08 16:06:55 +01:00
ocornut
a5e0e90c16 Nav: tweak RenderNavHighlight() syntax. ImGuiNavHighlightFlags_TypeThin -> ImGuiNavHighlightFlags_Compact. 2024-02-08 15:44:46 +01:00
ocornut
a06dd7a27b OpenPopup(): Added ImGuiPopupFlags_NoReopen. Nav, Menus: Fixed click on a BeginMenu() followed by right-arrow. (#1497, #1533)
reopen
2024-02-08 15:02:22 +01:00
ocornut
f104967c68 Comments 2024-02-08 12:10:14 +01:00
ocornut
82eeafc196 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_glfw.cpp
2024-02-07 22:10:33 +01:00
ocornut
06ce312745 InputText: Internal: added reload from user-buf feature. (#2890)
Very highly requested feature (#6962, #5219, #3290, #4627, #5054, #3878, #2881, #1506, #1216, #968).
Also useful for interactive completion/selection popups (#2057, #718)
Based on @kudaba PR. Design for Inputtext V2 should make this obsolete.
2024-02-07 22:04:18 +01:00
ocornut
96839b445e Nav: Improve handling of Alt key to toggle menu so that key ownership may be claimed on indiviudal left/right alt key without intefering with the other.
See test "inputs_owner_single_mod"
2024-01-25 16:51:07 +01:00
ocornut
7194756370 Shortcut: fixed single mod-key Shortcut from working e.g. Shortcut(ImGuiKey_LeftCtrl) 2024-01-25 15:42:19 +01:00
ocornut
8491cf36ad Inputs: g.ActiveIdUsingManyKeys[] prevent routes from being claimed.
Amend fc134f5
2024-01-24 18:53:36 +01:00
ocornut
9176eedf24 Internals: SetShortcutRouting() move code so next commit is easier to read. Should be no-op. 2024-01-24 18:51:00 +01:00
ocornut
81e0be856a Fixed strict-aliasing violation in FormatTextureIDForDebugDisplay(). (#7090, #7256) 2024-01-24 14:27:43 +01:00
ocornut
eb42e164dd Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_vulkan.cpp
2024-01-22 19:01:25 +01:00
ocornut
a201af7354 Added SetNextItemShortcut() wip function. (#456)
Mark widget as hovered. Amend d10641b.
2024-01-22 18:38:54 +01:00
ocornut
4c2c09450a Nav: keyboard/gamepad activation feedback properly timed instead of frame buffer. (#456)
Amend d10641b
2024-01-22 18:26:45 +01:00
ocornut
763100b385 Nav: Fixed pressing Escape while in a child window with _NavFlattened flag. (#7237) 2024-01-19 18:37:21 +01:00
ocornut
c7edb446ca Shortcut(): always test ownership.
- It doesn't sense to test route without ownership (which may be overrided by code not using routing)
- It also wouldn't be possible to call Shortcut() with _None anyway, since successful routing sets ownership.
Tangential to experiments for #7237
2024-01-19 16:40:24 +01:00
ocornut
1844f903d5 Nav: space/enter poll check ownership. InputText: declare ownership of Enter key as it doesn't go through Shortcut
InputText: no need to call SetShortcutRouting() directly.
Tangential to experiments for #7237
2024-01-19 16:22:45 +01:00
ocornut
cab7edd135 Merge branch 'master' into docking
# Conflicts:
#	imgui_internal.h
2024-01-17 18:38:03 +01:00
ocornut
d7c2a0e38f Shortcut(): fixed 8323a06 adding _Repeat to all Shortcut() calls. 2024-01-17 18:21:04 +01:00
ocornut
3b828d3701 Refactor: moving ItemAdd() into a section abote ItemSize(). No logic change (part 2)
Diff not ideal (in Fork it looks like ItemSize is moved) but understandable at a glance.
2024-01-17 17:34:28 +01:00
ocornut
ff5f3aa38b Refactor: moving ItemAdd() into a section abote ItemSize(). No logic change (part 1)
Moved KeepAliveID() as well for increased locality.
Adding dummy ItemAdd() placeholder to facilitate diffing (otherwise single commit single diff is a mess).
2024-01-17 17:32:50 +01:00
ocornut
1a48a63446 Enclosed a few more remaining sections in ifndef IMGUI_DISABLE_DEBUG_TOOLS for completeness. 2024-01-17 15:55:36 +01:00
ocornut
5fdcdf7080 Shortcut: ImGuiInputFlags_RouteFocused policy can filter Shortcuts conflicting with character input when an item is active. (#456) 2024-01-16 17:51:14 +01:00
ocornut
80d5cb1ab1 Comments around ImGuiInputFlags. 2024-01-16 16:25:08 +01:00
ocornut
80c83a4277 Docking: added ImGuiDockNodeFlags_DockedWindowsInFocusRoute to configure a dock node to automatically set ParentWindowForFocusRoute on its docked windows. (#6798, #2637, #456) 2024-01-16 14:30:43 +01:00
ocornut
cceff4684a Docking: added ImGuiWindowClass::FocusRouteParentWindowId as a public facing version of SetWindowParentWindowForFocusRoute() (#6798, #2637, #456) 2024-01-16 14:30:42 +01:00
ocornut
1cc0eb4d32 Internals: Rename NavFocusScopePath to NavFocusRoute + fixed a static analyzer warning. 2024-01-16 12:32:00 +01:00
ocornut
69b64e2b73 Internals: Docking: revert 32a3c61 in favor of user explicitely calling SetWindowParentWindowForFocusRoute(). (#6798)
The revert doesn't look the same as 32a3c61 as since then we are baking focus roue into NavFocusScopePath().
2024-01-16 11:50:00 +01:00
ocornut
a27f22f0e9 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_vulkan.cpp
#	imgui.cpp
#	imgui_internal.h
2024-01-16 11:43:36 +01:00
ocornut
46e5f44ec8 Shortcut()/SetShortcutRouting(): use mixed current window focus scope + ParentWindowForFocusRoute. (#6798, #2637, #456)
Amend d474836
Begin: tweak clearing of CurrentWindow as FocusWindow() relies on it now.
Addded SetWindowParentWindowForFocusRoute() helper.
2024-01-16 11:39:41 +01:00
ocornut
e0c8c80ada Shortcut()/SetShortcutRouting(): focus route testing now use ParentWindowForFocusRoute. Automatically set on child-window, manually configurable otherwise. (#6798, #2637, #456) 2024-01-15 17:33:47 +01:00
ocornut
4b20a0217e Internals: add window to FocusScopeStack. (#6798) 2024-01-15 17:33:47 +01:00
ocornut
2156db7a07 Debug Log: added InputRouting logging. Made GetKeyChordName() use its own buffer. Fixed debug break in SetShortcutRouting(). (#6798, #2637, #456) 2024-01-15 17:33:23 +01:00
ocornut
dd0efdc637 Fixed SetKeyboardFocusHere() not working when current nav focus is in different scope. (#7226)
Amend 70f2aaff
2024-01-15 17:32:11 +01:00
ocornut
8a3dfda8d0 Commented out obsolete ImGuiIO::ImeWindowHandle marked obsolete in 1.87, favor of writing to 'void* ImGuiViewport::PlatformHandleRaw'.
Amend 3a90dc38 (#2589, #2598, #3108, #3113, #3653, #4642)
2024-01-15 11:30:52 +01:00
ocornut
32a3c61d00 Internals: Shortcut() follow docking chain (until we formalize a more general focus scope stack). (#456) 2024-01-11 19:48:31 +01:00
ocornut
29809d7220 Version 1.90.2 WIP 2024-01-11 14:37:13 +01:00
ocornut
2dc85e6e43 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_opengl3.cpp
#	imgui.cpp
#	imgui_internal.h
2024-01-10 18:34:23 +01:00
ocornut
d6cb3c923d Version 1.90.1 2024-01-10 18:00:57 +01:00
ocornut
6470e2279e Debug Tools: DebugRenderKeyboardPreview() scales better. 2024-01-10 17:35:41 +01:00
ocornut
fdf8d02be1 Debug Tools: Added io.ConfigDebugIsDebuggerPresent and Debug Break buttons. (#2673) 2024-01-10 17:33:19 +01:00
ocornut
788bb58b6b Metrics: Tweak, reorganize tools menu. 2024-01-10 15:12:24 +01:00
ocornut
a5dec42866 Debug Tools: Debug Log: Clicking any filter with SHIFT held enables it for 2 frames only. (#5855) 2024-01-10 15:12:24 +01:00
ocornut
cf02023565 Internals, Inputs: Fix for ImGuiInputFlags_RepeatUntilXXX logic when #ifdef IMGUI_DISABLE_OBSOLETE_KEYIO is not set.
Amend 8323a06. Eager to get rid of legacy IMGUI_DISABLE_OBSOLETE_KEYIO stuff: technically it's been two years, may give it another one.
2024-01-09 23:05:53 +01:00
ocornut
69bf3291df Internals, Inputs: Fix for ImGuiInputFlags_RepeatUntilXXX logic when #ifdef IMGUI_DISABLE_OBSOLETE_KEYIO is not set.
Amend 8323a06. Eager to get rid of legacy IMGUI_DISABLE_OBSOLETE_KEYIO stuff: technically it's been two years, may give it another one.
2024-01-09 23:05:45 +01:00
ocornut
ebcfcd8da3 Merge branch 'master' into docking 2024-01-09 22:39:06 +01:00
ocornut
fc2e532f99 Shortcut: do not return true on mods changes. Internals: added ImGuiInputFlags_RepeatUntilKeyModsChange, ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone, ImGuiInputFlags_RepeatUntilOtherKeyPress. (#456, #2637)
Took a while to come to this design, but it is flexible and lightweight and allow all decision to be taken a polling location. All three policies are useful.
2024-01-09 15:54:12 +01:00
ocornut
8323a06e6d Inputs: passing ImGuiInputFlags_RepeatXXX options automatically adds ImGuiInputFlags_Repeat.
Will make extra sense with next commit where we add ImGuiInputFlags_RepeatUntil options.
2024-01-09 12:09:42 +01:00
ocornut
58261dbe9a Internals: alter ImGuiInputFlags values to leave room + indent. 2024-01-09 12:06:58 +01:00
ocornut
7f9533b840 ColorPicker: Fixed saturation/value cursor radius not scaling properly.
+ Misc docs/comments.
2024-01-08 16:08:12 +01:00
ocornut
278cf1a7bc Readme: updated binaries. (#7193)
+ removed two now unnecessary casts.
2024-01-05 16:47:39 +01:00
ocornut
a1b06823fe Windows: BeginChild(): Resize borders rendered even when ImGuiWindowFlags_NoBackground is specified. (#1710, #7194) 2024-01-04 17:23:30 +01:00
ocornut
e3d7cd665d Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_vulkan.cpp
2024-01-03 18:33:44 +01:00
ocornut
33d18c580b Misc: During shutdown, check that io.BackendPlatformUserData and io.BackendRendererUserData are NULL. (#7175) 2024-01-03 14:56:21 +01:00
ocornut
718fa0eec6 Happy new year! 2024-01-02 22:03:36 +01:00
David Maas
2523c197bc
Fixed title bar background alpha being used to render viewport-owned windows. (#7184, #7181) 2023-12-31 00:45:25 +01:00
ocornut
f039e69b9c Settings: Fixed an issue marking settings as dirty when merely clicking on a border or resize grip without moving it. 2023-12-21 14:14:39 +01:00
ocornut
4aa81116a5 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_glfw.cpp
#	imgui.cpp
2023-12-20 23:57:19 +01:00
ocornut
8340a30d27 Debug: move debug assertion in post-clip code to reduce overhead. (#4796 and more).
Amend c80179921
2023-12-20 16:23:27 +01:00
ocornut
1e1013085b Debug Tools: Debug Log: Hide its own clipper log to reduce noise in the output. 2023-12-20 16:22:35 +01:00
ocornut
0bd6489721 DragScalarN, SliderScalarN, InputScalarN, PushMultiItemsWidths: fixed multi-components width in tight space (#7120, #7121)
+ extra tweak color ColorEdit4() label. Amend 86512ea, 3464662
2023-12-19 20:50:17 +01:00
ocornut
0000739c08 Internals: Fixed function name typo. 2023-12-19 20:32:09 +01:00
ocornut
b4c5a83cfe Commented out obsolete ImGuiKey_KeyPadEnter redirection to ImGuiKey_KeypadEnter. (#2625, #7143) 2023-12-19 13:55:09 +01:00
ocornut
70f2aaff43 Nav: tabbing happen within FocusScope. ImGuiWindowFlags_NavFlattened make window inherit focus scope from parent. 2023-12-19 13:48:04 +01:00
Kevin Coghlan
089ed30323
Replace usages of ImGuiKey_KeyPadEnter with ImGuiKey_KeypadEnter. (#7143) 2023-12-19 00:30:49 +01:00
ocornut
e265610a0c Fixes for MSVC code analyzer. 2023-12-18 18:36:01 +01:00
ocornut
f59b54c6f4 Nav: Activation can also be performed with Keypad Enter. (#5606) 2023-12-18 18:23:53 +01:00
ocornut
8add6bcb9f Merge remote-tracking branch 'origin/master' into docking
# Conflicts:
#	imgui.cpp
#	imgui.h
2023-12-14 17:21:15 +01:00
ocornut
6cfe3ddf52 InputTextMultiline: Tabbing through a multi-line text editor using ImGuiInputTextFlags_AllowTabInput doesn't activate it. (#3092, #5759, #787) 2023-12-14 17:15:43 +01:00
ocornut
f6836ff37f Misc: Rework debug display of texture id in Metrics window (amend) (#7090)
Amend 96b5b17
2023-12-12 18:24:30 +01:00
ocornut
07dbd46ddd Misc: Rework debug display of texture id in Metrics window to avoid compile-error when ImTextureID is defined to be larger than 64-bits. (#7090) 2023-12-12 18:18:52 +01:00
Nahor
86512eac06 DragScalarN, SliderScalarN, InputScalarN, PushMultiItemsWidths: improve multi-components width computation to better distribute the error. (#7120, #7121) 2023-12-12 00:34:18 +01:00
ocornut
03298fe875 Windows: Fixed some auto-resizing path using style.WindowMinSize.x (instead of x/y). (#7106) 2023-12-10 12:53:20 +01:00
ocornut
69f524ba95 DragScalarN, SliderScalarN, InputScalarN, PushMultiItemsWidths: Added when component <= 0. (#7095) 2023-12-08 18:43:29 +01:00
ocornut
5366bd09bf Scrolling: internal scrolling value is rounded instead of truncated. (#6677) 2023-12-07 15:47:18 +01:00
ocornut
1fade35159 DragScalarN, SliderScalarN, InputScalarN, PushMultiItemsWidths: Fixed incorrect pushes into ItemWidth stack when number of components is 1. [#7095] 2023-12-07 14:01:53 +01:00
ocornut
58ca5f6424 Shortcut(): clearer early out in SetShortcutRouting() -> CalcRoutingScore() path. 2023-12-06 16:15:11 +01:00
ocornut
d72e1563d4 Removed CalcListClipping() marked obsolete in 1.86. (#3841) + comments
Amend 64daeddf
2023-12-06 15:10:12 +01:00
ocornut
aaf157cfdd Commented out ImGuiFreeType::BuildFontAtlas() obsoleted in 1.81. Commented out legacy ImGuiColumnsFlags_XXX symbols redirecting to ImGuiOldColumnsFlags_XXX, obsoleted in 1.80.
Amend 9499afdf and 72de6f336
2023-12-05 17:04:19 +01:00
ocornut
96b5b1724b Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_vulkan.cpp
#	imgui_internal.h
2023-12-05 12:20:16 +01:00
ocornut
d2b0167610 Fixed link error when using IMGUI_DISABLE_DEBUG_TOOLS 2023-11-29 14:09:39 +01:00
ocornut
7965494ff3 Debug Tools: Added DebugFlashStyleColor() to identify a style color. Added to Style Editor. 2023-11-28 19:40:38 +01:00
ocornut
f6253b87d0 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_sdl3.cpp
#	imgui.cpp
2023-11-28 14:39:46 +01:00
ocornut
6f171a066d Nav, IO: SetNextFrameWantCaptureKeyboard(false) calls are not overrided back to true when navigation is enabled. (#6997) 2023-11-28 14:28:19 +01:00
Marc Delorme
e07663d9a1 Docking: transform ImGuiContext* ctx = GImGui to ImGuiContext& g = *GImGui for consistency (#5856) 2023-11-28 14:18:52 +01:00
ocornut
f37f6f67f6 Windows: BeginChild(): Fixed auto-resizing erroneously limiting size to host viewport minus padding. (#7063) 2023-11-27 16:33:20 +01:00
ocornut
bce4db00bc Drag and Drop: Fixed drop target highlight on items temporarily pushing a widened clip rect. (#7049, #4281, #3272) 2023-11-22 19:30:16 +01:00
ocornut
7bb0a525c3 Fixed text functions fast-path for handling "%s" and "%.*s" to handle null pointers gracefully. (#7016, #3466, #6846) 2023-11-16 00:00:26 +01:00
ocornut
3d083dbe1a Version 1.90.1 WIP 2023-11-15 23:53:58 +01:00
ocornut
ce0d0ac829 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_sdl3.cpp
#	backends/imgui_impl_vulkan.cpp
#	imgui.cpp
2023-11-15 16:08:53 +01:00
ocornut
b81bd7ed98 Version 1.90.0
w/ Changelog tweaks.
2023-11-15 15:56:05 +01:00
ocornut
623bff23ce Windows: WindowMinSize not applied on AlwaysAutoResize window. (amend e2035a5)
See "window_size_min" test. Waiting for a fuller simplification of this, probably for a future version.
2023-11-15 14:44:01 +01:00
ocornut
f298491a8a Docs: amend/tweak details about using io.WantCaptureMouse. (#7012) 2023-11-15 13:29:37 +01:00
ocornut
afadf74a53 BeginChild: undo child name simplification as it reveal an issue with handling of ### in child names.
When the later is fixed we can re-enable this. Essentially reverts 8ee8513.
2023-11-14 14:23:18 +01:00
ocornut
fe6544622b SetNextWindowSizeConstraints() clarified parameters, fixed comments. (#1139, #3186, #3270) 2023-11-13 14:13:17 +01:00
ocornut
450f1d7e7b Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_opengl3.cpp
#	backends/imgui_impl_vulkan.cpp
#	imgui.cpp
2023-11-10 14:56:10 +01:00
ocornut
ab522dd18c Removed IM_OFFSETOF() macro in favor of using offsetof() available in C++11. Kept redirection define. (#4537) 2023-11-09 16:44:39 +01:00
ocornut
37ea320b96 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
2023-11-07 20:20:41 +01:00
ocornut
0d3b468cb3 BeginChild(): added ImGuiChildFlags_AutoResizeX, ImGuiChildFlags_AutoResizeY, ImGuiChildFlags_AlwaysAutoResize + support for SetNextWindowSizeConstraints(). (#1666, #1395, #1496, #1710) + Demo
Note that child don't report ideal content size to parent so nesting may be difficult.
Note 4e4042b simplified SkipItems logic.
Note e2035a5 standardizing WindowMinSize application on child
2023-11-07 20:15:32 +01:00
ocornut
44345c2108 Better documented the difference between BeginListBox() and BeginChild() w/ ImGuiChildFlags_FrameStyle.
BeginListBox() can't yet expose child flags because coarse clipping require query of stored size (same issue as with adding resize support to Tables).
2023-11-07 20:14:54 +01:00
ocornut
fa4c49b4a7 BeginChild(): resizing is only clamped on axis where there's no scrollbar. Added an extra ResizeX in Demo->Simple Layout. 2023-11-07 19:01:35 +01:00
ocornut
cdbc21a191 BeginChild(): Added ImGuiChildFlags_FrameStyle as a replacement for BeginChildFrame(). (#1666, #1496, #1395, #1710, #462, #503, #263)
Effectively allows us to avoid extending BeginChildFrame() api to mimic BeginChild() new parameters.
2023-11-07 18:50:32 +01:00
ocornut
561af15d67 Internal: Added owner aware variant of IsMouseDoubleClicked() for consistency.
Amend 4448d97. Note that functions entry points will eventually be merged into one, so this is not a problem.
2023-11-06 14:09:35 +01:00
ocornut
376035fd01 Nav: fixed programmatic nav calls (e.g. SetKeyboardFocusHere() from storing io.KeyMods)
Note that the g.NavMoveKeyMods -> g.NavJustMovedToKeyMods chain is not used in this branch. Multi-select uses it.
2023-11-06 14:03:40 +01:00
ocornut
208b8242bc Docking: Settings: Fix for loss of settings caused by 9298e31 yesterday. (#6982) 2023-11-03 21:14:19 +01:00
ocornut
1ab63d925f Undid some of the changes done by c95fbb4 because they are not compatible with docking code.
(Will cherry-pick this from docking to master)

# Conflicts:
#	imgui.cpp
2023-11-02 18:08:39 +01:00
ocornut
4cde40dbe1 Undid some of the changes done by c95fbb4 because they are not compatible with docking code.
(Will cherry-pick this from docking to master)
2023-11-02 18:06:38 +01:00
ocornut
9298e310b2 Merge branch 'master' into docking (note: won't build as-is, see next commit)
# Conflicts:
#	imgui.cpp
#	imgui.h
#	imgui_internal.h
2023-11-02 18:05:43 +01:00
ocornut
f1d1a8d32b Windows: use relative mouse movement for border resize when the border geometry has moved. (#1710)
(e.g. resizing a child window triggering parent scroll) to avoid resizing feedback loop.
2023-11-02 17:34:49 +01:00
ocornut
9235352400 BeginChild: Added ImGuiChildFlags_ResizeX and ImGuiChildFlags_ResizeY. (#1710) 2023-11-02 17:34:49 +01:00
ocornut
34a0bc456e BeginChild: Added ImGuiChildFlags_AlwaysUseWindowPadding, obsoleted ImGuiWindowFlags_AlwaysUseWindowPadding. (#462, (toward #1666, #1496, #1395, #1710)
(bonus: will also eventually free a window flag)
2023-11-02 17:26:23 +01:00
ocornut
7713c29258 BeginChild: Upgraded 'bool border = true' parameter to use a ImGuiChildFlags type and the ImGuiChildFlags_Border value. (toward #1666, #1496, #1395, #1710) 2023-11-02 17:26:05 +01:00
ocornut
313676d200 Settings: omit outputing Collapsed=0 in .ini file. Changelog + docs tweaks 2023-10-20 17:56:54 +02:00
ocornut
8ee85137d8 BeginChild(): Internal name used by child windows now omits the hash/id if the child window is submitted in root of id stack of parent window.
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui.h
2023-10-20 15:40:11 +02:00
ocornut
4e4042bc33 Windows: tidying up skipitems logic at end of Begin(), normally should be no meaningful side-effect. 2023-10-20 15:38:58 +02:00
ocornut
bc3c6e74e6 Windows: fixed double-clicked border from showing highlighted at the new position.
Amend c95fbb4 + misc tidying up, comments of grip/border resizing struct.
2023-10-19 18:38:32 +02:00
ocornut
e2035a514c Windows: shared code for CalcWindowMinSize().
+ Don't apply WindowMinSize during auto-fit of child windows (not exercised yet).
2023-10-19 17:32:51 +02:00
ocornut
c95fbb4464 Windows: Double-clicking bottom or right window border auto-resize on a singles axis. 2023-10-19 16:19:29 +02:00
ocornut
ade2acfd1d Inputs: Added IsKeyChordPressed() public helper function.
Amend 99913b5
2023-10-19 14:44:24 +02:00
ocornut
2a6d7b1eaa Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_demo.cpp
2023-10-18 19:45:19 +02:00
ocornut
1b9cb52d7b BeginChild(): rename parameters to reduce diff of upcoming patches.
Should be a no-op.
2023-10-18 19:41:51 +02:00
ocornut
f8dc03d702 Windows: Can also auto-resize by double-clicking lower-left resize grip (not only lower-right one). 2023-10-18 17:48:33 +02:00
ocornut
56f7e853be Demo: expose more Combo flags + misc tidying up. 2023-10-18 17:48:33 +02:00
ocornut
d6d00b4fcf Moved BeginChild() above BeginChildEx() as it is more readable.
Misc shallow tidying up. Should be a no-op.
2023-10-17 13:45:39 +02:00
ocornut
99913b5051 Internals: added IsKeyChordPressed() for consistency. 2023-10-16 22:21:29 +02:00
ocornut
51d1a72e9b Docking: Revised undocking logic to reduce accidental whole-node undocking:
Amend bb2aa5e77.
Revert to normal threshold in StartMouseMovingWindowOrNode().
Added tooltip when hovering the collapse/window menu button.
2023-10-16 15:56:46 +02:00
ocornut
4521dec85d Docking: Fixed DockNodeBeginAmendTabBar() asserting on first call since ef8ff1b 2023-10-16 15:13:44 +02:00
ocornut
947255c3da Tooltips: made it possible to use ImGuiHoveredFlags_ForTooltip + a ImGuiHoveredFlags_DelayXXXX override. (#1485) 2023-10-16 14:57:44 +02:00
ocornut
0b8c6b9bce Internals: removed seemingly unused AutoFitChildAxises.
The clamp was done on BeginChild(). Amend 2545d75c
2023-10-13 14:52:08 +02:00
ocornut
f7fc186408 Merge branch 'master' into docking
+ 2 comments
# Conflicts:
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_osx.mm
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	backends/imgui_impl_win32.cpp
2023-10-12 19:22:36 +02:00
ocornut
32228d8add Tables: added Angled headers support. Added ImGuiTableColumnFlags_AngledHeader, ImGui::TableHeadersAngledRow(), style.TableAngledHeadersAngle. (#2957) 2023-10-12 19:21:02 +02:00
ocornut
08606714a3 Fixed incorrect assert in FocusTopMostWindowUnderOne() preventing child+popup from being used. (#6915, #718) 2023-10-12 12:21:30 +02:00
ocornut
5053d79a24 Tables: Internal: rework so stacked headers height may be used. 2023-10-11 17:28:07 +02:00
ocornut
001f102f38 IO, Backends: added ImGuiKey_AppBack, ImGuiKey_AppForward. (#6891, #4921) 2023-10-05 21:26:07 +02:00
Andon M. Coleman
73346e4341 IO: Add extra keys to ImGuiKey enumerator: ImGuiKey_F13 to ImGuiKey_F24. (#6891, #4921) 2023-10-05 20:16:08 +02:00
ocornut
1107bffe84 Popups: clarified meaning of 'p_open != NULL' in BeginPopupModal() + set back user value to false when popup is closed in ways other than clicking the close button. (#6900) 2023-10-05 17:45:31 +02:00
ocornut
72ebd91567 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_opengl3.cpp
#	imgui.h
2023-10-05 15:10:45 +02:00
ocornut
085ed7bfbe Drag and Drop: Rework drop target highlight. (#4281, #3272)
Amend 4ddb6b46, 4b94738c7
2023-10-05 14:13:27 +02:00
ocornut
0dd756bceb Moved GetCursorScreenPos/SetCursorScreenPos on top of its section.
+ update gallery thread link + minor typo (#6898)
2023-10-05 13:52:28 +02:00
ocornut
a63e2f0a33 Drag and Drop: Fixed submitting a tooltip from drop target location. Added demo.
Amend 7bbf8f2, 92b7d6b.
2023-10-05 12:06:40 +02:00
ocornut
a61438740d Debug Tools: Metrics: Added "Show groups rectangles" in tools. 2023-10-02 15:01:42 +02:00
ocornut
ff534b0d0a Docking: Fixed a bug where ClassId compare tests (when using SetNextWindowClass) on success would prevent further filter from running. (#6882) 2023-10-02 10:57:22 +02:00
ocornut
f8aed6499f Debug Tools: Rename ShowIdStackToolWindow() -> ShowIDStackToolWindow(). (#4631)
Squashed of 2 master commits.
2023-09-28 20:16:13 +02:00
ocornut
c21278eeae Debug Tools: Rename ShowIdStackToolWindow() -> ShowIDStackToolWindow(). (#4631)
Amend 8175a47
2023-09-27 19:49:12 +02:00
ocornut
b7c250925f Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2023-09-27 18:21:39 +02:00
ocornut
2f431a948c IO: removed io.MetricsActiveAllocations introduced in 1.63. Same as 'g.DebugMemAllocCount - g.DebugMemFreeCount' (still displayed in Metrics. 2023-09-27 18:14:48 +02:00
ocornut
f1519efb16 BeginGroup(): fix/amend 9ece0bd. 2023-09-27 17:25:55 +02:00
ocornut
9ece0bdc02 BeginGroup(): Fixed a bug pushing line lower extent too far down when called after a call to SameLine() followed by manual cursor manipulation. 2023-09-26 21:07:25 +02:00
ocornut
8175a47881 Debug Tools: Renamed ShowStackToolWindow() ("Stack Tool") to ShowIdStackToolWindow() ("ID Stack Tool"). (#4631) 2023-09-26 15:21:55 +02:00
ocornut
204ae8a407 Internals: added ImRect::ContainsWithPad() 2023-09-26 14:45:00 +02:00
ocornut
bb2fb74645 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_win32.cpp
#	imgui.cpp
2023-09-26 11:42:49 +02:00
ocornut
94da5842ef Renamed ImFloor() to ImTrunc(). Renamed ImFloorSigned() to ImFloor(). (#6861) 2023-09-26 11:18:29 +02:00
ocornut
c418685315 Fixed window inner clipping rectangle off by one when window is located on a monitor with negative coordinates. (#6861, #2884) 2023-09-25 20:45:34 +02:00
ocornut
72ae6f5200 Fixed MousePosPrev with has never been valid outside of NewFrame().
bed6ef03f always worked because it was done in NewFrame() before the assignment.
2023-09-25 15:06:50 +02:00
ocornut
d4869207e3 Misc: Most text functions also treat "%.*s" (along with "%s") specially to avoid formatting. (#3466, #6846) 2023-09-25 10:47:28 +02:00
ocornut
daf49e9d82 Made ImFileOpen reuse a memory buffer so .ini saving doesn't allocate once every time. Added commented out MemAlloc/MemFree debug log. 2023-09-22 14:47:56 +02:00
ocornut
2c0007731f Docking: fixed calling DockContextCalcDropPosForDocking() with window in node without passing its node. 2023-09-20 17:27:55 +02:00
ocornut
61acb34e32 Docking: Fixed an issue leading to incorrect restoration of selected tab in dock nodes that don't carry the currently focused window. (#2304)
In TestSuite: see "docking_tab_focus_restore".
Remove old code ~ ed3c015f 8bac6d4 8cac70d8
+ Fix potential crash in IMGUI_DEBUG_LOG_DOCKING() path when using amended buttons.
2023-09-20 14:43:47 +02:00
ocornut
3ce6b06feb Merge branch 'master' into docking 2023-09-20 12:53:35 +02:00
ocornut
6c022f9bf1 IO, Inputs: rename SetMousePos() to TeleportMousePos(). (#6837, #228) 2023-09-18 17:11:10 +02:00
ocornut
ff36fe365e IO, Inputs: setting io.WantSetMousePos ignores incoming MousePos events. (#6837, #228)
Allow easily implementing wrapping behaviors.
2023-09-18 17:07:35 +02:00
ocornut
ef8ff1b5d8 TabBar, Style: added style.TabBarBorderSize and associated ImGuiStyleVar_TabBarBorderSize. (#6820, #4859, #5022, #5239)
Cherry-picked from docking's 64b1e44
2023-09-18 15:29:42 +02:00
ocornut
64b1e448d2 TabBar, Style: added style.TabBarBorderSize and associated ImGuiStyleVar_TabBarBorderSize. (#6820, #4859, #5022, #5239)
Removed ImGuiTabItemFlags_Preview. Will need cherry-picking in master.
2023-09-18 15:28:44 +02:00
ocornut
ac3bc73c13 Docking: Fixed node tab-bar not having a filled value for tab-bar which is required for claiming moue wheel ownership in (unenabled) ImGuiTabBarFlags_FittingPolicyScroll mode.
Amend 5f30191
2023-09-18 14:32:23 +02:00
ocornut
72d760ba00 Docking: (Breaking) renamed ImGuiDockNodeFlags_NoDockingInCentralNode -> ImGuiDockNodeFlags_NoDockingOverCentralNode, ImGuiDockNodeFlags_NoSplit -> ImGuiDockNodeFlags_NoDockingSplit.
Shuffled other internal flags and added comments.
2023-09-18 12:27:29 +02:00
ocornut
f693c3d806 Docking: made "ImGuiDockNodeFlags_NoDocking" a combination of all others ImGuiDockNodeFlags_NoDockingXXX flags. (#2999, #6823, #6780, #3492) 2023-09-18 11:27:44 +02:00
ocornut
7e246a7bb9 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2023-09-16 13:51:51 +02:00
ocornut
1612813114 Docking: Internals: added ImGuiDockNodeFlags_NoUndocking. (#2999, #6823, #6780) 2023-09-15 20:44:26 +02:00
ocornut
b101cf46b6 ListBox, Combo: Changed signature of "name getter" callback in old one-liner ListBox()/Combo() apis. 2023-09-15 18:43:04 +02:00
ocornut
8a2cd81091 TypingSelect: always enable nav highlight.
Otherwise in non multi-select contexts as nav dosn't automatically select result would not always be visible.
2023-09-15 16:58:06 +02:00
ocornut
661a70fc79 TypingSelect: fast switch between characters in + debug, internal renames.
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2023-09-14 17:45:54 +02:00
ocornut
c86ce70968 Internal: Nav,MultiSelect: import ImGuiSelectionUserData, SetNextItemSelectionUserData() from MultiSelect. Track NavLastValidSelectionUserData as a convenience. 2023-09-12 20:29:36 +02:00
ocornut
9714594c35 Tooltips: made using SetItemTooltip()/IsItemHovered(ImGuiHoveredFlags_ForTooltip) defaults to activate tooltips on disabled items.. (#1485) 2023-09-12 11:55:34 +02:00
ocornut
6eb2681c09 Internals: InitOrLoadWindowSettings() clear Size again for better data nuking in tests. Debug Log: added ImGuiDebugLogFlags_OutputToTestEngine flag. 2023-09-11 20:41:09 +02:00
ocornut
357f752bed Docs: add more links to the top of every examples and backends files. 2023-09-11 14:01:40 +02:00
ocornut
b9ab6e2019 Nav: Tabbing always enable nav highlight when ImGuiConfigFlags_NavEnableKeyboard is set. (#6802, #3092, #5759, #787) 2023-09-11 12:12:14 +02:00
ocornut
72dbe45adc Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_win32.cpp
#	imgui.cpp
2023-09-08 18:02:06 +02:00
ocornut
7812039402 ImVector: Added find_index() helper. 2023-09-08 16:57:48 +02:00
ocornut
44a6b493ee Commented out obsolete ImDrawCornerFlags_XXX. Commented out runtime support for hardcoded ~0 or 0x01..0x0F rounding flags values for AddRect()/AddRectFilled()/PathRect()/AddImageRounded()
Amend 5185329, 3f5b2a3, c2d6d26, 39432bf, 033dfd9
2023-09-08 12:14:11 +02:00
ocornut
becd75676f Commented out obsolete redirecting function: GetWindowContentRegionWidth(). 2023-09-08 11:28:17 +02:00
ocornut
727c462069 Internals: Added ImTextFindPreviousUtf8Codepoint() helper + comments. 2023-09-08 11:28:13 +02:00
ocornut
fb9b006865 Version 1.90 WIP 2023-09-05 16:46:52 +02:00
ocornut
1d8e48c161 Using range-based for where it makes sense. (#4537)
Amend 82d177c
2023-09-04 15:13:12 +02:00
ocornut
a1b60fc1f5 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_demo.cpp
2023-09-04 14:59:59 +02:00
ocornut
fef3389157 Version 1.89.9 2023-09-04 14:30:32 +02:00
ocornut
e8a5c9e1b8 Tables: Made it possible to change style.CellPadding.y between rows. Added demo. 2023-09-04 11:23:54 +02:00
ocornut
3816d478df ImDrawList: small debug-mode optimization when calling AddRect() without rounding + Selectable: small debug-mode optimization.
# Conflicts:
#	imgui_widgets.cpp
2023-09-01 15:25:47 +02:00
ocornut
303dc091b4 Revert "IO: ImGuiMod_Shortcut (Ctrl/Cmd depending on platform) is reflected in io.KeyMods. (#5923, #456)"
This reverts commit b8f93a8fe0. Too breaking for user.
2023-09-01 12:24:15 +02:00
ocornut
b8f93a8fe0 IO: ImGuiMod_Shortcut (Ctrl/Cmd depending on platform) is reflected in io.KeyMods. (#5923, #456) 2023-09-01 12:15:08 +02:00
ocornut
a066074054 Clipper: Fixed a bug if attempt to force-include a range which matches an already included range. (#3841) 2023-08-31 21:39:27 +02:00
ocornut
bdd9b96fa3 Demo: Reorganized "Examples" menu. Tweak Property Editor. 2023-08-31 20:04:43 +02:00
ocornut
300464a487 Docking: when io.ConfigDockingWithShift is enabled, staying stationary while moving a window displays an help tooltip to increase affordance. (#6709, #4643)
Hope this doesn't feel spammy?
2023-08-30 17:45:06 +02:00
ocornut
7d6e83efca Docking: Fixed non-root dockspace not having their background rendered properly.
Fix f422e78. Fuller version of 08b3a1a pushed in master.
2023-08-30 15:26:46 +02:00
ocornut
08b3a1a34a ImDrawList: Automatically calling ChannelsMerge() if not done after a split.
Ties fixing f422e78 in docking: iterating root windows was incorrect. Will be faster to lazily merge in RenderDimmedBackground() rather than iterate all.
2023-08-30 15:22:36 +02:00
ocornut
82d177ccbd Using range-based for where it makes sense. (#4537) 2023-08-28 12:21:44 +02:00
ocornut
762ec445e6 Docking: Fixed bad bug, dock node host wouldn't merge background. (#6753, #6716)
Fixes f422e78. Didn't crash because g.Windows[] is always larger than g.WindowsFocusOrder[].
2023-08-28 11:25:50 +02:00
ocornut
33ea1e8b78 ColorEdit, ColorPicker: Manipulating options popup don't mark item as edited. (#6722) 2023-08-28 10:38:13 +02:00
ocornut
f617fe7890 Clipper: Renamed IncludeRangeByIndices()/ForceDisplayRangeByIndices() to IncludeItemsByIndex(). (#6424, #3841)
Single item version added in prevous commit (2000537) renamed to IncludeItemByIndex() too.
2023-08-25 18:22:54 +02:00
ocornut
61d35972e2 CloseButton, CollapseButton: don't include FramePadding into size. Use ItemInnerSpacing.x between title bar buttons. Amend for Docking. (#6749) 2023-08-25 14:29:42 +02:00
ocornut
676497fe05 Merge branch 'master' into docking
ac64b65 on master seemed incorrect.

# Conflicts:
#	docs/CHANGELOG.txt
#	imgui.cpp
#	imgui_internal.h
#	imgui_widgets.cpp
2023-08-25 14:20:51 +02:00
ocornut
4a81424492 CloseButton, CollapseButton: don't include FramePadding into size. Use ItemInnerSpacing.x between title bar buttons. (#6749) 2023-08-25 14:14:34 +02:00
Diego Mateos
040e818d72
Fix typo in SameLine comment (#6745) 2023-08-23 10:11:42 +02:00
ocornut
ba1fa904a9 IO: Exposed io.PlatformLocaleDecimalPoint to configure decimal point ('.' or ','). (#6719, #2278)
Amend 13f718337
2023-08-17 13:12:21 +02:00
Rick Huang
a6857ede03 IO: fix writing to incorrect union section for MouseSource in AddMousePosEvent and AddMouseButtonEvent. (#6727, #2702)
Technically may have had no side-effects unless non-standard alignment used.
2023-08-16 17:50:11 +02:00
ocornut
d2c7cbcbf9 Misc: Made multiple calls to Render() during the same frame early out faster. 2023-08-14 16:23:04 +02:00
ocornut
ac64b65634 Render: draw dimmed background earlier to match docking code. (#6716)
Amend f422e78
2023-08-14 16:21:12 +02:00
ocornut
f422e7826f ImDrawData: Fixed an issue where TotalVtxCount/TotalIdxCount does not match the sum of individual ImDrawList's buffer sizes. (#6716)
Amend dbeeeae59
2023-08-14 16:12:15 +02:00
ocornut
1362fc0c56 Debug, Internals: Added DebugDrawCursorPos(), DebugDrawLineExtents() helpers. 2023-08-09 11:14:44 +02:00
ocornut
63b6300c39 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui.h
#	imgui_internal.h
2023-08-08 14:16:13 +02:00
ocornut
bc3c0ce772 Nav, TreeNode: Pressing Left with ImGuiTreeNodeFlags_NavLeftJumpsBackHere now goes through proper navigation logic: honor scrolling and selection. (#1079, #1131)
Added a stack for this purpose which other features might build on (e.g. #2920). However this is currently gated by many tests and not a performance concern, but making stack happen all the time may be undesirable.
2023-08-08 14:07:00 +02:00
ocornut
226923fa7e Metrics: Fixed "Drawlists" section and per-viewport equivalent appearing empty (regression from c649aca).
(#6597, #6475, #6167, #5776, #5109, #4763, #3515, #1860)
2023-08-06 20:30:07 +02:00
ocornut
cf3726bcbc Internals: rename bg/fg drawlist holders in structs to reduce confusion. 2023-08-06 19:46:27 +02:00
ocornut
d6d94d90bf Version 1.89.9 WIP
+ Minor typo fixes
2023-08-03 19:19:21 +02:00
ocornut
f8704cd085 Merge branch 'master' into docking 2023-08-01 13:11:26 +02:00
ocornut
f7eea63872 Version v1.89.8 2023-08-01 12:53:57 +02:00
ocornut
30594c37d0 Merge branch 'master' into docking 2023-08-01 10:22:21 +02:00
septag
f1781c20a3 Added IMGUI_DISABLE_STB_SPRINTF_IMPLEMENTATION config macro to disable stb_sprintf implementation (#6626) 2023-07-25 12:07:32 +02:00
ocornut
f8f805f046 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_dx10.cpp
#	backends/imgui_impl_dx11.cpp
#	backends/imgui_impl_dx12.cpp
#	backends/imgui_impl_dx9.cpp
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_opengl2.cpp
#	backends/imgui_impl_opengl3.cpp
#	backends/imgui_impl_osx.mm
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	backends/imgui_impl_vulkan.cpp
#	backends/imgui_impl_win32.cpp
2023-07-20 23:18:47 +02:00
ocornut
db66e33e9e Tables: fixed GetContentRegionAvail().y report not taking account of lower cell padding or of using ImGuiTableFlags_NoHostExtendY. (#6619)
Made GetContentRegionMax() fully defer to WorkRect when inside a table container.
2023-07-20 13:26:58 +02:00
ocornut
2bc5d17ac3 Tables: fixed calculation of multi-instance shared decoration/scrollbar width of scrolling tables. (#5920, #6619)
Avoid width variation when resizing down a table hosting a child window.
+ shallow tweak to GetContentRegionMax().
2023-07-20 12:01:29 +02:00
ocornut
d342ec10cc Overlap, IsItemHovered: clarification on using IsItemHovered() on a non-reactive item after a reactive overlappable one. (#6610) 2023-07-18 11:18:58 +02:00
ocornut
0e8eb8c48e Removed _MSC_VER <= 1500 checks for Visual Studio 2008 or earlier.
Our codebase requires VS2012+ since a while.
2023-07-13 12:38:16 +02:00
ocornut
863ac31f01 Doc: various tweaks + tweak imconfig comments. 2023-07-13 12:38:16 +02:00
ocornut
023e59a5f2 ImDrawData: call _PopUnusedDrawCmd() later. as RenderDimmedBackgrounds() rely on a valid command being there (especially in docking branch). (#6406, #4879, #1878)
Amend/fix dbeeeae for docking.
+ Build fix when using IMGUI_DISABLE_DEBUG_TOOLS
2023-07-12 18:40:04 +02:00
ocornut
6888e6cdff ImDrawData: call _PopUnusedDrawCmd() later. as RenderDimmedBackgrounds() rely on a valid command being there (especially in docking branch). (#6406, #4879, #1878)
Amend/fix dbeeeae for docking.
+ Build fix when using IMGUI_DISABLE_DEBUG_TOOLS
2023-07-12 18:39:48 +02:00
ocornut
0110f4c8cc Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui.h
#	imgui_internal.h
2023-07-12 18:19:24 +02:00
ocornut
dbeeeae593 ImDrawData: Slight refactor so internal logic uses same logic as AddDrawList(). (#6406, #4879, #1878)
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2023-07-12 18:11:42 +02:00
ocornut
1a9ddd2396 ImDrawData: added AddDrawList() helper function. (#6406, #4879, #1878) 2023-07-12 18:11:42 +02:00
ocornut
c649aca20a ImDrawData: changed CmdLists from raw array to ImVector<> owned by ImDrawData itself. Faclitate user-manipulation of the array (#6406, #4879, #1878) + deep swap. (#6597, #6475, #6167, #5776, #5109, #4763, #3515, #1860)
+ Metrics: avoid misleadingly iterating all layers of DrawDataBuilder as everything is flattened into Layers[0] at this point.

# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2023-07-12 18:11:42 +02:00
ocornut
cc4c37dbac Nav: PageUp/PageDown always set NavJustMovedTo even when landing on same spot (which can trigger a selection).
This is mostly expected for range-select.
+ Rename ImGuiNavMoveFlags_Tabbing -> ImGuiNavMoveFlags_IsTabbing
2023-07-11 16:49:26 +02:00
ocornut
51b348095c Docking, Style: resizing separators use same colors as window borders. (#2522) 2023-07-11 15:17:54 +02:00
ocornut
f4942bca32 Docking: follow to 27c735e to fix rendering of docked-window scrollbar above outer border. (#2522) 2023-07-11 15:01:20 +02:00
ocornut
f6feddd1ee Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
2023-07-11 12:44:15 +02:00
ocornut
b79751ebad Docking: Added DockingSeparatorSize to style: amends (#3481, #4721, #2522)
Add ImGuiStyleVar_DockingSeparatorSize + misc Docking related comments.
2023-07-11 12:43:50 +02:00
PossiblyAShrub
a5aff5fd3e Docking: Added DockingSeparatorSize to style (#3481, #4721, #2522)
(DockingSplitterSize in current commit, about to be renamed)
2023-07-11 12:37:40 +02:00
ocornut
140726d23f Fixed CTRL+Tab dimming background assert when target window has a callback in the last ImDrawCmd. (#4857, #5937) 2023-07-10 15:10:42 +02:00
ocornut
6aa408c6af IO: Added io.ClearEventsQueue(). Obsoleted io.ClearInputCharacters(). (#4921)
cc #2425 #1153 #1600
2023-07-06 15:55:17 +02:00
ocornut
3fe4319314 Version 1.89.8 WIP 2023-07-05 14:17:46 +02:00
ocornut
677c7b2258 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_vulkan.cpp
#	docs/CHANGELOG.txt
#	docs/TODO.txt
2023-07-04 14:58:03 +02:00
ocornut
cb9015e254 Version 1.89.7 2023-07-04 14:56:09 +02:00
ocornut
1029f57b8a Inputs, Tooltip: Rework stationary timer logic as it broke on high-framerates with lower rate of mouse inputs. (#1485) 2023-07-03 12:17:46 +02:00
ocornut
655aae5911 Comments + docs: tidying up todo list + demo tweak for tooltips. 2023-06-30 14:58:49 +02:00
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
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
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
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
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