作図ソフト dia の改良版
Revision | 77b98855973cc616da59392e2617209f1667642c (tree) |
---|---|
Time | 1998-09-30 07:57:30 |
Author | Alexander Larsson <alexl@src....> |
Commiter | Alexander Larsson |
Changed handle->connectable to handle->connect_type.
Now handles can be HANDLE_CONNECTABLE_NOBREAK, which means
that their connections don't break when moving objects.
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -135,8 +135,9 @@ ddisplay_connect_selected(DDisplay *ddisp) | ||
135 | 135 | selected_obj = (Object *) list->data; |
136 | 136 | |
137 | 137 | for (i=0; i<selected_obj->num_handles; i++) { |
138 | - if (selected_obj->handles[i]->connectable) | |
138 | + if (selected_obj->handles[i]->connect_type != HANDLE_NONCONNECTABLE) { | |
139 | 139 | object_connect_display(ddisp, selected_obj, selected_obj->handles[i]); |
140 | + } | |
140 | 141 | } |
141 | 142 | |
142 | 143 | list = g_list_next(list); |
@@ -159,7 +160,9 @@ diagram_unconnect_selected(Diagram *dia) | ||
159 | 160 | for (i=0; i<selected_obj->num_handles; i++) { |
160 | 161 | handle = selected_obj->handles[i]; |
161 | 162 | |
162 | - if (handle->connected_to != NULL) { | |
163 | + if ((handle->connected_to != NULL) && | |
164 | + (handle->connect_type == HANDLE_CONNECTABLE)){ | |
165 | + /* don't do this if type is HANDLE_CONNECTABLE_BREAK */ | |
163 | 166 | if (!diagram_is_selected(dia, handle->connected_to->object)) { |
164 | 167 | object_unconnect(selected_obj, handle); |
165 | 168 | } |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -59,7 +59,8 @@ create_object_button_press(CreateObjectTool *tool, GdkEventButton *event, | ||
59 | 59 | (Renderer *)ddisp->renderer); |
60 | 60 | |
61 | 61 | /* Connect first handle if possible: */ |
62 | - if ((handle1!= NULL) && (handle1->connectable)) { | |
62 | + if ((handle1!= NULL) && | |
63 | + (handle1->connect_type != HANDLE_NONCONNECTABLE)) { | |
63 | 64 | object_connect_display(ddisp, obj, handle1); |
64 | 65 | } |
65 | 66 |
@@ -99,7 +100,7 @@ create_object_button_release(CreateObjectTool *tool, GdkEventButton *event, | ||
99 | 100 | object_add_updates(tool->obj, ddisp->diagram); |
100 | 101 | |
101 | 102 | |
102 | - if (tool->handle->connectable) { | |
103 | + if (tool->handle->connect_type != HANDLE_NONCONNECTABLE) { | |
103 | 104 | object_connect_display(ddisp, tool->obj, tool->handle); |
104 | 105 | diagram_update_connections_selection(ddisp->diagram); |
105 | 106 | diagram_flush(ddisp->diagram); |
@@ -126,7 +127,8 @@ create_object_motion(CreateObjectTool *tool, GdkEventMotion *event, | ||
126 | 127 | /* Move to ConnectionPoint if near: */ |
127 | 128 | connectionpoint = |
128 | 129 | object_find_connectpoint_display(ddisp, &to); |
129 | - if ( (tool->handle->connectable) && (connectionpoint != NULL) ) { | |
130 | + if ( (tool->handle->connect_type != HANDLE_NONCONNECTABLE) && | |
131 | + (connectionpoint != NULL) ) { | |
130 | 132 | to = connectionpoint->pos; |
131 | 133 | } else { |
132 | 134 | /* No connectionopoint near, then snap to grid (if enabled) */ |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -307,7 +307,7 @@ group_create(GList *objects) | ||
307 | 307 | for (i=0;i<8;i++) { |
308 | 308 | obj->handles[i] = &group->resize_handles[i]; |
309 | 309 | obj->handles[i]->type = HANDLE_NON_MOVABLE; |
310 | - obj->handles[i]->connectable = FALSE; | |
310 | + obj->handles[i]->connect_type = HANDLE_NONCONNECTABLE; | |
311 | 311 | obj->handles[i]->connected_to = NULL; |
312 | 312 | } |
313 | 313 |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -83,7 +83,7 @@ handle_draw(Handle *handle, DDisplay *ddisp) | ||
83 | 83 | HANDLE_SIZE-1, HANDLE_SIZE-1); |
84 | 84 | |
85 | 85 | |
86 | - if (handle->connectable) { | |
86 | + if (handle->connect_type != HANDLE_NONCONNECTABLE) { | |
87 | 87 | gdk_draw_line (ddisp->pixmap, |
88 | 88 | handle_gc, |
89 | 89 | x - HANDLE_SIZE/2, y - HANDLE_SIZE/2, |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -213,7 +213,6 @@ modify_double_click(ModifyTool *tool, GdkEventButton *event, | ||
213 | 213 | { |
214 | 214 | Point clickedpoint; |
215 | 215 | Object *clicked_obj; |
216 | - GtkWidget *properties; | |
217 | 216 | |
218 | 217 | ddisplay_untransform_coords(ddisp, |
219 | 218 | (int)event->x, (int)event->y, |
@@ -265,7 +264,8 @@ modify_motion(ModifyTool *tool, GdkEventMotion *event, | ||
265 | 264 | /* Move to ConnectionPoint if near: */ |
266 | 265 | connectionpoint = |
267 | 266 | object_find_connectpoint_display(ddisp, &to); |
268 | - if ( (tool->handle->connectable) && (connectionpoint != NULL) ) { | |
267 | + if ( (tool->handle->connect_type != HANDLE_NONCONNECTABLE) && | |
268 | + (connectionpoint != NULL) ) { | |
269 | 269 | to = connectionpoint->pos; |
270 | 270 | } else { |
271 | 271 | /* No connectionopoint near, then snap to grid (if enabled) */ |
@@ -352,7 +352,7 @@ modify_button_release(ModifyTool *tool, GdkEventButton *event, | ||
352 | 352 | object_add_updates(tool->object, ddisp->diagram); |
353 | 353 | |
354 | 354 | /* Connect if possible: */ |
355 | - if (tool->handle->connectable) { | |
355 | + if (tool->handle->connect_type != HANDLE_NONCONNECTABLE) { | |
356 | 356 | object_connect_display(ddisp, tool->object, tool->handle); |
357 | 357 | diagram_update_connections_selection(ddisp->diagram); |
358 | 358 | } |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -95,7 +95,7 @@ connection_init(Connection *conn, int num_handles, int num_connections) | ||
95 | 95 | for (i=0;i<2;i++) { |
96 | 96 | obj->handles[i] = &conn->endpoint_handles[i]; |
97 | 97 | obj->handles[i]->type = HANDLE_MAJOR_CONTROL; |
98 | - obj->handles[i]->connectable = TRUE; | |
98 | + obj->handles[i]->connect_type = HANDLE_CONNECTABLE; | |
99 | 99 | obj->handles[i]->connected_to = NULL; |
100 | 100 | } |
101 | 101 | } |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -257,7 +257,7 @@ element_init(Element *elem, int num_handles, int num_connections) | ||
257 | 257 | |
258 | 258 | for (i=0;i<8;i++) { |
259 | 259 | obj->handles[i] = &elem->resize_handles[i]; |
260 | - obj->handles[i]->connectable = FALSE; | |
260 | + obj->handles[i]->connect_type = HANDLE_NONCONNECTABLE; | |
261 | 261 | obj->handles[i]->connected_to = NULL; |
262 | 262 | obj->handles[i]->type = HANDLE_MAJOR_CONTROL; |
263 | 263 | } |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -22,6 +22,7 @@ typedef struct _Handle Handle; | ||
22 | 22 | typedef enum _HandleId HandleId; |
23 | 23 | typedef enum _HandleType HandleType; |
24 | 24 | typedef enum _HandleMoveReason HandleMoveReason; |
25 | +typedef enum _HandleConnectType HandleConnectType; | |
25 | 26 | |
26 | 27 | /* Is this needed? */ |
27 | 28 | enum _HandleId { |
@@ -62,6 +63,12 @@ enum _HandleMoveReason { | ||
62 | 63 | HANDLE_MOVE_CONNECTED |
63 | 64 | }; |
64 | 65 | |
66 | +enum _HandleConnectType { | |
67 | + HANDLE_NONCONNECTABLE, | |
68 | + HANDLE_CONNECTABLE, | |
69 | + HANDLE_CONNECTABLE_NOBREAK /* Don't break connection on object move */ | |
70 | +}; | |
71 | + | |
65 | 72 | #include "geometry.h" |
66 | 73 | #include "object.h" |
67 | 74 |
@@ -70,7 +77,7 @@ struct _Handle { | ||
70 | 77 | HandleType type; |
71 | 78 | Point pos; |
72 | 79 | |
73 | - int connectable; | |
80 | + HandleConnectType connect_type; | |
74 | 81 | ConnectionPoint *connected_to; /* NULL if not connected */ |
75 | 82 | }; |
76 | 83 |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -126,8 +126,8 @@ void | ||
126 | 126 | object_connect(Object *obj, Handle *handle, |
127 | 127 | ConnectionPoint *connectionpoint) |
128 | 128 | { |
129 | - if (!handle->connectable) { | |
130 | - message_error("Error? trying to connect a non conectable handle.\n" | |
129 | + if (handle->connect_type==HANDLE_NONCONNECTABLE) { | |
130 | + message_error("Error? trying to connect a non connectable handle.\n" | |
131 | 131 | "Check this out...\n"); |
132 | 132 | return; |
133 | 133 | } |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -38,7 +38,7 @@ static void setup_midpoint_handle(Handle *handle) | ||
38 | 38 | { |
39 | 39 | handle->id = HANDLE_MIDPOINT; |
40 | 40 | handle->type = HANDLE_MINOR_CONTROL; |
41 | - handle->connectable = FALSE; | |
41 | + handle->connect_type = HANDLE_NONCONNECTABLE; | |
42 | 42 | handle->connected_to = NULL; |
43 | 43 | } |
44 | 44 |
@@ -416,13 +416,13 @@ orthconn_init(OrthConn *orth, Point *startpoint) | ||
416 | 416 | orth->orientation = g_malloc(2*sizeof(Orientation)); |
417 | 417 | |
418 | 418 | obj->handles[0] = &orth->endpoint_handles[0]; |
419 | - obj->handles[0]->connectable = TRUE; | |
419 | + obj->handles[0]->connect_type = HANDLE_CONNECTABLE; | |
420 | 420 | obj->handles[0]->connected_to = NULL; |
421 | 421 | obj->handles[0]->type = HANDLE_MAJOR_CONTROL; |
422 | 422 | obj->handles[0]->id = HANDLE_MOVE_STARTPOINT; |
423 | 423 | |
424 | 424 | obj->handles[1] = &orth->endpoint_handles[1]; |
425 | - obj->handles[1]->connectable = TRUE; | |
425 | + obj->handles[1]->connect_type = HANDLE_CONNECTABLE; | |
426 | 426 | obj->handles[1]->connected_to = NULL; |
427 | 427 | obj->handles[1]->type = HANDLE_MAJOR_CONTROL; |
428 | 428 | obj->handles[1]->id = HANDLE_MOVE_ENDPOINT; |
@@ -544,14 +544,14 @@ orthconn_load(OrthConn *orth, int fd) /* NOTE: Does object_init() */ | ||
544 | 544 | } |
545 | 545 | |
546 | 546 | obj->handles[0] = &orth->endpoint_handles[0]; |
547 | - obj->handles[0]->connectable = TRUE; | |
547 | + obj->handles[0]->connect_type = HANDLE_CONNECTABLE; | |
548 | 548 | obj->handles[0]->connected_to = NULL; |
549 | 549 | obj->handles[0]->type = HANDLE_MAJOR_CONTROL; |
550 | 550 | obj->handles[0]->id = HANDLE_MOVE_STARTPOINT; |
551 | 551 | obj->handles[0]->pos = orth->points[0]; |
552 | 552 | |
553 | 553 | obj->handles[1] = &orth->endpoint_handles[1]; |
554 | - obj->handles[1]->connectable = TRUE; | |
554 | + obj->handles[1]->connect_type = HANDLE_CONNECTABLE; | |
555 | 555 | obj->handles[1]->connected_to = NULL; |
556 | 556 | obj->handles[1]->type = HANDLE_MAJOR_CONTROL; |
557 | 557 | obj->handles[1]->id = HANDLE_MOVE_ENDPOINT; |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -256,7 +256,7 @@ constraint_create(Point *startpoint, | ||
256 | 256 | |
257 | 257 | constraint->text_handle.id = HANDLE_MOVE_TEXT; |
258 | 258 | constraint->text_handle.type = HANDLE_MINOR_CONTROL; |
259 | - constraint->text_handle.connectable = FALSE; | |
259 | + constraint->text_handle.connect_type = HANDLE_NONCONNECTABLE; | |
260 | 260 | constraint->text_handle.connected_to = NULL; |
261 | 261 | obj->handles[2] = &constraint->text_handle; |
262 | 262 |
@@ -381,7 +381,7 @@ constraint_load(int fd, int version) | ||
381 | 381 | |
382 | 382 | constraint->text_handle.id = HANDLE_MOVE_TEXT; |
383 | 383 | constraint->text_handle.type = HANDLE_MINOR_CONTROL; |
384 | - constraint->text_handle.connectable = FALSE; | |
384 | + constraint->text_handle.connect_type = HANDLE_NONCONNECTABLE; | |
385 | 385 | constraint->text_handle.connected_to = NULL; |
386 | 386 | obj->handles[2] = &constraint->text_handle; |
387 | 387 |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -268,13 +268,13 @@ implements_create(Point *startpoint, | ||
268 | 268 | |
269 | 269 | implements->text_handle.id = HANDLE_MOVE_TEXT; |
270 | 270 | implements->text_handle.type = HANDLE_MINOR_CONTROL; |
271 | - implements->text_handle.connectable = FALSE; | |
271 | + implements->text_handle.connect_type = HANDLE_NONCONNECTABLE; | |
272 | 272 | implements->text_handle.connected_to = NULL; |
273 | 273 | obj->handles[2] = &implements->text_handle; |
274 | 274 | |
275 | 275 | implements->circle_handle.id = HANDLE_CIRCLE_SIZE; |
276 | 276 | implements->circle_handle.type = HANDLE_MINOR_CONTROL; |
277 | - implements->circle_handle.connectable = FALSE; | |
277 | + implements->circle_handle.connect_type = HANDLE_NONCONNECTABLE; | |
278 | 278 | implements->circle_handle.connected_to = NULL; |
279 | 279 | obj->handles[3] = &implements->circle_handle; |
280 | 280 |
@@ -435,13 +435,13 @@ implements_load(int fd, int version) | ||
435 | 435 | |
436 | 436 | implements->text_handle.id = HANDLE_MOVE_TEXT; |
437 | 437 | implements->text_handle.type = HANDLE_MINOR_CONTROL; |
438 | - implements->text_handle.connectable = FALSE; | |
438 | + implements->text_handle.connect_type = HANDLE_NONCONNECTABLE; | |
439 | 439 | implements->text_handle.connected_to = NULL; |
440 | 440 | obj->handles[2] = &implements->text_handle; |
441 | 441 | |
442 | 442 | implements->circle_handle.id = HANDLE_CIRCLE_SIZE; |
443 | 443 | implements->circle_handle.type = HANDLE_MINOR_CONTROL; |
444 | - implements->circle_handle.connectable = FALSE; | |
444 | + implements->circle_handle.connect_type = HANDLE_NONCONNECTABLE; | |
445 | 445 | implements->circle_handle.connected_to = NULL; |
446 | 446 | obj->handles[3] = &implements->circle_handle; |
447 | 447 |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -286,7 +286,7 @@ arc_create(Point *startpoint, | ||
286 | 286 | obj->handles[2] = &arc->middle_handle; |
287 | 287 | arc->middle_handle.id = HANDLE_MIDDLE; |
288 | 288 | arc->middle_handle.type = HANDLE_MINOR_CONTROL; |
289 | - arc->middle_handle.connectable = FALSE; | |
289 | + arc->middle_handle.connect_type = HANDLE_NONCONNECTABLE; | |
290 | 290 | arc->middle_handle.connected_to = NULL; |
291 | 291 | |
292 | 292 | arc_update_data(arc); |
@@ -437,7 +437,7 @@ arc_load(int fd, int version) | ||
437 | 437 | obj->handles[2] = &arc->middle_handle; |
438 | 438 | arc->middle_handle.id = HANDLE_MIDDLE; |
439 | 439 | arc->middle_handle.type = HANDLE_MINOR_CONTROL; |
440 | - arc->middle_handle.connectable = FALSE; | |
440 | + arc->middle_handle.connect_type = HANDLE_NONCONNECTABLE; | |
441 | 441 | arc->middle_handle.connected_to = NULL; |
442 | 442 | |
443 | 443 | arc_update_data(arc); |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -277,7 +277,7 @@ textobj_create(Point *startpoint, | ||
277 | 277 | obj->handles[0] = &textobj->text_handle; |
278 | 278 | textobj->text_handle.id = HANDLE_TEXT; |
279 | 279 | textobj->text_handle.type = HANDLE_MAJOR_CONTROL; |
280 | - textobj->text_handle.connectable = TRUE; | |
280 | + textobj->text_handle.connect_type = HANDLE_CONNECTABLE; | |
281 | 281 | textobj->text_handle.connected_to = NULL; |
282 | 282 | |
283 | 283 | textobj_update_data(textobj); |
@@ -354,7 +354,7 @@ textobj_load(int fd, int version) | ||
354 | 354 | obj->handles[0] = &textobj->text_handle; |
355 | 355 | textobj->text_handle.id = HANDLE_TEXT; |
356 | 356 | textobj->text_handle.type = HANDLE_MINOR_CONTROL; |
357 | - textobj->text_handle.connectable = TRUE; | |
357 | + textobj->text_handle.connect_type = HANDLE_CONNECTABLE; | |
358 | 358 | textobj->text_handle.connected_to = NULL; |
359 | 359 | |
360 | 360 | textobj_update_data(textobj); |
@@ -1,4 +1,4 @@ | ||
1 | -/* xxxxxx -- an diagram creation/manipulation program | |
1 | +/* Dia -- an diagram creation/manipulation program | |
2 | 2 | * Copyright (C) 1998 Alexander Larsson |
3 | 3 | * |
4 | 4 | * This program is free software; you can redistribute it and/or modify |
@@ -281,7 +281,7 @@ zigzagline_create(Point *startpoint, | ||
281 | 281 | obj->handles[2] = &zigzagline->middle_handle; |
282 | 282 | zigzagline->middle_handle.id = HANDLE_MIDDLE; |
283 | 283 | zigzagline->middle_handle.type = HANDLE_MINOR_CONTROL; |
284 | - zigzagline->middle_handle.connectable = FALSE; | |
284 | + zigzagline->middle_handle.connect_type = HANDLE_NONCONNECTABLE; | |
285 | 285 | zigzagline->middle_handle.connected_to = NULL; |
286 | 286 | |
287 | 287 | zigzagline_update_data(zigzagline); |
@@ -381,7 +381,7 @@ zigzagline_load(int fd, int version) | ||
381 | 381 | obj->handles[2] = &zigzagline->middle_handle; |
382 | 382 | zigzagline->middle_handle.id = HANDLE_MIDDLE; |
383 | 383 | zigzagline->middle_handle.type = HANDLE_MINOR_CONTROL; |
384 | - zigzagline->middle_handle.connectable = FALSE; | |
384 | + zigzagline->middle_handle.connect_type = HANDLE_NONCONNECTABLE; | |
385 | 385 | zigzagline->middle_handle.connected_to = NULL; |
386 | 386 | |
387 | 387 | zigzagline_update_data(zigzagline); |