Commit af9615e4ba8f2f1a45caec88799077b55cc93549

Authored by perry.werneck@gmail.com
1 parent 0058af64
Exists in master

Incluindo sinal quando o conteudo da tela muda,acertando funcoes de seleção para…

… usar a estrutura de sessão
latest/src/gtk2/mouse.c
... ... @@ -924,7 +924,7 @@
924 924 SetSelectionMode(Toggled(RECTANGLE_SELECT) ? SELECT_MODE_RECTANGLE : SELECT_MODE_TEXT);
925 925 }
926 926  
927   - static void doSelect(int (*call)(void))
  927 + static void doSelect(H3270 *hSession, int (*call)(H3270 *hSession))
928 928 {
929 929 int row;
930 930 int col;
... ... @@ -937,7 +937,7 @@
937 937 startCol = endCol = (cursor_position % screen->cols);
938 938 }
939 939  
940   - call();
  940 + call(hSession);
941 941  
942 942 row = cursor_position / screen->cols;
943 943 col = cursor_position % screen->cols;
... ... @@ -950,22 +950,22 @@
950 950  
951 951 PW3270_ACTION( selectleft )
952 952 {
953   - doSelect(lib3270_cursor_left);
  953 + doSelect(hSession,lib3270_cursor_left);
954 954 }
955 955  
956 956 PW3270_ACTION( selectright )
957 957 {
958   - doSelect(lib3270_cursor_right);
  958 + doSelect(hSession,lib3270_cursor_right);
959 959 }
960 960  
961 961 PW3270_ACTION( selectup )
962 962 {
963   - doSelect(lib3270_cursor_up);
  963 + doSelect(hSession,lib3270_cursor_up);
964 964 }
965 965  
966 966 PW3270_ACTION( selectdown )
967 967 {
968   - doSelect(lib3270_cursor_down);
  968 + doSelect(hSession,lib3270_cursor_down);
969 969 }
970 970  
971 971 static void MoveSelection(int row, int col)
... ...
latest/src/include/lib3270/api.h
... ... @@ -272,6 +272,7 @@
272 272 /* Session based callbacks */
273 273 void (*configure)(H3270 *session, unsigned short rows, unsigned short cols);
274 274 void (*update)(H3270 *session, int baddr, unsigned char c, unsigned short attr);
  275 + void (*changed)(H3270 *session, int bstart, int bend);
275 276 void (*update_cursor)(H3270 *session, unsigned short row, unsigned short col);
276 277 void (*update_oia)(H3270 *session, OIA_FLAG id, unsigned char on);
277 278 void (*set_timer)(H3270 *session, unsigned char on);
... ...
latest/src/lib/screen.c
... ... @@ -369,7 +369,6 @@ int screen_read(char *dest, int baddr, int count)
369 369 /* Display what's in the buffer. */
370 370 static void screen_update(H3270 *session, int bstart, int bend)
371 371 {
372   -
373 372 int baddr;
374 373 unsigned short a;
375 374 int attr = COLOR_GREEN;
... ... @@ -434,6 +433,10 @@ static void screen_update(H3270 *session, int bstart, int bend)
434 433 }
435 434  
436 435 }
  436 +
  437 + if(session->changed)
  438 + session->changed(session,bstart,bend);
  439 +
437 440 }
438 441  
439 442 void screen_disp(H3270 *session)
... ...