Bug 214018
Summary: | Menu accelerator key of menu item Edit->Lower-case does not work | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Roland Hermans <rolandh> |
Component: | lesstif | Assignee: | Patrice Dumas <pertusus> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 6 | CC: | hdegoede |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i686 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | 0.95.0-19.fc7 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2007-09-12 16:44:09 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Roland Hermans
2006-11-04 16:38:58 UTC
Roland, I investigated the problem today and the bug is in the lesstif library, which incorrectly handles the event. I checked the accelerator aliases in nedit and the lower-case correction is there correctly handled by nedit. I added the printf("changeCase %d!\n", makeUpper); to the changeCase function what nedit uses to change case of a selected block. When nedit is built against openmotif the your reproduction case ends up correctly (the chracters are converted to lowercase), note makeUpper == 0, what we want to convert characters to lower-case: Breakpoint 1, changeCase (window=0x8de7990, makeUpper=0) at shift.c:201 201 printf("changeCase %d!\n", makeUpper); (gdb) bt #0 changeCase (window=0x8de7990, makeUpper=0) at shift.c:201 #1 0x00178a9b in XtCallActionProc () from /usr/lib/libXt.so.6 #2 0x0805f2fd in doActionCB (w=0x8e19600, clientData=0x80ecffe, callData=0xbff69cc0) at menu.c:1369 #3 0x0014d4cb in XtCallCallbackList () from /usr/lib/libXt.so.6 #4 0x0044cfcd in XmVaCreatePanedWindow () from /usr/lib/libXm.so.4 #5 0x004fbb4a in _XmAllowAcceleratedInsensitiveUnmanagedMenuItems () from /usr/lib/libXm.so.4 #6 0x004fbd60 in _XmAllowAcceleratedInsensitiveUnmanagedMenuItems () from /usr/lib/libXm.so.4 #7 0x004fbded in _XmRC_KeyboardInputHandler () from /usr/lib/libXm.so.4 #8 0x0015b715 in XtDispatchEventToWidget () from /usr/lib/libXt.so.6 #9 0x0015beaa in _XtSendFocusEvent () from /usr/lib/libXt.so.6 #10 0x0015ad17 in XtDispatchEvent () from /usr/lib/libXt.so.6 #11 0x0015aecc in XtAppMainLoop () from /usr/lib/libXt.so.6 #12 0x0804f434 in main (argc=19, argv=0xbff6c7b4) at nedit.c:763 #13 0x00634f2c in __libc_start_main () from /lib/libc.so.6 #14 0x0804e671 in _start () In case of lesstif the situation looks like: Breakpoint 1, changeCase (window=0x9bcbf68, makeUpper=1) at shift.c:201 201 printf("changeCase %d!\n", makeUpper); (gdb) bt #0 changeCase (window=0x9bcbf68, makeUpper=1) at shift.c:201 #1 0x00455a9b in XtCallActionProc () from /usr/lib/libXt.so.6 #2 0x0805f2cd in doActionCB (w=0x9beea60, clientData=0x80edf1d, callData=0xbf8205cc) at menu.c:1369 #3 0x0042a4cb in XtCallCallbackList () from /usr/lib/libXt.so.6 #4 0x00e9a43f in _XmInitProtocols () from /usr/lib/libXm.so.2 #5 0x00e8faef in _XmManagerUninstallAccelerator () from /usr/lib/libXm.so.2 #6 0x004387b9 in XtDispatchEventToWidget () from /usr/lib/libXt.so.6 #7 0x00438eaa in _XtSendFocusEvent () from /usr/lib/libXt.so.6 #8 0x00437d17 in XtDispatchEvent () from /usr/lib/libXt.so.6 #9 0x00437ecc in XtAppMainLoop () from /usr/lib/libXt.so.6 #10 0x0804f4f4 in main (argc=28, argv=0xbf823064) at nedit.c:763 #11 0x00116f2c in __libc_start_main () from /lib/libc.so.6 #12 0x0804e641 in _start () Note that the callback function changeCase() is called with makeUpper == 1 regardless the Ctrl+6 or Shift+Ctrl+6 shortcut even though it's properly defined. Reassigning to lesstif. This is an extra package. Assigning to extras. I cannot reproduce because of my keyboard layout, indeed to have a 6 I have to use shift. Is it the case for you? No, I don't have to press shift to enter a 6. I use standard US keyboard layout. From my /etc/X11/xorg.conf: Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Locale setting is nl_NL.UTF-8, but if I run e.g. LANG=C nedit the problem persists. Also I can confirm the findings of Jindrich Novy in comment #2 that nedit runs fine when using the openmotif library. correction: reference should of course be to comment #1 I'll have a look at that. I don't know when exactly. This seems to be that bug: http://sourceforge.net/tracker/index.php?func=detail&aid=1232451&group_id=8596&atid=108596 I tried to reproduce it and I can't. Maybe you could help me by sending the debugging output of lesstif. For that, first you need to rebuild lesstif with --enable-debug --disable-production. Then you can do (all in one line) $ export DEBUG_SOURCES='all:-TravAct.c:-Traversal.c' DEBUG_PRINT_WIDGETID=y DEBUG_FILE=/some/where/lesstif.out DEBUG_TOGGLE=on Then you launch nedit: $ nedit you prepare a selection You save the lesstif debug file $ cd /some/where/ $ cp lesstif.out lesstif.out-before You then do the accelerator which don't work Shift+Ctrl+6 immediatly after that, save the debug file $ cp lesstif.out lesstif.out-after And then you attach lesstif.out-before and lesstif.out-after to the bugreport. I can give you a compiled binary, a srpm, or instructions on how to recompile and use a ununinstalled version with LD_LIBRARY_PATH if you don't know how to produce and use a lesstif binary with --enable-debug --disable-production. Beware that there is a known (and on purpose) vulnerability in lesstif when compiled with --disable-production, so this should only be used for testing purposes. Thanks for the pointer to the upstream bug report, that helped. A fixed version is building for both rawhide and F-7, I'll push it to updates-testing when the build is completed, a comment saying that the update is available in updates-testing will be added here. Please confirm that the test update fixes this, then I will push it to the regular updates repo. lesstif-0.95.0-19.fc7 has been pushed to the Fedora 7 testing repository. If problems still persist, please make note of it in this bug report. lesstif-0.95.0-19.fc7 has been pushed to the Fedora 7 stable repository. If problems still persist, please make note of it in this bug report. |