Closed
Bug 760291
Opened 13 years ago
Closed 13 years ago
ui.key.accelKey FF 13b6+ Linux 32 bit over X11 to OSX Lion is broken
Categories
(Core :: DOM: UI Events & Focus Handling, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 751749
People
(Reporter: am5050, Unassigned)
Details
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.21 Safari/536.11
Steps to reproduce:
My environment is a little unusual, but it has worked as expected in Firefox 4 through Firefox 12. I launch 32 bit Linux Firefox without dist extensions on a remote server and send it over X11 to Windows, Linux and Mac clients. The goal is to make it work like a native browser, so I update prefs.js to remap the key bindings on OSX. This is done through an extension, but I can reproduce using a stock browser with the following in prefs.js:
user_pref("ui.key.accelKey", 224);
user_pref("ui.key.chromeAccess", 2);
user_pref("ui.key.contentAccess", 2);
user_pref("ui.key.menuAccessKey", 0);
user_pref("ui.key.saveLink.shift", false);
These settings are straight from the greprefs.js file that comes with the Mac version of Firefox.
Actual results:
Remote the browser to Mac OSX Lion the has XQuartz 2.7.2 rc1, and the normal keyboard shortcuts do not work. Command-t doesn't open a new tab. The default, Ctrl-t also doesn't open a new tab. That is just an example, other keyboard shortcuts are broken as well.
I repeated this with the latest Aurora and nightly releases and got the same result.
Expected results:
Using the same settings in Firefox 12, Command-t opens a new tab. Other keyboard shortcuts work as expected as well.
Reporter | ||
Updated•13 years ago
|
OS: Mac OS X → Linux
Updated•13 years ago
|
Component: Untriaged → Keyboard: Navigation
Product: Firefox → Core
QA Contact: untriaged → keyboard.navigation
Comment 1•13 years ago
|
||
Are you able to use xev to find out which keysyms are generated by the Command key, please?
Please also paste your xmodmap output.
Comment 2•13 years ago
|
||
And output from setxkbmap -print too, please.
Reporter | ||
Comment 3•13 years ago
|
||
xev for ⌘+t
KeyPress event, serial 26, synthetic NO, window 0x600001,
root 0x481, subw 0x0, time 3804552631, (90,112), root:(90,134),
state 0x0, keycode 63 (keysym 0xffe7, Meta_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 29, synthetic NO, window 0x600001,
root 0x481, subw 0x0, time 3804552847, (90,112), root:(90,134),
state 0x10, keycode 25 (keysym 0x74, t), same_screen YES,
XLookupString gives 1 bytes: (74) "t"
XmbLookupString gives 1 bytes: (74) "t"
XFilterEvent returns: False
KeyRelease event, serial 29, synthetic NO, window 0x600001,
root 0x481, subw 0x0, time 3804553073, (90,112), root:(90,134),
state 0x10, keycode 25 (keysym 0x74, t), same_screen YES,
XLookupString gives 1 bytes: (74) "t"
XFilterEvent returns: False
KeyPress event, serial 29, synthetic NO, window 0x600001,
root 0x481, subw 0x0, time 3804553073, (90,112), root:(90,134),
state 0x10, keycode 25 (keysym 0x74, t), same_screen YES,
XLookupString gives 1 bytes: (74) "t"
XmbLookupString gives 1 bytes: (74) "t"
XFilterEvent returns: False
KeyRelease event, serial 29, synthetic NO, window 0x600001,
root 0x481, subw 0x0, time 3804553102, (90,112), root:(90,134),
state 0x10, keycode 25 (keysym 0x74, t), same_screen YES,
XLookupString gives 1 bytes: (74) "t"
XFilterEvent returns: False
KeyRelease event, serial 29, synthetic NO, window 0x600001,
root 0x481, subw 0x0, time 3804553311, (90,112), root:(90,134),
state 0x10, keycode 63 (keysym 0xffe7, Meta_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 29, synthetic NO, window 0x600001,
root 0x481, subw 0x0, time 3804553591, (90,112), root:(90,134),
state 0x0, keycode 63 (keysym 0xffe7, Meta_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 29, synthetic NO, window 0x600001,
root 0x481, subw 0x0, time 3804553767, (90,112), root:(90,134),
state 0x10, keycode 63 (keysym 0xffe7, Meta_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
xmodmap: up to 2 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x40), Shift_R (0x44)
lock Caps_Lock (0x41)
control Control_L (0x43), Control_R (0x46)
mod1 Mode_switch (0x42), Mode_switch (0x45)
mod2 Meta_L (0x3f), Meta_R (0x47)
mod3
mod4
mod5
➜ ~ setxkbmap -print
xkb_keymap {
xkb_keycodes { include "xfree86+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+empty" };
xkb_geometry { include "pc(pc104)" };
};
Comment 4•13 years ago
|
||
Thanks. That looks an unusual xmodmap output for a pc104 geometry.
Do you know why it differs from those in Bug 751749 comment 15, for example?
Has xmodmap been used to change the modifiers, perhaps?
(I'm also not familiar with the "empty" symbols. I wonder what the alpha-numeric keys do, but I assume that is not related to the modifier mapping.)
Reporter | ||
Comment 5•13 years ago
|
||
Right, so in my case I am using a Mac laptop to send these keys over X11 (XQuartz 2.7.2) to my Linux machine. To complicate things a bit more, the Linux machine I'm testing on is a VirtualBox VM running on the Mac laptop. The keymap you reference appears to be a sun keyboard directly connected to the Linux box.
My Linux VM is minimally configured, and I don't believe there was anything done to modify the defaul key config. xmodmap wasn't even installed before you asked for its output.
Comment 6•13 years ago
|
||
It would appear the following commit changes the behavour:
http://hg.mozilla.org/releases/mozilla-release/rev/bbf15bfc5133
Particularly interesting is this:
// XXX DOM Meta key should be TRUE only on Mac. We need to discuss this
// issue later.
aInputEvent.isMeta = false;
Previously isMeta would be set that way:
aEvent.isMeta = (modifierState & GDK_MOD4_MASK) != 0;
So I suspect that is what breaking Adam's case
Comment 7•13 years ago
|
||
Ah, I missed that the X11 server is on the MacOSX. That would explain why things are unusual.
It does seem appropriate to treat a Meta modifier as a DOM Meta modifier on a Mac keyboard, at least.
And yes, Andrey. That would be the reason.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Comment 8•13 years ago
|
||
(In reply to Andrey Petrov from comment #6)
> Previously isMeta would be set that way:
>
> aEvent.isMeta = (modifierState & GDK_MOD4_MASK) != 0;
though I don't know why this would have worked as there is no mod4.
Comment 9•13 years ago
|
||
Karl, what happens if I plug Mac keyboard onto linux/gtk box running Mozilla. Can this be considered a legal case?
Comment 10•13 years ago
|
||
I don't have a keyboard to test, but looking at xkeyboard-config (one distributed by Xorg/freedesktop), it looks like the Command keys on a Mac keyboard are usually mapped to Super/Mod4.
Those would have resulted in .isMeta being set prior to bbf15bfc5133.
Now (since bug 61643), Super is mapped to DOM_VK_WIN.
So, yes a Mac keyboard with a linux box should be supported.
The change is a result of xkeyboard-config treating a Mac keyboard like a PC keyboard and Gecko now treating a PC keyboard differently.
Reporter | ||
Comment 11•13 years ago
|
||
The fix in bug 751749, works for me -- marking as a duplicate.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → DUPLICATE
Assignee | ||
Updated•6 years ago
|
Component: Keyboard: Navigation → User events and focus handling
You need to log in
before you can comment on or make changes to this bug.
Description
•