Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Side by Side Diff: ui/base/ime/input_method_ibus.cc

Issue 8964011: Do not use ui::GetCharacterFromXEvent when Control is pressed. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | ui/base/ime/mock_input_method.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "ui/base/ime/input_method_ibus.h" 5 #include "ui/base/ime/input_method_ibus.h"
6 6
7 #include <ibus.h> 7 #include <ibus.h>
8 8
9 #include <X11/X.h> 9 #include <X11/X.h>
10 #include <X11/Xlib.h> 10 #include <X11/Xlib.h>
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 return; 646 return;
647 } 647 }
648 648
649 // If a key event was not filtered by |context_| and |character_composer_|, 649 // If a key event was not filtered by |context_| and |character_composer_|,
650 // then it means the key event didn't generate any result text. So we need 650 // then it means the key event didn't generate any result text. So we need
651 // to send corresponding character to the focused text input client. 651 // to send corresponding character to the focused text input client.
652 client = GetTextInputClient(); 652 client = GetTextInputClient();
653 653
654 const uint32 state = 654 const uint32 state =
655 EventFlagsFromXFlags(GetKeyEvent(native_event)->state); 655 EventFlagsFromXFlags(GetKeyEvent(native_event)->state);
656 uint16 ch = ui::GetCharacterFromXEvent(native_event); 656 uint16 ch = 0;
657 if (!(state & ui::EF_CONTROL_DOWN))
658 ch = ui::GetCharacterFromXEvent(native_event);
657 if (!ch) { 659 if (!ch) {
658 ch = ui::GetCharacterFromKeyCode( 660 ch = ui::GetCharacterFromKeyCode(
659 ui::KeyboardCodeFromNative(native_event), state); 661 ui::KeyboardCodeFromNative(native_event), state);
660 } 662 }
661 663
662 if (client && ch) 664 if (client && ch)
663 client->InsertChar(ch, state); 665 client->InsertChar(ch, state);
664 } 666 }
665 667
666 void InputMethodIBus::ProcessUnfilteredFabricatedKeyPressEvent( 668 void InputMethodIBus::ProcessUnfilteredFabricatedKeyPressEvent(
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
939 DCHECK_EQ(GetIBus(), bus); 941 DCHECK_EQ(GetIBus(), bus);
940 DCHECK(data); 942 DCHECK(data);
941 IBusInputContext* ic = 943 IBusInputContext* ic =
942 ibus_bus_create_input_context_async_finish(bus, res, NULL); 944 ibus_bus_create_input_context_async_finish(bus, res, NULL);
943 if (ic) 945 if (ic)
944 data->StoreOrAbandonInputContext(ic); 946 data->StoreOrAbandonInputContext(ic);
945 delete data; 947 delete data;
946 } 948 }
947 949
948 } // namespace ui 950 } // namespace ui
OLDNEW
« no previous file with comments | « no previous file | ui/base/ime/mock_input_method.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698