# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1321806884 0 # Node ID e705051d841c2a097cb1abad13f6b58c984eea7c # Parent 960ea1ec245e8e65ad82cd7905578bc273ff544a Test change on Windows to allow dw_container_cursor() to work on unsized containers. I also removed an old hack of initializing unpacked windows to a large size. There was a reason for this at one time, but I am hoping it isn't necessary anymore. My testing has not shown any issues so far. diff -r 960ea1ec245e -r e705051d841c win/dw.c --- a/win/dw.c Sun Nov 20 06:45:55 2011 +0000 +++ b/win/dw.c Sun Nov 20 16:34:44 2011 +0000 @@ -3,7 +3,7 @@ * A GTK like implementation of the Win32 GUI * * (C) 2000-2011 Brian Smith - * (C) 2003-2005 Mark Hessling + * (C) 2003-2011 Mark Hessling * */ #define _WIN32_IE 0x0500 @@ -1607,6 +1607,14 @@ rect.right - rect.left, rect.bottom-rect.top, FALSE); } } + /* So does the List View... handle delayed cursoring */ + if(strnicmp(tmpbuf, WC_LISTVIEW, strlen(WC_LISTVIEW)+1)==0 && width + vectorx > 10 && height + vectory > 10) + { + int index = DW_POINTER_TO_INT(dw_window_get_data(handle, "_dw_cursor")); + + if(index > 0) + ListView_EnsureVisible(handle, index, TRUE); + } if(thisbox->type == DW_HORZ) currentx += width + vectorx + (pad * 2); @@ -4564,7 +4572,7 @@ hwndframe = CreateWindow(FRAMECLASSNAME, "", WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, NULL, DWInstance, @@ -4595,7 +4603,7 @@ hwndframe = CreateWindow(ScrollClassName, "", WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, NULL, DWInstance, @@ -4681,7 +4689,7 @@ hwndframe = CreateWindow(FRAMECLASSNAME, "", WS_VISIBLE | WS_CHILD, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, NULL, DWInstance, @@ -4691,7 +4699,7 @@ title, WS_CHILD | BS_GROUPBOX | WS_VISIBLE | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, hwndframe, NULL, DWInstance, @@ -4718,7 +4726,7 @@ hwndframe = CreateWindow("MDICLIENT", "", WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -4737,7 +4745,7 @@ return CreateWindow(BrowserClassName, "", WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -4814,7 +4822,7 @@ "", SS_BITMAP | SS_CENTERIMAGE | WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -4839,7 +4847,7 @@ tmp = CreateWindow(WC_TABCONTROL, "", WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | flags, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5236,7 +5244,7 @@ LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS | WS_BORDER | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5278,7 +5286,7 @@ TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_HASBUTTONS | TVS_LINESATROOT | WS_BORDER | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5343,7 +5351,7 @@ SS_NOPREFIX | BS_TEXT | WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5364,7 +5372,7 @@ text, BS_TEXT | WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5389,7 +5397,7 @@ WS_VSCROLL | ES_MULTILINE | ES_WANTRETURN | WS_CHILD | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5425,7 +5433,7 @@ ES_WANTRETURN | WS_CHILD | WS_BORDER | ES_AUTOHSCROLL | WS_VISIBLE | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5454,7 +5462,7 @@ ES_WANTRETURN | WS_CHILD | ES_PASSWORD | WS_BORDER | WS_VISIBLE | ES_AUTOHSCROLL | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5494,7 +5502,7 @@ text, WS_CHILD | CBS_DROPDOWN | WS_VSCROLL | WS_CLIPCHILDREN | CBS_AUTOHSCROLL | WS_VISIBLE, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5537,7 +5545,7 @@ text, WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5568,7 +5576,7 @@ WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE | WS_CLIPCHILDREN | (icon ? BS_ICON : BS_BITMAP), - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5627,7 +5635,7 @@ tmp = CreateWindow( BUTTONCLASSNAME, "", windowtype | WS_CHILD | BS_PUSHBUTTON | WS_CLIPCHILDREN | WS_VISIBLE, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5710,7 +5718,7 @@ WS_CHILD | BS_PUSHBUTTON | windowtype | WS_CLIPCHILDREN | WS_VISIBLE, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5747,7 +5755,7 @@ text, WS_CHILD | WS_BORDER | WS_VISIBLE | ES_NUMBER | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, NULL, DWInstance, @@ -5758,7 +5766,7 @@ WS_CHILD | UDS_ALIGNRIGHT | WS_BORDER | UDS_ARROWKEYS | UDS_SETBUDDYINT | UDS_WRAP | UDS_NOTHOUSANDS | WS_VISIBLE, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5801,7 +5809,7 @@ text, WS_CHILD | BS_AUTORADIOBUTTON | WS_CLIPCHILDREN | WS_VISIBLE, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5828,7 +5836,7 @@ "", WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE | (vertical ? TBS_VERT : TBS_HORZ), - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5856,7 +5864,7 @@ "", WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE | (vertical ? SBS_VERT : SBS_HORZ), - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5881,7 +5889,7 @@ return CreateWindow(PROGRESS_CLASS, "", WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5901,7 +5909,7 @@ text, WS_CHILD | BS_AUTOCHECKBOX | BS_TEXT | WS_CLIPCHILDREN | WS_VISIBLE, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -5929,7 +5937,7 @@ WS_CHILD | LBS_HASSTRINGS | LBS_NOTIFY | WS_BORDER | WS_CLIPCHILDREN | WS_VSCROLL | (multi ? LBS_MULTIPLESEL : 0) , - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -8585,8 +8593,12 @@ if ( (textcomp && lvi.lParam && strcmp( (char *)lvi.lParam, text ) == 0) || (!textcomp && (char *)lvi.lParam == text) ) { - + unsigned long width, height; + ListView_SetItemState( handle, index, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED ); + dw_window_get_pos_size( handle, NULL, NULL, &width, &height); + if(width < 10 || height < 10) + dw_window_set_data( handle, "_dw_cursor", DW_INT_TO_POINTER(index) ); ListView_EnsureVisible( handle, index, TRUE ); return; } @@ -10033,7 +10045,7 @@ HWND tmp = CreateWindow(SplitbarClassName, "", WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN, - 0,0,2000,1000, + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance, @@ -10110,7 +10122,7 @@ MONTHCAL_CLASS, "", WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | MCS_DAYSTATE, - 0,0,2000,1000, // resize it later + 0,0,0,0, DW_HWND_OBJECT, (HMENU)id, DWInstance,