- From: Norbert Nemec <address@hidden>
- To: Lionel Elie Mamane <address@hidden>, address@hidden, address@hidden
- Subject: Re: [TeXmacs] Re: Modifier mapping suddenly broken?
- Date: Mon, 29 Nov 2004 22:37:20 +0100
(Forwarding this to address@hidden also)
Thanks, Lionel! Seems like this really is a serious communication-bug. Emacs
and X have obviously sorted it out by now, both patching around a bit. Now it
is up to TeXmacs to follow suit and fix the problem as well (probably in a
similar way as Emacs.
For me, the problem is rather fundamental. I did not manage to find any
setting that allows me to comfortably work in TeXmacs, so I basically have to
do without until the problem is fixed. I would do it myself, but I don't
really have the time at the moment :-(
Ciao,
Nobbi
Am Montag, 29. November 2004 21:33 schrieb Lionel Elie Mamane:
>
On Mon, Nov 29, 2004 at 09:16:47PM +0100, Norbert Nemec wrote:
>
> I didn't use TeXmacs over several weeks, no I opened it again and
>
> found to my surprise, that the Alt-Key is suddenly mapped to the
>
> M-modifier. (under Linux/Debian)
>
>
The way X does modifiers has changed. This broke at least Emacs,
>
TeXmacs and sawfish (I think also the KDE wm); the X guys say that
>
these programs are broken. A "fix" for Emacs is now in the Debian
>
package.
>
>
See:
>
http://bugs.debian.org/271542
>
http://bugs.debian.org/255286
>
http://bugs.debian.org/263073
>
http://bugs.debian.org/256706
>
>
The emacs fix:
>
>
--- emacs-21.3+1.orig/src/xterm 2004-09-14 19:06:11.000000000 +0200
>
+++ emacs-21.3+1/src/xterm.c 2004-09-16 22:23:24.000000000 +0200
>
@@ -6380,8 +6380,11 @@
>
Alt keysyms are on. */
>
{
>
int row, col; /* The row and column in the modifier table. */
>
+ int found_alt_or_meta;
>
>
for (row = 3; row < 8; row++)
>
+ {
>
+ found_alt_or_meta = 0;
>
for (col = 0; col < mods->max_keypermod; col++)
>
{
>
KeyCode code
>
@@ -6403,33 +6406,44 @@
>
{
>
case XK_Meta_L:
>
case XK_Meta_R:
>
+ found_alt_or_meta = 1;
>
dpyinfo->meta_mod_mask |= (1 << row);
>
break;
>
>
case XK_Alt_L:
>
case XK_Alt_R:
>
+ found_alt_or_meta = 1;
>
dpyinfo->alt_mod_mask |= (1 << row);
>
break;
>
>
case XK_Hyper_L:
>
case XK_Hyper_R:
>
- dpyinfo->hyper_mod_mask |= (1 << row);
>
+ if (!found_alt_or_meta)
>
+ dpyinfo->hyper_mod_mask |= (1 << row);
>
+ code_col = syms_per_code;
>
+ col = mods->max_keypermod;
>
break;
>
>
case XK_Super_L:
>
case XK_Super_R:
>
- dpyinfo->super_mod_mask |= (1 << row);
>
+ if (!found_alt_or_meta)
>
+ dpyinfo->super_mod_mask |= (1 << row);
>
+ code_col = syms_per_code;
>
+ col = mods->max_keypermod;
>
break;
>
>
case XK_Shift_Lock:
>
/* Ignore this if it's not on the lock modifier. */
>
- if ((1 << row) == LockMask)
>
+ if (!found_alt_or_meta && ((1 << row) == LockMask))
>
dpyinfo->shift_lock_mask = LockMask;
>
+ code_col = syms_per_code;
>
+ col = mods->max_keypermod;
>
break;
>
}
>
}
>
}
>
}
>
+ }
>
}
>
>
/* If we couldn't find any meta keys, accept any alt keys as meta keys.
>
*/
--
_________________________________________Norbert Nemec
Bernhardstr. 2 ... D-93053 Regensburg
Tel: 0941 - 2009638 ... Mobil: 0179 - 7475199
eMail: <address@hidden>
Archive powered by MHonArc 2.6.19.