プロジェクト

全般

プロフィール

バグ #1498

完了

機能 #887: gtk3

gtk3: 新しいMiraclePainterの不具合まとめ

Shibafu Midorino さんが約3年前に追加. 約3年前に更新.

ステータス:
終了
優先度:
通常
対象バージョン:
プラグイン名:
クラッシュする:
いいえ

説明

気づいたことを書き散らす用のチケットです。

  • セルの高さの計算がおかしい
  • Entityのクリック判定が見た目の位置と一致しない
  • マウスドラッグによるテキスト選択の位置判定が見た目の位置と一致しない

ファイル


関連するチケット

関連している バグ #1494: gtk3: Mastodonアカウントのプロフィールを開くとランダムにSEGVする終了toshi_a 初音操作
ブロック先 バグ #1504: MiralcePainterのカスタム絵文字の高さの計算が誤っている終了toshi_a 初音操作

Shibafu Midorino さんが約3年前に更新

体感でしかないですが、MiraclePainter#main_message の set_shape_renderer あたりでよくSEGVする気がします。
バックトレースは添付ファイルの segv_backtrace_main_message_try_convert.txt を参照。

toshi_a 初音 さんが約3年前に更新

  • 担当者toshi_a 初音 にセット

toshi_a 初音 さんが約3年前に更新

  • 関連している バグ #1494: gtk3: Mastodonアカウントのプロフィールを開くとランダムにSEGVする を追加

toshi_a 初音 さんが約3年前に更新

#1494 と関係があるかもしれないので、それが終わったあとにやる

toshi_a 初音 さんが約3年前に更新

  • ステータス分類待ち から 実装待ち に変更

高さ計算に使っている Pango::Layout に設定されているattributeの影響で、同じようにレンダリングされず、高さの計算を間違っている。
レンダリングしようとする Cairo::Context から Pango::Layout を作成すれば、高さの計算が正しくなる。

toshi_a 初音 さんが約3年前に更新

正しく文字を描画した結果専有する高さを予想するには、同じ条件のPango::Layoutが用意できなければならないが、難航したため一旦昔のMiralcePainterみたいな実装にした。
  • 最後に描画した高さ or 予想は適当な定数
  • 描画後、予想が外れていた場合resizeシグナルを送る

toshi_a 初音 さんが約3年前に更新

  • ステータス実装待ち から レビュー待ち に変更
  • 担当者toshi_a 初音 から Shibafu Midorino に変更
  • ブランチtopic/1498-miracle-painter にセット

done.

Shibafu Midorino さんが約3年前に更新

SubPartsの計算がまだ上手く行っていないケースがありそうです。InReplyToが半端に表示されたり、全く表示されなかったり。あと、Voterも出たり出なかったりしますね。(後者は普通に受信できてない時もあるので判別しにくい…)

toshi_a 初音 さんが約3年前に更新

  • ステータスレビュー待ち から まだダメ に変更
  • 担当者Shibafu Midorino から toshi_a 初音 に変更

toshi_a 初音 さんが約3年前に更新

  • ブロック先 バグ #1504: MiralcePainterのカスタム絵文字の高さの計算が誤っている を追加

toshi_a 初音 さんが約3年前に更新

  • ステータスまだダメ から レビュー待ち に変更
  • 担当者toshi_a 初音 から Shibafu Midorino に変更

subpartsも計算に入れる。
各要素の高さが予想と異なる場合に再描画するのではなく、MiraclePainterの描画が全て終わったあとに、高さの合計を描画域と比較する。

Shibafu Midorino さんが約3年前に更新

  • ステータスレビュー待ち から マージ待ち に変更

大丈夫そうです。列挙されている問題は一通り解決されています。

時折ちらつきが発生している気がしますが、これは良くわからない。

toshi_a 初音 さんが約3年前に更新

  • ステータスマージ待ち から 終了 に変更

merged.

toshi_a 初音 さんが約3年前に更新

  • 対象バージョン5.0 にセット

他の形式にエクスポート: Atom PDF