]> O.S.I.I.S - jp/crow.git/commitdiff
selection foreground for label
authorjpbruyere <jp.bruyere@hotmail.com>
Thu, 9 Feb 2017 08:06:45 +0000 (09:06 +0100)
committerjpbruyere <jp.bruyere@hotmail.com>
Thu, 9 Feb 2017 08:06:45 +0000 (09:06 +0100)
src/GraphicObjects/Label.cs

index 1cf9e6ef5bf45110b9889ac7f7024e55c3d43bea..071dc79f1f6d9b70b02ba0d15fa13638b32f9d6b 100644 (file)
@@ -617,6 +617,14 @@ namespace Crow
 //                                     TextAlignment == Alignment.TopRight ||
 //                                     TextAlignment == Alignment.BottomRight)
 //                                     lineRect.X += (rText.Width - lineLength);
+                               if (string.IsNullOrWhiteSpace (l))
+                                       continue;
+
+                               Foreground.SetAsSource (gr);
+                               gr.MoveTo (lineRect.X, rText.Y + fe.Ascent + fe.Height * i);
+                               gr.ShowText (l);
+                               gr.Fill ();
+
                                if (Selectable) {
                                        if (SelRelease >= 0 && i >= selectionStart.Y && i <= selectionEnd.Y) {
                                                gr.SetSourceColor (selBackground);
@@ -639,17 +647,16 @@ namespace Crow
                                                        selRect.Width -= (lineLength - cpEnd);
 
                                                gr.Rectangle (selRect);
+                                               gr.FillPreserve ();
+                                               gr.Save ();
+                                               gr.Clip ();
+                                               gr.SetSourceColor (SelectionForeground);
+                                               gr.MoveTo (lineRect.X, rText.Y + fe.Ascent + fe.Height * i);
+                                               gr.ShowText (l);
                                                gr.Fill ();
+                                               gr.Restore ();
                                        }
                                }
-
-                               if (string.IsNullOrWhiteSpace (l))
-                                       continue;
-
-                               Foreground.SetAsSource (gr);
-                               gr.MoveTo (lineRect.X, rText.Y + fe.Ascent + fe.Height * i);
-                               gr.ShowText (l);
-                               gr.Fill ();
                        }
                }
                #endregion