-
Notifications
You must be signed in to change notification settings - Fork 168
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
ツールバーの表示ON/OFFを行うとちらつく現象への対策 #533
Conversation
beru
commented
Oct 7, 2018
変更前 | 変更後 |
---|---|
なぜこの変更を入れるとちらつく現象が改善するのかメカニズムは分かっていません…。 |
この PR 用にスクリーンキャプチャした動画のコマを確認している際に気付いた点ですが、複数のサクラエディタのウィンドウを開いている状態で Ctrl + 1 押しでツールバーを表示から非表示に切り替えるとフォーカスが合っていないウィンドウのツールバーも非表示になりますが、その際にアイコンが消えてからツールバーが消えています。本来は同時に消えるべきだと思います。フォーカスが合っているウィンドウは問題有りません。一瞬の出来事なので気付きにくいですが直した方が表示切替がすっきり動くと思います。 |
// タブバーを表示中にツールバーの表示ONを行うとちらつくので対策 | ||
if( m_pShareData->m_Common.m_sTabBar.m_bDispTabWnd ){ | ||
::SendMessage( GetHwnd(), WM_SIZE, 0, 0 ); | ||
} | ||
::SendMessage( GetHwnd(), WM_SIZE, m_nWinSizeType, MAKELONG( rc.right - rc.left, rc.bottom - rc.top ) ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
問題が発生するときの m_nWinSizeType
の値は何になっていますか?
(https://docs.microsoft.com/en-us/windows/desktop/winmsg/wm-size の wParam)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
m_nWinSizeType
の値は 0
になっている事を確認しました。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
これたぶん、前回の WM_SIZE
で送られてきた wParam
のキャッシュだと思います。
最近のwindowsのサイズ変更シーケンスは複雑なので、
ここのキャッシュに意味があるかどうか結構微妙だと思っとります。
SIZE_RESTORED(=0)
の決め打ちで指定してやってもいいような気がします。
分かってないと言っちゃうわけですねw 本質的には
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTMです。
暫定対処の効果を確認できたので入れてしまってよいと考えます。
|
色んなことやり過ぎ+キャッシュ変数大杉なので、
おそらく歴史的にちょっとずつ増えていったものなので、 |
この暫定対処ですが、タブバーを表示していない時でもツールバーのON/OFF時に発生する横スクロールバーのちらつきにも効果が有るので、タブバーを表示していない時でも実施するように変更しました。 再度レビューお願いします。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTMです。
SendMessage( GetHwnd(), WM_SIZE, 0, 0)
が何らかのステータスをリセットしている感じなんですかね。裏が取れてるならリネームお願いするんですけど、今回は空気でやってるのでこのままいっちゃいましょう。
それでは Merge します。もし問題が見つかったら別の PR で対処する事にしましょう。 |
ツールバーの表示ON/OFFを行うとちらつく現象への対策