Skip to content

[BUG] Button gets pressed on mouse hover with crossterm #767

Open

Description

@nxsaken

Describe the bug
Hovering over a button presses it when using the crossterm backend. Termion has the correct behavior.

To Reproduce

  1. cursive = { version = "0.20.0", default-features = false, features = ["crossterm-backend"] }

  2. Use the example code:

use cursive::views::{Dialog, TextView};

fn main() {
    // Creates the cursive root - required for every application.
    let mut siv = cursive::default();

    // Creates a dialog with a single "Quit" button
    siv.add_layer(Dialog::around(TextView::new("Hello Dialog!"))
                         .title("Cursive")
                         .button("Quit", |s| s.quit()));

    // Starts the event loop.
    siv.run();
}
  1. Touch the quit button with the mouse cursor.

Expected behavior
Nothing happens unless I left-click.

Environment

  • macOS Sonoma 14.0, M1 pro
  • Backend: crossterm
  • Current locale:
LANG=""
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
  • Cursive version: 0.20

Activity

  1. gyscos commented on Feb 6, 2024

    @gyscos
    Owner

    Hi, and thanks for the report!

    I'm unable to reproduce the issue so far, running on a M1 pro laptop on Sonoma 14.2.1.
    What version of crossterm is in Cargo.lock?

  2. nxsaken commented on Feb 6, 2024

    @nxsaken
    Author

    Hi! 0.25.0

  3. gyscos commented on Feb 6, 2024

    @gyscos
    Owner

    I still cannot reproduce it, either with the default terminal app, or with alacritty.

    Does the issue still exist when running from this git main branch? (It should use crossterm 0.27.0).

    Note also that cursive expects a utf-8 locale. You could try setting for example export LANG=en_US.UTF-8 (or some other locale of your choice) to see if that makes a difference, though I don't think it should in this case.

  4. nxsaken commented on Feb 6, 2024

    @nxsaken
    Author

    Huh, I ran the app from Terminal, and it worked as expected. The problem only happens if I run the app from the terminal in my IDE (CLion).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions