Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 583210 Details for
Bug 810211
The key events with ctrl key isn't delivered during the switcher window is open
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Patch2 for customizable Control+space
ibus-810211-quit-switcher-2.patch (text/plain), 5.65 KB, created by
fujiwara
on 2012-05-09 10:44:20 UTC
(
hide
)
Description:
Patch2 for customizable Control+space
Filename:
MIME Type:
Creator:
fujiwara
Created:
2012-05-09 10:44:20 UTC
Size:
5.65 KB
patch
obsolete
>--- ibus-1.4.99.20120428/ui/gtk3/keybindingmanager.vala.orig 2012-05-09 17:26:54.738570309 +0900 >+++ ibus-1.4.99.20120428/ui/gtk3/keybindingmanager.vala 2012-05-09 17:56:24.524806906 +0900 >@@ -133,6 +133,10 @@ public class KeybindingManager : GLib.Ob > m_bindings.remove (binding); > } > >+ public GLib.List get_keybindings() { >+ return m_bindings.copy(); >+ } >+ > public static KeybindingManager get_instance () { > if (m_instance == null) > m_instance = new KeybindingManager (); >--- ibus-1.4.99.20120428/ui/gtk3/panel.vala.orig 2012-05-09 17:16:00.790311921 +0900 >+++ ibus-1.4.99.20120428/ui/gtk3/panel.vala 2012-05-09 17:49:33.345782923 +0900 >@@ -48,6 +48,7 @@ class Panel : IBus.PanelService { > private int m_fallback_lock_id = -1; > private bool m_changed_xkb_option = false; > private GLib.Timer m_changed_layout_timer; >+ private GLib.List m_keybindings; > private const string ACCELERATOR_SWITCH_IME_FOREWARD = "<Control>space"; > private const string ACCELERATOR_SWITCH_IME_BACKWARD = "<Control><Shift>space"; > private string[] ACCELERATOR_IME_HOTKEYS = {}; >@@ -144,6 +145,7 @@ class Panel : IBus.PanelService { > (e) => handle_engine_switch(e, true)); > } > } >+ m_keybindings = keybinding_manager.get_keybindings(); > } > > private void set_custom_font() { >@@ -609,7 +611,7 @@ class Panel : IBus.PanelService { > event, primary_modifiers); > if (pressed) { > int i = revert ? m_engines.length - 1 : 1; >- i = m_switcher.run(event, m_engines, i); >+ i = m_switcher.run(event, m_engines, i, m_keybindings); > if (i < 0) { > debug("switch cancelled"); > } else { >--- ibus-1.4.99.20120428/ui/gtk3/switcher.vala.orig 2012-05-09 17:15:20.491623897 +0900 >+++ ibus-1.4.99.20120428/ui/gtk3/switcher.vala 2012-05-09 19:00:47.486408384 +0900 >@@ -23,10 +23,37 @@ > using IBus; > using GLib; > using Gtk; >+using Gdk; > using Pango; > using Atk; > > class Switcher : Gtk.Window { >+ private class Keybinding { >+ public Keybinding(string accelerator, >+ uint keysym, >+ Gdk.ModifierType modifiers) { >+ this.accelerator = accelerator; >+ this.keysym = keysym; >+ this.modifiers = modifiers; >+ } >+ >+ public string accelerator { get; set; } >+ public uint keysym { get; set; } >+ public Gdk.ModifierType modifiers { get; set; } >+ } >+ >+ public static const uint MODIFIER_FILTER = >+ Gdk.ModifierType.MODIFIER_MASK & ~( >+ Gdk.ModifierType.MOD2_MASK | >+ Gdk.ModifierType.LOCK_MASK | >+ Gdk.ModifierType.MOD4_MASK | >+ Gdk.ModifierType.MOD5_MASK | >+ Gdk.ModifierType.BUTTON1_MASK | >+ Gdk.ModifierType.BUTTON2_MASK | >+ Gdk.ModifierType.BUTTON3_MASK | >+ Gdk.ModifierType.BUTTON4_MASK | >+ Gdk.ModifierType.BUTTON5_MASK); >+ > private Gtk.Box m_box; > private Gtk.Label m_label; > private Gtk.Button[] m_buttons = {}; >@@ -34,6 +61,7 @@ class Switcher : Gtk.Window { > private uint m_selected_engine; > private uint m_primary_modifier; > private GLib.MainLoop m_loop; >+ private unowned GLib.List<Keybinding> m_keybindings; > private int m_result; > private int m_default_font_size = 16; > private const int m_desc_label_max_len = 20; >@@ -69,7 +97,7 @@ class Switcher : Gtk.Window { > grab_focus(); > } > >- public int run(Gdk.Event event, IBus.EngineDesc[] engines, int index) { >+ public int run(Gdk.Event event, IBus.EngineDesc[] engines, int index, GLib.List keybindings) { > assert (m_loop == null); > assert (index < engines.length); > >@@ -82,6 +110,7 @@ class Switcher : Gtk.Window { > m_selected_engine = index; > m_label.set_text(m_buttons[index].get_data("longname")); > m_buttons[index].grab_focus(); >+ m_keybindings = (GLib.List<Keybinding>) keybindings; > > Gdk.Device device = event.get_device(); > if (device == null) { >@@ -286,27 +315,37 @@ class Switcher : Gtk.Window { > > public override bool key_press_event(Gdk.EventKey e) { > Gdk.EventKey *pe = &e; >- switch (pe->keyval) { >- case 0x0020: /* space */ >- case 0xff80: /* KP_Space */ >- if ((pe->state & Gdk.ModifierType.SHIFT_MASK) == 0) >+ Gdk.ModifierType state = pe->state & MODIFIER_FILTER; >+ >+ for (unowned GLib.List<Keybinding> keybindings = m_keybindings; >+ keybindings != null; >+ keybindings = keybindings.next) { >+ Keybinding keybinding = keybindings.data; >+ if (pe->keyval == keybinding.keysym && >+ state == keybinding.modifiers) { >+ if ((state & Gdk.ModifierType.SHIFT_MASK) == 0) { > next_engine(); >- else >+ } else { > previous_engine(); >- break; >+ } >+ return true; >+ } >+ } >+ >+ switch (pe->keyval) { > case 0x08fb: /* leftarrow */ >- case 0xff51: /* Down */ >+ case 0xff51: /* Left */ >+ previous_engine(); > break; > case 0x08fc: /* uparrow */ > case 0xff52: /* Up */ >- previous_engine(); > break; > case 0x08fd: /* rightarrow */ > case 0xff53: /* Right */ >+ next_engine(); > break; > case 0x08fe: /* downarrow */ > case 0xff54: /* Down */ >- next_engine(); > break; > default: > debug("0x%04x", pe->keyval);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 810211
:
583209
| 583210