mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Nav: Fixed an issue opening a menu with Right key from a non-menu window.
This commit is contained in:
		| @@ -86,6 +86,7 @@ Other Changes: | ||||
|   the gap between a menu item inside a window and a child-menu in a secondary viewport. (#5614) | ||||
| - Nav: Fixed moving/resizing window with gamepad or keyboard when running at very high framerate. | ||||
| - Nav: Pressing Space/GamepadFaceDown on a repeating button uses the same repeating rate as a mouse hold. | ||||
| - Nav: Fixed an issue opening a menu with Right key from a non-menu window. | ||||
| - Platform IME: [Windows] Removed call to ImmAssociateContextEx() leading to freeze on some setups. | ||||
|   (#2589, #5535, #5264, #4972) | ||||
| - Misc: better error reporting for PopStyleColor()/PopStyleVar() + easier to recover. (#1651) | ||||
|   | ||||
| @@ -7130,7 +7130,7 @@ bool ImGui::BeginMenuEx(const char* label, const char* icon, bool enabled) | ||||
|         // The 'HovereWindow == window' check creates an inconsistency (e.g. moving away from menu slowly tends to hit same window, whereas moving away fast does not) | ||||
|         // But we also need to not close the top-menu menu when moving over void. Perhaps we should extend the triangle check to a larger polygon. | ||||
|         // (Remember to test this on BeginPopup("A")->BeginMenu("B") sequence which behaves slightly differently as B isn't a Child of A and hovering isn't shared.) | ||||
|         if (menu_is_open && !hovered && g.HoveredWindow == window && !moving_toward_child_menu) | ||||
|         if (menu_is_open && !hovered && g.HoveredWindow == window && !moving_toward_child_menu && !g.NavDisableMouseHover) | ||||
|             want_close = true; | ||||
|  | ||||
|         // Open | ||||
| @@ -7207,6 +7207,7 @@ void ImGui::EndMenu() | ||||
|     // Nav: When a left move request _within our child menu_ failed, close ourselves (the _parent_ menu). | ||||
|     // A menu doesn't close itself because EndMenuBar() wants the catch the last Left<>Right inputs. | ||||
|     // However, it means that with the current code, a BeginMenu() from outside another menu or a menu-bar won't be closable with the Left direction. | ||||
|     // FIXME: This doesn't work if the parent BeginMenu() is not on a menu. | ||||
|     ImGuiContext& g = *GImGui; | ||||
|     ImGuiWindow* window = g.CurrentWindow; | ||||
|     if (g.NavMoveDir == ImGuiDir_Left && NavMoveRequestButNoResultYet() && window->DC.LayoutType == ImGuiLayoutType_Vertical) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user