Opened 5 months ago
Closed 5 months ago
#17757 closed defect (fixed)
"move": distance is None while undo is not None
Reported by: | Owned by: | Tom Goddard | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Undo/Redo | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: macOS-15.5-arm64-arm-64bit ChimeraX Version: 1.9rc202411082121 (2024-11-08 21:21:14 UTC) Description Replace this text with list of actions that caused this problem to occur Log: Startup Messages --- note | available bundle cache has not been initialized yet > mousemode middleMode center > cofr centerOfView > alias cofron cofr centerofview showpivot true > alias cofroff cofr centerofview showpivot false > alias symclip cofr centerofview; clip near -$1 far $1 position cofr > alias cootmode set bgColor black; surface cap false; surface style solid; > lighting flat; graphics silhouettes false; style stick; ~rib; color > ##num_residues gold; color byhet ; disp; ~disp @H*; style ions ball; style > solvent ball; size ballscale 0.2; size stickradius 0.07; transparency 70; > cofr centerofview; clip near -10 far 10 position cofr; color ##~num_residues > cornflower blue > alias cootmode_mesh set bgColor black; surface cap false; surface style > mesh; lighting flat; graphics silhouettes false; style stick; ~rib; color > ##num_residues gold; color byhet ; disp; ~disp @H*; style solvent ball; > style ions ball; size ballscale 0.2; size stickradius 0.07; cofr > centerofview; clip near -10 far 10 position cofr; color ##~num_residues > #3d60ffff; transparency 50 > alias cootmode_off surface style solid; lighting soft; graphics silhouettes > false; hide atoms; default_mol_display; transparency 0; symclip 40; color > ##~num_residues grey; size stickradius 0.2; > alias ca_and_sidechains ~rib $1; ~surf $1; ~disp $1; disp @CA&protein&$1; > disp @P&nucleic&$1; style $1 stick; disp sidechain&$1; disp > ~backbone&nucleic&$1; size stickradius 0.1; size pseudobondradius 0.1 > alias ca_trace ~rib $1; ~surf $1; ~disp $1; disp @CA&protein&$1; disp > @P&nucleic&$1; style $1 stick; size stickradius 0.1; size pseudobondradius > 0.1 > alias map_sphere_15 surface unzone ##~num_residues; sel; close #10000; > marker #10000 position cofr; sel ~sel; surface zone ##~num_residues > nearAtoms sel distance 15; close #10000 > alias map_unsphere surface unzone ##~num_residues > alias default_mol_display ~disp; rib; rainbow chain palette Pastel1-5; > lighting soft; color byhet > alias hidemaps surface unzone ##~num_residues; sel; close #10000; marker > #10000 position cofr; sel ~sel; surface zone ##~num_residues nearAtoms sel > distance 0; close #10000 > alias showmaps surface unzone ##~num_residues > alias licorice car style protein modeh default arrows f xsect oval width 1 > thick 1; style stick; size stickRadius 0.5; ~disp @H*; color byhet > alias caps_off surface cap false > alias caps_on surface cap true > alias rock_movie cofr showpivot false; movie record supersample 3; rock y > 40; wait 136; movie encode ~/Desktop/rock_movie.mp4 quality high; stop > alias publication_figure save Figure.png format png supersample 3 > transparentBackground true width 3000 height 3000 > buttonpanel Shortcuts rows 3 columns 5 > buttonpanel Shortcuts add default_disp command default_mol_display > buttonpanel Shortcuts add Hide_H command "~disp @H*" > buttonpanel Shortcuts add Licorice command licorice > buttonpanel Shortcuts add Ribbons command "preset ribbons" > buttonpanel Shortcuts add RockMovie command rock_movie > buttonpanel Shortcuts add SymClip10 command "symclip 10" > buttonpanel Shortcuts add SymClip20 command "symclip 20" > buttonpanel Shortcuts add map_sphere command map_sphere_15 > buttonpanel Shortcuts add map_unsphere command map_unsphere > buttonpanel Shortcuts add PubFigure command publication_figure > buttonpanel Shortcuts add coot_mode command cootmode > buttonpanel Shortcuts add coot_mesh command cootmode_mesh > buttonpanel Shortcuts add coot_off command cootmode_off > buttonpanel Shortcuts add hidemaps command hidemaps > buttonpanel Shortcuts add showmaps command showmaps > ui tool show "Model Panel" UCSF ChimeraX version: 1.9rc202411082121 (2024-11-08) © 2016-2024 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open "/Users/zhouling95/Documents/Academic/McLellan Lab/05 PIV HN/RV3 > VHH60/Deposition/pdb_extract_out_2316350388.cif" Summary of feedback from opening /Users/zhouling95/Documents/Academic/McLellan Lab/05 PIV HN/RV3 VHH60/Deposition/pdb_extract_out_2316350388.cif --- warning | Missing or incomplete sequence information. Inferred polymer connectivity. Chain information for pdb_extract_out_2316350388.cif #1 --- Chain | Description A B | No description available H I | No description available > select #1/H,I 3528 atoms, 3564 bonds, 242 residues, 1 model selected > color sel dark orange > select #1/A 6731 atoms, 6821 bonds, 1 pseudobond, 430 residues, 2 models selected > color sel dodger blue > select #1/B 6730 atoms, 6820 bonds, 1 pseudobond, 430 residues, 2 models selected > color sel light blue > select #1:NAG 163 atoms, 163 bonds, 6 residues, 1 model selected > color sel #70c489ff > select #1 16989 atoms, 17205 bonds, 2 pseudobonds, 1102 residues, 2 models selected > color sel byhetero > interfaces select #1/H contacting #1/A bothSides true 46 contacting residues > show (sel-residues & sidechain) target ab > size stickRadius 0.3 Changed 17205 bond radii > hbonds sel intraMol false 11 hydrogen bonds found > color hbonds #faf353ff models > show #1/A:370 > hide #1/A:214, 558 > distance #1/H:45@NH1 #1/A:462@OE2 Distance between /H ARG 45 NH1 and /A GLU 462 OE2: 3.255Å > distance style dashes 6 > distance style radius 0.08 [Repeated 1 time(s)] > hide #1/H:100B,98 #1/A:530,255,275,278,474 > lighting soft > graphics silhouettes true > hide #2.1 models > color #2 #faf353ff models > delete H > select add #1 8576 atoms, 8792 bonds, 3 pseudobonds, 1102 residues, 3 models selected > select subtract #1 Nothing selected > hide #!2 models > hide #1.1 models > hide #1.2 models > open "/Users/zhouling95/Documents/Academic/McLellan Lab/05 PIV HN/RV3 > VHH60/Deposition/cryosparc_P714_J192_map_sharp.mrc" Opened cryosparc_P714_J192_map_sharp.mrc as #3, grid size 300,300,300, pixel 0.94, shown at level 0.00153, step 2, values float32 > volume #3 step 1 > volume #3 level 0.03548 > surface dust #3 size 9.4 > volume #3 color #dddddd > volume #3 color #dddddd00 > volume #3 color #dddddd40 > volume #3 level 0.08639 > volume #3 level 0.1288 > volume #3 level 0.06094 > ui tool show "Map Eraser" > volume erase #3 center 138.31,139.85,85.444 radius 15.787 Opened cryosparc_P714_J192_map_sharp.mrc copy as #5, grid size 300,300,300, pixel 0.94, shown at step 1, values float32 > surface dust #5 size 9.4 > cd "/Users/zhouling95/Desktop/RV3 VHH60" Current working directory is: /Users/zhouling95/Desktop/RV3 VHH60 > publication_figure > save Figure.png format png supersample 3 transparentBackground true width > 3000 height 3000 > volume #5 level 0.04821 > undo [Repeated 1 time(s)]Traceback (most recent call last): File "/Applications/ChimeraX-1.9-rc2024.11.08.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/core/triggerset.py", line 149, in invoke return self._func(self._name, data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Applications/ChimeraX-1.9-rc2024.11.08.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/core/commands/motion.py", line 49, in __call__ self.func(self.session, f) File "/Applications/ChimeraX-1.9-rc2024.11.08.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/std_commands/move.py", line 97, in undo_func self._func(*args, undo=True, **kw) File "/Applications/ChimeraX-1.9-rc2024.11.08.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/std_commands/move.py", line 50, in move_step d = distance if undo is None else -distance ^^^^^^^^^ TypeError: bad operand type for unary -: 'NoneType' Error processing trigger "new frame": TypeError: bad operand type for unary -: 'NoneType' File "/Applications/ChimeraX-1.9-rc2024.11.08.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/std_commands/move.py", line 50, in move_step d = distance if undo is None else -distance ^^^^^^^^^ See log for complete Python traceback. OpenGL version: 4.1 Metal - 89.4 OpenGL renderer: Apple M4 Pro OpenGL vendor: Apple Python: 3.11.4 Locale: en_US.UTF-8 Qt version: PyQt6 6.7.1, Qt 6.7.1 Qt runtime version: 6.7.3 Qt platform: cocoa Hardware: Hardware Overview: Model Name: MacBook Pro Model Identifier: Mac16,8 Model Number: MX2J3LL/A Chip: Apple M4 Pro Total Number of Cores: 14 (10 performance and 4 efficiency) Memory: 24 GB System Firmware Version: 11881.121.1 OS Loader Version: 11881.121.1 Software: System Software Overview: System Version: macOS 15.5 (24F74) Kernel Version: Darwin 24.5.0 Time since boot: 2 hours, 34 minutes Graphics/Displays: Apple M4 Pro: Chipset Model: Apple M4 Pro Type: GPU Bus: Built-In Total Number of Cores: 20 Vendor: Apple (0x106b) Metal Support: Metal 3 Displays: Color LCD: Display Type: Built-in Liquid Retina XDR Display Resolution: 3024 x 1964 Retina Main Display: Yes Mirror: Off Online: Yes Automatically Adjust Brightness: No Connection Type: Internal U32J59x: Resolution: 4096 x 2304 UI Looks like: 2048 x 1152 @ 30.00Hz Mirror: Off Online: Yes Rotation: Supported Installed Packages: alabaster: 1.0.0 appdirs: 1.4.4 appnope: 0.1.4 asttokens: 2.4.1 auditwheel: 6.1.0 autocommand: 2.2.2 babel: 2.16.0 backports.tarfile: 1.2.0 beautifulsoup4: 4.12.3 blockdiag: 3.0.0 blosc2: 2.7.1 build: 1.2.1 certifi: 2023.11.17 cftime: 1.6.4.post1 charset-normalizer: 3.4.0 ChimeraX-AddCharge: 1.5.17 ChimeraX-AddH: 2.2.6 ChimeraX-AlignmentAlgorithms: 2.0.2 ChimeraX-AlignmentHdrs: 3.5 ChimeraX-AlignmentMatrices: 2.1 ChimeraX-Alignments: 2.16.1 ChimeraX-AlphaFold: 1.0.1 ChimeraX-AltlocExplorer: 1.1.2 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.1 ChimeraX-Atomic: 1.58.7 ChimeraX-AtomicLibrary: 14.1.11 ChimeraX-AtomSearch: 2.0.1 ChimeraX-AxesPlanes: 2.4 ChimeraX-BasicActions: 1.1.2 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 2.4.7 ChimeraX-BondRot: 2.0.4 ChimeraX-BugReporter: 1.0.1 ChimeraX-BuildStructure: 2.13 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.4.0 ChimeraX-ButtonPanel: 1.0.1 ChimeraX-CageBuilder: 1.0.1 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.4 ChimeraX-ChangeChains: 1.1 ChimeraX-CheckWaters: 1.4 ChimeraX-ChemGroup: 2.0.1 ChimeraX-Clashes: 2.3 ChimeraX-Clipper: 0.23.0 ChimeraX-ColorActions: 1.0.5 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.5.6 ChimeraX-CommandLine: 1.2.5 ChimeraX-ConnectStructure: 2.0.1 ChimeraX-Contacts: 1.0.1 ChimeraX-Core: 1.9rc202411082121 ChimeraX-CoreFormats: 1.2 ChimeraX-coulombic: 1.4.4 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0.1 ChimeraX-DataFormats: 1.2.3 ChimeraX-Dicom: 1.2.5 ChimeraX-DistMonitor: 1.4.2 ChimeraX-DockPrep: 1.1.3 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ESMFold: 1.0 ChimeraX-FileHistory: 1.0.1 ChimeraX-FunctionKey: 1.0.1 ChimeraX-Geometry: 1.3 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.4.1 ChimeraX-Hbonds: 2.5 ChimeraX-Help: 1.3 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.1 ChimeraX-ImageFormats: 1.2 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0.3 ChimeraX-ISOLDE: 1.8.dev0 ChimeraX-ItemsInspection: 1.0.1 ChimeraX-IUPAC: 1.0 ChimeraX-KVFinder: 1.2.1 ChimeraX-Label: 1.1.11 ChimeraX-ListInfo: 1.2.2 ChimeraX-Log: 1.2 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.9.1 ChimeraX-Map: 1.3 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0.1 ChimeraX-MapFilter: 2.0.1 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.1.1 ChimeraX-Markers: 1.0.1 ChimeraX-Mask: 1.0.2 ChimeraX-MatchMaker: 2.1.6 ChimeraX-MCopy: 1.0 ChimeraX-MDcrds: 2.7.2 ChimeraX-MedicalToolbar: 1.1 ChimeraX-Meeting: 1.0.1 ChimeraX-MLP: 1.1.1 ChimeraX-mmCIF: 2.14.2 ChimeraX-MMTF: 2.2 ChimeraX-ModelArchive: 1.0 ChimeraX-Modeller: 1.5.17 ChimeraX-ModelPanel: 1.5 ChimeraX-ModelSeries: 1.0.1 ChimeraX-Mol2: 2.0.3 ChimeraX-Mole: 1.0 ChimeraX-Morph: 1.0.2 ChimeraX-MouseModes: 1.2 ChimeraX-Movie: 1.0 ChimeraX-MutationScores: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nifti: 1.2 ChimeraX-NMRSTAR: 1.0.2 ChimeraX-NRRD: 1.2 ChimeraX-Nucleotides: 2.0.3 ChimeraX-OpenCommand: 1.14 ChimeraX-OrthoPick: 1.0.1 ChimeraX-PDB: 2.7.6 ChimeraX-PDBBio: 1.0.1 ChimeraX-PDBLibrary: 1.0.4 ChimeraX-PDBMatrices: 1.0 ChimeraX-PickBlobs: 1.0.1 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.1.2 ChimeraX-PubChem: 2.2 ChimeraX-QScore: 1.1 ChimeraX-ReadPbonds: 1.0.1 ChimeraX-Registration: 1.1.2 ChimeraX-RemoteControl: 1.0 ChimeraX-RenderByAttr: 1.6.1 ChimeraX-RenumberResidues: 1.1 ChimeraX-ResidueFit: 1.0.1 ChimeraX-RestServer: 1.3.1 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 4.0 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.5.1 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0.2 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0.1 ChimeraX-Segmentations: 3.2.6 ChimeraX-SelInspector: 1.0 ChimeraX-SeqView: 2.14 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0.1 ChimeraX-Shortcuts: 1.2.0 ChimeraX-ShowSequences: 1.0.3 ChimeraX-SideView: 1.0.1 ChimeraX-SimilarStructures: 1.0.1 ChimeraX-Smiles: 2.1.2 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.18.1 ChimeraX-STL: 1.0.1 ChimeraX-Storm: 1.0 ChimeraX-StructMeasure: 1.2.1 ChimeraX-Struts: 1.0.1 ChimeraX-Surface: 1.0.1 ChimeraX-SwapAA: 2.0.1 ChimeraX-SwapRes: 2.5 ChimeraX-TapeMeasure: 1.0 ChimeraX-TaskManager: 1.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.2.3 ChimeraX-ToolshedUtils: 1.2.4 ChimeraX-Topography: 1.0 ChimeraX-ToQuest: 1.0 ChimeraX-Tug: 1.0.1 ChimeraX-UI: 1.41 ChimeraX-Umap: 1.0 ChimeraX-uniprot: 2.3.1 ChimeraX-UnitCell: 1.0.1 ChimeraX-ViewDockX: 1.4.4 ChimeraX-VIPERdb: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0.1 ChimeraX-vrml: 1.0 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0.2 ChimeraX-WebServices: 1.1.4 ChimeraX-Zone: 1.0.1 colorama: 0.4.6 comm: 0.2.2 contourpy: 1.3.0 cxservices: 1.2.3 cycler: 0.12.1 Cython: 3.0.10 debugpy: 1.8.8 decorator: 5.1.1 docutils: 0.21.2 executing: 2.1.0 filelock: 3.15.4 fonttools: 4.54.1 funcparserlib: 2.0.0a0 glfw: 2.7.0 grako: 3.16.5 h5py: 3.12.1 html2text: 2024.2.26 idna: 3.10 ihm: 1.3 imagecodecs: 2024.6.1 imagesize: 1.4.1 importlib_metadata: 8.0.0 importlib_resources: 6.4.0 inflect: 7.3.1 ipykernel: 6.29.5 ipython: 8.26.0 ipywidgets: 8.1.5 jaraco.context: 5.3.0 jaraco.functools: 4.0.1 jaraco.text: 3.12.1 jedi: 0.19.1 Jinja2: 3.1.4 jupyter_client: 8.6.2 jupyter_core: 5.7.2 jupyterlab_widgets: 3.0.13 kiwisolver: 1.4.7 line_profiler: 4.1.3 lxml: 5.2.2 lz4: 4.3.3 MarkupSafe: 3.0.2 matplotlib: 3.9.2 matplotlib-inline: 0.1.7 more-itertools: 10.3.0 msgpack: 1.0.8 ndindex: 1.9.2 nest-asyncio: 1.6.0 netCDF4: 1.6.5 networkx: 3.3 nibabel: 5.2.0 nptyping: 2.5.0 numexpr: 2.10.1 numpy: 1.26.4 openvr: 1.26.701 ordered-set: 4.1.0 packaging: 23.2 packaging: 24.1 ParmEd: 4.2.2 parso: 0.8.4 pep517: 0.13.1 pexpect: 4.9.0 pillow: 10.4.0 pip: 24.2 pkginfo: 1.11.1 platformdirs: 4.3.6 platformdirs: 4.2.2 prompt_toolkit: 3.0.48 psutil: 6.0.0 ptyprocess: 0.7.0 pure_eval: 0.2.3 py-cpuinfo: 9.0.0 pycollada: 0.8 pydicom: 2.4.4 pyelftools: 0.31 Pygments: 2.18.0 pynmrstar: 3.3.4 pynrrd: 1.0.0 PyOpenGL: 3.1.7 PyOpenGL-accelerate: 3.1.7 pyopenxr: 1.0.3401 pyparsing: 3.2.0 pyproject_hooks: 1.2.0 PyQt6-commercial: 6.7.1 PyQt6-Qt6: 6.7.3 PyQt6-WebEngine-commercial: 6.7.0 PyQt6-WebEngine-Qt6: 6.7.3 PyQt6-WebEngineSubwheel-Qt6: 6.7.3 PyQt6_sip: 13.8.0 python-dateutil: 2.9.0.post0 pytz: 2024.2 pyzmq: 26.2.0 qtconsole: 5.5.2 QtPy: 2.4.2 qtshim: 1.0 RandomWords: 0.4.0 requests: 2.32.3 scipy: 1.14.0 setuptools: 72.1.0 sfftk-rw: 0.8.1 six: 1.16.0 snowballstemmer: 2.2.0 sortedcontainers: 2.4.0 soupsieve: 2.6 Sphinx: 8.0.2 sphinx-autodoc-typehints: 2.2.3 sphinxcontrib-applehelp: 2.0.0 sphinxcontrib-blockdiag: 3.0.0 sphinxcontrib-devhelp: 2.0.0 sphinxcontrib-htmlhelp: 2.1.0 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 2.0.0 sphinxcontrib-serializinghtml: 2.0.0 stack-data: 0.6.3 superqt: 0.6.3 tables: 3.10.1 tcia_utils: 1.5.1 tifffile: 2024.7.24 tinyarray: 1.2.4 tomli: 2.0.1 tornado: 6.4.1 traitlets: 5.14.3 typeguard: 4.3.0 typing_extensions: 4.12.2 typing_extensions: 4.12.2 tzdata: 2024.2 urllib3: 2.2.3 wcwidth: 0.2.13 webcolors: 24.6.0 wheel: 0.43.0 wheel: 0.43.0 wheel-filename: 1.4.1 widgetsnbextension: 4.0.13 zipp: 3.19.2
Change History (5)
comment:1 by , 5 months ago
Component: | Unassigned → Undo/Redo |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → "move": distance is None while undo is not None |
comment:2 by , 5 months ago
comment:3 by , 5 months ago
This is a bit of pain to fix because undoing the move is currently using the move command and it is not easy to reverse the direction of the move when a distance is not trivial given because the Axis argument is an instance and a new Axis in the opposite direction is needed.
Another evident problem is that undo is not handling the models or atoms arguments of the move command. Undo is a nightmare. Probably the models and atoms options were added later and the undo code was not updated to undo in those cases.
comment:4 by , 5 months ago
Note that the user never used the move command. It was the "center" mouse mode that did a move. Then they tried "undo" and it gave this error.
comment:5 by , 5 months ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed in 1.11.
I made the move command not support undo if frames is specified and a distance is not specified. So now the center mouse mode won't register undo handlers. It would be nice if undo worked in this case but I didn't see a simple way to implement it. Given that this has only been reported once in many years I don't think it is worth the effort to make undo handle this case.
Looks like undo after a multi-frame move command is broken, not handling distance None case properly.