mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 21:21:06 +01:00 
			
		
		
		
	InputText(): Added io.DoubleClickSelectsWord option for OS X compatible behavior (#473)
This commit is contained in:
		| @@ -792,6 +792,7 @@ ImGuiIO::ImGuiIO() | ||||
| #ifdef __APPLE__ | ||||
|     WordMovementUsesAltKey = true;      // Text editing cursor movement using Alt instead of Ctrl | ||||
|     ShortcutsUseSuperKey = true;        // Shortcuts using Cmd/Super instead of Ctrl | ||||
|     DoubleClickSelectsWord = true;      // Double click selects by word instead of selecting whole text | ||||
| #endif | ||||
| } | ||||
|  | ||||
| @@ -7414,11 +7415,17 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2 | ||||
|         const float mouse_x = (g.IO.MousePos.x - frame_bb.Min.x - style.FramePadding.x) + edit_state.ScrollX; | ||||
|         const float mouse_y = (is_multiline ? (g.IO.MousePos.y - draw_window->DC.CursorPos.y - style.FramePadding.y) : (g.FontSize*0.5f)); | ||||
|  | ||||
|         if (select_all || (hovered && io.MouseDoubleClicked[0])) | ||||
|         if (select_all || (hovered && !io.DoubleClickSelectsWord && io.MouseDoubleClicked[0])) | ||||
|         { | ||||
|             edit_state.SelectAll(); | ||||
|             edit_state.SelectedAllMouseLock = true; | ||||
|         } | ||||
|         else if (hovered && io.DoubleClickSelectsWord && io.MouseDoubleClicked[0]) | ||||
|         { | ||||
|             // Select a word only, OS X style (by simulating keystrokes) | ||||
|             edit_state.OnKeyPressed(STB_TEXTEDIT_K_WORDLEFT); | ||||
|             edit_state.OnKeyPressed(STB_TEXTEDIT_K_WORDRIGHT | STB_TEXTEDIT_K_SHIFT); | ||||
|         } | ||||
|         else if (io.MouseClicked[0] && !edit_state.SelectedAllMouseLock) | ||||
|         { | ||||
|             stb_textedit_click(&edit_state, &edit_state.StbState, mouse_x, mouse_y); | ||||
|   | ||||
							
								
								
									
										1
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -711,6 +711,7 @@ struct ImGuiIO | ||||
| 	// Advanced/subtle behaviors | ||||
|     bool          WordMovementUsesAltKey;   // = defined(__APPLE__) // OS X style: Text editing cursor movement using Alt instead of Ctrl | ||||
|     bool          ShortcutsUseSuperKey;     // = defined(__APPLE__) // OS X style: Shortcuts using Cmd/Super instead of Ctrl | ||||
|     bool          DoubleClickSelectsWord;   // = defined(__APPLE__) // OS X style: Double click selects by word instead of selecting whole text | ||||
|  | ||||
|     //------------------------------------------------------------------ | ||||
|     // User Functions | ||||
|   | ||||
		Reference in New Issue
	
	Block a user