lib/glimmer/tk/text_proxy.rb in glimmer-dsl-tk-0.0.36 vs lib/glimmer/tk/text_proxy.rb in glimmer-dsl-tk-0.0.37
- old
+ new
@@ -90,35 +90,35 @@
rescue => e
# No Op
end
end
- def add_selection_format(option, value, no_selection_default: :insert_word)
- process_selection_ranges(no_selection_default: no_selection_default) { |range_start, range_end| add_format(range_start, range_end, option, value) }
+ def add_selection_format(option, value, no_selection_default: :insert_word, focus: true)
+ process_selection_ranges(no_selection_default: no_selection_default, focus: focus) { |range_start, range_end| add_format(range_start, range_end, option, value) }
end
- def remove_selection_format(option, value, no_selection_default: :insert_word)
- process_selection_ranges(no_selection_default: no_selection_default) { |range_start, range_end| remove_format(range_start, range_end, option, value) }
+ def remove_selection_format(option, value, no_selection_default: :insert_word, focus: true)
+ process_selection_ranges(no_selection_default: no_selection_default, focus: focus) { |range_start, range_end| remove_format(range_start, range_end, option, value) }
end
- def toggle_selection_format(option, value, no_selection_default: :insert_word)
- process_selection_ranges(no_selection_default: no_selection_default) { |range_start, range_end| toggle_format(range_start, range_end, option, value) }
+ def toggle_selection_format(option, value, no_selection_default: :insert_word, focus: true)
+ process_selection_ranges(no_selection_default: no_selection_default, focus: focus) { |range_start, range_end| toggle_format(range_start, range_end, option, value) }
end
- def add_selection_font_format(option, value, no_selection_default: :insert_word)
- process_selection_ranges(no_selection_default: no_selection_default) { |range_start, range_end| add_font_format(range_start, range_end, option, value) }
+ def add_selection_font_format(option, value, no_selection_default: :insert_word, focus: true)
+ process_selection_ranges(no_selection_default: no_selection_default, focus: focus) { |range_start, range_end| add_font_format(range_start, range_end, option, value) }
end
- def remove_selection_font_format(option, value, no_selection_default: :insert_word)
- process_selection_ranges(no_selection_default: no_selection_default) { |range_start, range_end| remove_font_format(range_start, range_end, option, value) }
+ def remove_selection_font_format(option, value, no_selection_default: :insert_word, focus: true)
+ process_selection_ranges(no_selection_default: no_selection_default, focus: focus) { |range_start, range_end| remove_font_format(range_start, range_end, option, value) }
end
- def toggle_selection_font_format(option, value, no_selection_default: :insert_word)
- process_selection_ranges(no_selection_default: no_selection_default) { |range_start, range_end| toggle_font_format(range_start, range_end, option, value) }
+ def toggle_selection_font_format(option, value, no_selection_default: :insert_word, focus: true)
+ process_selection_ranges(no_selection_default: no_selection_default, focus: focus) { |range_start, range_end| toggle_font_format(range_start, range_end, option, value) }
end
- def process_selection_ranges(no_selection_default: :insert_word, &processor)
+ def process_selection_ranges(no_selection_default: :insert_word, focus: true, &processor)
regions = @tk.tag_ranges('sel')
if regions.empty?
case no_selection_default
when :insert_word
regions = [[@tk.index('insert wordstart'), @tk.index('insert wordend + 1 char')]]
@@ -128,9 +128,14 @@
end
regions.each do |region|
range_start = region.first
range_end = region.last
processor.call(range_start, range_end)
+ end
+ if focus == true
+ @tk.focus
+ elsif focus.is_a?(Integer)
+ ::Tk.after(focus) { @tk.focus }
end
end
def applied_format?(region_start, region_end, option, value)
!applied_format_tags(region_start, region_end, option, value).empty?