trapping EF_LEFT_MOUSE_BUTTON and turning it into EF_MIDDLE_MOUSE_BUTTON

9 views
Skip to first unread message

miha...@gmail.com

unread,
Apr 21, 2016, 8:29:48 AM4/21/16
to input-dev
Hi,,

I have been trying to catch this event somewhere in the code for the purpose of making a clicked link open in a NEW_FOREGROUND_TAB. So far I have placed my code in several methods but none of them are being entered upon link clicking. Following the places I have already tried intercepting the link click event; I would appreciate any hints.

E:\chromium\src\ui\base\window_open_disposition.cc

WindowOpenDisposition DispositionFromClick(bool middle_button,
bool alt_key,
bool ctrl_key,
bool meta_key,
bool shift_key) {
// MacOS uses meta key (Command key) to spawn new tabs.
#if defined(OS_MACOSX)
if (middle_button || meta_key)
#else
if (middle_button || ctrl_key)
#endif
return shift_key ? NEW_FOREGROUND_TAB : NEW_BACKGROUND_TAB;
///////////////////////////////////////////// catalin:
{
std::ofstream ofs("temp.log", ios_base::app);
ofs << "new tab!" << endl;
return NEW_FOREGROUND_TAB;
}
// if (shift_key)
// return NEW_WINDOW;
// if (alt_key)
// return SAVE_TO_DISK;
// return CURRENT_TAB;
///////////////////////////////////////////// catalin:
}

E:\chromium\src\content\browser\renderer_host\input\web_input_event_util.cc

int WebEventModifiersToEventFlags(int modifiers) {
int flags = 0;

///////////////////////////////////////////// catalin:
{
std::ofstream ofs("temp.log", ios_base::app);
ofs << "blink modifiers!" << endl;
flags |= ui::EF_MIDDLE_MOUSE_BUTTON;
flags |= ui::EF_SHIFT_DOWN;
return flags;
}
///////////////////////////////////////////// catalin:

if (modifiers & blink::WebInputEvent::ShiftKey)
flags |= ui::EF_SHIFT_DOWN;
.....
}

E:\chromium\src\remoting\host\input_injector_chromeos.cc

ui::EventFlags MouseButtonToUIFlags(MouseEvent::MouseButton button) {
switch (button) {
case MouseEvent::BUTTON_LEFT:
///////////////////////////////////////////// catalin:
{
std::ofstream ofs("temp.log", ios_base::app);
ofs << "MouseButtonToUIFlags!" << endl;
return ui::EF_MIDDLE_MOUSE_BUTTON;
}
// return ui::EF_LEFT_MOUSE_BUTTON;
///////////////////////////////////////////// catalin:
case MouseEvent::BUTTON_RIGHT:
return ui::EF_RIGHT_MOUSE_BUTTON;
case MouseEvent::BUTTON_MIDDLE:
return ui::EF_MIDDLE_MOUSE_BUTTON;
default:
NOTREACHED();
return ui::EF_NONE;
}
}

E:\chromium\src\ui\events\blink\blink_event_util.cc

int EventFlagsToWebEventModifiers(int flags) {
int modifiers = 0;

if (flags & EF_SHIFT_DOWN)
modifiers |= blink::WebInputEvent::ShiftKey;
if (flags & EF_CONTROL_DOWN)
modifiers |= blink::WebInputEvent::ControlKey;
if (flags & EF_ALT_DOWN)
modifiers |= blink::WebInputEvent::AltKey;
if (flags & EF_COMMAND_DOWN)
modifiers |= blink::WebInputEvent::MetaKey;

if (flags & EF_LEFT_MOUSE_BUTTON)
///////////////////////////////////////////// catalin:
{
std::ofstream ofs("temp.log", ios_base::app);
ofs << "EventFlagsToWebEventModifiers!" << endl;
modifiers |= blink::WebInputEvent::MiddleButtonDown;
}
// modifiers |= blink::WebInputEvent::LeftButtonDown;
/////////////////////////////////////////// catalin:
if (flags & EF_MIDDLE_MOUSE_BUTTON)
modifiers |= blink::WebInputEvent::MiddleButtonDown;
if (flags & EF_RIGHT_MOUSE_BUTTON)
modifiers |= blink::WebInputEvent::RightButtonDown;
if (flags & EF_CAPS_LOCK_DOWN)
modifiers |= blink::WebInputEvent::CapsLockOn;
if (flags & EF_IS_REPEAT)
modifiers |= blink::WebInputEvent::IsAutoRepeat;
if (flags & ui::EF_TOUCH_ACCESSIBILITY)
modifiers |= blink::WebInputEvent::IsTouchAccessibility;

return modifiers;
}


Thank you
Catalin

Reply all
Reply to author
Forward
0 new messages