Mercurial > dwindows
changeset 408:fecd529ba9d4
Use dW_box_new() instead of WinCreateWindow() to make the container window
for the comboboxes so that the owner message are correctly handled.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 12 May 2003 21:19:15 +0000 |
parents | a8124a9561c7 |
children | 1d7be77cbfb5 |
files | os2/dw.c |
diffstat | 1 files changed, 5 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/os2/dw.c Sun May 11 06:10:14 2003 +0000 +++ b/os2/dw.c Mon May 12 21:19:15 2003 +0000 @@ -3481,7 +3481,7 @@ thisbox->items = tmpitem; free(thisitem); thisbox->count--; - _free_window_memory(handle); + _free_window_memory(frame ? frame : handle); } return WinDestroyWindow(frame ? frame : handle); } @@ -4206,17 +4206,7 @@ HWND API dw_combobox_new(char *text, ULONG id) { WindowData *blah = calloc(1, sizeof(WindowData)); - HWND frame = WinCreateWindow(HWND_OBJECT, - WC_FRAME, - NULL, - WS_VISIBLE | WS_CLIPCHILDREN | - FS_NOBYTEALIGN, - 0,0,2000,1000, - NULLHANDLE, - HWND_TOP, - 0L, - NULL, - NULL); + HWND frame = dw_box_new(DW_HORZ, 0); HWND tmp = WinCreateWindow(frame, WC_COMBOBOX, text, @@ -4245,6 +4235,7 @@ dw_window_set_color(tmp, DW_CLR_BLACK, DW_CLR_WHITE); dw_window_set_data(tmp, "_dw_comboentry", (void *)last); dw_window_set_data(tmp, "_dw_combo_box", (void *)frame); + WinSetOwner(tmp, frame); return tmp; } @@ -5039,7 +5030,7 @@ /* Don't set the ownership if it's an entryfield or spinbutton */ WinQueryClassName(item, 99, tmpbuf); - if(strncmp(tmpbuf, "#6", 3)!=0 && strncmp(tmpbuf, "#32", 4)!=0) + if(strncmp(tmpbuf, "#6", 3)!=0 && strncmp(tmpbuf, "#32", 4)!=0 && strncmp(tmpbuf, "#2", 3)!=0) WinSetOwner(item, box); WinSetParent(frame ? frame : item, box, FALSE); } @@ -7668,7 +7659,7 @@ WinQueryClassName(item, 99, tmpbuf); /* Don't set the ownership if it's an entryfield or spinbutton */ - if(strncmp(tmpbuf, "#6", 3)!=0 && strncmp(tmpbuf, "#32", 4)!=0) + if(strncmp(tmpbuf, "#6", 3)!=0 && strncmp(tmpbuf, "#32", 4)!=0 && strncmp(tmpbuf, "#2", 3)!=0) WinSetOwner(item, box); WinSetParent(frame ? frame : item, box, FALSE); }