mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 21:21:06 +01:00 
			
		
		
		
	Merge branch 'master' into navigation
# Conflicts: # imgui_internal.h
This commit is contained in:
		
							
								
								
									
										11
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -2374,6 +2374,8 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags) | |||||||
|             return false; |             return false; | ||||||
|     if (g.NavDisableMouseHover || !IsWindowContentHoverable(window, flags)) |     if (g.NavDisableMouseHover || !IsWindowContentHoverable(window, flags)) | ||||||
|         return false; |         return false; | ||||||
|  |     if (window->DC.ItemFlags & ImGuiItemFlags_Disabled) | ||||||
|  |         return false; | ||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -2393,6 +2395,8 @@ bool ImGui::ItemHoverable(const ImRect& bb, ImGuiID id) | |||||||
|         return false; |         return false; | ||||||
|     if (g.NavDisableMouseHover || !IsWindowContentHoverable(window, ImGuiHoveredFlags_Default)) |     if (g.NavDisableMouseHover || !IsWindowContentHoverable(window, ImGuiHoveredFlags_Default)) | ||||||
|         return false; |         return false; | ||||||
|  |     if (window->DC.ItemFlags & ImGuiItemFlags_Disabled) | ||||||
|  |         return false; | ||||||
|  |  | ||||||
|     SetHoveredID(id); |     SetHoveredID(id); | ||||||
|     return true; |     return true; | ||||||
| @@ -2413,7 +2417,7 @@ bool ImGui::FocusableItemRegister(ImGuiWindow* window, ImGuiID id, bool tab_stop | |||||||
| { | { | ||||||
|     ImGuiContext& g = *GImGui; |     ImGuiContext& g = *GImGui; | ||||||
|  |  | ||||||
|     const bool allow_keyboard_focus = (window->DC.ItemFlags & ImGuiItemFlags_AllowKeyboardFocus) != 0; |     const bool allow_keyboard_focus = (window->DC.ItemFlags & (ImGuiItemFlags_AllowKeyboardFocus | ImGuiItemFlags_Disabled)) == ImGuiItemFlags_AllowKeyboardFocus; | ||||||
|     window->FocusIdxAllCounter++; |     window->FocusIdxAllCounter++; | ||||||
|     if (allow_keyboard_focus) |     if (allow_keyboard_focus) | ||||||
|         window->FocusIdxTabCounter++; |         window->FocusIdxTabCounter++; | ||||||
| @@ -3179,7 +3183,7 @@ void ImGui::NewFrame() | |||||||
|         g.ModalWindowDarkeningRatio = 0.0f; |         g.ModalWindowDarkeningRatio = 0.0f; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Are we using inputs? Tell user so they can capture/discard the inputs away from the rest of their application. |     // Update the WantCaptureMouse/WantCAptureKeyboard flags, so user can capture/discard the inputs away from the rest of their application. | ||||||
|     // When clicking outside of a window we assume the click is owned by the application and won't request capture. We need to track click ownership. |     // When clicking outside of a window we assume the click is owned by the application and won't request capture. We need to track click ownership. | ||||||
|     int mouse_earliest_button_down = -1; |     int mouse_earliest_button_down = -1; | ||||||
|     bool mouse_any_down = false; |     bool mouse_any_down = false; | ||||||
| @@ -3189,7 +3193,7 @@ void ImGui::NewFrame() | |||||||
|             g.IO.MouseDownOwned[i] = (g.HoveredWindow != NULL) || (!g.OpenPopupStack.empty()); |             g.IO.MouseDownOwned[i] = (g.HoveredWindow != NULL) || (!g.OpenPopupStack.empty()); | ||||||
|         mouse_any_down |= g.IO.MouseDown[i]; |         mouse_any_down |= g.IO.MouseDown[i]; | ||||||
|         if (g.IO.MouseDown[i]) |         if (g.IO.MouseDown[i]) | ||||||
|             if (mouse_earliest_button_down == -1 || g.IO.MouseClickedTime[mouse_earliest_button_down] > g.IO.MouseClickedTime[i]) |             if (mouse_earliest_button_down == -1 || g.IO.MouseClickedTime[i] < g.IO.MouseClickedTime[mouse_earliest_button_down]) | ||||||
|                 mouse_earliest_button_down = i; |                 mouse_earliest_button_down = i; | ||||||
|     } |     } | ||||||
|     bool mouse_avail_to_imgui = (mouse_earliest_button_down == -1) || g.IO.MouseDownOwned[mouse_earliest_button_down]; |     bool mouse_avail_to_imgui = (mouse_earliest_button_down == -1) || g.IO.MouseDownOwned[mouse_earliest_button_down]; | ||||||
| @@ -3204,6 +3208,7 @@ void ImGui::NewFrame() | |||||||
|     g.OsImePosRequest = ImVec2(1.0f, 1.0f); // OS Input Method Editor showing on top-left of our window by default |     g.OsImePosRequest = ImVec2(1.0f, 1.0f); // OS Input Method Editor showing on top-left of our window by default | ||||||
|  |  | ||||||
|     // If mouse was first clicked outside of ImGui bounds we also cancel out hovering. |     // If mouse was first clicked outside of ImGui bounds we also cancel out hovering. | ||||||
|  |     // FIXME: For patterns of drag and drop between "application" and "imgui" we may need to rework/remove this test (first committed 311c0ca9 on 2015/02) | ||||||
|     if (!mouse_avail_to_imgui) |     if (!mouse_avail_to_imgui) | ||||||
|         g.HoveredWindow = g.HoveredRootWindow = NULL; |         g.HoveredWindow = g.HoveredRootWindow = NULL; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -665,7 +665,7 @@ enum ImGuiItemFlags_ | |||||||
| { | { | ||||||
|     ImGuiItemFlags_AllowKeyboardFocus           = 1 << 0,  // true |     ImGuiItemFlags_AllowKeyboardFocus           = 1 << 0,  // true | ||||||
|     ImGuiItemFlags_ButtonRepeat                 = 1 << 1,  // false    // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings. |     ImGuiItemFlags_ButtonRepeat                 = 1 << 1,  // false    // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings. | ||||||
|     //ImGuiItemFlags_Disabled                   = 1 << 2,  // false    // All widgets appears are disabled |     ImGuiItemFlags_Disabled                     = 1 << 2,  // false    // FIXME-WIP: Disable interactions but doesn't affect visuals. Should be: grey out and disable interactions with widgets that affect data + view widgets (WIP)  | ||||||
|     ImGuiItemFlags_NoNav                        = 1 << 3,  // false |     ImGuiItemFlags_NoNav                        = 1 << 3,  // false | ||||||
|     ImGuiItemFlags_NoNavDefaultFocus            = 1 << 4,  // false |     ImGuiItemFlags_NoNavDefaultFocus            = 1 << 4,  // false | ||||||
|     ImGuiItemFlags_SelectableDontClosePopup     = 1 << 5,  // false    // MenuItem/Selectable() automatically closes current Popup window |     ImGuiItemFlags_SelectableDontClosePopup     = 1 << 5,  // false    // MenuItem/Selectable() automatically closes current Popup window | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user