Skip to content

FIX pickerfun Python callback#600

Open
kroq-gar78 wants to merge 3 commits intogallantlab:mainfrom
kroq-gar78:pickerfun-fix
Open

FIX pickerfun Python callback#600
kroq-gar78 wants to merge 3 commits intogallantlab:mainfrom
kroq-gar78:pickerfun-fix

Conversation

@kroq-gar78
Copy link
Contributor

@kroq-gar78 kroq-gar78 commented Mar 8, 2026

This restores the old jQuery mechanism from 77a24b5 . I don't know what the pros/cons are of this versus the notify mechanism from legacy (3595800).

Fixes #598 .

@kroq-gar78 kroq-gar78 marked this pull request as ready for review March 8, 2026 22:11
@kroq-gar78 kroq-gar78 requested a review from Copilot March 12, 2026 03:25
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restores a jQuery-based surface-pick callback path so that pickerfun provided to cortex.webgl.show(...) is invoked from Python when the user clicks on the surface in the WebGL viewer (fixing #598).

Changes:

  • Update the /picker Tornado handler to accept voxel coordinates as x,y,z plus vertex and hemi, and call pickerfun(voxel, vertex, hemi).
  • Add a default PickPosition.prototype.callback implementation that triggers a GET to /picker on each pick.
  • Update show()’s pickerfun docstring / default callback behavior.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
cortex/webgl/view.py Updates picker callback contract and server-side /picker argument parsing/callback invocation.
cortex/webgl/resources/js/facepick.js Restores a jQuery $.get("/picker?...") request on picks by defining a default callback.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +251 to +253
callback: function(vec, hemi, ptidx) {
$.get("/picker?voxel=" + vec.x + "," + vec.y + "," + vec.z + "&vertex=" + ptidx + "&hemi=" + hemi);
},
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Defining callback on the prototype makes this.callback !== undefined always true, so every pick will now trigger a GET to /picker. This is a behavior change for static exports (python_interface=False) or any deployment without a /picker route, where clicks will start generating failing network requests (and potentially CORS/console noise). Consider only installing/enabling this callback when the Python picker endpoint is actually available (e.g., when running in python_interface mode, or when a callback was explicitly provided).

Copilot uses AI. Check for mistakes.
kroq-gar78 and others added 2 commits March 11, 2026 23:20
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pickerfun does not get called in cortex.webshow

2 participants