Home | History | Annotate | Download | only in sticky_keys

Lines Matching refs:event

19 #include "ui/events/event.h"
27 // Returns true if the type of mouse event should be modified by sticky keys.
28 bool ShouldModifyMouseEvent(ui::MouseEvent* event) {
29 ui::EventType type = event->type();
42 virtual void DispatchKeyEvent(ui::KeyEvent* event,
45 virtual void DispatchMouseEvent(ui::MouseEvent* event,
48 virtual void DispatchScrollEvent(ui::ScrollEvent* event,
51 void DispatchEvent(ui::Event* event, aura::Window* target);
62 void StickyKeysHandlerDelegateImpl::DispatchKeyEvent(ui::KeyEvent* event,
64 DispatchEvent(event, target);
67 void StickyKeysHandlerDelegateImpl::DispatchMouseEvent(ui::MouseEvent* event,
70 // We need to send a new, untransformed mouse event to the host.
71 if (event->IsMouseWheelEvent()) {
72 aura::Window* source = static_cast<aura::Window*>(event->target());
73 ui::MouseWheelEvent new_event(*static_cast<ui::MouseWheelEvent*>(event),
80 aura::Window* source = static_cast<aura::Window*>(event->target());
81 ui::MouseEvent new_event(*event, source, source->GetRootWindow());
89 ui::ScrollEvent* event,
91 DispatchEvent(event, target);
94 void StickyKeysHandlerDelegateImpl::DispatchEvent(ui::Event* event,
98 target->GetHost()->event_processor()->OnEventFromSource(event);
158 bool StickyKeysController::HandleKeyEvent(ui::KeyEvent* event) {
159 return shift_sticky_key_->HandleKeyEvent(event) ||
160 alt_sticky_key_->HandleKeyEvent(event) ||
161 altgr_sticky_key_->HandleKeyEvent(event) ||
162 ctrl_sticky_key_->HandleKeyEvent(event) ||
163 mod3_sticky_key_->HandleKeyEvent(event);
166 bool StickyKeysController::HandleMouseEvent(ui::MouseEvent* event) {
167 return shift_sticky_key_->HandleMouseEvent(event) ||
168 alt_sticky_key_->HandleMouseEvent(event) ||
169 altgr_sticky_key_->HandleMouseEvent(event) ||
170 ctrl_sticky_key_->HandleMouseEvent(event) ||
171 mod3_sticky_key_->HandleMouseEvent(event);
174 bool StickyKeysController::HandleScrollEvent(ui::ScrollEvent* event) {
175 return shift_sticky_key_->HandleScrollEvent(event) ||
176 alt_sticky_key_->HandleScrollEvent(event) ||
177 altgr_sticky_key_->HandleScrollEvent(event) ||
178 ctrl_sticky_key_->HandleScrollEvent(event) ||
179 mod3_sticky_key_->HandleScrollEvent(event);
182 void StickyKeysController::OnKeyEvent(ui::KeyEvent* event) {
183 // Do not consume a translated key event which is generated by an IME.
184 if (event->IsTranslated())
188 if (HandleKeyEvent(event))
189 event->StopPropagation();
194 void StickyKeysController::OnMouseEvent(ui::MouseEvent* event) {
196 if (HandleMouseEvent(event))
197 event->StopPropagation();
202 void StickyKeysController::OnScrollEvent(ui::ScrollEvent* event) {
204 if (HandleScrollEvent(event))
205 event->StopPropagation();
257 bool StickyKeysHandler::HandleKeyEvent(ui::KeyEvent* event) {
259 return false; // Do not handle self-generated key event.
262 return HandleDisabledState(event);
264 return HandleEnabledState(event);
266 return HandleLockedState(event);
272 bool StickyKeysHandler::HandleMouseEvent(ui::MouseEvent* event) {
273 if (ShouldModifyMouseEvent(event))
277 || !ShouldModifyMouseEvent(event)) {
283 AppendModifier(event);
284 // Only disable on the mouse released event in normal, non-locked mode.
286 event->type() != ui::ET_MOUSE_PRESSED) {
288 DispatchEventAndReleaseModifier(event);
295 bool StickyKeysHandler::HandleScrollEvent(ui::ScrollEvent* event) {
303 // and the offset of the current scroll event has the opposing sign.
306 event->type() == ui::ET_SCROLL) {
307 int offset = event->y_offset();
314 AppendModifier(event);
317 // with a fling start event. We also stop when the scroll sequence changes
320 (event->type() == ui::ET_SCROLL_FLING_START || direction_changed)) {
323 DispatchEventAndReleaseModifier(event);
331 StickyKeysHandler::TranslateKeyEvent(ui::KeyEvent* event) {
333 if (event->key_code() == ui::VKEY_SHIFT ||
334 event->key_code() == ui::VKEY_LSHIFT ||
335 event->key_code() == ui::VKEY_RSHIFT) {
337 } else if (event->key_code() == ui::VKEY_CONTROL ||
338 event->key_code() == ui::VKEY_LCONTROL ||
339 event->key_code() == ui::VKEY_RCONTROL) {
341 } else if (event->key_code() == ui::VKEY_MENU ||
342 event->key_code() == ui::VKEY_LMENU ||
343 event->key_code() == ui::VKEY_RMENU) {
345 } else if (event->key_code() == ui::VKEY_ALTGR) {
347 } else if (event->key_code() == ui::VKEY_OEM_8) {
350 return event->type() == ui::ET_KEY_PRESSED ?
355 return event->type() == ui::ET_KEY_PRESSED ?
358 return event->type() == ui::ET_KEY_PRESSED ?
362 bool StickyKeysHandler::HandleDisabledState(ui::KeyEvent* event) {
363 switch (TranslateKeyEvent(event)) {
369 modifier_up_event_.reset(new ui::KeyEvent(*event));
388 bool StickyKeysHandler::HandleEnabledState(ui::KeyEvent* event) {
389 switch (TranslateKeyEvent(event)) {
399 AppendModifier(event);
400 DispatchEventAndReleaseModifier(event);
411 bool StickyKeysHandler::HandleLockedState(ui::KeyEvent* event) {
412 switch (TranslateKeyEvent(event)) {
420 AppendModifier(event);
430 void StickyKeysHandler::DispatchEventAndReleaseModifier(ui::Event* event) {
431 DCHECK(event->IsKeyEvent() ||
432 event->IsMouseEvent() ||
433 event->IsScrollEvent());
435 aura::Window* target = static_cast<aura::Window*>(event->target());
444 if (event->IsKeyEvent()) {
445 delegate_->DispatchKeyEvent(static_cast<ui::KeyEvent*>(event), target);
446 } else if (event->IsMouseEvent()) {
447 delegate_->DispatchMouseEvent(static_cast<ui::MouseEvent*>(event), target);
450 static_cast<ui::ScrollEvent*>(event), target);
453 // The action triggered above may have destroyed the event target, in which
454 // case we will dispatch the modifier up event to the root window instead.
486 void StickyKeysHandler::AppendModifier(ui::KeyEvent* event) {
488 XEvent* xev = event->native_event();
496 event->set_flags(event->flags() | modifier_flag_);
497 eventevent->key_code(),
498 event->flags()));
499 event->NormalizeFlags();
502 void StickyKeysHandler::AppendModifier(ui::MouseEvent* event) {
504 // The native mouse event can either be a classic X button event or an
505 // XInput2 button event.
506 XEvent* xev = event->native_event();
531 event->set_flags(event->flags() | modifier_flag_);
534 void StickyKeysHandler::AppendModifier(ui::ScrollEvent* event) {
536 XEvent* xev = event->native_event();
548 event->set_flags(event->flags() | modifier_flag_);