diff options
author | Jorge Arellano Cid <jcid@dillo.org> | 2011-05-17 18:57:29 -0400 |
---|---|---|
committer | Jorge Arellano Cid <jcid@dillo.org> | 2011-05-17 18:57:29 -0400 |
commit | 5bffa87a1d72795ae5c6a7a4778bf6f7323bb953 (patch) | |
tree | 3517d49b608bf782869ae3f9b7ac97bf7a54e42a | |
parent | 43bc67a98263ec6c4a561c3c14dc688b7ee59fca (diff) |
Made KEYS_LEFT_TAB and KEYS_RIGHT_TAB no longer handled as a special case
* Made TAB-key focus the main area from location input.
* Made KEYS_LEFT_TAB and KEYS_RIGHT_TAB cycle..
-rw-r--r-- | src/ui.cc | 12 | ||||
-rw-r--r-- | src/uicmd.cc | 26 |
2 files changed, 15 insertions, 23 deletions
@@ -93,8 +93,8 @@ public: }; /* - * Disable keys: Up, Down, Page_Up, Page_Down and - * CTRL+{o,r,Home,End} + * Disable keys: Up, Down, Page_Up, Page_Down, Tab and + * CTRL+{o,r,Home,End} SHIFT+{Left,Right}. */ int CustInput::handle(int e) { @@ -113,7 +113,11 @@ int CustInput::handle(int e) if (k == FL_Escape && modifier == 0) { // Let the parent group handle this Esc key return 0; - + } else if (modifier == FL_SHIFT) { + if (k == FL_Left || k == FL_Right) { + // Let these keys get to the UI + return 0; + } } else if (modifier == FL_CTRL) { if (k == 'l') { // Make text selected when already focused. @@ -126,7 +130,7 @@ int CustInput::handle(int e) } } else if (modifier == 0) { if (k == FL_Down || k == FL_Up || - k == FL_Page_Down || k == FL_Page_Up) { + k == FL_Page_Down || k == FL_Page_Up || k == FL_Tab) { // Give up focus and honor the key a_UIcmd_focus_main_area(a_UIcmd_get_bw_by_widget(this)); return 0; diff --git a/src/uicmd.cc b/src/uicmd.cc index 09c33ce8..b403d827 100644 --- a/src/uicmd.cc +++ b/src/uicmd.cc @@ -149,6 +149,7 @@ int CustTabs::handle(int e) ret = 1; } else if (cmd == KEYS_NOP) { // Do nothing + _MSG("CustTabs::handle KEYS_NOP\n"); } else if (cmd == KEYS_NEW_TAB) { a_UIcmd_open_url_nt(bw, NULL, 1); ret = 1; @@ -156,10 +157,10 @@ int CustTabs::handle(int e) a_UIcmd_close_bw(bw); ret = 1; } else if (cmd == KEYS_LEFT_TAB) { - MSG("CustTabs::handle KEYS_LEFT_TAB\n"); + prev_tab(); ret = 1; } else if (cmd == KEYS_RIGHT_TAB) { - MSG("CustTabs::handle KEYS_RIGHT_TAB\n"); + next_tab(); ret = 1; } else if (cmd == KEYS_NEW_WINDOW) { a_UIcmd_open_url_nw(bw, NULL); @@ -171,19 +172,6 @@ int CustTabs::handle(int e) a_Timeout_add(0.0, a_UIcmd_close_all_bw, NULL); ret = 1; } - - } else if (e == FL_KEYUP) { - int k = Fl::event_key(); - // We're only interested in some flags - unsigned modifier = Fl::event_state() & (FL_SHIFT | FL_CTRL | FL_ALT); - if (k == FL_Up || k == FL_Down || k == FL_Tab) { - ; - } else if (k == FL_Left || k == FL_Right) { - if (modifier == FL_SHIFT) { - (k == FL_Left) ? prev_tab() : next_tab(); - ret = 1; - } - } } return (ret) ? ret : CustGroup::handle(e); @@ -285,16 +273,16 @@ void CustTabs::prev_tab() { int idx; - if ((idx = get_btn_idx((UI*)Wizard->value())) > 1) - switch_tab( (CustTabButton*)child(idx-1) ); + if ((idx = get_btn_idx((UI*)Wizard->value())) != -1) + switch_tab( (CustTabButton*)child(idx > 1 ? idx-1 : num_tabs()) ); } void CustTabs::next_tab() { int idx; - if ((idx = get_btn_idx((UI*)Wizard->value())) > 0 && idx < num_tabs()) - switch_tab( (CustTabButton*)child(idx+1) ); + if ((idx = get_btn_idx((UI*)Wizard->value())) != -1) + switch_tab( (CustTabButton*)child(idx < num_tabs() ? idx+1 : 1) ); } /* |