Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Object selection and interaction gets messed up #292

Open
bgribble opened this issue Nov 27, 2023 · 1 comment
Open

Object selection and interaction gets messed up #292

bgribble opened this issue Nov 27, 2023 · 1 comment
Labels

Comments

@bgribble
Copy link
Owner

bgribble commented Nov 27, 2023

There's a syndrome where several aspects of mouse interaction with the UI get messed up. Symptoms include:

  • Clicking a patch element does not select it. Dragging a select box around it will sometimes select it.
  • Select boxes sometimes "resist" enclosing certain objects
  • Selection will randomly include an object that is not supposed to be selected
  • The selected object will get "stuck" in drag-mode, where mouse motion moves the object around even though no button is held down

All of these behaviors seem to be associated with a stream of Clutter warning messages like this (visible if you run mfp with --verbose-remote)

[ 125.793   main] gui  (mfpgui:139154): Clutter-WARNING **: 10:27:04.713: The required ID of 3 does not refer to an existing actor; this usually implies that the pick() of an actor is not correctly implemented or that there is an error in the glReadPixels() implementation of the GL driver.

These messages stream (seemingly associated with MotionEvents) when the pointer is over specific objects; the "ID" referred to seems to be associated with the visible patch element (it changes when the pointer is over a different object).

Sometimes the messages for a particular object will stop and it will be selectable again.

This feels like Clutter bitrot or GL driver issues or Wayland or some such nonsense.

Would it be possible to catch that warning, identify the relevant GUI object, and delete and re-create it as a hacky bandaid? We are catching the console output of the GUI process so it should be feasible to at least notice when it happens.

@bgribble
Copy link
Owner Author

bgribble commented Dec 1, 2023

Workaround (partial): C-. (control-period) will force-clear all modifier keys, exit all minor modes, and deselect everything

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant