The behavior of the HDN_ENDTRACK notification has changed slightly on
Vista. HDM_GETITEMRECT, when used while handling HDN_ENDTRACK, returns
the item extents that were there prior to the user starting the resizing
operation. Earlier it would return the extents that resulted from the
resizing operation.
This resulted in a visual update problem on Windows Vista/2008
in the NIM Advanced View.
ticket: 5605
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20570
dc483132-0cff-0310-8789-
dd5450dbe970
LRESULT
cw_handle_header_msg(khui_credwnd_tbl * tbl, LPNMHEADER ph) {
- RECT r;
HDITEM hi;
switch(ph->hdr.code) {
case HDN_ENDTRACK:
{
- int width;
hi.mask = HDI_ORDER;
Header_GetItem(ph->hdr.hwndFrom, ph->iItem, &hi);
- Header_GetItemRect(ph->hdr.hwndFrom, ph->iItem, &r);
- width = r.right - r.left;
- if(width != tbl->cols[hi.iOrder].width) {
- tbl->cols[hi.iOrder].width = width;
+ if(ph->pitem->cxy != tbl->cols[hi.iOrder].width) {
+ tbl->cols[hi.iOrder].width = ph->pitem->cxy;
cw_update_extents(tbl, TRUE);
InvalidateRect(tbl->hwnd, NULL, FALSE);
}