/* static */ void KeymapWrapper::InitInputEvent(nsInputEvent& aInputEvent, guint aModifierState) { KeymapWrapper* keymapWrapper = GetInstance(); aInputEvent.isShift = keymapWrapper->AreModifiersActive(SHIFT, aModifierState); aInputEvent.isControl = keymapWrapper->AreModifiersActive(CTRL, aModifierState); aInputEvent.isAlt = keymapWrapper->AreModifiersActive(ALT, aModifierState); // XXX DOM Meta key should be TRUE only on Mac. We need to discuss this // issue later. aInputEvent.isMeta = false; PR_LOG(gKeymapWrapperLog, PR_LOG_DEBUG, ("KeymapWrapper(%p): InitInputEvent, aModifierState=0x%08X " "aKeyEvent={ isShift=%s, isControl=%s, isAlt=%s, isMeta=%s }", keymapWrapper, aModifierState, GetBoolName(aInputEvent.isShift), GetBoolName(aInputEvent.isControl), GetBoolName(aInputEvent.isAlt), GetBoolName(aInputEvent.isMeta))); }
/* static */ void KeymapWrapper::InitInputEvent(nsInputEvent& aInputEvent, guint aModifierState) { KeymapWrapper* keymapWrapper = GetInstance(); aInputEvent.modifiers = 0; // DOM Meta key should be TRUE only on Mac. We need to discuss this // issue later. if (keymapWrapper->AreModifiersActive(SHIFT, aModifierState)) { aInputEvent.modifiers |= MODIFIER_SHIFT; } if (keymapWrapper->AreModifiersActive(CTRL, aModifierState)) { aInputEvent.modifiers |= MODIFIER_CONTROL; } if (keymapWrapper->AreModifiersActive(ALT, aModifierState)) { aInputEvent.modifiers |= MODIFIER_ALT; } if (keymapWrapper->AreModifiersActive(SUPER, aModifierState) || keymapWrapper->AreModifiersActive(HYPER, aModifierState)) { aInputEvent.modifiers |= MODIFIER_OS; } if (keymapWrapper->AreModifiersActive(ALTGR, aModifierState)) { aInputEvent.modifiers |= MODIFIER_ALTGRAPH; } if (keymapWrapper->AreModifiersActive(CAPS_LOCK, aModifierState)) { aInputEvent.modifiers |= MODIFIER_CAPSLOCK; } if (keymapWrapper->AreModifiersActive(NUM_LOCK, aModifierState)) { aInputEvent.modifiers |= MODIFIER_NUMLOCK; } if (keymapWrapper->AreModifiersActive(SCROLL_LOCK, aModifierState)) { aInputEvent.modifiers |= MODIFIER_SCROLLLOCK; } PR_LOG(gKeymapWrapperLog, PR_LOG_DEBUG, ("KeymapWrapper(%p): InitInputEvent, aModifierState=0x%08X, " "aInputEvent.modifiers=0x%04X (Shift: %s, Control: %s, Alt: %s, " "OS: %s, AltGr: %s, CapsLock: %s, NumLock: %s, ScrollLock: %s)", keymapWrapper, aModifierState, aInputEvent.modifiers, GetBoolName(aInputEvent.modifiers & MODIFIER_SHIFT), GetBoolName(aInputEvent.modifiers & MODIFIER_CONTROL), GetBoolName(aInputEvent.modifiers & MODIFIER_ALT), GetBoolName(aInputEvent.modifiers & MODIFIER_OS), GetBoolName(aInputEvent.modifiers & MODIFIER_ALTGRAPH), GetBoolName(aInputEvent.modifiers & MODIFIER_CAPSLOCK), GetBoolName(aInputEvent.modifiers & MODIFIER_NUMLOCK), GetBoolName(aInputEvent.modifiers & MODIFIER_SCROLLLOCK))); switch(aInputEvent.eventStructType) { case NS_MOUSE_EVENT: case NS_MOUSE_SCROLL_EVENT: case NS_DRAG_EVENT: case NS_SIMPLE_GESTURE_EVENT: case NS_MOZTOUCH_EVENT: break; default: return; } nsMouseEvent_base& mouseEvent = static_cast<nsMouseEvent_base&>(aInputEvent); mouseEvent.buttons = 0; if (aModifierState & GDK_BUTTON1_MASK) { mouseEvent.buttons |= nsMouseEvent::eLeftButtonFlag; } if (aModifierState & GDK_BUTTON3_MASK) { mouseEvent.buttons |= nsMouseEvent::eRightButtonFlag; } if (aModifierState & GDK_BUTTON2_MASK) { mouseEvent.buttons |= nsMouseEvent::eMiddleButtonFlag; } PR_LOG(gKeymapWrapperLog, PR_LOG_DEBUG, ("KeymapWrapper(%p): InitInputEvent, aInputEvent has buttons, " "aInputEvent.buttons=0x%04X (Left: %s, Right: %s, Middle: %s, " "4th (BACK): %s, 5th (FORWARD): %s)", keymapWrapper, mouseEvent.buttons, GetBoolName(mouseEvent.buttons & nsMouseEvent::eLeftButtonFlag), GetBoolName(mouseEvent.buttons & nsMouseEvent::eRightButtonFlag), GetBoolName(mouseEvent.buttons & nsMouseEvent::eMiddleButtonFlag), GetBoolName(mouseEvent.buttons & nsMouseEvent::e4thButtonFlag), GetBoolName(mouseEvent.buttons & nsMouseEvent::e5thButtonFlag))); }