Drag-and-drop is PlotJuggler’s whole interaction model, so when it stops working the tool feels broken in a way a menu failure never does. Users describe this symptom to search engines — including in this site’s own search data — with phrases like “drag and drop doesnt work”, but that one phrase hides two different gestures with two different failure modes: dropping a file into the window to load it, and dragging a series from the list onto a plot to display it. This guide separates them, then works through the checks for each. Start from the Troubleshooting hub if your symptom is different.
First, which drag is failing?
| Gesture | What should happen | Typical failure shape |
|---|---|---|
| File drop: drag a data file from your file manager into the PlotJuggler window | The matching data loader reads the file and its series appear in the list | Nothing happens on drop, or the file is refused — the second shape is often a loader problem, not a drag problem |
| Curve drag: drag a series name from the list onto a plotting area | A curve appears on that plot, against the shared timeline | The drag will not start, the drop is rejected, or the curve lands somewhere unexpected |
| XY drag (PJ3 workflow): drag with the right mouse button to build an XY plot | Two series are paired as X and Y | A context menu or a normal time plot appears instead |
Be precise about which row you are in before changing anything — the checks below barely overlap. The baseline workflows, so you can compare against intended behaviour, are in Getting Started with PlotJuggler and the Tutorials hub.
If the file will not drop
- Rule out a loader refusal dressed as a drag failure. If the drop “does nothing” only for one file type — bags and MCAP recordings are the usual ones — test the same gesture with a small CSV. If the CSV loads, dragging works and the missing piece is a plugin: see “No such plugin”: missing data loaders explained and, for recordings specifically, MCAP file won’t open.
- Check your session and install channel as variables. Drag behaviour is partly a property of the desktop session and the packaging, not just the application — the clearest documented case is the right-drag one in the next section, where on Linux the context menu fires on mouse press rather than release (issue #1428, reported from a Wayland session). As control tests, try the same drag in a different session type (Wayland vs X11) and, if you run the AppImage, try the .deb / apt install instead, as covered in the Install guides. If the drag works in one combination and not another, you have localised the problem without touching your data.
- Drop onto the window, from a real file manager. Drags that start inside another sandboxed application, a browser download bar or a remote-desktop window can be intercepted before PlotJuggler ever sees them. Save the file locally and drag it from the system file manager as a control test.
- Check basic file facts. Confirm the file exists where you think it does, is readable by your user, and is complete — a recording still being copied or written by another program is a file problem, not a PlotJuggler problem. These are checks to perform, not error messages to expect.
If the series will not drag onto a plot
- Confirm data is actually loaded. A series can only be dragged after a file has loaded and populated the list. An empty list after a “successful” drop points back to the loader question above.
- Drag the series name, drop on the plotting area. The documented gesture is list → plot area. Dropping onto toolbars, the timeline scrubber or another panel is not the same target and being rejected there is expected behaviour.
- Mind the mouse button for XY plots. The long-standing workflow pairs two series for an XY plot with a right-button drag. If a right-drag produces a menu instead, read Right-click menu not working — and note the current tracker report (#1428) in which a right-click streaming menu interferes with the XY right-drag from streaming topics.
- Know that drag-related bugs have existed and been fixed. The tracker, for example, carries a closed report titled “Some Mouse Events not Captured After Drag and Drop” (issue #716). If you are on an old build, updating to a current release — PJ3 3.17.2 or PJ4 4.0.0, from the Download page — is a rational step, not superstition.
Environment checks that apply to both gestures
- Remote desktop and VMs: drag-and-drop between host and guest is a separate feature from dragging inside one application, and it is frequently disabled. Test with a purely local file and a purely local drag first.
- Window focus: click once inside the PlotJuggler window to give it focus, then drag. A drag that starts while another window holds an active grab can be swallowed by the desktop.
- One gesture at a time: after any change — different install channel, updated version, different session type — retest with the same small file and the same series, so you know which change mattered.
If dragging works with a small CSV but your real recording still will not load, the drag was never the problem: continue with missing data loaders or large-file performance checks if the file is very big. Everything else is indexed on the Troubleshooting hub.
