wine cvs notes and proposed keyboard detection fix.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all
The latest wine cvs (2004-01-17) seems to have a few problems that I would 
like to bring to attention.

Office 97 (turkish version) is unable to save new or opened documents and 
displays a messagebox stating that the disk is full. This has happened since 
cvs 2003-12-13.

Quicken 2000 displays the number 8 instead of a slash(/) in date fields eg. 
1780182004 instead of 17/01/2004. This problem has been evident since before 
cvs 2003-12-13.

The keyboard detection when starting wine does not detect my turkish keyboard 
and choses a scandinavion keyboard instead. I had a look at the keyboard.c 
and there is a turkish keyboard defined. I found in the 
X11DRV_KEYBOARD_DetectLayout function that the keysym detection loop exited 
at the first wrong match which resulted in an incorrect match for the 
keyboard. Attached is a patch that appears (for me) to solve this problem. 
This problem has been evident since before cvs 2003-12-13. Wine still states 
that it is unable to find the correct keyboard but it at least loads and uses 
the correct definition although some keys don't work correctly.

If someone could give me some pointers on where to look for the quicken and 
office 97 problems I can try (free time dependant) to find out whats wrong.
-- 
Shane Shields

Registered LFS Compiler: 7582
To drink the WINE of success you must first seek the sayings of source

Anyone sending unwanted advertising e-mail to this address will be
charged $25 for network traffic and computing time. By extracting my
address from this message or its header, you agree to these terms.


diff -U 3 -H -d -r -N -a -- wine.orig/dlls/x11drv/keyboard.c wine/dlls/x11drv/keyboard.c
--- wine.orig/dlls/x11drv/keyboard.c	2003-12-30 23:42:34.000000000 +0200
+++ wine/dlls/x11drv/keyboard.c	2004-01-17 18:36:42.000000000 +0200
@@ -1257,11 +1257,9 @@
 	/* the table, it's okay that the X server has "3#£", for example) */
 	/* however, the score will be higher for longer matches */
 	for (key = 0; key < MAIN_LEN; key++) {
-	  for (ok = 0, i = 0; (ok >= 0) && (i < syms); i++) {
+	  for (ok = 0, i = 0;i < syms; i++) {
 	    if ((*lkey)[key][i] && ((*lkey)[key][i] == ckey[i]))
 	      ok++;
-	    if ((*lkey)[key][i] && ((*lkey)[key][i] != ckey[i]))
-	      ok = -1;
 	  }
 	  if (ok > 0) {
 	    score += ok;

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux