Bug 579028 - [Multiple carets] First line of multi-selection/carets does not show caret (win32)

- Reverse order of "workaround" carets drawn (from bottom to top), as last displayed caret seems to be the windows default caret
- Synchronizes size of "workaround" carets with default caret

Change-Id: I82fcd96b63ed03c5e81876f49b5fa701800f7acc
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.swt/+/191516
Tested-by: Platform Bot <platform-bot@eclipse.org>
Reviewed-by: Mickael Istria <mistria@redhat.com>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java
index 527a8f1..51ae23c 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java
@@ -8962,6 +8962,7 @@
 				carets[i] = new Caret(this, firstCaret.getStyle());
 				carets[i].setImage(firstCaret.getImage());
 				carets[i].setFont(firstCaret.getFont());
+				carets[i].setSize(firstCaret.getSize());
 			}
 		} else if (locations.length < carets.length) {
 			for (int i = locations.length; i < carets.length; i++) {
@@ -8969,7 +8970,7 @@
 			}
 			carets = Arrays.copyOf(carets, locations.length);
 		}
-		for (int i = 0; i < Math.min(caretOffsets.length, locations.length); i++) {
+		for (int i = Math.min(caretOffsets.length, locations.length)-1; i>=0; i--) { // reverse order, seee bug 579028#c7
 			final Caret caret = carets[i];
 			final int caretOffset = caretOffsets[i];
 			final Point location = locations[i];