this.Load += new System.EventHandler(this.ListForm_Load);\r
this.ResizeEnd += new System.EventHandler(this.ListForm_ResizeEnd);\r
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.ListForm_KeyPress);\r
+ this.Resize += new System.EventHandler(this.ListForm_Resize);\r
this.contextMenuStripShipList.ResumeLayout(false);\r
this.contextMenuStripItemList.ResumeLayout(false);\r
this.panelGroupHeader.ResumeLayout(false);\r
private readonly CheckBox[] _shipTypeCheckBoxes;\r
private bool _isMaster;\r
private Settings _settings;\r
+ private FormWindowState _windowState = FormWindowState.Minimized;\r
public const int PanelWidth = 215;\r
\r
public class Settings\r
\r
public void UpdateList()\r
{\r
- if (_settings == null)\r
+ if (!Visible)\r
return;\r
SetHeaderVisibility();\r
SetPanelVisibility();\r
\r
public void ShowShip(int id)\r
{\r
+ if (!Visible)\r
+ return;\r
if (InShipStatus)\r
{\r
shipListPanel.ShowShip(id);\r
panel.ApplyResize();\r
}\r
}\r
+\r
+ private void ListForm_Resize(object sender, EventArgs e)\r
+ {\r
+ if (_windowState != WindowState && WindowState == FormWindowState.Normal)\r
+ UpdateList();\r
+ _windowState = WindowState;\r
+ }\r
}\r
}
\ No newline at end of file
\r
public void ShowOrCreate()\r
{\r
- foreach (var listForm in _listForms)\r
+ var listForm = _listForms.FirstOrDefault(f => f.WindowState == FormWindowState.Minimized || !f.Visible);\r
+ if (listForm == null)\r
{\r
- if (listForm.WindowState == FormWindowState.Minimized)\r
- {\r
- listForm.WindowState = FormWindowState.Normal;\r
- return;\r
- }\r
- if (!listForm.Visible)\r
- {\r
- listForm.Show();\r
- return;\r
- }\r
+ listForm = new ListForm(_mainWindow) { Owner = Main, TopMost = Main.TopMost, Font = Main.Font };\r
+ _listForms.Add(listForm);\r
}\r
- var newForm = new ListForm(_mainWindow) {Owner = Main, TopMost = Main.TopMost, Font = Main.Font};\r
- newForm.Show();\r
- newForm.UpdateList();\r
- _listForms.Add(newForm);\r
+ listForm.Show();\r
+ if (listForm.WindowState == FormWindowState.Minimized)\r
+ listForm.WindowState = FormWindowState.Normal;\r
}\r
\r
public void UpdateList()\r
InvokeAll(listForm => listForm.UpdateCellInfo());\r
}\r
\r
- public bool Visible => _listForms.Any(listForm => listForm.Visible);\r
-\r
public bool TopMost\r
{\r
set { InvokeAll(listFrom => { listFrom.TopMost = value; }); }\r
RaiseBothWindows();\r
}\r
\r
- private bool NeedRaise => _listFormGroup.Visible && Form.WindowState != FormWindowState.Minimized;\r
+ private bool NeedRaise => _listFormGroup.Main.Visible && Form.WindowState != FormWindowState.Minimized;\r
\r
private void RaiseBothWindows()\r
{\r
\r
private void ShowShipOnShipList(int id)\r
{\r
- if (!_listFormGroup.Visible)\r
- return;\r
_listFormGroup.ShowShip(id);\r
}\r
\r
_c.hqPanel.Update();\r
Notifier.NotifyShipItemCount();\r
_c.materialHistoryPanel.Update();\r
- if (_listFormGroup.Visible)\r
- _listFormGroup.UpdateList();\r
+ _listFormGroup.UpdateList();\r
}\r
\r
private void UpdateShipInfo()\r
UpdateChargeInfo();\r
UpdateRepairList();\r
UpdateMissionLabels();\r
- if (_listFormGroup.Visible)\r
- _listFormGroup.UpdateList();\r
+ _listFormGroup.UpdateList();\r
}\r
\r
private void UpdateBattleInfo()\r