Commit Graph
100 Commits
Author SHA1 Message Date
ocornut 4b39c1f654 Docs: adding Tests badge + more references to Test Engine. 2023-01-03 20:26:26 +01:00
ocornut 156e0a8070 Demo: amend Selectable() + BeginPopupContextItem() demo to maintain and update selection state when popup is open. (#6032) 2023-01-02 18:01:57 +01:00
ocornut 52c61deaf9 Happy new year! 2023-01-02 14:42:12 +01:00
ocornut 59b63defe5 Misc shallow merge/sync from docking designed to faciliate cross-merging between docking and string_view. 2022-12-08 21:14:39 +01:00
ocornut 317b33d647 Tables: fixed matching width of synchronized tables when only some (not all) instances have a vertical scrollbar. (#5920) 2022-12-08 20:06:26 +01:00
ocornut 0949acb6e6 Shortcut: added Shortcut() function and ImGuiInputFlags in public API + Demo. (#456, #2637) 2022-12-08 18:54:41 +01:00
ocornut 1dae7df26f Misc: added GetItemID() in public API. 2022-12-08 18:45:04 +01:00
ocornut 48215231f9 Demo: moved WantCapture overrides items + various comments related to ImGuiKey, ImGuiMod 2022-12-08 18:30:48 +01:00
ocornut 9d08506dce Tables, Nav: frozen columns are not part of menu layer and can be crossed over. (#5143, #3692)
Frozen rows (~header) still moving from menu to main layer based on freezing stat.e
2022-12-06 22:11:51 +01:00
ocornut fd0b3734d3 Tables, Nav, Scrolling: fixed scrolling functions and focus tracking with frozen rows and columns. (#5143, #4868, #3692) 2022-12-06 21:07:50 +01:00
ocornut 16cee3d009 Internals: tidying up and standardizing outer decoration size storage. (toward #5143, #4868, #3692, #3518)
This is not strictly required presently, but will be consistent with adding inner decoration sizes in next commit, as well as generally being sane.
Locking TitleBarHeight() / MenuBarHeight() values per-window probably have side-effects in ill-defined situation related to changing font size per window.
2022-12-06 21:07:47 +01:00
ocornut 820b1e651a Internals: reduced duplicate code in CalcNextScrollFromScrollTargetAndClamp() by looping through axiees. 2022-12-06 18:35:12 +01:00
ocornut 24b873a740 Internals: renaming inside ScrollToRectEx() + fixed misplaced changelog entry. 2022-12-06 18:22:59 +01:00
ocornut ed54e14f1b Refactor: moved UpdateAliasKey(), GetMergedModsFromKeys(), UpdateKeyboardInputs(), UpdateMouseInputs() to INPUTS section. 2022-12-06 12:21:18 +01:00
ocornut f83da768b6 Refactor: moved LockWheelingWindow(), FindBestWheelingWindow(), UpdateMouseWheel() to INPUTS section 2022-12-06 12:21:18 +01:00
ocornut f9ab2a0e9f Refactor: moved UpdateKeyRoutingTable() to INPUTS section. renamed GetKeyVector2d() -> GetKeyMagnitude2d() 2022-12-06 12:21:17 +01:00
ocornut 38a0d7ceb5 Refactor: added INPUTS section index, moved IsMouseHoveringRect() to INPUTS section. 2022-12-06 12:21:17 +01:00
ocornut b5883c1cfb Refactor: moved bits into Initialization section. 2022-12-06 12:21:17 +01:00
ocornut 713e034d95 Backends: OpenGL3: Fix for zealous warning. (#5947)
Consider moving to imgui_impl_opengl3_loader.h ?
2022-12-03 15:12:20 +01:00
ocornut 844e0ae688 Fixes/amend 9825f7f + amend Changelog (#4857, #5937) 2022-12-01 20:19:26 +01:00
ocornut 0e2a167bdb Fonts: added a 'void* UserData' field in ImFontAtlas, as a convenience for use by applications using multiple font atlases.
+ fixed mislocated Changelog entries added recently.
2022-12-01 20:10:37 +01:00
ocornut 9825f7fa87 Fixed cases where CTRL+Tab or Modal can occasionally lead to the creation of ImDrawCmd with zero triangles. (#4857, #5937)
Amend b0a6cd6
2022-12-01 18:40:36 +01:00
ocornut 45736443be Debug Tools: Metrics: added "Inputs" section, moved from Demo for consistency. 2022-11-30 20:14:52 +01:00
ocornut 87caf27ac4 Inputs, Scrolling: better selection of scrolling window when hovering nested windows and backend/OS is emitting dual-axis wheeling inputs. (#3795, #4559) 2022-11-30 17:49:59 +01:00
ocornut a5f3596e6c Backends: Allegro5: use al_draw_indexed_prim() or al_draw_prim() depending on version. (#5937)
+ OSX comments (#5938)
Amend 185b4dde + 50aeeff
2022-11-30 14:46:45 +01:00
ocornut bf4c2e00c0 Docs: retroactively update 1.89 changelog/docs to clarify that strong typing ImGuiKey was technically a breaking change for users of legacy indices. (#4921)
Amend 4b522e145
2022-11-29 21:36:59 +01:00
ocornut cc3a2200a9 Internals: invert logic of mods key<>bool translation to facilitate other experiments and put emphasis on new API. (#5923, #4921)
Should be no-op, this is mostly to make it easier to store state for ImGuiMod_Shortcut.
2022-11-29 19:07:50 +01:00
ocornut 1a497c2499 Inputs, IO: reworked ImGuiMod_Shortcut to redirect to Ctrl/Super at runtime instead of compile-time. (#5923, #456) 2022-11-29 19:07:50 +01:00
ocornut bd96f6eac4 Text: Fixed layouting of wrapped-text block when the last source line is above the clipping region. Regression added in 1.89. (#5720, #5919)
+ Update version marker
2022-11-28 14:59:13 +01:00
ocornut 6af38b1a43 Fixed version string for consistency (#5918) 2022-11-28 14:42:30 +01:00
ocornut a8df192df0 Version 1.89.1 2022-11-24 21:24:33 +01:00
ocornut 27c58c3946 Scrolling, Focus, Combo: fixed SetKeyboardFocusHere()/SetItemDefaultFocus()/ScrollToRectEx() during an appearing form not centering item. (#5902, #2812, #4242, #2900)
Amend 44f801186 and 8f495e554
2022-11-24 20:57:41 +01:00
ocornut 856c6314ec Drag and Drop: fixed GetDragDropPayload() returning a non-NULL value before payload is submitted. (#5910, #143)
+ Added test "widgets_dragdrop_new_payloads" in Test Suite.
2022-11-23 17:58:14 +01:00
ocornut ffe0abbfc2 Internals: added basic localization system (#5895) 2022-11-23 16:05:16 +01:00
ocornut c3d9f8ee7e Layout: fixed End()/EndChild() incorrectly asserting if users manipulates cursor position inside a collapsed/culled window and IMGUI_DISABLE_OBSOLETE_FUNCTIONS is enabled. (#5548, #5911) 2022-11-23 15:18:59 +01:00
ocornut 3a685749cb ColorEdit: fixed label overlapping when using style.ColorButtonPosition == ImGuiDir_Left. (#5912)
Amend 54fb051e5
+ Internals: added IsKeyboardKey(), IsMouseKey() helpers.
2022-11-23 15:00:50 +01:00
ocornut 16476f99fd Backends: GLFW: cancel out errors emitted by glfwGetKeyName() when a name is missing. (#5908) 2022-11-22 18:08:25 +01:00
ocornut 5bb2874940 Version 1.89.1 WIP 2022-11-16 17:55:27 +01:00
ocornut 7bee9a8f96 Inputs: fixed moving a window or drag and dropping from preventing input-owner-unaware code from accessing keys. (#5888, #4921, #456)
Amend 4448d97. This is more consistent with input owner design.
2022-11-16 17:53:35 +01:00
ocornut d60985df7f Inputs: fix moving a window or drag and dropping from capture mods. (#5888, #4921, #456)
Amend change of SetActiveIdUsingAllKeyboardKeys() in 4448d97 which seemingly accidentally reverted the change intended by fd408c97
2022-11-16 17:41:24 +01:00
ocornut 83cee9e091 InputText: replaced some uses of SetKeyOwner() + IsKeyPressed() with Shortcut()
Which makes it easier to hook/disable those keys from outside if needed.
2022-11-16 17:09:14 +01:00
ocornut 81160fee56 Version 1.89
+ fix warning from a582d92
2022-11-15 15:20:36 +01:00
ocornut a582d92c31 Inputs: modulate wheel lock timer for small amount of wheeling. Slightly lower timer. (#3795) 2022-11-15 14:19:29 +01:00
ocornut 7380b9816e Scrolling: Exposed SetNextWindowScroll() in public API. (#1526) 2022-11-09 17:03:07 +01:00
ocornut cda26635cd Inputs: refacotr/extract CalcRoutingScore() out of SetShortcutRouting(), easier to follow with early returns.
+ clarified comments about GetMouseCursor() #5739
2022-11-09 16:35:50 +01:00
ocornut b8b0f9d02e Backends: OpenGL3: Reverted use of glBufferSubData(). (#4468, #4504, #3381, #2981, #4825, #4832, #5127) 2022-11-09 15:57:54 +01:00
ocornut f0ad810553 Inputs: tweak comments, typos. 2022-11-08 22:41:45 +01:00
ocornut 637ddfce09 Inputs, Nav: made it possible to remap CTRL+Tab (#4828, #3255, #5641) 2022-11-08 20:38:49 +01:00
ocornut 6c9c4879d9 Inputs: made Shortcut() routing id defaults to current FocusScope ID. (#456, #2637, #3724)
One idea being that this value can be easily locked (for blind menus) or manipulated (for queries from outside).
2022-11-08 20:37:58 +01:00
ocornut d576724bfd Inputs: made ImGuiInputFlags_RouteFocused the default for Shortcut(). (#456, #2637, #3724) 2022-11-08 20:37:58 +01:00
ocornut 4d6a9ef93f Inputs: added routing priorities. (#456, #2637, #3724)
- and ImGuiInputFlags_RouteUnlessBgFocused
- will be useful for blind menu handlers.
2022-11-08 20:37:58 +01:00
ocornut 7ff2d3353c Inputs: added wip/experiment routing system: Shortcut(), RoutingFocused policy, SetShortcutRouting(). (#456, #2637, #3724)
- InputText() uses Shortcut().
2022-11-08 20:37:58 +01:00
ocornut c59ebb2d71 Inputs: added basic Shortcut() function - no routing yet. (#456) 2022-11-08 20:37:58 +01:00
ocornut 8c95c084cb Inputs: changed specs of SetKeyOwner() to alter OwnerCurr immediately.
Note the removed comments (hence not squashing)
Amend 4448d97
(#456, #2637, #2620, #2891, #3370,, #4828, #5108, #5242, #5641)
2022-11-08 20:37:58 +01:00
ocornut 4448d975d1 Inputs: added wip/internal Input Owner system. (#456, #2637, #2620, #2891, #3370, #4828, #5108, #5242, #5641)
- Added SetKeyOwner(), SetItemKeyOwner(), TestKeyOwner().
- Added new IsKeyXXX IsMouseXXX functions with ImGuID owner_id and flags.
- Obsoleted SetItemUsingMouseWheel(). (#2891)
- Removed IsKeyPresseedEx() which was a recent internal addition 2022-07-08 deemed to be temporary exactly for this.
- Added ImGuiButtonFlags_NoSetKeyOwner, ImGuiButtonFlags_NoTestKeyOwner
- Added ImGuiSelectableFlags_NoSetKeyOwner.
- Added ImGuiInputFlags_LockThisFrame, ImGuiInputFlags_LockUntilRelease for for SetKeyOwner(), SetItemKeyOwner().
- Added ImGuiInputFlags_CondXXX values for SetItemKeyOwner().
2022-11-08 18:47:36 +01:00
ocornut 44d98bfd6d Fix build with IMGUI_DISABLE_DEBUG_TOOLS 2022-11-04 16:35:57 +01:00
ocornut 529cba19b0 Debug Tools: Added DebugLocateItem()/DebugLocateItemOnHover() to visually locate items when hovering a 0xXXXXXXXX value. (#5855, #2673, #4631) 2022-11-04 16:06:34 +01:00
ocornut 7109f32f96 Internals: tidying up and stripping more of focus scope code. 2022-11-04 12:19:23 +01:00
ocornut 9f66a3a9ed Internals: rework FocusScope system, current scope doesn't need to be in window + child doesn't inherit.
Intended as part of work for input routing + blind menu processing shortcuts. Some of this commit will be stripped by next commit.
Intent was to sort windows along with focus scope to build a hierarchy, but for our needs we'd need a persistant one, so scrapping the idea. Not squashing this with next commit to keep a bit of history for future references.
2022-11-04 12:19:20 +01:00
ocornut 1eac0024c0 InputText: copy and select all shortcuts don't need repeat (tho it was harmless0 2022-11-03 18:33:43 +01:00
ocornut 90e9465fa5 Window: Fixed position not being clamped while auto-resizing (#5843) 2022-11-02 12:36:41 +01:00
ocornut 6e9dfe1de1 Window: Auto-fit size takes account of work rectangle (menu bars eating from viewport). (#5843) 2022-11-02 12:36:22 +01:00
ocornut 22bcfca700 IO: Clear AppFocusLost in EndFrame() in order to allow backend or application code to poll and react to it
+ Amend a241dc7 with the same clearing of MouseDownDuration[] as keyboard ones.
2022-10-28 20:01:20 +02:00
ocornut a241dc7990 IO: Fixed AddFocusEvent(false) to also clear MouseDown[] state. (#4921) 2022-10-27 20:17:19 +02:00
ocornut a61bbdc239 Commented out redirecting OpenPopupContextItem() which was briefly the name of OpenPopupOnItemClick() from 1.77 to 1.79. 2022-10-26 22:22:53 +02:00
ocornut baea25e657 Drag and Drop: extracted a RenderDragDropTargetRect() function (#1603) 2022-10-25 15:54:22 +02:00
ocornut 431fc6a7f6 Internals: using ItemAdd() consistently for internal items: windows & tables resize grips/borders, ScrollbarEx().
This put an extra flag check in ItemAdd() but essentially reduce inconsistency with windows decorations not using this. Useful for debugging.
It however buries the info/blurs the line about what it means to not use ItemAdd() since they are now doing it much less.
2022-10-24 22:54:29 +02:00
ocornut 178aee4b1c Debug Tools: Debug Log: add and use ImGuiTextLineIndex.
This is needed for next commit where we want to parse hovered Debug Log line.
2022-10-24 21:23:59 +02:00
ocornut 578df14f27 CI: Remove left-over discord stuff. 2022-10-24 12:02:06 +02:00
ocornut f6bd7c8e53 Debug Tools: Item Picker: remove IMGUI_DEBUG_TOOL_ITEM_PICKER_EX since it doesn't work on non-ItemHoverable() items anyway. (#2673)
Call stack difference not meaningful.
2022-10-21 18:32:40 +02:00
ocornut bc918404fe Internals: using ImToUpper() since std one does too many things.
As a bonus side-effect may remove reliance on ctype.h (will see if CI complains)
2022-10-21 16:13:52 +02:00
ocornut 9a35bfea39 Internals: added temporary ImGuiItemStatusFlags_Visible (used internally - please do not use).
Used by BeginMenu() as I'm experimenting with blind menus honoring shortcuts.
Extra comments about KeyMap and ImGuiKeys
2022-10-21 14:57:10 +02:00
ocornut e3fa56ae05 BeginMenu(): Menus: Fixed a one-frame issue where SetNextWindowXXX data are not consumed by a BeginMenu().
+ Shallow tweaks to reduce diff of future branches. Removing early return also facilitate some changes.
2022-10-19 14:12:04 +02:00
ocornut 5ac94ad898 Window: Fixed an issue where uncollapsed a window would show a scrollbar for a frame.
Amend / fix regression from 6e8e2c0
2022-10-18 16:43:38 +02:00
ocornut ab6e48b833 Backends: GLFW: Perform a dummy glfwGetError() read to cancel missing mouse cursors errors. (#5785) 2022-10-18 12:21:31 +02:00
ocornut 08752b372e Menus, Popups: Experimental fix for issue where clicking on an open BeginMenu() item called from a window which is neither a popup neither a menu used to incorrectly close and reopen the menu. (#5775)
This works by moving the ClosePopupsOverWindow() in FocusWindow() in the if() block which luckily solves our problem.
In our test suite I couldn't find situation where this had side-effect others than BeginMenu() using the 'menuset_is_open' trick.
It's difficult to tell if other side-effects are possible: a window being already focused should mean it doesn't have popups overit.
Effectively this means that clicking e.g. on the BeginMenu() item to close a menu in a menu-bar now relies on BeginMenu() logic for the closure rather than FocusWindow() triggerd by button behavior.
2022-10-14 18:47:00 +02:00
ocornut 81176737f8 Menus: Fixed using IsItemHovered()/IsItemClicked() on BeginMenu(). (#5775) 2022-10-14 17:39:04 +02:00
ocornut 3920b1c764 Removed commented out old flags from when Tables was a branch.
ImGuiTableFlags_ColumnsWidthFixed, ImGuiTableFlags_ColumnsWidthStretch,
ImGuiTableFlags_SizingPolicyFixed, ImGuiTableFlags_SizingPolicyStretch
ImGuiTableColumnFlags_WidthAuto
2022-10-14 16:36:41 +02:00
ocornut b15347cb7d Tables: activating an ID (e.g. clicking button inside) column doesn't prevent columns output flags from having ImGuiTableColumnFlags_IsHovered set. (#2957) 2022-10-13 15:15:42 +02:00
ocornut 3e8d198133 Removed runtime patching of obsolete/invalid "%f"/"%.0f" types of format strings for DragInt()/SliderInt(). 2022-10-12 23:09:09 +02:00
ocornut c54230d14e Backends: Using nullptr instead of NULL. (#5760, #4537) + fix additional warnings. 2022-10-11 12:35:41 +02:00
ocornut 8a44c31c95 Scrolling: Further reduce unrelease mouse-wheel locked window timer + misc refactor (#2604, #3795, #4559)
The refactor are designed to minimize the diff for changes needed for #3795
2022-10-06 20:17:28 +02:00
ocornut dfa1bb0ac7 Backends: OSX: Fixed mouse inputs on flipped views. (#5756) 2022-10-06 14:28:14 +02:00
ocornut 85a368b58d Fixed ImGuiWindowFlags_UnsavedDocument clipping label in docked windows with no close button. (#5745)
+ TabBar: starts displaying the unsaved document marker with a frame delay to match how close button is processed, otherwise the transition would be noticeable.
2022-10-04 18:03:56 +02:00
ocornut c7d3d22ae1 Scrolling: Mitigated issue where multi-axis mouse-wheel inputs (usually from touch pad events) are incorrectly locking scrolling in a parent window. (#4559, #3795, #2604) 2022-10-04 15:41:57 +02:00
ocornut 80a870a3e5 Scrolling: Tweak mouse-wheel locked window timer so it is shorter but also gets reset whenever scrolling again (#2604) + small refactor
Somehow interesting for (#3795, #4559). sorry this will break PR for 3795 but we got the info.
2022-10-04 15:34:17 +02:00
ocornut 282b2b5afb Backends: Vulkan: Fix building with VK_NO_PROTOTYPES. (#914, #5738).
Amend a588f00
2022-10-04 12:30:45 +02:00
ocornut a588f00f7b Backends: Vulkan: Added experimental ImGui_ImplVulkan_RemoveTexture() for api symetry. (#914, #5738). 2022-10-04 12:02:48 +02:00
ocornut f2a522d70d ImDrawList: Not using alloca() anymore, lift single polygon size limits. (#5704, #1811) 2022-09-30 15:58:55 +02:00
ocornut cc5058e5d7 IO: Filter duplicate input events during the AddXXX() calls. (#5599, #4921) 2022-09-29 22:01:11 +02:00
ocornut fac8295d6e IO: remove ImGuiInputEvent::IgnoredAsSame (revert part of 839c3100), will filter earlier in next commit. (#5599)
Making it a separate commit as this leads to much indentation change.
2022-09-29 22:00:38 +02:00
ocornut 9e7f460c09 Fixed GetKeyName() for ImGuiMod_XXX values, made invalid MousePos display in log nicer. (#4921, #456)
Amend fd408c9
2022-09-29 22:00:35 +02:00
ocornut 0749453355 Menus, Nav: Fixed not being able to close a menu with Left arrow when parent is not a popup. (#5730) 2022-09-29 19:51:54 +02:00
ocornut 9f6aae3bf2 Nav: Fixed race condition pressing Esc during popup opening frame causing crash. 2022-09-29 19:48:27 +02:00
ocornut bd2355a047 Menus, Nav: Fixed using left/right navigation when appending to an existing menu (multiple BeginMenu() call with same names). (#1207) 2022-09-29 19:25:26 +02:00
ocornut 3532ed1621 Menus, Nav: Fixed keyboard/gamepad navigation occasionally erroneously landing on menu-item in parent when the parent is not a popup. (#5730)
Replace BeginMenu/MenuItem swapping g.NavWindow with a more adequate ImGuiItemFlags_NoWindowHoverableCheck.
Expecting more subtle issues to stem from this.
Note that NoWindowHoverableCheck is not supported by IsItemHovered() but then IsItemHovered() on BeginMenu() never worked: fix should be easy in BeginMenu() + add test is IsItemHovered(), will do later
2022-09-29 18:44:19 +02:00
ocornut d5d705069d Various comments
As it turns out, functions like IsItemHovered() won't work on an open BeginMenu() because LastItemData is overriden by BeginPopup(). Probably an easy fix.
2022-09-29 18:44:19 +02:00
ocornut d17627b9c6 InputText: leave state->Flags uncleared for the purpose of backends emitting an on-screen keyboard for passwords. (#5724) 2022-09-28 17:38:41 +02:00
ocornut 0a7054c7e4 Backends: Win32: Convert WM_CHAR values with MultiByteToWideChar() when window class was registered as MBCS (not Unicode). (#5725, #1807, #471, #2815, #1060) 2022-09-28 17:04:42 +02:00
ocornut a229a7f39f Examples: Win32: Always use RegisterClassW() to ensure windows are Unicode. (#5725) 2022-09-28 16:57:18 +02:00