}
}
programs {
+ program { name: "focus_in_noblink";
+ signal: "focus,in,noblink";
+ source: "terminology";
+ action: STATE_SET "focused" 0.0;
+ target: "fill";
+ target: "outline";
+ }
program { name: "focus_in";
signal: "focus,in";
source: "terminology";
EET_DATA_DESCRIPTOR_ADD_BASIC
(edd_base, Config, "flicker_on_key", flicker_on_key, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC
+ (edd_base, Config, "disable_cursor_blink", disable_cursor_blink, EET_T_UCHAR);
+ EET_DATA_DESCRIPTOR_ADD_BASIC
(edd_base, Config, "translucent", translucent, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC
(edd_base, Config, "mute", mute, EET_T_UCHAR);
config->translucent = EINA_FALSE;
config->jump_on_change = EINA_FALSE;
config->flicker_on_key = EINA_TRUE;
+ config->disable_cursor_blink = EINA_TRUE;
// XXX: add
//
// // more invisible spaces
int vidmod;
Eina_Bool jump_on_change;
Eina_Bool flicker_on_key;
+ Eina_Bool disable_cursor_blink;
Eina_Bool translucent;
Eina_Bool mute;
Eina_Bool urg_bell;
}
static void
+_cb_op_behavior_cursor_blink_chg(void *data, Evas_Object *obj, void *event __UNUSED__)
+{
+ Evas_Object *term = data;
+ Config *config = termio_config_get(term);
+ config->disable_cursor_blink = elm_check_state_get(obj);
+ termio_config_update(term);
+ config_save(config, NULL);
+}
+
+static void
_cb_op_behavior_flicker_chg(void *data, Evas_Object *obj, void *event __UNUSED__)
{
Evas_Object *term = data;
evas_object_show(o);
evas_object_smart_callback_add(o, "changed",
_cb_op_behavior_flicker_chg, term);
+
+ o = elm_check_add(opbox);
+ evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
+ elm_object_text_set(o, "Disable cursor blinking");
+ elm_check_state_set(o, config->disable_cursor_blink);
+ elm_box_pack_end(opbox, o);
+ evas_object_show(o);
+ evas_object_smart_callback_add(o, "changed",
+ _cb_op_behavior_cursor_blink_chg, term);
o = elm_check_add(opbox);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
sd = evas_object_smart_data_get(data);
if (!sd) return;
- edje_object_signal_emit(sd->cur.obj, "focus,in", "terminology");
+ if (sd->config->disable_cursor_blink)
+ edje_object_signal_emit(sd->cur.obj, "focus,in,noblink", "terminology");
+ else
+ edje_object_signal_emit(sd->cur.obj, "focus,in", "terminology");
if (!sd->win) return;
elm_win_keyboard_mode_set(sd->win, ELM_WIN_KEYBOARD_TERMINAL);
if (sd->imf)
termpty_backscroll_set(sd->pty, sd->config->scrollback);
sd->scroll = 0;
+
+ edje_object_signal_emit(sd->cur.obj, "focus,out", "terminology");
+ if (sd->config->disable_cursor_blink)
+ edje_object_signal_emit(sd->cur.obj, "focus,in,noblink", "terminology");
+ else
+ edje_object_signal_emit(sd->cur.obj, "focus,in", "terminology");
evas_object_scale_set(sd->grid.obj, elm_config_scale_get());
evas_object_textgrid_font_set(sd->grid.obj, sd->font.name, sd->font.size);