OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/input_method/xkeyboard.h" | 5 #include "chrome/browser/chromeos/input_method/xkeyboard.h" |
6 | 6 |
7 #include <queue> | 7 #include <queue> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
348 XAutoRepeatOn(ui::GetXDisplay()); | 348 XAutoRepeatOn(ui::GetXDisplay()); |
349 } else { | 349 } else { |
350 XAutoRepeatOff(ui::GetXDisplay()); | 350 XAutoRepeatOff(ui::GetXDisplay()); |
351 } | 351 } |
352 DLOG(INFO) << "Set auto-repeat mode to: " << (enabled ? "on" : "off"); | 352 DLOG(INFO) << "Set auto-repeat mode to: " << (enabled ? "on" : "off"); |
353 return true; | 353 return true; |
354 } | 354 } |
355 | 355 |
356 // static | 356 // static |
357 bool XKeyboard::SetAutoRepeatRate(const AutoRepeatRate& rate) { | 357 bool XKeyboard::SetAutoRepeatRate(const AutoRepeatRate& rate) { |
358 // TODO(yusukes): write auto tests for the function. | |
359 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 358 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
360 DLOG(INFO) << "Set auto-repeat rate to: " | 359 DLOG(INFO) << "Set auto-repeat rate to: " |
361 << rate.initial_delay_in_ms << " ms delay, " | 360 << rate.initial_delay_in_ms << " ms delay, " |
362 << rate.repeat_interval_in_ms << " ms interval"; | 361 << rate.repeat_interval_in_ms << " ms interval"; |
363 if (XkbSetAutoRepeatRate(ui::GetXDisplay(), XkbUseCoreKbd, | 362 if (XkbSetAutoRepeatRate(ui::GetXDisplay(), XkbUseCoreKbd, |
364 rate.initial_delay_in_ms, | 363 rate.initial_delay_in_ms, |
365 rate.repeat_interval_in_ms) != True) { | 364 rate.repeat_interval_in_ms) != True) { |
366 LOG(ERROR) << "Failed to set auto-repeat rate"; | 365 LOG(ERROR) << "Failed to set auto-repeat rate"; |
367 return false; | 366 return false; |
368 } | 367 } |
369 return true; | 368 return true; |
370 } | 369 } |
371 | 370 |
| 371 // static |
| 372 bool XKeyboard::GetAutoRepeatEnabled() { |
| 373 XKeyboardState state = {}; |
| 374 XGetKeyboardControl(ui::GetXDisplay(), &state); |
| 375 return state.global_auto_repeat != AutoRepeatModeOff; |
| 376 } |
| 377 |
| 378 // static |
| 379 bool XKeyboard::GetAutoRepeatRate(AutoRepeatRate* out_rate) { |
| 380 return XkbGetAutoRepeatRate(ui::GetXDisplay(), XkbUseCoreKbd, |
| 381 &(out_rate->initial_delay_in_ms), |
| 382 &(out_rate->repeat_interval_in_ms)) == True; |
| 383 } |
| 384 |
372 void XKeyboard::SetLockedModifiers(ModifierLockStatus new_caps_lock_status, | 385 void XKeyboard::SetLockedModifiers(ModifierLockStatus new_caps_lock_status, |
373 ModifierLockStatus new_num_lock_status) { | 386 ModifierLockStatus new_num_lock_status) { |
374 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 387 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
375 if (!num_lock_mask_) { | 388 if (!num_lock_mask_) { |
376 LOG(ERROR) << "Cannot set locked modifiers. Num Lock mask unknown."; | 389 LOG(ERROR) << "Cannot set locked modifiers. Num Lock mask unknown."; |
377 return; | 390 return; |
378 } | 391 } |
379 | 392 |
380 unsigned int affect_mask = 0; | 393 unsigned int affect_mask = 0; |
381 unsigned int value_mask = 0; | 394 unsigned int value_mask = 0; |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 case kCapsLockKey: | 529 case kCapsLockKey: |
517 return "capslock"; | 530 return "capslock"; |
518 case kNumModifierKeys: | 531 case kNumModifierKeys: |
519 break; | 532 break; |
520 } | 533 } |
521 return ""; | 534 return ""; |
522 } | 535 } |
523 | 536 |
524 } // namespace input_method | 537 } // namespace input_method |
525 } // namespace chromeos | 538 } // namespace chromeos |
OLD | NEW |