changeset 1622:fb3c9d7509dd

Fix dw_listbox_get_text() to work in Unicode mode on Windows. Added MacOS X changes to the readme.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 27 Mar 2012 16:53:24 +0000
parents 0e8c80209c4b
children 33d7cf373938
files readme.txt win/dw.c
diffstat 2 files changed, 13 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/readme.txt	Tue Mar 27 15:57:36 2012 +0000
+++ b/readme.txt	Tue Mar 27 16:53:24 2012 +0000
@@ -23,6 +23,7 @@
 from available libraries (Firefox, Webkit, Qt, etc).
 
 Changes from version 2.3:
+Added fullscreen support on Mac for resizable windows.
 Added UNICODE build mode on Windows allowing UTF-8 encoded text.
    ANSI builds are supported by removing -DUNICODE -D_UNICODE and -DAEROGLASS
 Added some support for antialiased drawing on Windows via GDI+.
--- a/win/dw.c	Tue Mar 27 15:57:36 2012 +0000
+++ b/win/dw.c	Tue Mar 27 16:53:24 2012 +0000
@@ -7752,10 +7752,10 @@
  */
 void API dw_listbox_get_text(HWND handle, unsigned int index, char *buffer, unsigned int length)
 {
-   TCHAR tmpbuf[100] = {0};
+   TCHAR tmpbuf[100] = {0}, *wbuffer;
    unsigned int len;
 
-   if(!buffer || !length)
+   if(!buffer || !length || !(wbuffer = _alloca((length+1)*sizeof(TCHAR))))
       return;
 
    buffer[0] = 0;
@@ -7767,17 +7767,22 @@
       len = (int)SendMessage(handle, CB_GETLBTEXTLEN, (WPARAM)index, 0);
 
       if(len < length && len != CB_ERR)
-         SendMessage(handle,
-                  CB_GETLBTEXT, (WPARAM)index, (LPARAM)buffer);
+      {
+         SendMessage(handle, CB_GETLBTEXT, (WPARAM)index, (LPARAM)wbuffer);
+         strncpy(buffer, WideToUTF8(wbuffer), length);
+      }
    }
    else
    {
       len = (int)SendMessage(handle, LB_GETTEXTLEN, (WPARAM)index, 0);
 
       if(len < length && len != LB_ERR)
-         SendMessage(handle,
-                  LB_GETTEXT, (WPARAM)index, (LPARAM)buffer);
-   }
+      {
+         SendMessage(handle, LB_GETTEXT, (WPARAM)index, (LPARAM)wbuffer);
+         strncpy(buffer, WideToUTF8(wbuffer), length);
+      }
+   }
+   
 }
 
 /*