mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Inputtext, Nav: fixed using SetKeyboardFocusHere() on InputTextMultiline(). (#4761)
This commit is contained in:
		| @@ -56,6 +56,7 @@ Other Changes: | |||||||
|   Home/End leads to scrolling. Fixed not setting mouse position when a failed move request (e.g. when |   Home/End leads to scrolling. Fixed not setting mouse position when a failed move request (e.g. when | ||||||
|   already at edge) reactivates the navigation highlight. |   already at edge) reactivates the navigation highlight. | ||||||
| - InputText, Nav: fixed repeated calls to SetKeyboardFocusHere() preventing to use InputText(). (#4682) | - InputText, Nav: fixed repeated calls to SetKeyboardFocusHere() preventing to use InputText(). (#4682) | ||||||
|  | - Inputtext, Nav: fixed using SetKeyboardFocusHere() on InputTextMultiline(). (#4761) | ||||||
| - InputText: made double-click select word, triple-line select line. Word delimitation logic differs | - InputText: made double-click select word, triple-line select line. Word delimitation logic differs | ||||||
|   slightly from the one used by CTRL+arrows. (#2244) |   slightly from the one used by CTRL+arrows. (#2244) | ||||||
| - InputText: fixed ReadOnly flag preventing callbacks from receiving the text buffer. (#4762) [@actondev] | - InputText: fixed ReadOnly flag preventing callbacks from receiving the text buffer. (#4762) [@actondev] | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -64,7 +64,7 @@ Index of this file: | |||||||
| // Version | // Version | ||||||
| // (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens) | // (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens) | ||||||
| #define IMGUI_VERSION               "1.86 WIP" | #define IMGUI_VERSION               "1.86 WIP" | ||||||
| #define IMGUI_VERSION_NUM           18511 | #define IMGUI_VERSION_NUM           18512 | ||||||
| #define IMGUI_CHECKVERSION()        ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx)) | #define IMGUI_CHECKVERSION()        ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx)) | ||||||
| #define IMGUI_HAS_TABLE | #define IMGUI_HAS_TABLE | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3966,7 +3966,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ | |||||||
|     if (is_resizable) |     if (is_resizable) | ||||||
|         IM_ASSERT(callback != NULL); // Must provide a callback if you set the ImGuiInputTextFlags_CallbackResize flag! |         IM_ASSERT(callback != NULL); // Must provide a callback if you set the ImGuiInputTextFlags_CallbackResize flag! | ||||||
|  |  | ||||||
|     if (is_multiline) // Open group before calling GetID() because groups tracks id created within their scope, |     if (is_multiline) // Open group before calling GetID() because groups tracks id created within their scope (including the scrollbar) | ||||||
|         BeginGroup(); |         BeginGroup(); | ||||||
|     const ImGuiID id = window->GetID(label); |     const ImGuiID id = window->GetID(label); | ||||||
|     const ImVec2 label_size = CalcTextSize(label, NULL, true); |     const ImVec2 label_size = CalcTextSize(label, NULL, true); | ||||||
| @@ -4770,9 +4770,22 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ | |||||||
|  |  | ||||||
|     if (is_multiline) |     if (is_multiline) | ||||||
|     { |     { | ||||||
|  |         // For focus requests to work on our multiline we need to ensure our child ItemAdd() call specifies the ImGuiItemFlags_Inputable (ref issue #4761)... | ||||||
|         Dummy(ImVec2(text_size.x, text_size.y + style.FramePadding.y)); |         Dummy(ImVec2(text_size.x, text_size.y + style.FramePadding.y)); | ||||||
|  |         ImGuiItemFlags backup_item_flags = g.CurrentItemFlags; | ||||||
|  |         g.CurrentItemFlags |= ImGuiItemFlags_Inputable; | ||||||
|         EndChild(); |         EndChild(); | ||||||
|  |         g.CurrentItemFlags = backup_item_flags; | ||||||
|  |  | ||||||
|  |         // ...and then we need to undo the group overriding last item data, which gets a bit messy as EndGroup() tries to forward scrollbar being active... | ||||||
|  |         ImGuiLastItemData item_data = g.LastItemData; | ||||||
|         EndGroup(); |         EndGroup(); | ||||||
|  |         if (g.LastItemData.ID == 0) | ||||||
|  |         { | ||||||
|  |             g.LastItemData.ID = id; | ||||||
|  |             g.LastItemData.InFlags = item_data.InFlags; | ||||||
|  |             g.LastItemData.StatusFlags = item_data.StatusFlags; | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Log as text |     // Log as text | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user