linebender / runebender

A font editor written in Rust.
Apache License 2.0
765 stars 37 forks source link

Spamming left/right click can hit an assert #226

Open cmyr opened 3 years ago

cmyr commented 3 years ago

This was an assert I wanted to ensure something like this wouldn't happen; I'll have to do some thinking about what it actually means.

Originally posted by @Connum in https://github.com/linebender/runebender/issues/154#issuecomment-781247076

It's definitely way better now, but I still managed to get a crash, clicking quite wildly alternating between left and right clicks... I know this is not standard user behaviour, so the priority of this might have decreased drastically, but I guess it would be good to get the app as robust as possible.

DEBUG [druid::localization] available locales [], current en-US
DEBUG [druid::localization] resolved: [en-US]
DEBUG [druid_shell::platform::windows::window] dxgi factory pointer = 0x1e85ef9cf90
DEBUG [druid_shell::platform::windows::window] 0x1e85efa3720: desc = Some("NVIDIA GeForce GTX 980 Ti"), vram = 6393823232
DEBUG [druid_shell::platform::windows::window] 0x1e85efaae20: desc = Some("Microsoft Basic Render Driver"), vram = 0
DEBUG [druid_shell::platform::windows::window] adapter = 0x1e85efa3720
DEBUG [druid_shell::platform::windows::window] swap chain res = 0x0, pointer = 0x1e8638fd810
INFO  [druid_theme_loader::widget] loaded 45 items to theme
DEBUG [druid_shell::platform::windows::window] dxgi factory pointer = 0x1e86383f830
DEBUG [druid_shell::platform::windows::window] 0x1e870424b50: desc = Some("NVIDIA GeForce GTX 980 Ti"), vram = 6393823232
DEBUG [druid_shell::platform::windows::window] 0x1e870424fe0: desc = Some("Microsoft Basic Render Driver"), vram = 0
DEBUG [druid_shell::platform::windows::window] adapter = 0x1e870424b50
DEBUG [druid_shell::platform::windows::window] swap chain res = 0x0, pointer = 0x1e8706db800
INFO  [druid_theme_loader::widget] loaded 45 items to theme
ERROR [druid_shell::platform::windows::window] failed to borrow WndState at C:\Users\*****\.cargo\git\checkouts\druid-f71533f3d81c0bc8\fb434a1\druid-shell\src\platform\windows\window.rs:713:22
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1626.25, 1616.75)/(1578.25, 1493.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1579.25, 1609.75)/(1729.25, 1511.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1759.25, 1536.75)/(1615.25, 1609.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1801.25, 1744.75)/(1628.25, 1631.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1584.25, 1636.75)/(1782.25, 1715.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1628.25, 1551.75)/(1646.25, 1580.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1439.25, 1650.75)/(1605.25, 1655.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1708.25, 1502.75)/(1511.25, 1622.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1519.25, 1669.75)/(1523.25, 1712.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1651.25, 1638.75)/(1655.25, 1795.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1367.25, 1699.75)/(1548.25, 1793.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1718.25, 1826.75)/(1787.25, 1774.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1407.25, 1478.75)/(1407.25, 1479.75)
DEBUG [runebender_lib::tools::select] double-click mouse state: Idle(None)
DEBUG [runebender_lib::tools::select] unexpected state in drag_changed: SuppressDrag
DEBUG [runebender_lib::tools::select] unexpected state in drag_changed: SuppressDrag
DEBUG [runebender_lib::tools::select] unexpected state in drag_changed: SuppressDrag
DEBUG [runebender_lib::tools::select] unexpected state in drag_changed: SuppressDrag
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1491.25, 1532.75)/(1475.25, 1497.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1694.25, 1775.75)/(1642.25, 1685.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1752.25, 1798.75)/(1750.25, 1799.75)
DEBUG [runebender_lib::tools::select] double-click mouse state: Idle(None)
DEBUG [runebender_lib::tools::select] unexpected state in drag_changed: SuppressDrag
DEBUG [runebender_lib::tools::select] unexpected state in drag_changed: SuppressDrag
DEBUG [runebender_lib::tools::select] unexpected state in drag_changed: SuppressDrag
DEBUG [runebender_lib::tools::select] unexpected state in drag_changed: SuppressDrag
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1780.25, 1578.75)/(1780.25, 1704.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1394.25, 1824.75)/(1415.25, 1721.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1640.25, 1777.75)/(1640.25, 1832.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1521.25, 1538.75)/(1704.25, 1608.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1343.25, 1788.75)/(1364.25, 1633.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1537.25, 1634.75)/(1534.25, 1677.75)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1540.25, 1614.75)/(1540.25, 1616.75)
DEBUG [runebender_lib::tools::select] double-click mouse state: Idle(None)
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1519.25, 1624.75)/(1540.25, 1614.75)
DEBUG [runebender_lib::tools::select] double-click mouse state: Idle(None)
DEBUG [runebender_lib::tools::select] unexpected state in drag_changed: SuppressDrag
DEBUG [runebender_lib::tools::select] unexpected state in drag_changed: SuppressDrag
INFO  [runebender_lib::tools::select] left_down pos != mouse_move pos: (1542.25, 1758.75)/(1686.25, 1660.75)
thread 'main' panicked at 'assertion failed: prev.button != event.button', runebender-lib\src\mouse.rs:304:17
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: process didn't exit successfully: `target\debug\runebender.exe` (exit code: 0x80000003)