Commit 261603b32b0b81cd5959f3f8e6f321c1717ef895

Authored by Perry Werneck
1 parent 73de0f1c

Updating clipboard tools.

src/include/lib3270/selection.h
@@ -145,7 +145,7 @@ @@ -145,7 +145,7 @@
145 * @return 0 if suceeds, error code if not (sets errno). 145 * @return 0 if suceeds, error code if not (sets errno).
146 * 146 *
147 */ 147 */
148 - LIB3270_EXPORT int lib3270_get_selection_rectangle(H3270 *hSession, unsigned int *col, unsigned int *row, unsigned int *width, unsigned int *height); 148 + LIB3270_EXPORT int lib3270_get_selection_rectangle(H3270 *hSession, unsigned int *row, unsigned int *col, unsigned int *width, unsigned int *height);
149 149
150 /** 150 /**
151 * @brief Get bitmasked flag for the current selection. 151 * @brief Get bitmasked flag for the current selection.
src/lib3270/selection/selection.c
@@ -220,6 +220,8 @@ LIB3270_EXPORT unsigned char lib3270_get_selection_flags(H3270 *hSession, int ba @@ -220,6 +220,8 @@ LIB3270_EXPORT unsigned char lib3270_get_selection_flags(H3270 *hSession, int ba
220 if( (col == 0) || !(hSession->text[baddr-1].attr & LIB3270_ATTR_SELECTED) ) 220 if( (col == 0) || !(hSession->text[baddr-1].attr & LIB3270_ATTR_SELECTED) )
221 rc |= SELECTION_LEFT; 221 rc |= SELECTION_LEFT;
222 222
  223 + /// FIXME: It should text if baddr is the last element before the +1.
  224 +
223 if( (col == hSession->cols) || !(hSession->text[baddr+1].attr & LIB3270_ATTR_SELECTED) ) 225 if( (col == hSession->cols) || !(hSession->text[baddr+1].attr & LIB3270_ATTR_SELECTED) )
224 rc |= SELECTION_RIGHT; 226 rc |= SELECTION_RIGHT;
225 } 227 }
@@ -375,7 +377,7 @@ LIB3270_EXPORT int lib3270_has_selection(H3270 *hSession) @@ -375,7 +377,7 @@ LIB3270_EXPORT int lib3270_has_selection(H3270 *hSession)
375 return hSession->selected != 0; 377 return hSession->selected != 0;
376 } 378 }
377 379
378 -LIB3270_EXPORT int lib3270_get_selection_rectangle(H3270 *hSession, unsigned int *col, unsigned int *row, unsigned int *width, unsigned int *height) 380 +LIB3270_EXPORT int lib3270_get_selection_rectangle(H3270 *hSession, unsigned int *row, unsigned int *col, unsigned int *width, unsigned int *height)
379 { 381 {
380 unsigned int r, c, minRow, minCol, maxRow, maxCol, baddr, count; 382 unsigned int r, c, minRow, minCol, maxRow, maxCol, baddr, count;
381 383
@@ -419,10 +421,12 @@ LIB3270_EXPORT int lib3270_get_selection_rectangle(H3270 *hSession, unsigned int @@ -419,10 +421,12 @@ LIB3270_EXPORT int lib3270_get_selection_rectangle(H3270 *hSession, unsigned int
419 if(!count) 421 if(!count)
420 return errno = ENOENT; 422 return errno = ENOENT;
421 423
  424 + debug("Selection from %u,%u and to %u,%u",minCol,minRow,maxCol,maxRow);
  425 +
422 *col = minCol; 426 *col = minCol;
423 *row = minRow; 427 *row = minRow;
424 - *width = (maxCol - minCol);  
425 - *height = (maxRow - minRow); 428 + *width = (maxCol - minCol)+1;
  429 + *height = (maxRow - minRow)+1;
426 430
427 return 0; 431 return 0;
428 } 432 }