Commit d049dc6af1562e6a32e70ddb02b9e9dc5f4c865e

Authored by perry.werneck@gmail.com
1 parent 24c39ccb

Incluindo sinal para mudar o estado das opções de seleção

Showing 2 changed files with 16 additions and 4 deletions   Show diff stats
@@ -170,6 +170,11 @@ static void update_char(H3270 *session, int addr, unsigned char chr, unsigned sh @@ -170,6 +170,11 @@ static void update_char(H3270 *session, int addr, unsigned char chr, unsigned sh
170 170
171 } 171 }
172 172
  173 +static void nop_char(H3270 *session, unsigned char chr)
  174 +{
  175 +
  176 +}
  177 +
173 static void lib3270_session_init(H3270 *hSession, const char *model) 178 static void lib3270_session_init(H3270 *hSession, const char *model)
174 { 179 {
175 int ovc, ovr; 180 int ovc, ovr;
@@ -180,7 +185,8 @@ static void lib3270_session_init(H3270 *hSession, const char *model) @@ -180,7 +185,8 @@ static void lib3270_session_init(H3270 *hSession, const char *model)
180 hSession->sz = sizeof(H3270); 185 hSession->sz = sizeof(H3270);
181 186
182 // A few dummy calls to avoid "ifs" 187 // A few dummy calls to avoid "ifs"
183 - hSession->update = update_char; 188 + hSession->update = update_char;
  189 + hSession->set_selection = nop_char;
184 190
185 191
186 hSession->sock = -1; 192 hSession->sock = -1;
@@ -175,6 +175,9 @@ LIB3270_EXPORT void lib3270_clear_selection(H3270 *session) @@ -175,6 +175,9 @@ LIB3270_EXPORT void lib3270_clear_selection(H3270 *session)
175 session->update(session,a,ea_buf[a].chr,ea_buf[a].attr,a == session->cursor_addr); 175 session->update(session,a,ea_buf[a].chr,ea_buf[a].attr,a == session->cursor_addr);
176 } 176 }
177 } 177 }
  178 +
  179 + session->set_selection(session,0);
  180 +
178 } 181 }
179 182
180 183
@@ -182,11 +185,14 @@ LIB3270_EXPORT void lib3270_select_to(H3270 *session, int baddr) @@ -182,11 +185,14 @@ LIB3270_EXPORT void lib3270_select_to(H3270 *session, int baddr)
182 { 185 {
183 CHECK_SESSION_HANDLE(session); 186 CHECK_SESSION_HANDLE(session);
184 187
185 - if(session->selected.begin < 0)  
186 - session->selected.begin = session->selected.end = session->cursor_addr;  
187 -  
188 lib3270_set_cursor_address(session,session->selected.end = baddr); 188 lib3270_set_cursor_address(session,session->selected.end = baddr);
189 189
  190 + if(session->selected.begin < 0)
  191 + {
  192 + session->selected.begin = session->cursor_addr;
  193 + session->set_selection(session,1);
  194 + }
  195 +
190 update_selection(session); 196 update_selection(session);
191 197
192 } 198 }