Bug 326683 - 10-keypad's decimal separator not localized anymore
Summary: 10-keypad's decimal separator not localized anymore
Status: RESOLVED FIXED
Alias: None
Product: kmymoney
Classification: Applications
Component: general (show other bugs)
Version: 4.6.4
Platform: Debian testing Linux
: NOR minor
Target Milestone: ---
Assignee: KMyMoney Devel Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-26 13:49 UTC by Mathieu MD
Modified: 2014-01-01 18:48 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mathieu MD 2013-10-26 13:49:12 UTC
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)
Comment 1 Thomas Baumgart 2013-10-27 06:18:07 UTC
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?
Comment 2 Mathieu MD 2013-10-27 08:19:12 UTC
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
Comment 3 Thomas Baumgart 2014-01-01 15:39:37 UTC
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.
Comment 4 Mathieu MD 2014-01-01 18:37:32 UTC
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. :)
Comment 5 Mathieu MD 2014-01-01 18:46:43 UTC
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.
Comment 6 Mathieu MD 2014-01-01 18:48:18 UTC
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".