lib/rabbit/renderer/display/key-handler.rb in rabbit-3.0.0 vs lib/rabbit/renderer/display/key-handler.rb in rabbit-3.0.1

- old
+ new

@@ -17,26 +17,37 @@ def disconnect_key(keyval, modifier) @user_accel_group.disconnect_key(keyval, modifier) end + def pre_terminal + @window.remove_accel_group(@accel_group) + end + + def post_terminal + @window.add_accel_group(@accel_group) + end + private def init_key_handler @user_accel_group = nil init_accel_group + init_toggle_terminal_accel_group end def clear_user_accel_group @user_accel_group = Gtk::AccelGroup.new end def attach_key(window) window.add_accel_group(@accel_group) + window.add_accel_group(@toggle_terminal_accel_group) end def detach_key(window) window.remove_accel_group(@accel_group) + window.remove_accel_group(@toggle_terminal_accel_group) end def clear_keys super @window.remove_accel_group(@user_accel_group) if @user_accel_group @@ -51,13 +62,27 @@ init_shift_keys init_control_keys init_alt_keys end - def set_keys(keys, mod, flags=nil, &block) + def init_toggle_terminal_accel_group + @toggle_terminal_accel_group = Gtk::AccelGroup.new + mod = Gdk::ModifierType::SHIFT_MASK | + Gdk::ModifierType::CONTROL_MASK | + Gdk::ModifierType::MOD1_MASK + keys = Keys::ShiftControlAlt::TOGGLE_TERMINAL_KEYS + set_keys(keys, + mod, + nil, + @toggle_terminal_accel_group) do |group, obj, val, modifier| + @canvas.activate("ToggleTerminal") + end + end + + def set_keys(keys, mod, flags=nil, accel_group=@accel_group, &block) flags ||= Gtk::AccelFlags::VISIBLE keys.each do |val| - @accel_group.connect(val, mod, flags, &block) + accel_group.connect(val, mod, flags, &block) end end def have_slide_number_related_mask?(modifier) modifier.control_mask? or