Update crosshair logic so that the current "crosshair-color" value is
used.  The original code would not update the "crosshair-color"
immediately after changing the "crosshair-color" preference setting.

Signed-off-by: Peter Tyser <pty...@gmail.com>
---
 src/crosshair.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/crosshair.c b/src/crosshair.c
index 8321929..3098d7b 100644
--- a/src/crosshair.c
+++ b/src/crosshair.c
@@ -583,6 +583,7 @@ DrawAttached (Boolean BlockToo)
   switch (Settings.Mode)
     {
     case VIA_MODE:
+      gui->set_color (Crosshair.GC, Settings.CrosshairColor);
       gui->draw_arc (Crosshair.GC,
                     Crosshair.X,
                     Crosshair.Y,
@@ -594,12 +595,13 @@ DrawAttached (Boolean BlockToo)
          gui->set_color (Crosshair.GC, Settings.CrossColor);
          gui->draw_arc (Crosshair.GC,
                         Crosshair.X, Crosshair.Y, s, s, 0, 360);
-         gui->set_color (Crosshair.GC, Settings.CrosshairColor);
        }
       break;
 
       /* the attached line is used by both LINEMODE and POLYGON_MODE */
     case POLYGON_MODE:
+      gui->set_color (Crosshair.GC, Settings.CrosshairColor);
+
       /* draw only if starting point is set */
       if (Crosshair.AttachedLine.State != STATE_FIRST)
        gui->draw_line (Crosshair.GC,
@@ -618,13 +620,13 @@ DrawAttached (Boolean BlockToo)
     case ARC_MODE:
       if (Crosshair.AttachedBox.State != STATE_FIRST)
        {
+         gui->set_color (Crosshair.GC, Settings.CrosshairColor);
          XORDrawAttachedArc (Settings.LineThickness);
          if (TEST_FLAG (SHOWDRCFLAG, PCB))
            {
              gui->set_color (Crosshair.GC, Settings.CrossColor);
              XORDrawAttachedArc (Settings.LineThickness +
                                  2 * (PCB->Bloat + 1));
-             gui->set_color (Crosshair.GC, Settings.CrosshairColor);
            }
 
        }
@@ -635,6 +637,7 @@ DrawAttached (Boolean BlockToo)
       if (Crosshair.AttachedLine.State != STATE_FIRST &&
          Crosshair.AttachedLine.draw)
        {
+         gui->set_color (Crosshair.GC, Settings.CrosshairColor);
          XORDrawAttachedLine (Crosshair.AttachedLine.Point1.X,
                               Crosshair.AttachedLine.Point1.Y,
                               Crosshair.AttachedLine.Point2.X,
@@ -661,7 +664,6 @@ DrawAttached (Boolean BlockToo)
                                     Crosshair.X, Crosshair.Y,
                                     PCB->RatDraw ? 10 : Settings.
                                     LineThickness + 2 * (PCB->Bloat + 1));
-             gui->set_color (Crosshair.GC, Settings.CrosshairColor);
            }
        }
       break;
@@ -678,6 +680,10 @@ DrawAttached (Boolean BlockToo)
     case INSERTPOINT_MODE:
       XORDrawInsertPointObject ();
       break;
+    case ARROW_MODE:
+      /* We're going to draw a selection rectangle */
+    case RECTANGLE_MODE:
+      gui->set_color (Crosshair.GC, Settings.CrosshairColor);
     }
 
   /* an attached box does not depend on a special mode */
-- 
1.6.2-rc2.GIT



_______________________________________________
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

Reply via email to