2 * (C) Copyright 2007-2008 Jeremy Maitin-Shepard
3 * (C) Copyright 2008-2009 John J. Foerch
5 * Use, modification, and distribution are subject to the terms specified in the
9 function caret_modality (buffer, elem) {
13 define_buffer_mode('caret_mode',
14 $display_name = 'CARET',
15 $enable = function (buffer) {
16 buffer.browser.setAttribute('showcaret', 'true');
17 var sc = getFocusedSelCtrl(buffer);
18 sc.setCaretEnabled(true);
19 buffer.top_frame.focus();
20 buffer.modalities.push(caret_modality);
21 buffer.set_input_mode();
23 $disable = function (buffer) {
24 buffer.browser.setAttribute('showcaret', 'false');
25 var sc = getFocusedSelCtrl(buffer);
26 sc.setCaretEnabled(false);
27 buffer.browser.focus();
28 var i = buffer.modalities.indexOf(caret_modality);
30 buffer.modalities.splice(i, 1);
31 buffer.set_input_mode();
34 function caret_mode_enable (buffer) {
35 caret_mode(buffer, true);
38 watch_pref('accessibility.browsewithcaret',
39 function caret_toggle_all_buffers () {
40 if (get_pref('accessibility.browsewithcaret')) {
41 for_each_buffer(function (buffer) {
42 caret_mode(buffer, true);
44 add_hook('create_buffer_hook', caret_mode_enable);
46 for_each_buffer(function (buffer) {
47 caret_mode(buffer, false);
49 remove_hook('create_buffer_hook', caret_mode_enable);