- // Newer versions of Windows have a special message for cancelling editing,
- // use it if available.
-#ifdef ListView_CancelEditLabel
- if ( cancel && (wxApp::GetComCtl32Version() >= 600) )
- {
- ListView_CancelEditLabel(GetHwnd());
- }
- else
-#endif // ListView_CancelEditLabel
- {
- // We shouldn't destroy the control ourselves according to MSDN, which
- // proposes WM_CANCELMODE to do this, but it doesn't seem to work so
- // emulate the corresponding user action instead.
- ::SendMessage(hwnd, WM_KEYDOWN, cancel ? VK_ESCAPE : VK_RETURN, 0);
- }
+ // Newer versions of Windows have a special ListView_CancelEditLabel()
+ // message for cancelling editing but it, rather counter-intuitively, keeps
+ // the last text entered in the dialog while cancelling as we do it below
+ // restores the original text which is the more expected behaviour.
+
+ // We shouldn't destroy the control ourselves according to MSDN, which
+ // proposes WM_CANCELMODE to do this, but it doesn't seem to work so
+ // emulate the corresponding user action instead.
+ ::SendMessage(hwnd, WM_KEYDOWN, cancel ? VK_ESCAPE : VK_RETURN, 0);