foundryvtt / pf2e

A community contributed game system for Pathfinder Second Edition.
https://foundryvtt.com/packages/pf2e
Apache License 2.0
421 stars 349 forks source link

CTRL+Drag to Measure and Drop Waypoints not functional when Drag Measurement is Active #15961

Closed aburley1234 closed 2 days ago

aburley1234 commented 3 months ago

FoundryVTT v12.330 PF2E Version 6.2.1 Drag Measurement Setting - Always

Ctrl-Dragging while having the "Select Tokens" tool selected no longer starts a measurement. Ctrl-Dragging from a token while having the "Select Tokens" tool selected does not put you into the state where you can drop waypoints

Khunkurisu commented 3 months ago

I don't mean to be rude, but is feature request really the right label for this if the request is "don't disable a feature that has no reason to be disabled"? And if there's something about the implementation that requires it, that feels more like a bug or flaw in the implementation of the new ruler.

cuyima commented 1 month ago

It's not actually just the Select Tokens tool. It's the Measure Distance one as well, making it impossible to use waypoints with any of the tools :/

JDCalvert commented 1 month ago

You can place a waypoint with the "X" key. Right-click removes the previous waypoint. I much more regularly make waypoints than delete them, I'd love to see an option for these controls to be reversed.

Khunkurisu commented 1 month ago

To be clear measurements while dragging tokens works fine. This is not related to that.

If you use the Foundry built in measurement or any popular tool module (Token Drag Ruler, Elevation Ruler, etc), you can access the measurement tool from the default select tool by holding the Control key and dragging the cursor.

This core functionality is disabled by the PF2e system’s ruler implementation, instead ctrl dragging has the same functionality as dragging with the select tool does with no modifiers. (Leading me to believe that the issue is likely just the implementation ignoring modifiers entirely and not passing the function to core.)

At any rate to ensure the folks working on the system have the clearest understanding of the issue possible PLEASE make separate issues for things that aren’t related to this one.

tyrielv commented 1 week ago

It looks to me like the problem is here:

static override get canMeasure(): boolean {
        return this.#dragMeasurement ? game.activeTool === "ruler" : super.canMeasure;
    }

If the PF2E system's drag measurement is enabled (either set to "Always," or set to "In Combat" and it's in combat), then canMeasure will only return true if the active tool is the ruler. Super.canMeasure will also return true if Ctrl+Drag is used.

I can confirm that if I change that line to just "super.canMeasure," then both Ctrl+Drag and token drag appear to work as expected. I don't know what the reasoning was for adding that check to canMeasure when this.#dragMeasurement is also checked in all the other entry points, so there could be other unintended side effects of making that change.