Commit 835ec4d31814c8b138f1f659e8e016b5278847c4
1 parent
83f82697
Exists in
master
and in
5 other branches
Rômulo Silva Neiva - 29 de agosto de 2012 07:54
* a rolagem do cursor para nas bordas superior e inferior ou seja, não percorre a janela ciclicamente.
Showing
2 changed files
with
18 additions
and
5 deletions
Show diff stats
po/pt_BR.po
| @@ -5,7 +5,7 @@ msgid "" | @@ -5,7 +5,7 @@ msgid "" | ||
| 5 | msgstr "" | 5 | msgstr "" |
| 6 | "Project-Id-Version: pw3270 5.0\n" | 6 | "Project-Id-Version: pw3270 5.0\n" |
| 7 | "Report-Msgid-Bugs-To: \n" | 7 | "Report-Msgid-Bugs-To: \n" |
| 8 | -"POT-Creation-Date: 2012-08-28 07:32-0300\n" | 8 | +"POT-Creation-Date: 2012-08-28 10:10-0300\n" |
| 9 | "PO-Revision-Date: 2012-08-27 09:01-0300\n" | 9 | "PO-Revision-Date: 2012-08-27 09:01-0300\n" |
| 10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" | 10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" |
| 11 | "Language-Team: Português do Brasil <>\n" | 11 | "Language-Team: Português do Brasil <>\n" |
src/lib3270/selection.c
| @@ -695,6 +695,7 @@ LIB3270_EXPORT int lib3270_move_selection(H3270 *hSession, LIB3270_DIRECTION dir | @@ -695,6 +695,7 @@ LIB3270_EXPORT int lib3270_move_selection(H3270 *hSession, LIB3270_DIRECTION dir | ||
| 695 | LIB3270_EXPORT int lib3270_move_cursor(H3270 *hSession, LIB3270_DIRECTION dir, unsigned char sel) | 695 | LIB3270_EXPORT int lib3270_move_cursor(H3270 *hSession, LIB3270_DIRECTION dir, unsigned char sel) |
| 696 | { | 696 | { |
| 697 | int cursor_addr = hSession->cursor_addr; | 697 | int cursor_addr = hSession->cursor_addr; |
| 698 | + int maxlen = hSession->cols * hSession->rows; | ||
| 698 | 699 | ||
| 699 | if(!lib3270_connected(hSession)) | 700 | if(!lib3270_connected(hSession)) |
| 700 | return -1; | 701 | return -1; |
| @@ -702,25 +703,25 @@ LIB3270_EXPORT int lib3270_move_cursor(H3270 *hSession, LIB3270_DIRECTION dir, u | @@ -702,25 +703,25 @@ LIB3270_EXPORT int lib3270_move_cursor(H3270 *hSession, LIB3270_DIRECTION dir, u | ||
| 702 | switch(dir) | 703 | switch(dir) |
| 703 | { | 704 | { |
| 704 | case LIB3270_DIR_UP: | 705 | case LIB3270_DIR_UP: |
| 705 | - if(cursor_addr <= hSession->cols) | 706 | + if(sel && cursor_addr <= hSession->cols) |
| 706 | return EINVAL; | 707 | return EINVAL; |
| 707 | cursor_addr -= hSession->cols; | 708 | cursor_addr -= hSession->cols; |
| 708 | break; | 709 | break; |
| 709 | 710 | ||
| 710 | case LIB3270_DIR_DOWN: | 711 | case LIB3270_DIR_DOWN: |
| 711 | - if(cursor_addr >= (hSession->cols * (hSession->rows-1))) | 712 | + if(sel && cursor_addr >= (hSession->cols * (hSession->rows-1))) |
| 712 | return EINVAL; | 713 | return EINVAL; |
| 713 | cursor_addr += hSession->cols; | 714 | cursor_addr += hSession->cols; |
| 714 | break; | 715 | break; |
| 715 | 716 | ||
| 716 | case LIB3270_DIR_LEFT: | 717 | case LIB3270_DIR_LEFT: |
| 717 | - if( (cursor_addr % hSession->cols) < 1) | 718 | + if(sel && (cursor_addr % hSession->cols) < 1) |
| 718 | return EINVAL; | 719 | return EINVAL; |
| 719 | cursor_addr--; | 720 | cursor_addr--; |
| 720 | break; | 721 | break; |
| 721 | 722 | ||
| 722 | case LIB3270_DIR_RIGHT: | 723 | case LIB3270_DIR_RIGHT: |
| 723 | - if( (cursor_addr % hSession->cols) >= (hSession->cols-1)) | 724 | + if(sel && (cursor_addr % hSession->cols) >= (hSession->cols-1)) |
| 724 | return EINVAL; | 725 | return EINVAL; |
| 725 | cursor_addr++; | 726 | cursor_addr++; |
| 726 | break; | 727 | break; |
| @@ -730,9 +731,21 @@ LIB3270_EXPORT int lib3270_move_cursor(H3270 *hSession, LIB3270_DIRECTION dir, u | @@ -730,9 +731,21 @@ LIB3270_EXPORT int lib3270_move_cursor(H3270 *hSession, LIB3270_DIRECTION dir, u | ||
| 730 | } | 731 | } |
| 731 | 732 | ||
| 732 | if(sel) | 733 | if(sel) |
| 734 | + { | ||
| 733 | lib3270_select_to(hSession,cursor_addr); | 735 | lib3270_select_to(hSession,cursor_addr); |
| 736 | + } | ||
| 737 | + else if(cursor_addr >= maxlen) | ||
| 738 | + { | ||
| 739 | + cursor_move(hSession,cursor_addr % maxlen); | ||
| 740 | + } | ||
| 741 | + else if(cursor_addr < 0) | ||
| 742 | + { | ||
| 743 | + cursor_move(hSession,cursor_addr + maxlen); | ||
| 744 | + } | ||
| 734 | else | 745 | else |
| 746 | + { | ||
| 735 | cursor_move(hSession,cursor_addr); | 747 | cursor_move(hSession,cursor_addr); |
| 748 | + } | ||
| 736 | 749 | ||
| 737 | return 0; | 750 | return 0; |
| 738 | } | 751 | } |