KMyMoney used to automagically convert the "." typed on the 10-keys numeric keypad of my French Debian system to "," as it is the correct decimal separator in French. However, upgrading from 4.6.3-2 to 4.6.4-1 made this useful conversion disappear. Reproducible: Always Steps to Reproduce: 0. Set the system/software language to French; 1. Add a new entry, and click on "Montant" (English: "Amount") field; 2. Using the 10-keys pad, input a decimal value, like "12.3"; 3. Confirm by pressing the <Enter> key. Actual Results: 123,00 Expected Results: 12,3 (as it was the case before)
What is the KDE setting for decimal separator on the money tab of the 'Country/Region and Language KDE Control Module'? What happens if you press this key in a *NIX shell (preferably in Konsole)? Do you see a comma then?
Hello Thomas, KDE settings is correct for French locale ("," as decimal separator) and typing the 10-keys dot in Konsole does display a "." and not a ",": http://img843.imageshack.us/img843/6721/ttqc.jpg
Can you provide us with the event information for that key, please? Here's how to obtain that in case you don't know: 1. Start 'xev' in a console (that's where the output goes) 2. Hit the '.' on your decimal keyboard 3. Hit Alt-F4 to exit xev 4. Look for the keyboard press and release event and provide it here. Here's the relevant information I get on my box when I press the comma I have there (the numbers might change on yours): KeyPress event, serial 37, synthetic NO, window 0x6a00001, root 0x2ea, subw 0x0, time 161596572, (366,779), root:(366,802), state 0x10, keycode 91 (keysym 0xffac, KP_Separator), same_screen YES, XLookupString gives 1 bytes: (2c) "," XmbLookupString gives 1 bytes: (2c) "," XFilterEvent returns: False KeyRelease event, serial 40, synthetic NO, window 0x6a00001, root 0x2ea, subw 0x0, time 161596731, (366,779), root:(366,802), state 0x10, keycode 91 (keysym 0xffac, KP_Separator), same_screen YES, XLookupString gives 1 bytes: (2c) "," XFilterEvent returns: False In case you're uncertain which information we need, please provide as much as you can.
Here is the output: KeyPress event, serial 40, synthetic NO, window 0x5e00001, root 0x2d6, subw 0x0, time 177342530, (-352,-129), root:(748,706), state 0x10, keycode 91 (keysym 0x2e, period), same_screen YES, XKeysymToKeycode returns keycode: 59 XLookupString gives 1 bytes: (2e) "." XmbLookupString gives 1 bytes: (2e) "." XFilterEvent returns: False KeyRelease event, serial 40, synthetic NO, window 0x5e00001, root 0x2d6, subw 0x0, time 177342626, (-352,-129), root:(748,706), state 0x10, keycode 91 (keysym 0x2e, period), same_screen YES, XKeysymToKeycode returns keycode: 59 XLookupString gives 1 bytes: (2e) "." XFilterEvent returns: False I see yours is showing a "," while mine a ".". So I went into "System Configuration > Input Devices > Keyboard", then in tab "Advanced" where I can enable the setting "Touche à quatre niveaux avec virgule" (probably something like "Four levels key with comma") under "Comportement de la touche de Suppr. du pavé numérique" ("Numerical keypad Del key behaviour"), which then fix it: KeyPress event, serial 40, synthetic NO, window 0x6400001, root 0x2d6, subw 0x0, time 177671107, (-291,-54), root:(809,781), state 0x10, keycode 91 (keysym 0x2c, comma), same_screen YES, XKeysymToKeycode returns keycode: 58 XLookupString gives 1 bytes: (2c) "," XmbLookupString gives 1 bytes: (2c) "," XFilterEvent returns: False KeyRelease event, serial 40, synthetic NO, window 0x6400001, root 0x2d6, subw 0x0, time 177671163, (-291,-54), root:(809,781), state 0x10, keycode 91 (keysym 0x2c, comma), same_screen YES, XKeysymToKeycode returns keycode: 58 XLookupString gives 1 bytes: (2c) "," XFilterEvent returns: False However, doing this make the decimal keyboard's Del key to _always_ produce a comma, while, before, it was producing a dot in all cases, except into numeric context (KMyMoney, LibreOffice Calc, etc.). This was the perfect behaviour. Hasn't something regressed? Now you helped me to find this bypass, and it will make my days easier anyway: thanks a lot. :)
Got it! I had to select "Touche à quatre niveaux avec le séparateur décimal abstrait" (which I would translate as "Four levels key with abstract decimal separator"). This is exactly what I wanted: always the "dot", except in numerical context where its the "comma" then. Thanks Thomas! :) PS: but what is sure is that I did not changed that setting myself.
Oh, and just for information, now xev output is: KeyPress event, serial 40, synthetic NO, window 0x4c00001, root 0x2d6, subw 0x0, time 179075662, (-388,-124), root:(712,711), state 0x10, keycode 91 (keysym 0xffae, KP_Decimal), same_screen YES, XKeysymToKeycode returns keycode: 129 XLookupString gives 1 bytes: (2e) "." XmbLookupString gives 1 bytes: (2e) "." XFilterEvent returns: False KeyRelease event, serial 40, synthetic NO, window 0x4c00001, root 0x2d6, subw 0x0, time 179075734, (-388,-124), root:(712,711), state 0x10, keycode 91 (keysym 0xffae, KP_Decimal), same_screen YES, XKeysymToKeycode returns keycode: 129 XLookupString gives 1 bytes: (2e) "." XFilterEvent returns: False With "KP_Decimal" instead of "period" or "comma".