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

描画された文字が削れ欠けて表示される #1974

Open
crzorz opened this issue Dec 29, 2024 · 7 comments
Open

描画された文字が削れ欠けて表示される #1974

crzorz opened this issue Dec 29, 2024 · 7 comments

Comments

@crzorz
Copy link

crzorz commented Dec 29, 2024

問題内容

テキストエリア内に描画された文字が、削れ欠けたりノイズが入ったりして表示される。

再現手順

原因などは不明ですが、スクロールしたりすると、気付いた時には文字描画が不完全な現象が起きます。

割と行数が多いテキスト文章だと、起こりやすいような気がします。〔追記: 53行程度のテキスト文章でも確認。〕

再現頻度

該当するウィンドウ(テキスト文章)では、事ある毎に起こります。(頻繁ではないが、何度かに1回は不完全な描画に気付く。)

「再描画」や「検索マークの切替え」などをすると一時的に描画が直ります。

問題のカテゴリ

  • プログラムの動作上の問題
    • 正式リリース版

環境情報

  • OS バージョン
    • Windows 10 Pro 64-bit 22H2 (10.0, Build 19045.3930) (19041.vb_release.191206-1406)
  • サクラエディタバージョン
    • サクラエディタ32bit Ver. 2.4.2.6048 Appveyor (a3e63915b)
      (GitHash a3e63915b3c3236a9f14fbb27a01cf7acb030f45)
      (GitURL https://github.com/sakura-editor/sakura.git)
      
            Compile Info: V1916 WPR WIN601/I800/C000/N601
            Last Modified: 2024/6/20 09:56:46
      
  • PC情報
    • System Manufacturer: FUJITSU
    • System Model: FMVA0802JP

スクリーンショット

@suconbu
Copy link
Member

suconbu commented Dec 29, 2024

同バージョン (32bit 2.4.2.6048) を使って少し操作してみましたが問題は再現せずでした。
条件を合わせたいと思いますので、差し支えなければ以下2点を本issueに添付して頂けますか。

  • 問題が発生するテキストファイル
  • sakura.iniファイル (sakura.exeと同フォルダにあります)

@crzorz crzorz closed this as completed Jan 1, 2025
@crzorz crzorz reopened this Jan 1, 2025
@crzorz
Copy link
Author

crzorz commented Jan 1, 2025

@suconbu

  • 問題が発生するテキストファイル
    • (無題)1〔新規作成状態など、特に特定はしない〕
    • 無題1_20250101_111528{sakura_issues_1974}.txt
      • ※スクリーンショットの日記を上げる訳にはいかないので、このサンプルを本体に同梱して上げときます。
  • sakura.iniファイル

ゆっくりスクロールするとその現象が起きやすいようです。

  • 追記:
    • 無題1_20250101_111528{sakura_issues_1974}.txtUTF-8で保存したはずなのですが、サクラエディタではSJISで開かれ文字化けするかもしれません(なぜかは不明)。

@suconbu
Copy link
Member

suconbu commented Jan 3, 2025

@crzorz

ありがとうございます。
添付頂いた「sakura_issues_1974.zip」および最新 (2.4.2.6119 (32bit,64bit)) でも発生させることができたと思います。
以下は 2.4.2.6119 (64bit) で確認した時の様子です。
1974_2 4 2 6119_発生

  • 左方向へ水平スクロールする時にビューの左側から出現する文字に表示の異常が発生。
  • 異常が発生するのは全角文字のみのように見えます。
  • 行番号を表示していると発生しないようです。

発生現象としては #1699 に近い気がします。

@suconbu
Copy link
Member

suconbu commented Jan 3, 2025

原因個所が分かったかもしれません。
以下の部分を仮でコメントアウトしたところ問題が発生しなくなりました。

if ( x < 0 ){
int nLeftLayout = ( 0 - x ) / nDx - 1;
CLayoutMgr& layoutMgr = m_pEditView->m_pcEditDoc->m_cLayoutMgr;
while (nBeforeLayout < nLeftLayout){
nBeforeLayout += layoutMgr.GetLayoutXOfChar(pData, nLength, nBeforeLogic);
nBeforeLogic += CNativeW::GetSizeOfChar( pData, nLength, nBeforeLogic );
}
}

ここは (水平スクロールによって) ビューの左側にはみ出して表示されないテキストの描画をスキップさせるための処理だと思いますが、現在の処理だと1文字分余分にスキップしてしまうようです。
(その結果、該当部分には古い描画内容が残り表示がおかしくなる)

@suconbu
Copy link
Member

suconbu commented Jan 6, 2025

@crzorz

スクロール時に文字が欠ける問題を #1975 にて修正しました。
修正が反映された版は下記リンク (の ~-Release-Exe.zip) から取得できますので確認をお願いできますか。
https://ci.appveyor.com/project/sakuraeditor/sakura/build/job/6i31qjda5nst76pm/artifacts

@crzorz
Copy link
Author

crzorz commented Jan 9, 2025

@suconbu さん

不具合の調査や原因の特定など、ありがとうございます。
おかげで再描画をする手間も無くなり、集中してエディタを使う事ができそうです。


重箱の隅をつついてしまって申し訳ないのですが、

水平スクロールバーを左方向にドラッグして移動すると、テキストエリア内の左端側の文字が、ちらつく(波を打つ?)みたいです。(一瞬、文字が欠けたようなキャラがズレて描画されて補正されているような。(ゆっくりスクロールすると起こると思われます。 例のような「●」が連続した文字列だと分かりやすいと思われます。))1

自分がサクラエディタを使う上では特に支障は無く、現在の修正でも満足していますが、念のため一応報告させていただきます。(さらに直す必要の是非は分かりませんが、Windows10標準搭載のnotepad.exeの動作を参考にしました。)

Footnotes

  1. ※行番号を表示しても似たような描画になると思いますので、いわゆる仕様なのかと思われますが。(何とも言えず申し訳ございません。)

@crzorz
Copy link
Author

crzorz commented Jan 9, 2025

余談になりますが質問がありまして、

  • 不具合を修正していただいた後は、言い出しっぺである不具合報告者は、動作確認の報告を必ずした方がよろしいのでしょうか?
    • (例えば「個人的に割と多忙で、不具合報告だけになりがち」など、事情がありまして、一方的な不具合報告だけが続いてしまっても構いませんか?)

Footnotes

  1. 1
    恐縮ですが、私はプログラマーではなくフリーソフトウェアの開発コミュニティの常識や知識も無く疎く、この際に伺わせていただいた次第です。

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

No branches or pull requests

2 participants