InputText(): Added io.DoubleClickSelectsWord option for OS X compatible behavior (#473)
diff --git a/imgui.cpp b/imgui.cpp
index feff82b..757d405 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -792,6 +792,7 @@
 #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 @@
         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);
diff --git a/imgui.h b/imgui.h
index 714cc9b..0d8a4d2 100644
--- a/imgui.h
+++ b/imgui.h
@@ -711,6 +711,7 @@
 	// 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