Tweak comments and indexes
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 4f8be90..4f55e90 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -35,7 +35,7 @@
 
 Changes:
 
-- Moved Readme, Changelog and Todo files to the docs/ folder.
+- Moved README, CHANGELOG and TODO files to the docs/ folder.
   If you are updating dear imgui by copying files, take the chance to delete the old files.
 - Added imgui_widgets.cpp file, extracted and moved widgets code out of imgui.cpp into imgui_widgets.cpp.
   Re-ordered some of the code remaining in imgui.cpp in cleared chunks.
@@ -44,7 +44,9 @@
   If you have any modifications to imgui.cpp, it is suggested that you first update to 1.63, then
   isolate your patches. You can peak at imgui_widgets.cpp from 1.64 to get a sense of what is included in it,
   then separate your changes into several patches that can more easily be applied to 1.64 on a per-file basis.
-- As a reminder, if you have any change to imgui.cpp it is a good habit to discuss them on the github
+  What I found worked nicely for me, was to open the diff of the old patches in an interactive merge/diff tool,
+  search for the corresponding function in the new code and apply the chunks manually. 
+- As a reminder, if you have any change to imgui.cpp it is a good habit to discuss them on the github,
   so a solution applicable on the Master branch can be found. If your company has changes that you cannot
   disclose you may also contact me privately.
 
diff --git a/imgui.cpp b/imgui.cpp
index 4597f94..d4ffa10 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -19,32 +19,58 @@
 
 /*
 
- Index
- - MISSION STATEMENT
- - END-USER GUIDE
- - PROGRAMMER GUIDE (read me!)
-   - Read first
-   - How to update to a newer version of Dear ImGui
-   - Getting started with integrating Dear ImGui in your code/engine
-   - Using gamepad/keyboard navigation controls [BETA]
- - API BREAKING CHANGES (read me when you update!)
- - ISSUES & TODO LIST
- - FREQUENTLY ASKED QUESTIONS (FAQ), TIPS
-   - How can I tell whether to dispatch mouse/keyboard to imgui or to my application?
-   - How can I display an image? What is ImTextureID, how does it works?
-   - How can I have multiple widgets with the same label or without a label? A primer on labels and the ID Stack.
-   - How can I use my own math types instead of ImVec2/ImVec4? 
-   - How can I load a different font than the default?
-   - How can I easily use icons in my application?
-   - How can I load multiple fonts?
-   - How can I display and input non-latin characters such as Chinese, Japanese, Korean, Cyrillic?
-   - How can I use the drawing facilities without an ImGui window? (using ImDrawList API)
-   - I integrated Dear ImGui in my engine and the text or lines are blurry..
-   - I integrated Dear ImGui in my engine and some elements are clipping or disappearing when I move windows around..
-   - How can I help?
- - ISSUES & TODO-LIST
- - CODE
+Index of this file:
 
+DOCUMENTATION
+- MISSION STATEMENT
+- END-USER GUIDE
+- PROGRAMMER GUIDE (read me!)
+  - Read first
+  - How to update to a newer version of Dear ImGui
+  - Getting started with integrating Dear ImGui in your code/engine
+  - Using gamepad/keyboard navigation controls [BETA]
+- API BREAKING CHANGES (read me when you update!)
+- FREQUENTLY ASKED QUESTIONS (FAQ), TIPS
+  - How can I tell whether to dispatch mouse/keyboard to imgui or to my application?
+  - How can I display an image? What is ImTextureID, how does it works?
+  - How can I have multiple widgets with the same label or without a label? A primer on labels and the ID Stack.
+  - How can I use my own math types instead of ImVec2/ImVec4? 
+  - How can I load a different font than the default?
+  - How can I easily use icons in my application?
+  - How can I load multiple fonts?
+  - How can I display and input non-latin characters such as Chinese, Japanese, Korean, Cyrillic?
+  - How can I use the drawing facilities without an ImGui window? (using ImDrawList API)
+  - I integrated Dear ImGui in my engine and the text or lines are blurry..
+  - I integrated Dear ImGui in my engine and some elements are clipping or disappearing when I move windows around..
+  - How can I help?
+
+CODE
+- Forward Declarations
+- Context and Memory Allocators
+- User facing structures (ImGuiStyle, ImGuiIO)
+- Helper/Utilities (ImXXX functions, Color functions)
+- ImGuiStorage
+- ImGuiTextFilter
+- ImGuiTextBuffer
+- ImGuiListClipper
+- Main Code (most of the code! lots of stuff, needs tidying up)
+- Tooltips
+- Popups
+- Navigation
+- Columns
+- Drag and Drop
+- Logging
+- Settings
+- Platform Dependent Helpers
+- Metrics/Debug window
+
+*/
+
+//-----------------------------------------------------------------------------
+// Documentation
+//-----------------------------------------------------------------------------
+
+/*
 
  MISSION STATEMENT
  =================
@@ -472,11 +498,6 @@
  - 2014/08/28 (1.09) - changed the behavior of IO.PixelCenterOffset following various rendering fixes
 
 
- ISSUES & TODO-LIST
- ==================
- See TODO.txt
-
-
  FREQUENTLY ASKED QUESTIONS (FAQ), TIPS
  ======================================
 
@@ -879,6 +900,11 @@
 static void             SettingsHandlerWindow_ReadLine(ImGuiContext*, ImGuiSettingsHandler*, void* entry, const char* line);
 static void             SettingsHandlerWindow_WriteAll(ImGuiContext* imgui_ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* buf);
 
+// Platform Dependents default implementation for IO functions
+static const char*      GetClipboardTextFn_DefaultImpl(void* user_data);
+static void             SetClipboardTextFn_DefaultImpl(void* user_data, const char* text);
+static void             ImeSetInputScreenPosFn_DefaultImpl(int x, int y);
+
 namespace ImGui
 {
 static bool             BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags flags);
@@ -900,14 +926,6 @@
 }
 
 //-----------------------------------------------------------------------------
-// Platform dependent default implementations
-//-----------------------------------------------------------------------------
-
-static const char*      GetClipboardTextFn_DefaultImpl(void* user_data);
-static void             SetClipboardTextFn_DefaultImpl(void* user_data, const char* text);
-static void             ImeSetInputScreenPosFn_DefaultImpl(int x, int y);
-
-//-----------------------------------------------------------------------------
 // Context and Memory Allocators
 //-----------------------------------------------------------------------------
 
@@ -937,7 +955,7 @@
 static void*    GImAllocatorUserData = NULL;
 
 //-----------------------------------------------------------------------------
-// User facing structures
+// User facing main structures
 //-----------------------------------------------------------------------------
 
 ImGuiStyle::ImGuiStyle()
@@ -1301,7 +1319,7 @@
 }
 
 //-----------------------------------------------------------------------------
-// ImText* helpers
+// HELPERS/UTILITIES (ImText* helpers)
 //-----------------------------------------------------------------------------
 
 // Convert UTF-8 to 32-bits character, process single character input.
@@ -2034,10 +2052,11 @@
 }
 
 //-----------------------------------------------------------------------------
-// ImGuiWindow
-// (This type has very few helper methods but otherwise is mostly a dumb struct)
+// MAIN CODE
+// (this category is still too large and badly ordered, needs some tidying up)
 //-----------------------------------------------------------------------------
 
+// ImGuiWindow is mostly a dumb struct. It merely has a constructor and a few helper methods
 ImGuiWindow::ImGuiWindow(ImGuiContext* context, const char* name)
     : DrawListInst(&context->DrawListSharedData)
 {
@@ -2145,11 +2164,6 @@
     return id;
 }
 
-//-----------------------------------------------------------------------------
-// MAIN CODE
-// (this category is still too large and badly ordered, needs some tidying up)
-//-----------------------------------------------------------------------------
-
 static void SetCurrentWindow(ImGuiWindow* window)
 {
     ImGuiContext& g = *GImGui;
@@ -6337,7 +6351,7 @@
 }
 
 //-----------------------------------------------------------------------------
-// TOOLTIP
+// TOOLTIPS
 //-----------------------------------------------------------------------------
 
 void ImGui::BeginTooltip()
@@ -8884,7 +8898,7 @@
 #endif
 
 //-----------------------------------------------------------------------------
-// HELP, METRICS
+// METRICS/DEBUG WINDOW
 //-----------------------------------------------------------------------------
 
 void ImGui::ShowMetricsWindow(bool* p_open)
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 7aa37ff..dc3617a 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1,14 +1,21 @@
 // dear imgui, v1.64 WIP
 // (drawing and font code)
 
-// Index of this file:
-// - Default styles
-// - ImDrawList
-// - ImDrawData
-// - ImFontAtlas
-// - Internal Render Helpers
-// - ImFont
-// - Default font data
+/*
+
+Index of this file:
+- Cruft for stb_truetype/stb_rectpack implementation
+- Style functions (default style)
+- ImDrawList
+- ImDrawData
+- ShadeVertsXXX helpers functions
+- ImFontConfig
+- ImFontAtlas
+- ImFont
+- Internal Render Helpers
+- Default font data
+
+*/
 
 #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS)
 #define _CRT_SECURE_NO_WARNINGS
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index d848c6c..67a8a59 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -1,22 +1,26 @@
 // dear imgui, v1.64 WIP
 // (widgets code)
 
-// Index of this file:
-// - Widgets: Text, etc.
-// - Widgets: Button, Image, Checkbox, RadioButton, ProgressBar, Bullet, etc.
-// - Widgets: ComboBox
-// - Data Type and Data Formatting Helpers
-// - Widgets: DragScalar, DragFloat, DragInt, etc.
-// - Widgets: SliderScalar, SliderFloat, SliderInt, etc.
-// - Widgets: InputScalar, InputFloat, InputInt, etc.
-// - Widgets: InputText, InputTextMultiline
-// - Widgets: ColorEdit, ColorPicker, ColorButton, etc.
-// - Widgets: TreeNode, TreePush, TreePop, etc.
-// - Widgets: Selectable
-// - Widgets: ListBox
-// - Widgets: PlotLines, PlotHistogram
-// - Widgets: Value
-// - Widgets: MenuItem, BeginMenu, EndMenu, etc.
+/*
+
+Index of this file:
+- Widgets: Text, etc.
+- Widgets: Button, Image, Checkbox, RadioButton, ProgressBar, Bullet, etc.
+- Widgets: ComboBox
+- Data Type and Data Formatting Helpers
+- Widgets: DragScalar, DragFloat, DragInt, etc.
+- Widgets: SliderScalar, SliderFloat, SliderInt, etc.
+- Widgets: InputScalar, InputFloat, InputInt, etc.
+- Widgets: InputText, InputTextMultiline
+- Widgets: ColorEdit, ColorPicker, ColorButton, etc.
+- Widgets: TreeNode, TreePush, TreePop, etc.
+- Widgets: Selectable
+- Widgets: ListBox
+- Widgets: PlotLines, PlotHistogram
+- Widgets: Value
+- Widgets: MenuItem, BeginMenu, EndMenu, etc.
+
+*/
 
 #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS)
 #define _CRT_SECURE_NO_WARNINGS
@@ -97,10 +101,6 @@
 }
 
 //-------------------------------------------------------------------------
-// SHARED UTILITIES
-//-------------------------------------------------------------------------
-
-//-------------------------------------------------------------------------
 // WIDGETS: Text
 // - TextUnformatted()
 // - Text()