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