Commit 99d54a6cba1582d0f702c4175cda29f139f1ffac

Authored by Perry Werneck
1 parent 22716b63

Adjustments on screen size changes.

src/core/ctlr.c
... ... @@ -24,8 +24,6 @@
24 24 *
25 25 * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26 26 * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
27   - * licinio@bb.com.br (Licínio Luis Branco)
28   - * kraucer@bb.com.br (Kraucer Fernandes Mazuco)
29 27 *
30 28 */
31 29  
... ... @@ -565,12 +563,13 @@ void ctlr_erase(H3270 *session, int alt)
565 563 if (alt)
566 564 {
567 565 // Going from 24x80 to maximum.
568   - session->cbk.display(session);
  566 + lib3270_write_screen_trace(session,"Going from 24x80 to %dx%d",session->max.rows,session->max.cols);
569 567 set_viewsize(session,session->max.rows,session->max.cols);
570 568 }
571 569 else
572 570 {
573 571 // Going from maximum to 24x80.
  572 + lib3270_write_screen_trace(session,"Going from %dx%d to 24x80",session->max.rows,session->max.cols);
574 573 if (session->max.rows > 24 || session->max.cols > 80)
575 574 {
576 575 if(session->vcontrol)
... ... @@ -587,6 +586,7 @@ void ctlr_erase(H3270 *session, int alt)
587 586 }
588 587  
589 588 session->screen_alt = alt;
  589 + session->cbk.display(session);
590 590  
591 591 }
592 592  
... ...
src/core/screen.c
... ... @@ -266,6 +266,16 @@ LIB3270_EXPORT unsigned int lib3270_get_height(const H3270 *h)
266 266 return h->view.rows;
267 267 }
268 268  
  269 +LIB3270_EXPORT unsigned int lib3270_get_max_width(const H3270 *h)
  270 +{
  271 + return h->max.cols;
  272 +}
  273 +
  274 +LIB3270_EXPORT unsigned int lib3270_get_max_height(const H3270 *h)
  275 +{
  276 + return h->max.rows;
  277 +}
  278 +
269 279 void update_model_info(H3270 *session, unsigned int model, unsigned int cols, unsigned int rows)
270 280 {
271 281 if(model == session->model_num && session->max.rows == rows && session->max.cols == cols)
... ...
src/core/trace_ds.c
... ... @@ -236,6 +236,17 @@ LIB3270_EXPORT void lib3270_write_nettrace(H3270 *session, const char *fmt, ...)
236 236 va_end(args);
237 237 }
238 238  
  239 +LIB3270_EXPORT void lib3270_write_screen_trace(H3270 *session, const char *fmt, ...)
  240 +{
  241 + va_list args;
  242 +
  243 + if(!lib3270_get_toggle(session,LIB3270_TOGGLE_SCREEN_TRACE))
  244 + return;
  245 +
  246 + va_start(args, fmt);
  247 + session->trace.handler(session,session->trace.userdata,fmt, args);
  248 + va_end(args);
  249 +}
239 250  
240 251 LIB3270_EXPORT void lib3270_trace_event(H3270 *session, const char *fmt, ...)
241 252 {
... ...
src/include/lib3270.h
... ... @@ -437,6 +437,8 @@
437 437 */
438 438 LIB3270_EXPORT unsigned int lib3270_get_width(const H3270 *h);
439 439  
  440 + LIB3270_EXPORT unsigned int lib3270_get_max_width(const H3270 *h);
  441 +
440 442 /**
441 443 * Get current screen width in rows.
442 444 *
... ... @@ -447,6 +449,8 @@
447 449 */
448 450 LIB3270_EXPORT unsigned int lib3270_get_height(const H3270 *h);
449 451  
  452 + LIB3270_EXPORT unsigned int lib3270_get_max_height(const H3270 *h);
  453 +
450 454 LIB3270_EXPORT unsigned int lib3270_get_length(const H3270 *h);
451 455  
452 456 /**
... ...
src/include/lib3270/trace.h
... ... @@ -97,6 +97,17 @@
97 97 */
98 98 LIB3270_EXPORT void lib3270_write_nettrace(H3270 *session, const char *fmt, ...) LIB3270_AS_PRINTF(2,3);
99 99  
  100 + /**
  101 + * @brief Write on trace file.
  102 + *
  103 + * Write text on trace file, if screen trace is enabled.
  104 + *
  105 + * @param fmt String format.
  106 + * @param ... Arguments.
  107 + *
  108 + */
  109 + LIB3270_EXPORT void lib3270_write_screen_trace(H3270 *session, const char *fmt, ...) LIB3270_AS_PRINTF(2,3);
  110 +
100 111 /**
101 112 * @brief Write on trace file.
102 113 *
... ...