This caused the original object to be moved when using the Draft move tool to move a link object, when the original object has MoveWithHost set (e.g. a Window). There was already a similar exception for clones, so it makes sense to extend this for links too. Note that there seem to be more problems with the "MoveWithHost" mechanism and fixing them might completely refactor this code, but until then, this is a simple and targeted fix that at least makes moving links to windows work as expected. See https://forum.freecadweb.org/viewtopic.php?f=23&t=57223 for discussion of this bug, its fix and the additional problems mentioned.
2020 May
These files provide auxiliary functions used by the Draft workbench.
Previously most of these functions were defined in Draft.py,
DraftTools.py, and DraftGui.py. However, due to being defined in these
big modules, it was impossible to use them individually without importing
the entire modules. So a decision was made to split the functions
into smaller modules.
In here we want modules with generic functions that can be used everywhere in the workbench. We want these tools to depend only on standard Python modules and basic FreeCAD methods so that there are no circular dependencies, and so that they can be used by all functions and graphical commands in this workbench, and others if possible.
utils: basic functionsmessages: used to print messagestranslate: used to translate textsinit_tools: used to initialize the workbench (toolbars and menus)todo: used to delay execution of certain graphical commands
Some auxiliary functions require that the graphical interface is loaded as they deal with scripted objects' view providers or the 3D view.
gui_utils: basic functions dealing with the graphical interfaceinit_draft_statusbar: functions to initialize the status bar
For more information see the thread: [Discussion] Splitting Draft tools into their own modules