From b17ebb2ec4a04e6ecc4c270b9ca5d6594984cd63 Mon Sep 17 00:00:00 2001
From: Patrick Simpson 
Date: Fri, 30 Jun 2017 12:35:52 +0200
Subject: [PATCH] [KOE-125] Fixed selection of separator borders in drop list
---
 .../AcaciaZPushPlugin/UI/GABLookupControl.cs  | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/UI/GABLookupControl.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/UI/GABLookupControl.cs
index 2eb4053..7c32a6b 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/UI/GABLookupControl.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/UI/GABLookupControl.cs
@@ -249,7 +249,24 @@ namespace Acacia.UI
             GABUser item = (GABUser)e.Item;
 
             // Draw the background
-            e.DrawBackground();
+            if (e.State == DrawItemState.Selected)
+            {
+                // If the item is selected, we don't want the separating border to get selected too.
+                // So draw the normal background in the border area
+                Rectangle rect = e.Bounds;
+                rect.Y = rect.Bottom - BorderPadding.Vertical - BorderThickness;
+                rect.Height = BorderPadding.Vertical + BorderThickness;
+                new System.Windows.Forms.DrawItemEventArgs(e.Graphics, e.Font, rect, e.Index, DrawItemState.None).DrawBackground();
+
+                // And the selected background in the item area.
+                rect.Y = e.Bounds.Y;
+                rect.Height = e.Bounds.Height - BorderPadding.Vertical - BorderThickness;
+                new System.Windows.Forms.DrawItemEventArgs(e.Graphics, e.Font, rect, e.Index, DrawItemState.Selected).DrawBackground();
+            }
+            else
+            {
+                e.DrawBackground();
+            }
 
             // Get the sizes
             Size nameSize = TextRenderer.MeasureText(e.Graphics, item.FullName, Font);