Christian Costa : comctl32: Invalid format returned by NF_QUERY defaults to ANSI in treeview.
Alexandre Julliard
julliard at winehq.org
Mon Sep 24 16:04:26 CDT 2012
Module: wine
Branch: master
Commit: 55ff2549860315622e265e9eb7b3c8faeb84b481
URL: http://source.winehq.org/git/wine.git/?a=commit;h=55ff2549860315622e265e9eb7b3c8faeb84b481
Author: Christian Costa <titan.costa at gmail.com>
Date: Sun Sep 23 20:46:31 2012 +0200
comctl32: Invalid format returned by NF_QUERY defaults to ANSI in treeview.
---
dlls/comctl32/tests/treeview.c | 13 ++++++++++++-
dlls/comctl32/treeview.c | 9 ++++-----
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/dlls/comctl32/tests/treeview.c b/dlls/comctl32/tests/treeview.c
index 5a4fde3..baf0e02 100644
--- a/dlls/comctl32/tests/treeview.c
+++ b/dlls/comctl32/tests/treeview.c
@@ -956,6 +956,10 @@ static void test_get_set_unicodeformat(void)
hTree = create_treeview_control(0);
fill_tree(hTree);
+ /* Check that an invalid format returned by NF_QUERY defaults to ANSI */
+ bPreviousSetting = (BOOL)SendMessage( hTree, TVM_GETUNICODEFORMAT, 0, 0 );
+ ok(bPreviousSetting == 0, "Format should be ANSI.\n");
+
flush_sequences(sequences, NUM_MSG_SEQUENCES);
/* Set to Unicode */
@@ -1007,10 +1011,17 @@ static LRESULT CALLBACK parent_wnd_proc(HWND hWnd, UINT message, WPARAM wParam,
}
switch(message) {
+ case WM_NOTIFYFORMAT:
+ {
+ /* Make NF_QUERY return an invalid format to show that it defaults to ANSI */
+ if (lParam == NF_QUERY) return 0;
+ break;
+ }
+
case WM_NOTIFY:
{
NMHDR *pHdr = (NMHDR *)lParam;
-
+
ok(pHdr->code != NM_TOOLTIPSCREATED, "Treeview should not send NM_TOOLTIPSCREATED\n");
if (pHdr->idFrom == 100)
{
diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c
index d8fe635..7d195a0 100644
--- a/dlls/comctl32/treeview.c
+++ b/dlls/comctl32/treeview.c
@@ -848,7 +848,9 @@ static INT TREEVIEW_NotifyFormat (TREEVIEW_INFO *infoPtr, HWND hwndFrom, UINT nC
format = SendMessageW(hwndFrom, WM_NOTIFYFORMAT, (WPARAM)infoPtr->hwnd, NF_QUERY);
TRACE("format=%d\n", format);
- if (format != NFR_ANSI && format != NFR_UNICODE) return 0;
+ /* Invalid format returned by NF_QUERY defaults to ANSI*/
+ if (format != NFR_ANSI && format != NFR_UNICODE)
+ format = NFR_ANSI;
infoPtr->bNtfUnicode = (format == NFR_UNICODE);
@@ -5067,10 +5069,7 @@ TREEVIEW_Create(HWND hwnd, const CREATESTRUCTW *lpcs)
infoPtr->hwndNotify = lpcs->hwndParent;
infoPtr->hwndToolTip = 0;
- infoPtr->bNtfUnicode = IsWindowUnicode (hwnd);
-
- /* Determine what type of notify should be issued */
- /* sets infoPtr->bNtfUnicode */
+ /* Determine what type of notify should be issued (sets infoPtr->bNtfUnicode) */
TREEVIEW_NotifyFormat(infoPtr, infoPtr->hwndNotify, NF_REQUERY);
if (!(infoPtr->dwStyle & TVS_NOTOOLTIPS))
More information about the wine-cvs
mailing list