Stylus/tablet click (ButtonPress) not registering in desktop (CEF) build when device uses absolute positioning — works in Relative mode, in browser, and with physical mouse
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
まず Graphite desktop Flatpak で問題を再現し、調査の詳細と #2535 をコンテキストとして使用して、絶対モードと相対モードのタブレットイベントに対する CEF ベースの入力処理を比較します。disable_ui_acceleration をこのバグとは切り分けたままにするため、必要な場合にのみ preferences.ron を調べます。絶対モードのペンの ButtonPress および ButtonRelease イベントが UI と viewport で機能し、マウス入力や相対モード入力にリグレッションを起こさないことをもって完了とします。
索引モデルが issue の本文から書いたものです。
説明
Describe the Bug
On Linux (Flatpak build), a graphics tablet's pen click does not register in the desktop app's CEF-rendered UI or viewport when OpenTabletDriver is configured in Absolute mode (normal tablet-to-screen 1:1 mapping), even though:
- The exact same tablet/pen works correctly in the web version at https://editor.graphite.art/ (in Chromium), also in Absolute mode
- A physical USB mouse clicks normally in the desktop app
xdotool click 1(synthetic XTEST click) also fails to register in the desktop app- Switching OpenTabletDriver to Relative mode makes clicking work correctly in the desktop app — this isolates the bug to something specific about how absolute-positioning tablet devices are handled, since relative mode is otherwise unusable for real drawing (no 1:1 tablet-to-screen mapping)
Cursor motion from the tablet works perfectly in Absolute mode in the desktop app — only button press/release events fail to have any effect while in that mode.
Environment
- OS: Void Linux, X11 (picom compositor, XFCE)
- Graphite: desktop Flatpak build (
art.graphite.Graphite), downloaded ~July 2026 - Tablet driver: OpenTabletDriver 0.6.7 (Flatpak)
- Tablet: Huion H1161
- GPU: AMD (RADV/Mesa)
Steps To Reproduce
- Install OpenTabletDriver via Flatpak, configure tablet in Absolute mode ("Artist Mode" preset) with tip bound to Mouse Button: Left
- Install Graphite via Flatpak
- Launch Graphite desktop app
- Attempt to click/draw with the stylus tip on the canvas or any UI button
- Motion works; the click has no effect
- Switch OpenTabletDriver to Relative mode, click Apply, retest — clicking now works correctly
Investigation so far
xinput test-xi2confirms the pen'sButtonPress/ButtonReleasearrive as genuine X11 core-protocol events from the same device (OpenTabletDriver Virtual Tablet, XI2 id 19) that generates the working motion events — not routed through the XTEST virtual pointer (id 4)udevadm infoconfirms the OTD virtual device is taggedID_INPUT_MOUSE=1libinput list-devicesshows the OTD virtual device'sCapabilities: pointer, but itsDeviceChangedXI2 announcement in Absolute mode includes absolute X/Y valuators plus an XIScrollClass (relative horizontal/vertical scroll valuators) — attributes a plain mouse does not have- A real physical USB mouse (no absolute valuators, no scroll-class) clicks Graphite's UI/canvas without any issue in either mode
xdotool click 1(XTEST-injected click) also fails silently in the desktop app while in Absolute mode- Confirmed: switching the same physical tablet/driver to Relative mode (removing absolute valuators from the device's XI2 announcement) makes clicks work correctly again
This strongly suggests Graphite's CEF-embedded input handling (see #2535, the CEF-based desktop architecture) filters or mis-routes button events specifically from devices that report absolute positioning valuators, rather than a general click-handling bug — since motion, physical mouse clicks, and relative-mode tablet clicks all work fine, and only absolute-mode tablet clicks fail.
Additional Details
- Toggling Preferences → Render GUI on CPU (
disable_ui_accelerationinpreferences.ron) fixed an unrelated issue where the GUI failed to render at all, but did not affect this click bug. - Happy to provide further logs/testing (e.g.
libinput debug-events, CEF verbose logging flags) if useful for triage.
- 主要言語
- Rust
- スター
- 27.8k
- フォーク
- 1.3k
- 平均マージ
- 10時間 53分
- マージ済み PR(30日)
- 195
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
GraphiteEditor/Graphite のほかの issue
-
`third-party-licenses` fails on Windows when the parent process is PowerShell対応中かも @sahilshingate01 が 11 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
GraphiteEditor/Graphite#4745 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Resizing a text box by one edge handle incorrectly locks both Max Width and Max Height, silently clipping text再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
GraphiteEditor/Graphite#4396 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
Type hint is selected in node graph view再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
GraphiteEditor/Graphite#4311 ·
メンテナーはふだん 1 日以内に返信
-
`cargo run` fails on WebAssembly target due to `CARGO_BUILD_TARGET` leaking into `rustc_codegen_spirv` build再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
GraphiteEditor/Graphite#3939 · コメント 2 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 50/100
GraphiteEditor/Graphite#4901 ·
メンテナーはふだん 1 日以内に返信
GraphiteEditor/Graphite の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
DioxusLabs/blitz#1371 ·
メンテナーはふだん 1 日以内に返信
-
follow-up
難易度 2/5 半日 初心者へのやさしさ 62/100
carrick-sh/carrick#1494 ·
メンテナーはふだん 1 日以内に返信
-
test(hydro_std): track_membership join and leave are untested対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
hydro-project/hydro#3289 ·
メンテナーはふだん 1 日以内に返信
-
diagram-bug good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
enhapu-afk/omaspec#4 ·