Commits (11)
  • ROOL's avatar
    Update to use clipboard cut & paste · 3869741b
    ROOL authored
    Detail:
      Initial implementation of the cut-and-paste aspects of 1309,419/FS revision G.
      The former model (limited to only being able copy locally within a document) now uses RAM (or file based fallback) transfer of draw objects (DrawFile/Sprite/JPEG/Text).
    Admin:
      Submission for Clipboard Support bounty.
    
    Version 1.31. Tagged as 'Draw-1_31'
    3869741b
  • ROOL's avatar
    Sprite copy, Draw paste fixes · a90d48bb
    ROOL authored
    Detail:
      Correction to Sprite collation to the clipboard to get the sprite header right.
      On paste, if there's already an object selected replace it with the pasted item.
    Admin:
      Submission for Clipboard Support bounty.
    
    Version 1.32. Tagged as 'Draw-1_32'
    a90d48bb
  • ROOL's avatar
    Update to use drag & drop also · 0857587f
    ROOL authored
    Detail:
      Implementation of the drag-and-drop aspects of 1309,419/FS revision G.
    Admin:
      Submission for Clipboard Support bounty.
    
    Version 1.35. Tagged as 'Draw-1_35'
    0857587f
  • ROOL's avatar
    Correction to Wimp message length · a0322e74
    ROOL authored
    Detail:
      The structure definition includes an initial slot for a type, so the length calculation should subtract 1 when using sizeof().
    
    Version 1.36. Tagged as 'Draw-1_36'
    a0322e74
  • ROOL's avatar
    Add duplicate selection operation · 5fef6528
    ROOL authored
    Detail:
      Define Ctrl-D to duplicate (equivalent to copy/paste with nudge), and reassign the previous use of Ctrl-D to reset the zoom ratio to 1:1 to Ctrl-0.
    Admin:
      Submission for Clipboard Support bounty.
    
    Version 1.37. Tagged as 'Draw-1_37'
    5fef6528
  • Andy Vawer's avatar
    Fix for menu reopen issue on Adjust click · 2ee46b5c
    Andy Vawer authored
    When choosing a menu option with Adjust, menus other than the top level would be closed because the request for clipboard status via Wimp_SendMessage/Wimp_Poll interfered with the menu reopening.
    
    Version 1.38. Tagged as 'Draw-1_38'
    2ee46b5c
  • Robert Sprowson's avatar
    Fix for wrong text bounding box for font size > 240ish · 430dd220
    Robert Sprowson authored
    Integer overflow would cause an odd/invalid bounding box. Be more careful during the calculation.
    Tested with Homerton.Medium saying "Homerton" at 999 point.
    430dd220
  • Robert Sprowson's avatar
    [445] Fix for failing to transform text areas properly · 4d5f5a75
    Robert Sprowson authored
    The calculation in scale_textC() was using the origin of the group rather than the origin of the text column, and hence when a group of text areas was transformed (xscale/yscale/magnify) all the text got clumped up in the top left corner.
    Delete scale_textcolumn() since Draw object 10 can only occur nested inside a text area, there's no need to have a handler for it.
    
    Version 1.39. Tagged as 'Draw-1_39'
    4d5f5a75
  • Andy Vawer's avatar
    Fix issue dragging selection to iconbar icons · a1faed3a
    Andy Vawer authored
    Send wimp messages to the actual iconbar icon rather than just the window handle during drag procedure.
    
    Version 1.40. Tagged as 'Draw-1_40'
    a1faed3a
  • Robert Sprowson's avatar
    Add a file info box · 87d7f0c0
    Robert Sprowson authored
    Paint and Edit have Misc > File menu entries, but not Draw. Add one, showing the file name and size, number of Draw objects in the drawing, and modified status.
    87d7f0c0
  • Robert Sprowson's avatar
    Add choices dialogue, don't set Draw$Options · 99383d21
    Robert Sprowson authored
    Messages/Templates: Extra interactive help, new menu templates, new choices dialogue
    DrawChoice.c/h: New source file to handle the choices dialogue, also added to Makefile.
    
    Draw.c/h: Transfer ownership of initial_options to DrawChoice.c, bump up the default undo buffer to a lavish 8k. Delete setting & parsing of Draw$Options. Ensure read of choices happens after the default colours have been read from the icons of the blank paper, otherwise the choices can't override the default grid colour. Add a couple of const qualifiers to clarify where draw_current_options is written.
    DrawMenu.c: Refactor draw_menu_makegridmenu() and draw_menu_setgridmenu() so they can handle multiple grid menus in existence, so the choices dialogue can share all the grid menu update code. Split out draw_menu_setgridunits() from the draw_menu_proc() handler for the same reason. No longer diff Draw$Options for changes. Delete some oddly duplicated code in draw_menu_entry_option().
    DrawMenu...
    99383d21
......@@ -91,26 +91,30 @@ OBJS =\
o.Draw o.DrawAction o.DrawCheck o.DrawDispl o.DrawDXF\
o.DrawEdit o.DrawEnter o.DrawFileIO o.DrawGrid o.DrawHelp\
o.DrawMenu o.DrawObject o.DrawPrint o.DrawScan o.DrawSelect\
o.DrawTextC o.DrawTrans o.DrawUndo o.bezierarc
o.DrawTextC o.DrawTrans o.DrawUndo o.bezierarc o.DrawClipb\
o.DrawDrag o.DrawChoice
OBJSZ =\
oz.Draw oz.DrawAction oz.DrawCheck oz.DrawDispl oz.DrawDXF\
oz.DrawEdit oz.DrawEnter oz.DrawFileIO oz.DrawGrid oz.DrawHelp\
oz.DrawMenu oz.DrawObject oz.DrawPrint oz.DrawScan oz.DrawSelect\
oz.DrawTextC oz.DrawTrans oz.DrawUndo oz.bezierarc
oz.DrawTextC oz.DrawTrans oz.DrawUndo oz.bezierarc oz.DrawClipb\
oz.DrawDrag oz.DrawChoice
OBJSD =\
od.Draw od.DrawAction od.DrawCheck od.DrawDispl\
od.DrawDXF od.DrawEdit od.DrawEnter od.DrawFileIO od.DrawGrid\
od.DrawHelp od.DrawMenu od.DrawObject od.DrawPrint od.DrawScan\
od.DrawSelect od.DrawTextC od.DrawTrans od.DrawUndo\
od.bezierarc od.ftrace od.guard od.flex
od.bezierarc od.ftrace od.guard od.flex od.DrawClipb\
od.DrawDrag od.DrawChoice
ASMS =\
s.Draw s.DrawAction s.DrawCheck s.DrawDispl s.DrawDXF\
s.DrawEdit s.DrawEnter s.DrawFileIO s.DrawGrid s.DrawHelp\
s.DrawMenu s.DrawObject s.DrawPrint s.DrawScan s.DrawSelect\
s.DrawTextC s.DrawTrans s.DrawUndo s.bezierarc
s.DrawTextC s.DrawTrans s.DrawUndo s.bezierarc s.DrawClipb\
s.DrawDrag s.DrawChoice
#
# Rule patterns
......
No preview for this file type
;
; This file is automatically maintained by srccommit, do not edit manually.
; Last processed by srccommit version: 1.1.
;
GBLS Module_MajorVersion
GBLA Module_Version
......@@ -10,14 +9,12 @@
GBLS Module_ApplicationDate
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "1.30"
Module_Version SETA 130
Module_MajorVersion SETS "1.41"
Module_Version SETA 141
Module_MinorVersion SETS ""
Module_Date SETS "27 Oct 2016"
Module_ApplicationDate SETS "27-Oct-16"
Module_Date SETS "25 Apr 2020"
Module_ApplicationDate SETS "25-Apr-20"
Module_ComponentName SETS "Draw"
Module_ComponentPath SETS "castle/RiscOS/Sources/Apps/Draw"
Module_FullVersion SETS "1.30"
Module_HelpVersion SETS "1.30 (27 Oct 2016)"
Module_FullVersion SETS "1.41"
Module_HelpVersion SETS "1.41 (25 Apr 2020)"
END
/* (1.30)
/* (1.41)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 1.30
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 27 Oct 2016
#define Module_MajorVersion_CMHG 1.41
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 25 Apr 2020
#define Module_MajorVersion "1.30"
#define Module_Version 130
#define Module_MajorVersion "1.41"
#define Module_Version 141
#define Module_MinorVersion ""
#define Module_Date "27 Oct 2016"
#define Module_Date "25 Apr 2020"
#define Module_ApplicationDate "27-Oct-16"
#define Module_ApplicationDate "25-Apr-20"
#define Module_ComponentName "Draw"
#define Module_ComponentPath "castle/RiscOS/Sources/Apps/Draw"
#define Module_FullVersion "1.30"
#define Module_HelpVersion "1.30 (27 Oct 2016)"
#define Module_LibraryVersionInfo "1:30"
#define Module_FullVersion "1.41"
#define Module_HelpVersion "1.41 (25 Apr 2020)"
#define Module_LibraryVersionInfo "1:41"
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -868,7 +868,7 @@ static os_error *do_objtrfmtext_system (draw_objptr hdrptr,
len = strlen (hdrptr.trfmtextp->text);
size_of_area = 10*1024; /*!!!*/
if ((area = Alloc (size_of_area)) == NULL)
{ ftracef1 ("-> out of memory\n");
{ ftracef0 ("-> out of memory\n");
return draw_make_oserror ("DrawNR");
}
......@@ -1285,7 +1285,7 @@ static os_error *do_objjpeg (draw_objptr hdrptr, draw_objcoord *org)
/* */
/* ------------------------------------------------------------------- */
os_error *draw_displ_do_objects (diagrec *diag, int offset, int end,
os_error *draw_displ_do_objects (diagrec *diag, int offset, int end, char *paper,
draw_objcoord *org, draw_bboxtyp *clip)
{ os_error *error = 0;
......@@ -1303,7 +1303,7 @@ os_error *draw_displ_do_objects (diagrec *diag, int offset, int end,
{ draw_objptr hdrptr;
os_error *e = NULL;
hdrptr.bytep = diag->paper + offset;
hdrptr.bytep = paper + offset;
size = hdrptr.objhdrp->size;
switch (hdrptr.objhdrp->tag)
......@@ -1323,7 +1323,7 @@ os_error *draw_displ_do_objects (diagrec *diag, int offset, int end,
if (visible (hdrptr, clip))
/* Render the objects in the group */
e = draw_displ_do_objects (diag, offset + sizeof (draw_groustr),
offset + size, org, clip), boxed = TRUE;
offset + size, paper, org, clip), boxed = TRUE;
break;
case draw_OBJTAGG:
......@@ -1334,7 +1334,7 @@ os_error *draw_displ_do_objects (diagrec *diag, int offset, int end,
/*Render the (one) object within the tagged object*/
e = draw_displ_do_objects (diag,
offset + sizeof (draw_taggstr),
offset + sizeof (draw_taggstr) + tagptr.objhdrp->size, org,
offset + sizeof (draw_taggstr) + tagptr.objhdrp->size, paper, org,
clip), boxed = TRUE;
}
break;
......
This diff is collapsed.
......@@ -1164,9 +1164,8 @@ os_error *draw_edit_flatten_join (diagrec *diag)
{ /*Get the required angle for nextele. This needs the start point of curr!*/
int dx, dy;
double length, angle;
drawmod_pathelemptr prevele;
draw_objcoord s;
draw_objcoord s = { 0, 0 };
prevele.bytep = diag->paper + diag->misc->pathedit_cb.pele_off;
......
......@@ -38,6 +38,8 @@
#include "jpeg.h"
#include "dbox.h"
#include "font.h"
#include "resspr.h"
#include "pointer.h"
#include "ftrace.h"
#include "guard.h"
......@@ -47,6 +49,7 @@
#include "DrawEdit.h"
#include "DrawEnter.h"
#include "DrawObject.h"
#include "DrawDrag.h"
null_owner_str draw_enter_null_owner = {0,0,-1};
focus_owner_str draw_enter_focus_owner = {0,0,-1};
......@@ -99,31 +102,48 @@ static void claim_idle_for_null_owner (void)
win_claim_idle_events (draw_enter_null_owner.hand);
if (draw_enter_null_owner.hand == -1)
event_setmask ((wimp_emask) (event_getmask () | wimp_EMNULL));
{ event_setmask ((wimp_emask) (event_getmask () | wimp_EMNULL));
draw_drag_stop_current();
}
else
event_setmask ((wimp_emask) (event_getmask () & ~wimp_EMNULL));
#if 1 /*JRC*/
if
( draw_enter_null_owner.hand != -1 &&
draw_enter_null_owner.diag != 0 &&
( draw_enter_null_owner.diag->misc->mainstate == state_sel ||
draw_enter_null_owner.diag->misc->mainstate == state_edit ||
if (draw_enter_null_owner.hand != -1 && draw_enter_null_owner.diag != 0)
{ if (draw_enter_null_owner.diag->misc->mainstate == state_edit ||
draw_enter_null_owner.diag->misc->substate == state_zoom ||
draw_enter_null_owner.diag->misc->substate == state_printerI ||
draw_enter_null_owner.diag->misc->substate == state_printerO
) )
draw_enter_null_owner.diag->misc->substate == state_printerO)
{ wimp_wstate state;
/*Bound the mouse to this window, just for fun*/
wimpt_noerr (wimp_get_wind_state (draw_enter_null_owner.hand,
&state));
&state));
Bound_Pointer (state.o.box.x0, state.o.box.y0,
state.o.box.x1, state.o.box.y1);
state.o.box.x1, state.o.box.y1);
}
else
/*Unbound the mouse*/
Unbound_Pointer ();
{ if (draw_enter_null_owner.diag->misc->mainstate == state_sel)
{ if (draw_enter_null_owner.diag->misc->substate!=state_sel_trans)
{ wimp_wstate state;
wimpt_noerr (wimp_get_wind_state (draw_enter_null_owner.hand,
&state));
Bound_Pointer (state.o.box.x0, state.o.box.y0,
state.o.box.x1, state.o.box.y1);
}
else
draw_drag_start_export(draw_enter_null_owner.vuue);
}
else
{ /*Unbound the mouse*/
Unbound_Pointer ();
}
}
}
else
{ /*Unbound the mouse*/
Unbound_Pointer ();
}
#endif
}
......
This diff is collapsed.
This diff is collapsed.
......@@ -26,6 +26,7 @@
*
*/
#include <assert.h>
#include <limits.h>
#include <math.h>
#include <stdio.h>
......@@ -60,6 +61,7 @@
#include "DrawTextC.h"
#include "DrawTrans.h"
#include "DrawUndo.h"
#include "DrawDrag.h"
/*------------------------------------------------------------------------*/
/* General object handling */
......@@ -927,11 +929,16 @@ BOOL draw_obj_findTextBox(draw_objptr hdrptr, draw_bboxtyp *bbox)
font_lose (fonth);
if (ok)
{ /* Calculate actual bbox in Draw units from millipoints */
bbox->x0 = (bbox->x0 << 8)/(400*MAXZOOMFACTOR) + hdrptr.textp->coord.x;
bbox->x1 = (bbox->x1 << 8)/(400*MAXZOOMFACTOR) + hdrptr.textp->coord.x;
bbox->y0 = (bbox->y0 << 8)/(400*MAXZOOMFACTOR) + hdrptr.textp->coord.y;
bbox->y1 = (bbox->y1 << 8)/(400*MAXZOOMFACTOR) + hdrptr.textp->coord.y;
{ /* Calculate actual bbox in Draw units from millipoints, */
/* take care with integer range as the bbox may be taller */
/* than MAX_FONTSIZE due to descenders. The divide always */
/* truncates (as 256 << 400 * MAXZOOMFACTOR) so massage */
/* some of the truncation into the draw unit promotion step */
assert (MAXZOOMFACTOR == 8);
bbox->x0 = (bbox->x0 << (8-3))/400 + hdrptr.textp->coord.x;
bbox->x1 = (bbox->x1 << (8-3))/400 + hdrptr.textp->coord.x;
bbox->y0 = (bbox->y0 << (8-3))/400 + hdrptr.textp->coord.y;
bbox->y1 = (bbox->y1 << (8-3))/400 + hdrptr.textp->coord.y;
return(TRUE);
}
......@@ -1458,13 +1465,13 @@ void draw_obj_bound_selection_width (int *widthp)
Bound_Width (hdrptr, widthp);
}
void draw_obj_bound_all(diagrec *diag, draw_bboxtyp *boundp)
void draw_obj_bound_all(char *paper, int solidstart, int solidlimit, draw_bboxtyp *boundp)
{ draw_objptr hdrptr,limit;
ftracef0 ("draw_obj_bound_all\n");
hdrptr.bytep = diag->paper + diag->misc->solidstart;
limit.bytep = diag->paper + diag->misc->solidlimit;
hdrptr.bytep = paper + solidstart;
limit.bytep = paper + solidlimit;
*boundp = draw_big_box;
......@@ -1640,11 +1647,11 @@ void draw_obj_move_construction(diagrec *diag, draw_objcoord *mouse)
{ int ptzzz_x = diag->misc->ptzzz.x;
int ptzzz_y = diag->misc->ptzzz.y;
ftracef4 ("draw_obj_move_construction: mouse (%d, %d) to (%d, %d)\n",
ftracef4 ("\ndraw_obj_move_construction: mouse (%d, %d) to (%d, %d)\n",
ptzzz_x, ptzzz_y, mouse->x, mouse->y);
ftracef2 ("main state %s, substate %s\n",
STATE (diag->misc->mainstate), STATE (diag->misc->substate));
STATE(diag->misc->mainstate), STATE(diag->misc->substate));
switch (diag->misc->substate)
{ case state_path_point1:
......@@ -1814,8 +1821,11 @@ void draw_obj_move_construction(diagrec *diag, draw_objcoord *mouse)
}
/* Drop any translate/rotate/scale boxes or control points being edited */
/* apply the operation to the data base and release nulls & input focus */
os_error *draw_obj_drop_construction(diagrec *diag)
/* apply the operation to the data base and release nulls & input focus. */
/* If complete_transforms is FALSE, then just clear drag boxes without */
/* updating document. */
os_error *draw_obj_drop_construction(diagrec *diag, BOOL complete_transforms)
{ os_error *err = 0;
......@@ -1840,12 +1850,17 @@ os_error *draw_obj_drop_construction(diagrec *diag)
case state_sel_trans:
draw_displ_eor_transboxes(diag);
/* See if it's a drag that ended outside our window. */
/* If so, don't do any transforms! */
if (complete_transforms)
{
#if 0
draw_undo_put_start_mod(diag, -1);
#else
draw_undo_separate_major_edits (diag);
#endif
draw_trans_translate(diag, -1, -1, &draw_translate_cb);
}
break;
case state_sel_rotate:
......
......@@ -63,6 +63,7 @@
#include "DrawFileIO.h"
#include "DrawObject.h"
#include "DrawPrint.h"
#include "DrawClipb.h"
#define strnul(s) ((s) [0] == '\0')
......@@ -239,11 +240,17 @@ static void set_page (diagrec *diag, print_transmatstr *transmat,
{ draw_bboxtyp print_limit;
BOOL rotate;
double xscale, yscale;
int delta;
ftracef0 ("draw_print: set_page\n");
/* Find the page limit as we would display it */
rotate = draw_print_get_limits (diag, &print_limit, NULL);
if (diag != NULL)
rotate = draw_print_get_limits (diag, &print_limit, NULL);
else
{ rotate = cliprotate;
print_limit = clippage;
}
ftracef1 ("rotate %s\n", rotate? "TRUE": "FALSE");
ftracef2 ("pagesize is (%d, %d)\n", page->ysize, page->xsize);
......@@ -264,8 +271,10 @@ static void set_page (diagrec *diag, print_transmatstr *transmat,
/* Form position (scale and convert to font units) */
/*Fix bug: use the right formula for this. JRC 18th Jan 1995*/
position->dx = draw_drawToFont (yscale*(pictureBB->y0 - print_limit.y0));
position->dy = draw_drawToFont (xscale*(-pictureBB->x0 + print_limit.x1));
delta = pictureBB->y0 - print_limit.y0;
position->dx = draw_drawToFont ((int)(yscale*delta));
delta = -pictureBB->x0 + print_limit.x1;
position->dy = draw_drawToFont ((int)(xscale*delta));
}
else
{ xscale = (double) page->xsize/draw_drawToFont (print_limit.x1 -
......@@ -280,8 +289,10 @@ static void set_page (diagrec *diag, print_transmatstr *transmat,
/* Form position (scale and convert to font units) */
#if 1 /*JRC 16th Jan 1995*/
position->dx = draw_drawToFont (xscale*(pictureBB->x0 - print_limit.x0));
position->dy = draw_drawToFont (yscale*(pictureBB->y0 - print_limit.y0));
delta = pictureBB->x0 - print_limit.x0;
position->dx = draw_drawToFont ((int)(xscale*delta));
delta = pictureBB->y0 - print_limit.y0;
position->dy = draw_drawToFont ((int)(yscale*delta));
#else
position->dx = -draw_drawToFont (xscale*(diag->misc->paperstate.setlimit.x0 - pictureBB->x0));
position->dy = -draw_drawToFont (yscale*(diag->misc->paperstate.setlimit.y0 - pictureBB->y0));
......@@ -296,7 +307,7 @@ static void set_page (diagrec *diag, print_transmatstr *transmat,
/*Most of the old draw_print_printall() moved to here to allow it be called
from draw_file: exportEPSF. J R C 28th Sep 1993*/
os_error *draw_print_to_file (diagrec *diag, int file, BOOL illustration)
os_error *draw_print_to_file (diagrec *diag, char *paper, int solidstart, int solidlimit, int file, BOOL illustration)
{ os_error *error = NULL;
print_infostr info;
......@@ -312,8 +323,8 @@ os_error *draw_print_to_file (diagrec *diag, int file, BOOL illustration)
char fontusetab [256];
ftracef0 ("draw_print_to_file\n");
hdrptr.bytep = diag->paper + diag->misc->solidstart;
limit.bytep = diag->paper + diag->misc->solidlimit;
hdrptr.bytep = paper + solidstart;
limit.bytep = paper + solidlimit;
draw_displ_scalefactor = 1.0;
......@@ -341,7 +352,7 @@ os_error *draw_print_to_file (diagrec *diag, int file, BOOL illustration)
#if 1
/*Reinstated by popular demand ... JRC 6th Dec 1994*/
ftracef0 ("draw_print_to_file: bounding file\n");
draw_obj_bound_all (diag, &pictureBB);
draw_obj_bound_all (paper, solidstart, solidlimit, &pictureBB);
if (pictureBB.x0 > pictureBB.x1 || pictureBB.y0 > pictureBB.y1)
{ error = draw_make_oserror ("Print2");
......@@ -389,8 +400,8 @@ os_error *draw_print_to_file (diagrec *diag, int file, BOOL illustration)
for (i = 0; i < 256; i++)
fontusetab [i] = FALSE;
limit.bytep = diag->paper + diag->misc->solidlimit;
for (hdrptr.bytep = diag->paper + diag->misc->solidstart;
limit.bytep = paper + solidlimit;
for (hdrptr.bytep = paper + solidstart;
hdrptr.bytep < limit.bytep; hdrptr.bytep += hdrptr.objhdrp->size)
draw_file_fontuse_object (hdrptr, fontusetab);
......@@ -431,8 +442,8 @@ os_error *draw_print_to_file (diagrec *diag, int file, BOOL illustration)
256/draw_displ_scalefactor);
ftracef0 ("draw_print_to_file: draw_displ_do_objects\n");
if ((error = draw_displ_do_objects (diag, diag->misc->solidstart,
diag->misc->solidlimit, &org, (draw_bboxtyp *) &clip)) != NULL)
if ((error = draw_displ_do_objects (diag, solidstart,
solidlimit, paper, &org, (draw_bboxtyp *) &clip)) != NULL)
goto finish;
ftracef0 ("draw_print_to_file: print_getrectangle\n");
......@@ -491,7 +502,7 @@ os_error *draw_print_printall (diagrec *diag)
ftracef1 ("OSFind_OpenoutNoPath gave handle %d\n", currjob);
ftracef0 ("calling draw_print_to_file ...\n");
if ((error = draw_print_to_file (diag, currjob, FALSE)) != NULL)
if ((error = draw_print_to_file (diag, diag->paper, diag->misc->solidstart, diag->misc->solidlimit, currjob, FALSE)) != NULL)
goto finish;
ftracef0 ("calling draw_print_to_file ... done\n");
......
......@@ -1115,7 +1115,7 @@ os_error *draw_select_back (diagrec *src)
/*Make a copy of the selection, jogging it.*/
/*Can copy to another diagram*/
os_error *draw_select_copy (diagrec *src, diagrec *dest, trans_str *trans)
os_error *draw_select_copy (diagrec *src, diagrec *dest, trans_str *trans, BOOL delete_source)
{ os_error *err = 0;
BOOL ok;
......@@ -1133,6 +1133,12 @@ os_error *draw_select_copy (diagrec *src, diagrec *dest, trans_str *trans)
{ /*Copy objects*/
copy_selection (src, dest, offset);
if (delete_source)
{ /*Delete from original if desired*/
delete_selection(src,TRUE);
draw_selection->indx = 0;
}
/*Change state on copy to another diagram*/
if (src != dest)
{ /*Change source to line entry*/
......@@ -2574,6 +2580,7 @@ static os_error *Convert_Text_Line_To_Paths (diagrec *diag,
(diag,
text_line_off,
text_line_off + 1,
diag->paper,
&Origin,
&Big_Box
),
......@@ -2649,6 +2656,7 @@ static os_error *Convert_Text_Line_To_Paths (diagrec *diag,
(diag,
text_line_off,
text_line_off + 1,
diag->paper,
&Origin,
&Big_Box
),
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.