Commit 3f69724ee6acd72e5e65dac100ac7290884fa16f
1 parent
e9bd3b6d
Exists in
master
and in
5 other branches
wip
Showing
2 changed files
with
19 additions
and
8 deletions
Show diff stats
src/gtk/v3270/accessible.c
| ... | ... | @@ -244,6 +244,16 @@ static gint v3270_accessible_get_offset_at_point(AtkText *atk_text, gint x, gint |
| 244 | 244 | return v3270_get_offset_at_point(GTK_V3270(widget),x,y); |
| 245 | 245 | } |
| 246 | 246 | |
| 247 | +/* | |
| 248 | +text : an AtkText | |
| 249 | +offset : The offset of the text character for which bounding information is required. | |
| 250 | +x : Pointer for the x cordinate of the bounding box | |
| 251 | +y : Pointer for the y cordinate of the bounding box | |
| 252 | +width : Pointer for the width of the bounding box | |
| 253 | +height : Pointer for the height of the bounding box | |
| 254 | +coords : specify whether coordinates are relative to the screen or widget window | |
| 255 | +*/ | |
| 256 | + | |
| 247 | 257 | static void v3270_accessible_get_character_extents( AtkText *text, |
| 248 | 258 | gint offset, |
| 249 | 259 | gint *x, |
| ... | ... | @@ -255,7 +265,6 @@ static void v3270_accessible_get_character_extents( AtkText *text, |
| 255 | 265 | v3270 * widget = (v3270 *) gtk_accessible_get_widget(GTK_ACCESSIBLE (text)); |
| 256 | 266 | int rows, cols; |
| 257 | 267 | GdkWindow * window; |
| 258 | - gint x_window, y_window; | |
| 259 | 268 | |
| 260 | 269 | if (widget == NULL) |
| 261 | 270 | return; |
| ... | ... | @@ -264,24 +273,26 @@ static void v3270_accessible_get_character_extents( AtkText *text, |
| 264 | 273 | |
| 265 | 274 | // Get screen position |
| 266 | 275 | window = gtk_widget_get_window(GTK_WIDGET(widget)); |
| 267 | - gdk_window_get_origin(window, &x_window, &y_window); | |
| 276 | + gdk_window_get_origin(window, x, y); | |
| 268 | 277 | |
| 269 | 278 | // Get screen position |
| 270 | - *x = x_window + widget->metrics.left + ((offset/cols) * widget->metrics.width); | |
| 271 | - *y = y_window + widget->metrics.top + ((offset%cols) * widget->metrics.spacing); | |
| 272 | - *width = widget->metrics.width; | |
| 273 | - *height = widget->metrics.height+widget->metrics.descent; | |
| 279 | + *x += widget->metrics.left + ((offset%cols) * widget->metrics.width); | |
| 280 | + *y += widget->metrics.top + ((offset/cols) * widget->metrics.spacing); | |
| 281 | + *width = widget->metrics.width; | |
| 282 | + *height = widget->metrics.spacing; | |
| 274 | 283 | |
| 275 | 284 | if(coords == ATK_XY_WINDOW) |
| 276 | 285 | { |
| 277 | 286 | // Correct position based on toplevel |
| 287 | + gint x_window, y_window; | |
| 288 | + | |
| 278 | 289 | window = gdk_window_get_toplevel(window); |
| 279 | 290 | gdk_window_get_origin(window, &x_window, &y_window); |
| 280 | 291 | *x -= x_window; |
| 281 | 292 | *y -= y_window; |
| 282 | 293 | } |
| 283 | 294 | |
| 284 | - trace("%s: offset=%d x=%d y=%d",__FUNCTION__,offset,x,y); | |
| 295 | + trace("%s: offset=%d x=%d y=%d %s",__FUNCTION__,offset,*x,*y,coords == ATK_XY_WINDOW ? "ATK_XY_WINDOW" : ""); | |
| 285 | 296 | |
| 286 | 297 | } |
| 287 | 298 | ... | ... |
src/gtk/v3270/oia.c
| ... | ... | @@ -408,7 +408,7 @@ static void draw_status_message(cairo_t *cr, LIB3270_MESSAGE id, struct v3270_me |
| 408 | 408 | |
| 409 | 409 | OIA_MESSAGE( LIB3270_MESSAGE_KYBDLOCK, |
| 410 | 410 | V3270_COLOR_OIA_STATUS_INVALID, |
| 411 | - NULL ), | |
| 411 | + N_( "X") ), | |
| 412 | 412 | |
| 413 | 413 | OIA_MESSAGE( LIB3270_MESSAGE_X, |
| 414 | 414 | V3270_COLOR_OIA_STATUS_INVALID, | ... | ... |