[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA-cvs: branch: master updated (1.4.0-20080127-85-g016cd29)



The branch, master has been updated
       via  016cd29c2d4cb540f70f01c14059b0d538b801d6 (commit)
       via  cc5017e65222ec97e084c17a3920dc29f5e65532 (commit)
       via  f8bc1947ddf59f8e437702b6f83c1292cb6f50ac (commit)
       via  deae2c854ddc1461811c176e78f69842be738321 (commit)
      from  6359729a98bb9f34a4b460d6b42e85cf502ae010 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


=========
 Summary
=========

 gschem/include/prototype.h |   10 +++++++---
 gschem/src/i_callbacks.c   |    2 +-
 gschem/src/o_basic.c       |   13 +++++++------
 gschem/src/o_buffer.c      |   28 ++++++++++++++++++++++------
 gschem/src/o_complex.c     |   15 ++++++---------
 gschem/src/o_copy.c        |   36 ++++++++++++++++++++++++++++++------
 gschem/src/o_text.c        |   26 ++++++++++++++++++++------
 gschem/src/x_compselect.c  |    2 +-
 gschem/src/x_event.c       |   44 +++++++++++---------------------------------
 9 files changed, 105 insertions(+), 71 deletions(-)


=================
 Commit Messages
=================

commit 016cd29c2d4cb540f70f01c14059b0d538b801d6
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date:   Sun May 18 18:11:45 2008 +0100

    Add o_copy_rubbercopy() and o_copy_rubbercopy_xor()
    
    Make use of o_copy_rubbercopy_xor() throught the code to avoid
    duplication of o_drawbounding() calls.

:100644 100644 1fef1bd... 93a37ab... M	gschem/include/prototype.h
:100644 100644 c4f1003... 73e1c4b... M	gschem/src/o_basic.c
:100644 100644 26251eb... 72b7710... M	gschem/src/o_copy.c
:100644 100644 39aba04... 8d95464... M	gschem/src/x_event.c

commit cc5017e65222ec97e084c17a3920dc29f5e65532
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date:   Sun May 18 18:11:42 2008 +0100

    Rework o_buffer_place_rubberplace() to follow usual semantics.
    
    Renames o_buffer_place_rubberplace() o_buffer_place_rubberplace_xor()
    and re-adds o_buffer_place_rubberplace() which now follows the "undraw,
    move, draw" sequence like the other functions with this naming pattern.
    
    Make use of o_buffer_rubberpaste_xor() throught the code to avoid
    duplication of o_drawbounding() calls.

:100644 100644 f7a6b63... 1fef1bd... M	gschem/include/prototype.h
:100644 100644 ff49053... 809c02c... M	gschem/src/o_buffer.c
:100644 100644 d04df50... 39aba04... M	gschem/src/x_event.c

commit f8bc1947ddf59f8e437702b6f83c1292cb6f50ac
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date:   Sun May 18 18:10:25 2008 +0100

    Rework o_text_rubberattrib() to follow usual semantics.
    
    Renames o_text_rubberattrib() o_text_rubberattrib_xor() and re-adds
    o_text_rubberattrib() which now follows the "undraw, move, draw"
    sequence like the other functions with this naming pattern.
    
    Make use of o_text_rubberattrib_xor() throught the code to avoid
    duplication of o_drawbounding() calls.

:100644 100644 f3a5057... f7a6b63... M	gschem/include/prototype.h
:100644 100644 95a0ecc... c4f1003... M	gschem/src/o_basic.c
:100644 100644 65f9247... 7add762... M	gschem/src/o_text.c
:100644 100644 7830a61... d04df50... M	gschem/src/x_event.c

commit deae2c854ddc1461811c176e78f69842be738321
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date:   Sun May 18 18:09:49 2008 +0100

    Use o_complex_rubbercomplex_xor() where possible to simplify code.
    
    Adds a parameter "int drawing" to this call, which is passed on to
    o_drawbounding(). This is used to determine whether the operation
    is to undraw an old object (in which case, the old feedback mode is
    used), or is drawing new objects, in which case the current action
    feedback mode is used.

:100644 100644 fe7b689... f3a5057... M	gschem/include/prototype.h
:100644 100644 f71c110... ed0e377... M	gschem/src/i_callbacks.c
:100644 100644 a8dd071... 95a0ecc... M	gschem/src/o_basic.c
:100644 100644 16cb31d... 0962d9b... M	gschem/src/o_complex.c
:100644 100644 7cac6e1... 0151e94... M	gschem/src/x_compselect.c
:100644 100644 3ca4372... 7830a61... M	gschem/src/x_event.c

=========
 Changes
=========

commit 016cd29c2d4cb540f70f01c14059b0d538b801d6
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date:   Sun May 18 18:11:45 2008 +0100

    Add o_copy_rubbercopy() and o_copy_rubbercopy_xor()
    
    Make use of o_copy_rubbercopy_xor() throught the code to avoid
    duplication of o_drawbounding() calls.

diff --git a/gschem/include/prototype.h b/gschem/include/prototype.h
index 1fef1bd..93a37ab 100644
--- a/gschem/include/prototype.h
+++ b/gschem/include/prototype.h
@@ -551,6 +551,8 @@ void o_complex_translate_all(GSCHEM_TOPLEVEL *w_current, int offset);
 /* o_copy.c */
 void o_copy_start(GSCHEM_TOPLEVEL *w_current, int x, int y);
 void o_copy_end(GSCHEM_TOPLEVEL *w_current);
+void o_copy_rubbercopy(GSCHEM_TOPLEVEL *w_current, int x, int y);
+void o_copy_rubbercopy_xor(GSCHEM_TOPLEVEL *w_current, int drawing);
 /* o_cue.c */
 void o_cue_redraw_all(GSCHEM_TOPLEVEL *w_current, OBJECT *head, gboolean draw_selected);
 void o_cue_draw_lowlevel(GSCHEM_TOPLEVEL *w_current, OBJECT *object, int whichone);
diff --git a/gschem/src/o_basic.c b/gschem/src/o_basic.c
index c4f1003..73e1c4b 100644
--- a/gschem/src/o_basic.c
+++ b/gschem/src/o_basic.c
@@ -62,13 +62,16 @@ void o_redraw_all(GSCHEM_TOPLEVEL *w_current)
     switch(w_current->event_state) {
       case(MOVE):
       case(ENDMOVE):
-      case(ENDCOPY):
-      case(ENDMCOPY):
         o_drawbounding(w_current,
                        geda_list_get_glist( toplevel->page_current->selection_list ),
                        x_get_darkcolor(w_current->bb_color), TRUE);
         break;
 
+      case(ENDCOPY):
+      case(ENDMCOPY):
+        o_copy_rubbercopy_xor (w_current, TRUE);
+        break;
+
       case(ENDCOMP):
         o_complex_rubbercomplex_xor (w_current, TRUE);
         break;
diff --git a/gschem/src/o_copy.c b/gschem/src/o_copy.c
index 26251eb..72b7710 100644
--- a/gschem/src/o_copy.c
+++ b/gschem/src/o_copy.c
@@ -51,9 +51,7 @@ void o_copy_start(GSCHEM_TOPLEVEL *w_current, int w_x, int w_y)
 
     w_current->first_wx = w_current->second_wx = w_x;
     w_current->first_wy = w_current->second_wy = w_y;
-    o_drawbounding(w_current,
-                   geda_list_get_glist( toplevel->page_current->selection_list ),
-                   x_get_darkcolor(w_current->bb_color), TRUE);
+    o_copy_rubbercopy_xor (w_current, TRUE);
   }
 }
 
@@ -90,9 +88,7 @@ void o_copy_end(GSCHEM_TOPLEVEL *w_current)
   diff_y = w_current->second_wy - w_current->first_wy;
 
   /* erase the bounding box */
-  o_drawbounding(w_current,
-               geda_list_get_glist( toplevel->page_current->selection_list ),
-               x_get_darkcolor(w_current->bb_color), FALSE);
+  o_copy_rubbercopy_xor (w_current, FALSE);
 
   s_current = geda_list_get_glist( toplevel->page_current->selection_list );
   new_objects_head = s_basic_init_object("object_head");
@@ -423,3 +419,31 @@ void o_copy_end(GSCHEM_TOPLEVEL *w_current)
 
   o_undo_savestate(w_current, UNDO_ALL);
 }
+
+
+/*! \todo Finish function documentation!!!
+ *  \brief
+ *  \par Function Description
+ *
+ */
+void o_copy_rubbercopy (GSCHEM_TOPLEVEL *w_current, int w_x, int w_y)
+{
+  o_copy_rubbercopy_xor (w_current, FALSE);
+  w_current->second_wx = w_x;
+  w_current->second_wy = w_y;
+  o_copy_rubbercopy_xor (w_current, TRUE);
+}
+
+
+/*! \todo Finish function documentation!!!
+ *  \brief
+ *  \par Function Description
+ *
+ */
+void o_copy_rubbercopy_xor (GSCHEM_TOPLEVEL *w_current, int drawing)
+{
+  TOPLEVEL *toplevel = w_current->toplevel;
+  o_drawbounding (w_current,
+                  geda_list_get_glist (toplevel->page_current->selection_list),
+                  x_get_darkcolor (w_current->bb_color), drawing);
+}
diff --git a/gschem/src/x_event.c b/gschem/src/x_event.c
index 39aba04..8d95464 100644
--- a/gschem/src/x_event.c
+++ b/gschem/src/x_event.c
@@ -904,16 +904,8 @@ gint x_event_motion(GtkWidget *widget, GdkEventMotion *event,
     case(COPY):
     case(ENDMCOPY):
     case(MCOPY):
-    if (w_current->inside_action) {
-      o_drawbounding(w_current,
-                     geda_list_get_glist( toplevel->page_current->selection_list ),
-                     x_get_darkcolor(w_current->bb_color), FALSE);
-      w_current->second_wx = w_x;
-      w_current->second_wy = w_y;
-      o_drawbounding(w_current,
-                     geda_list_get_glist( toplevel->page_current->selection_list ),
-                     x_get_darkcolor(w_current->bb_color), TRUE);
-    }
+    if (w_current->inside_action)
+      o_copy_rubbercopy(w_current, w_x, w_y);
     break;
 
     case(ENDLINE):

commit cc5017e65222ec97e084c17a3920dc29f5e65532
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date:   Sun May 18 18:11:42 2008 +0100

    Rework o_buffer_place_rubberplace() to follow usual semantics.
    
    Renames o_buffer_place_rubberplace() o_buffer_place_rubberplace_xor()
    and re-adds o_buffer_place_rubberplace() which now follows the "undraw,
    move, draw" sequence like the other functions with this naming pattern.
    
    Make use of o_buffer_rubberpaste_xor() throught the code to avoid
    duplication of o_drawbounding() calls.

diff --git a/gschem/include/prototype.h b/gschem/include/prototype.h
index f7a6b63..1fef1bd 100644
--- a/gschem/include/prototype.h
+++ b/gschem/include/prototype.h
@@ -511,7 +511,8 @@ void o_buffer_copy(GSCHEM_TOPLEVEL *w_current, int buf_num);
 void o_buffer_cut(GSCHEM_TOPLEVEL *w_current, int buf_num);
 void o_buffer_paste_start(GSCHEM_TOPLEVEL *w_current, int x, int y, int buf_num);
 void o_buffer_paste_end(GSCHEM_TOPLEVEL *w_current, int x, int y, int buf_num);
-void o_buffer_paste_rubberpaste(GSCHEM_TOPLEVEL *w_current, int buf_num);
+void o_buffer_paste_rubberpaste(GSCHEM_TOPLEVEL *w_current, int buf_num, int x, int y);
+void o_buffer_paste_rubberpaste_xor(GSCHEM_TOPLEVEL *w_current, int buf_num, int drawing);
 void o_buffer_init(void);
 void o_buffer_free(GSCHEM_TOPLEVEL *w_current);
 /* o_bus.c */
diff --git a/gschem/src/o_buffer.c b/gschem/src/o_buffer.c
index ff49053..809c02c 100644
--- a/gschem/src/o_buffer.c
+++ b/gschem/src/o_buffer.c
@@ -133,8 +133,7 @@ void o_buffer_paste_start(GSCHEM_TOPLEVEL *w_current, int w_x, int w_y,
 
   w_current->event_state = ENDPASTE;
 
-  o_drawbounding(w_current, object_buffer[buf_num],
-                 x_get_darkcolor(w_current->bb_color), TRUE);
+  o_buffer_paste_rubberpaste_xor (w_current, buf_num, TRUE);
 }
 
 /*! \todo Finish function documentation!!!
@@ -159,8 +158,7 @@ void o_buffer_paste_end(GSCHEM_TOPLEVEL *w_current, int w_x, int w_y,
   }
 
   /* erase old image */
-  o_drawbounding(w_current, object_buffer[buf_num],
-                 x_get_darkcolor(w_current->bb_color), FALSE);
+  o_buffer_paste_rubberpaste_xor (w_current, buf_num, FALSE);
 
   /* calc and translate objects to their final position */
   w_diff_x = w_current->second_wx - w_current->first_wx;
@@ -217,17 +215,35 @@ void o_buffer_paste_end(GSCHEM_TOPLEVEL *w_current, int w_x, int w_y,
   i_update_menus(w_current);
 }
 
+
 /*! \todo Finish function documentation!!!
  *  \brief
  *  \par Function Description
  *
  */
-void o_buffer_paste_rubberpaste(GSCHEM_TOPLEVEL *w_current, int buf_num)
+void o_buffer_paste_rubberpaste (GSCHEM_TOPLEVEL *w_current, int buf_num,
+                                 int w_x, int w_y)
+{
+  o_buffer_paste_rubberpaste_xor (w_current, buf_num, FALSE);
+  w_current->second_wx = w_x;
+  w_current->second_wy = w_y;
+  o_buffer_paste_rubberpaste_xor (w_current, buf_num, TRUE);
+}
+
+
+/*! \todo Finish function documentation!!!
+ *  \brief
+ *  \par Function Description
+ *
+ */
+void o_buffer_paste_rubberpaste_xor(GSCHEM_TOPLEVEL *w_current, int buf_num,
+                                    int drawing)
 {
   o_drawbounding(w_current, object_buffer[buf_num],
-                 x_get_darkcolor(w_current->bb_color), FALSE);
+                 x_get_darkcolor(w_current->bb_color), drawing);
 }
 
+
 /*! \todo Finish function documentation!!!
  *  \brief
  *  \par Function Description
diff --git a/gschem/src/x_event.c b/gschem/src/x_event.c
index d04df50..39aba04 100644
--- a/gschem/src/x_event.c
+++ b/gschem/src/x_event.c
@@ -977,10 +977,7 @@ gint x_event_motion(GtkWidget *widget, GdkEventMotion *event,
     break;
 
     case(ENDPASTE):
-    o_buffer_paste_rubberpaste(w_current, w_current->buffer_number);
-    w_current->second_wx = w_x;
-    w_current->second_wy = w_y;
-    o_buffer_paste_rubberpaste(w_current, w_current->buffer_number);
+    o_buffer_paste_rubberpaste(w_current, w_current->buffer_number, w_x, w_y);
     break;
 
     case(DRAWTEXT):

commit f8bc1947ddf59f8e437702b6f83c1292cb6f50ac
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date:   Sun May 18 18:10:25 2008 +0100

    Rework o_text_rubberattrib() to follow usual semantics.
    
    Renames o_text_rubberattrib() o_text_rubberattrib_xor() and re-adds
    o_text_rubberattrib() which now follows the "undraw, move, draw"
    sequence like the other functions with this naming pattern.
    
    Make use of o_text_rubberattrib_xor() throught the code to avoid
    duplication of o_drawbounding() calls.

diff --git a/gschem/include/prototype.h b/gschem/include/prototype.h
index f3a5057..f7a6b63 100644
--- a/gschem/include/prototype.h
+++ b/gschem/include/prototype.h
@@ -704,7 +704,8 @@ void o_text_draw(GSCHEM_TOPLEVEL *w_current, OBJECT *o_current);
 void o_text_draw_xor(GSCHEM_TOPLEVEL *w_current, int dx, int dy, OBJECT *o_current);
 void o_text_start(GSCHEM_TOPLEVEL *w_current, int x, int y);
 void o_text_end(GSCHEM_TOPLEVEL *w_current);
-void o_text_rubberattrib(GSCHEM_TOPLEVEL *w_current);
+void o_text_rubberattrib(GSCHEM_TOPLEVEL *w_current, int x, int y);
+void o_text_rubberattrib_xor(GSCHEM_TOPLEVEL *w_current, int drawing);
 void o_text_edit(GSCHEM_TOPLEVEL *w_current, OBJECT *o_current);
 void o_text_edit_end(GSCHEM_TOPLEVEL *w_current, char *string, int len, int text_size, int text_alignment);
 void o_text_change(GSCHEM_TOPLEVEL *w_current, OBJECT *object, char *string, int visibility, int show);
diff --git a/gschem/src/o_basic.c b/gschem/src/o_basic.c
index 95a0ecc..c4f1003 100644
--- a/gschem/src/o_basic.c
+++ b/gschem/src/o_basic.c
@@ -74,8 +74,7 @@ void o_redraw_all(GSCHEM_TOPLEVEL *w_current)
         break;
 
       case(ENDTEXT):
-        o_drawbounding(w_current, toplevel->page_current->attrib_place_list,
-                       x_get_darkcolor(w_current->bb_color), TRUE);
+        o_text_rubberattrib_xor (w_current, TRUE);
         break;
       case(STARTDRAWNET):
       case(DRAWNET):
diff --git a/gschem/src/o_text.c b/gschem/src/o_text.c
index 65f9247..7add762 100644
--- a/gschem/src/o_text.c
+++ b/gschem/src/o_text.c
@@ -327,8 +327,7 @@ void o_text_start(GSCHEM_TOPLEVEL *w_current, int w_x, int w_y)
     }
   }
 
-  o_drawbounding(w_current, toplevel->page_current->attrib_place_list,
-                 x_get_darkcolor(w_current->bb_color), TRUE);
+  o_text_rubberattrib_xor (w_current, TRUE);
 }
 
 /*! \todo Finish function documentation!!!
@@ -341,8 +340,7 @@ void o_text_end(GSCHEM_TOPLEVEL *w_current)
   TOPLEVEL *toplevel = w_current->toplevel;
 
   /* erase the old bounding box / outline */
-  o_drawbounding(w_current, toplevel->page_current->attrib_place_list,
-		 x_get_darkcolor(w_current->bb_color), FALSE);
+  o_text_rubberattrib_xor (w_current, FALSE);
 
   /* here you need to add OBJ_TEXT when it's done */
   /*! \todo make this VIS and SHOW default configurable */
@@ -376,18 +374,34 @@ void o_text_end(GSCHEM_TOPLEVEL *w_current)
   i_update_menus(w_current);
 }
 
+
 /*! \todo Finish function documentation!!!
  *  \brief
  *  \par Function Description
  *
  */
-void o_text_rubberattrib(GSCHEM_TOPLEVEL *w_current)
+void o_text_rubberattrib(GSCHEM_TOPLEVEL *w_current, int w_x, int w_y)
+{
+  o_text_rubberattrib_xor (w_current, FALSE);
+  w_current->second_wx = w_x;
+  w_current->second_wy = w_y;
+  o_text_rubberattrib_xor (w_current, TRUE);
+}
+
+
+/*! \todo Finish function documentation!!!
+ *  \brief
+ *  \par Function Description
+ *
+ */
+void o_text_rubberattrib_xor(GSCHEM_TOPLEVEL *w_current, int drawing)
 {
   o_drawbounding(w_current,
                  w_current->toplevel->page_current->attrib_place_list,
-                 x_get_darkcolor(w_current->bb_color), FALSE);
+                 x_get_darkcolor(w_current->bb_color), drawing);
 }
 
+
 /*! \todo Finish function documentation!!!
  *  \brief
  *  \par Function Description
diff --git a/gschem/src/x_event.c b/gschem/src/x_event.c
index 7830a61..d04df50 100644
--- a/gschem/src/x_event.c
+++ b/gschem/src/x_event.c
@@ -659,16 +659,14 @@ gint x_event_button_released(GtkWidget *widget, GdkEventButton *event,
         o_complex_rubbercomplex_xor (w_current, TRUE);
         return(0);
       } else if (w_current->event_state == ENDTEXT) {
-        o_drawbounding(w_current, toplevel->page_current->attrib_place_list,
-                       x_get_darkcolor(w_current->bb_color), FALSE);
+        o_text_rubberattrib_xor (w_current, FALSE);
 
         w_current->complex_rotate =
         (w_current->complex_rotate + 90) % 360;
 
         o_text_place_rotate(w_current);
 
-        o_drawbounding(w_current, toplevel->page_current->attrib_place_list,
-                       x_get_darkcolor(w_current->bb_color), TRUE);
+        o_text_rubberattrib_xor (w_current, TRUE);
         return(0);
 
       }
@@ -993,10 +991,7 @@ gint x_event_motion(GtkWidget *widget, GdkEventMotion *event,
     break;
 
     case(ENDTEXT):
-    o_text_rubberattrib(w_current);
-    w_current->second_wx = w_x;
-    w_current->second_wy = w_y;
-    o_text_rubberattrib(w_current);
+    o_text_rubberattrib(w_current, w_x, w_y);
     break;
 
     case(SBOX):

commit deae2c854ddc1461811c176e78f69842be738321
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date:   Sun May 18 18:09:49 2008 +0100

    Use o_complex_rubbercomplex_xor() where possible to simplify code.
    
    Adds a parameter "int drawing" to this call, which is passed on to
    o_drawbounding(). This is used to determine whether the operation
    is to undraw an old object (in which case, the old feedback mode is
    used), or is drawing new objects, in which case the current action
    feedback mode is used.

diff --git a/gschem/include/prototype.h b/gschem/include/prototype.h
index fe7b689..f3a5057 100644
--- a/gschem/include/prototype.h
+++ b/gschem/include/prototype.h
@@ -545,7 +545,7 @@ void o_complex_place_changed_run_hook(GSCHEM_TOPLEVEL *w_current);
 void o_complex_place_rotate(GSCHEM_TOPLEVEL *w_current);
 void o_complex_end(GSCHEM_TOPLEVEL *w_current, int x, int y);
 void o_complex_rubbercomplex(GSCHEM_TOPLEVEL *w_current, int x, int y);
-void o_complex_rubbercomplex_xor(GSCHEM_TOPLEVEL *w_current);
+void o_complex_rubbercomplex_xor(GSCHEM_TOPLEVEL *w_current, int drawing);
 void o_complex_translate_all(GSCHEM_TOPLEVEL *w_current, int offset);
 /* o_copy.c */
 void o_copy_start(GSCHEM_TOPLEVEL *w_current, int x, int y);
diff --git a/gschem/src/i_callbacks.c b/gschem/src/i_callbacks.c
index f71c110..ed0e377 100644
--- a/gschem/src/i_callbacks.c
+++ b/gschem/src/i_callbacks.c
@@ -3422,7 +3422,7 @@ DEFINE_I_CALLBACK(cancel)
     /* user hit escape key when placing components */
 
     /* Undraw any XOR outline of the place list */
-    o_complex_rubbercomplex_xor(w_current);
+    o_complex_rubbercomplex_xor(w_current, FALSE);
 
     /* Free the complex place list and its contents */
     s_delete_object_glist(w_current->toplevel,
diff --git a/gschem/src/o_basic.c b/gschem/src/o_basic.c
index a8dd071..95a0ecc 100644
--- a/gschem/src/o_basic.c
+++ b/gschem/src/o_basic.c
@@ -70,8 +70,7 @@ void o_redraw_all(GSCHEM_TOPLEVEL *w_current)
         break;
 
       case(ENDCOMP):
-        o_drawbounding(w_current, toplevel->page_current->complex_place_list,
-                       x_get_darkcolor(w_current->bb_color), TRUE);
+        o_complex_rubbercomplex_xor (w_current, TRUE);
         break;
 
       case(ENDTEXT):
diff --git a/gschem/src/o_complex.c b/gschem/src/o_complex.c
index 16cb31d..0962d9b 100644
--- a/gschem/src/o_complex.c
+++ b/gschem/src/o_complex.c
@@ -106,8 +106,7 @@ void o_complex_start(GSCHEM_TOPLEVEL *w_current, int w_x, int w_y)
   o_complex_place_changed_run_hook (w_current);
   toplevel->DONT_REDRAW = redraw_state;
 
-  o_drawbounding(w_current, toplevel->page_current->complex_place_list,
-                 x_get_darkcolor(w_current->bb_color), TRUE);
+  o_complex_rubbercomplex_xor (w_current, TRUE);
 }
 
 /*! \brief Run the complex place list changed hook. 
@@ -210,9 +209,7 @@ void o_complex_end(GSCHEM_TOPLEVEL *w_current, int w_x, int w_y)
   w_current->second_wx = w_x;
   w_current->second_wy = w_y;
 
-  o_drawbounding(w_current,
-                 w_current->toplevel->page_current->complex_place_list,
-                 x_get_darkcolor(w_current->bb_color), FALSE);
+  o_complex_rubbercomplex_xor (w_current, FALSE);
 
   if (w_current->include_complex) {
     buffer = s_clib_symbol_get_data_by_name (toplevel->internal_symbol_name);
@@ -338,10 +335,10 @@ void o_complex_end(GSCHEM_TOPLEVEL *w_current, int w_x, int w_y)
  */
 void o_complex_rubbercomplex (GSCHEM_TOPLEVEL *w_current, int w_x, int w_y)
 {
-  o_complex_rubbercomplex_xor (w_current);
+  o_complex_rubbercomplex_xor (w_current, FALSE);
   w_current->second_wx = w_x;
   w_current->second_wy = w_y;
-  o_complex_rubbercomplex_xor (w_current);
+  o_complex_rubbercomplex_xor (w_current, TRUE);
 }
 
 
@@ -350,11 +347,11 @@ void o_complex_rubbercomplex (GSCHEM_TOPLEVEL *w_current, int w_x, int w_y)
  *  \par Function Description
  *
  */
-void o_complex_rubbercomplex_xor (GSCHEM_TOPLEVEL *w_current)
+void o_complex_rubbercomplex_xor (GSCHEM_TOPLEVEL *w_current, int drawing)
 {
   o_drawbounding (w_current,
                   w_current->toplevel->page_current->complex_place_list,
-                  x_get_darkcolor (w_current->bb_color), FALSE);
+                  x_get_darkcolor (w_current->bb_color), drawing);
 }
 
 
diff --git a/gschem/src/x_compselect.c b/gschem/src/x_compselect.c
index 7cac6e1..0151e94 100644
--- a/gschem/src/x_compselect.c
+++ b/gschem/src/x_compselect.c
@@ -145,7 +145,7 @@ x_compselect_callback_response (GtkDialog *dialog,
         switch (w_current->event_state) {
           case ENDCOMP:
             /* Undraw the component which was being placed */
-            o_complex_rubbercomplex_xor(w_current);
+            o_complex_rubbercomplex_xor (w_current, FALSE);
             /* Fall through */
           case DRAWCOMP:
             s_delete_object_glist(toplevel,
diff --git a/gschem/src/x_event.c b/gschem/src/x_event.c
index 3ca4372..7830a61 100644
--- a/gschem/src/x_event.c
+++ b/gschem/src/x_event.c
@@ -603,9 +603,7 @@ gint x_event_button_released(GtkWidget *widget, GdkEventButton *event,
         /* Keep the state and the inside_action, as the copy has not finished. */
         w_current->first_wx = w_current->second_wx = w_x;
         w_current->first_wy = w_current->second_wy = w_y;
-        o_drawbounding(w_current,
-                       geda_list_get_glist(toplevel->page_current->selection_list),
-                       x_get_darkcolor(w_current->bb_color), TRUE);
+        o_complex_rubbercomplex_xor (w_current, TRUE);
         i_set_state(w_current, ENDMCOPY);
         i_update_toolbar(w_current);
         o_undo_savestate(w_current, UNDO_ALL);
@@ -644,8 +642,7 @@ gint x_event_button_released(GtkWidget *widget, GdkEventButton *event,
 
     if (w_current->inside_action) {
       if (w_current->event_state == ENDCOMP) {
-        o_drawbounding(w_current, toplevel->page_current->complex_place_list,
-                       x_get_darkcolor(w_current->bb_color), FALSE);
+        o_complex_rubbercomplex_xor (w_current, FALSE);
 
         w_current->complex_rotate =
           (w_current->complex_rotate + 90) % 360;
@@ -659,8 +656,7 @@ gint x_event_button_released(GtkWidget *widget, GdkEventButton *event,
         o_complex_place_changed_run_hook (w_current);
         toplevel->DONT_REDRAW = prev_state;
 
-        o_drawbounding(w_current, toplevel->page_current->complex_place_list,
-                       x_get_darkcolor(w_current->bb_color), TRUE);
+        o_complex_rubbercomplex_xor (w_current, TRUE);
         return(0);
       } else if (w_current->event_state == ENDTEXT) {
         o_drawbounding(w_current, toplevel->page_current->attrib_place_list,
@@ -679,8 +675,7 @@ gint x_event_button_released(GtkWidget *widget, GdkEventButton *event,
       else if (w_current->event_state == ENDMOVE) {
         prev_state = w_current->event_state;
 
-        o_drawbounding(w_current, toplevel->page_current->complex_place_list,
-                       x_get_darkcolor(w_current->bb_color), FALSE);
+        o_complex_rubbercomplex_xor (w_current, FALSE);
 
         /* Don't allow o_rotate_90 to erase the selection, neither to
            redraw the objects after rotating */
@@ -694,8 +689,7 @@ gint x_event_button_released(GtkWidget *widget, GdkEventButton *event,
         w_current->rotated_inside ++;
         w_current->event_state = prev_state;
 
-        o_drawbounding(w_current, toplevel->page_current->complex_place_list,
-                       x_get_darkcolor(w_current->bb_color), TRUE);
+        o_complex_rubbercomplex_xor (w_current, TRUE);
 
         return(0);
       }




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