Skip to content

修复程序刚启动时不能自动调整任务栏窗口宽度的问题#2344

Open
Haojia521 wants to merge 1 commit into
zhongyang219:masterfrom
Haojia521:fix-auto-width-adjust
Open

修复程序刚启动时不能自动调整任务栏窗口宽度的问题#2344
Haojia521 wants to merge 1 commit into
zhongyang219:masterfrom
Haojia521:fix-auto-width-adjust

Conversation

@Haojia521

Copy link
Copy Markdown
Contributor

目前自动宽度调节代码存在一个潜在问题:

  • 任务栏窗口初始化阶段,获取到了插件的初始宽度,并计算得到CTaskBarDlg::m_window_width,记为W1
  • 插件开始运行,根据实际数据更新了自身宽度
  • CTrafficMonitorDlg::OnTimer(TASKBAR_TIMER)先于CTaskBarDlg::OnTimer(TASKBAR_TIMER)执行,期间调用了CalculateWindowSize()函数重新计算了窗口宽度CTaskBarDlg::m_window_width,记为W2
  • CTaskBarDlg::OnTimer(TASKBAR_TIMER)开始执行,先缓存CTaskBarDlg::m_window_width的值W2,后重新计算窗口宽度仍得到W2,所以不触发WidthChanged()

这导致程序刚启动时很可能感知不到宽度变化造成宽度不正确。

解决方案:

将检查宽度变化的逻辑放入CalculateWindowSize()函数,即时感知尺寸变化;CTaskBarDlg::OnTimer()只调用CalculateWindowSize(),不再缓存窗口尺寸。

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

Successfully merging this pull request may close these issues.

1 participant