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, | ... | ... |