fix no response of Delete

This commit is contained in:
Jinhao 2015-03-25 01:56:48 +08:00
parent 9a5dfe7f88
commit 6a0fd78595
5 changed files with 28 additions and 29 deletions

View File

@ -157,8 +157,8 @@ namespace nana{ namespace widgets
void set_accept(std::function<bool(char_type)>); void set_accept(std::function<bool(char_type)>);
void set_accept(accepts); void set_accept(accepts);
bool respone_char(char_type); bool respond_char(char_type);
bool respone_key(char_type); bool respond_key(char_type);
void typeface_changed(); void typeface_changed();

View File

@ -685,7 +685,7 @@ namespace nana
{ {
case keyboard::os_arrow_left: case keyboard::os_arrow_left:
case keyboard::os_arrow_right: case keyboard::os_arrow_right:
drawer_->editor()->respone_key(arg.key); drawer_->editor()->respond_key(arg.key);
drawer_->editor()->reset_caret(); drawer_->editor()->reset_caret();
break; break;
case keyboard::os_arrow_up: case keyboard::os_arrow_up:
@ -714,14 +714,14 @@ namespace nana
} }
} }
if (call_other_keys) if (call_other_keys)
drawer_->editor()->respone_key(arg.key); drawer_->editor()->respond_key(arg.key);
API::lazy_refresh(); API::lazy_refresh();
} }
void trigger::key_char(graph_reference graph, const arg_keyboard& arg) void trigger::key_char(graph_reference graph, const arg_keyboard& arg)
{ {
if (drawer_->editor()->respone_char(arg.key)) if (drawer_->editor()->respond_char(arg.key))
API::lazy_refresh(); API::lazy_refresh();
} }
//end class trigger //end class trigger

View File

@ -1326,7 +1326,7 @@ namespace nana{ namespace widgets
attributes_.acceptive = acceptive; attributes_.acceptive = acceptive;
} }
bool text_editor::respone_keyboard(char_type key) //key is a character of ASCII code bool text_editor::respond_char(char_type key) //key is a character of ASCII code
{ {
switch (key) switch (key)
{ {
@ -1377,6 +1377,24 @@ namespace nana{ namespace widgets
return false; return false;
} }
bool text_editor::respond_key(char_type key)
{
switch (key)
{
case keyboard::os_arrow_left: move_left(); break;
case keyboard::os_arrow_right: move_right(); break;
case keyboard::os_arrow_up: move_ns(true); break;
case keyboard::os_arrow_down: move_ns(false); break;
case keyboard::os_del:
if (this->attr().editable)
del();
break;
default:
return false;
}
return true;
}
void text_editor::typeface_changed() void text_editor::typeface_changed()
{ {
behavior_->pre_calc_lines(width_pixels()); behavior_->pre_calc_lines(width_pixels());
@ -2105,25 +2123,6 @@ namespace nana{ namespace widgets
} }
bool text_editor::move(nana::char_t key)
{
switch(key)
{
case keyboard::os_arrow_left: move_left(); break;
case keyboard::os_arrow_right: move_right(); break;
case keyboard::os_arrow_up: move_ns(true); break;
case keyboard::os_arrow_down: move_ns(false); break;
case keyboard::os_del:
if (this->attr().editable)
del();
break;
default:
return false;
}
return true;
}
void text_editor::move_ns(bool to_north) void text_editor::move_ns(bool to_north)
{ {
const bool redraw_required = _m_cancel_select(0); const bool redraw_required = _m_cancel_select(0);

View File

@ -559,7 +559,7 @@ namespace nana
void drawer::key_press(graph_reference, const arg_keyboard& arg) void drawer::key_press(graph_reference, const arg_keyboard& arg)
{ {
if (impl_->editor()->respone_key(arg.key)) if (impl_->editor()->respond_key(arg.key))
{ {
impl_->editor()->reset_caret(); impl_->editor()->reset_caret();
impl_->draw_spins(); impl_->draw_spins();
@ -569,7 +569,7 @@ namespace nana
void drawer::key_char(graph_reference, const arg_keyboard& arg) void drawer::key_char(graph_reference, const arg_keyboard& arg)
{ {
if (impl_->editor()->respone_char(arg.key)) if (impl_->editor()->respond_char(arg.key))
{ {
if (!impl_->value(impl_->editor()->text())) if (!impl_->value(impl_->editor()->text()))
impl_->draw_spins(); impl_->draw_spins();

View File

@ -136,7 +136,7 @@ namespace drawerbase {
void drawer::key_press(graph_reference, const arg_keyboard& arg) void drawer::key_press(graph_reference, const arg_keyboard& arg)
{ {
if(editor_->respone_key(arg.key)) if(editor_->respond_key(arg.key))
{ {
editor_->reset_caret(); editor_->reset_caret();
API::lazy_refresh(); API::lazy_refresh();
@ -145,7 +145,7 @@ namespace drawerbase {
void drawer::key_char(graph_reference, const arg_keyboard& arg) void drawer::key_char(graph_reference, const arg_keyboard& arg)
{ {
if (editor_->respone_char(arg.key)) if (editor_->respond_char(arg.key))
API::lazy_refresh(); API::lazy_refresh();
} }