terminology: Cleanup _smart_cb_key_down()

SVN revision: 75610
This commit is contained in:
Leandro Pereira 2012-08-23 09:44:31 +00:00
parent 6e04128e7d
commit a258b46431
1 changed files with 77 additions and 79 deletions

View File

@ -843,6 +843,72 @@ _compose_seq_reset(Termio *sd)
sd->composing = EINA_FALSE; sd->composing = EINA_FALSE;
} }
static Eina_Bool
_handle_alt_ctrl(const char *keyname, Evas_Object *term)
{
if (!strcmp(keyname, "equal"))
termcmd_do(term, NULL, NULL, "f+");
else if (!strcmp(keyname, "minus"))
termcmd_do(term, NULL, NULL, "f-");
else if (!strcmp(keyname, "0"))
termcmd_do(term, NULL, NULL, "f");
else if (!strcmp(keyname, "9"))
termcmd_do(term, NULL, NULL, "fb");
else
return EINA_FALSE;
return EINA_TRUE;
}
static Eina_Bool
_handle_shift(Evas_Event_Key_Down *ev, int by, Evas_Object *term, Termio *sd)
{
if (!strcmp(ev->keyname, "Prior"))
{
sd->scroll += by;
if (sd->scroll > sd->pty->backscroll_num)
sd->scroll = sd->pty->backscroll_num;
_smart_update_queue(term, sd);
}
else if (!strcmp(ev->keyname, "Next"))
{
sd->scroll -= by;
if (sd->scroll < 0) sd->scroll = 0;
_smart_update_queue(term, sd);
}
else if (!strcmp(ev->keyname, "Insert"))
{
if (evas_key_modifier_is_set(ev->modifiers, "Control"))
_paste_selection(term, ELM_SEL_TYPE_PRIMARY);
else
_paste_selection(term, ELM_SEL_TYPE_CLIPBOARD);
}
else if (!strcmp(ev->keyname, "KP_Add"))
{
Config *config = termio_config_get(term);
if (config) _font_size_set(term, config->font.size + 1);
}
else if (!strcmp(ev->keyname, "KP_Subtract"))
{
Config *config = termio_config_get(term);
if (config) _font_size_set(term, config->font.size - 1);
}
else if (!strcmp(ev->keyname, "KP_Multiply"))
{
Config *config = termio_config_get(term);
if (config) _font_size_set(term, 10);
}
else if (!strcmp(ev->keyname, "KP_Divide"))
_take_selection(term, ELM_SEL_TYPE_CLIPBOARD);
else
return EINA_FALSE;
return EINA_TRUE;
}
void void
_smart_cb_key_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event) _smart_cb_key_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event)
{ {
@ -884,91 +950,23 @@ _smart_cb_key_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
(evas_key_modifier_is_set(ev->modifiers, "Control")) && (evas_key_modifier_is_set(ev->modifiers, "Control")) &&
(!evas_key_modifier_is_set(ev->modifiers, "Shift"))) (!evas_key_modifier_is_set(ev->modifiers, "Shift")))
{ {
_compose_seq_reset(sd); if (_handle_alt_ctrl(ev->keyname, data))
if (!strcmp(ev->keyname, "equal"))
{ {
termcmd_do(data, NULL, NULL, "f+"); _compose_seq_reset(sd);
goto end;
}
else if (!strcmp(ev->keyname, "minus"))
{
termcmd_do(data, NULL, NULL, "f-");
goto end;
}
else if (!strcmp(ev->keyname, "0"))
{
termcmd_do(data, NULL, NULL, "f");
goto end;
}
else if (!strcmp(ev->keyname, "9"))
{
termcmd_do(data, NULL, NULL, "fb");
goto end; goto end;
} }
} }
if (evas_key_modifier_is_set(ev->modifiers, "Shift")) if ((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
(ev->keyname))
{ {
if (ev->keyname) int by = sd->grid.h - 2;
{
int by = sd->grid.h - 2;
if (by < 1) by = 1; if (by < 1) by = 1;
if (!strcmp(ev->keyname, "Prior"))
{ if (_handle_shift(ev, by, data, sd))
_compose_seq_reset(sd); {
sd->scroll += by; _compose_seq_reset(sd);
if (sd->scroll > sd->pty->backscroll_num) goto end;
sd->scroll = sd->pty->backscroll_num;
_smart_update_queue(data, sd);
goto end;
}
else if (!strcmp(ev->keyname, "Next"))
{
_compose_seq_reset(sd);
sd->scroll -= by;
if (sd->scroll < 0) sd->scroll = 0;
_smart_update_queue(data, sd);
goto end;
}
else if (!strcmp(ev->keyname, "Insert"))
{
_compose_seq_reset(sd);
if (evas_key_modifier_is_set(ev->modifiers, "Control"))
_paste_selection(data, ELM_SEL_TYPE_PRIMARY);
else
_paste_selection(data, ELM_SEL_TYPE_CLIPBOARD);
goto end;
}
else if (!strcmp(ev->keyname, "KP_Add"))
{
Config *config = termio_config_get(data);
_compose_seq_reset(sd);
if (config) _font_size_set(data, config->font.size + 1);
goto end;
}
else if (!strcmp(ev->keyname, "KP_Subtract"))
{
Config *config = termio_config_get(data);
_compose_seq_reset(sd);
if (config) _font_size_set(data, config->font.size - 1);
goto end;
}
else if (!strcmp(ev->keyname, "KP_Multiply"))
{
Config *config = termio_config_get(data);
_compose_seq_reset(sd);
if (config) _font_size_set(data, 10);
goto end;
}
else if (!strcmp(ev->keyname, "KP_Divide"))
{
_compose_seq_reset(sd);
_take_selection(data, ELM_SEL_TYPE_CLIPBOARD);
goto end;
}
} }
} }
if (sd->jump_on_keypress) if (sd->jump_on_keypress)