Commit 90564f33778d7c6c30e54d4cfed8c59ee63797bb
1 parent
cc500b97
Exists in
master
and in
1 other branch
Fixing bug on trace widget.
Showing
1 changed file
with
10 additions
and
6 deletions
Show diff stats
src/trace/widget.c
@@ -331,14 +331,16 @@ | @@ -331,14 +331,16 @@ | ||
331 | gchar text[1]; | 331 | gchar text[1]; |
332 | }; | 332 | }; |
333 | 333 | ||
334 | - static void bg_append_text(struct _append_text *cfg) | 334 | + static gboolean bg_append_text(struct _append_text *cfg) |
335 | { | 335 | { |
336 | if(!GTK_IS_TEXT_BUFFER(cfg->widget->text)) | 336 | if(!GTK_IS_TEXT_BUFFER(cfg->widget->text)) |
337 | - return; | 337 | + return FALSE; |
338 | 338 | ||
339 | GtkTextIter itr; | 339 | GtkTextIter itr; |
340 | gtk_text_buffer_get_end_iter(cfg->widget->text,&itr); | 340 | gtk_text_buffer_get_end_iter(cfg->widget->text,&itr); |
341 | 341 | ||
342 | + printf("%s\n",cfg->text); | ||
343 | + | ||
342 | if(g_utf8_validate(cfg->text,strlen(cfg->text),NULL)) | 344 | if(g_utf8_validate(cfg->text,strlen(cfg->text),NULL)) |
343 | { | 345 | { |
344 | gtk_text_buffer_insert(cfg->widget->text,&itr,cfg->text,strlen(cfg->text)); | 346 | gtk_text_buffer_insert(cfg->widget->text,&itr,cfg->text,strlen(cfg->text)); |
@@ -354,19 +356,21 @@ | @@ -354,19 +356,21 @@ | ||
354 | //GtkAdjustment *vadj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(hwnd->scroll)); | 356 | //GtkAdjustment *vadj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(hwnd->scroll)); |
355 | //gtk_adjustment_set_value(vadj,gtk_adjustment_get_upper(vadj)); | 357 | //gtk_adjustment_set_value(vadj,gtk_adjustment_get_upper(vadj)); |
356 | //gtk_scrolled_window_set_vadjustment(GTK_SCROLLED_WINDOW(hwnd->scroll), vadj); | 358 | //gtk_scrolled_window_set_vadjustment(GTK_SCROLLED_WINDOW(hwnd->scroll), vadj); |
359 | + | ||
360 | + return FALSE; | ||
361 | + | ||
357 | } | 362 | } |
358 | 363 | ||
359 | LIB3270_EXPORT void v3270_trace_append_text(GtkWidget *widget, const gchar *text) | 364 | LIB3270_EXPORT void v3270_trace_append_text(GtkWidget *widget, const gchar *text) |
360 | { | 365 | { |
361 | - debug("widget=%p text=\"%s\"",widget,text); | ||
362 | - | ||
363 | - g_return_if_fail(GTK_IS_V3270_TRACE(widget)); | 366 | + g_return_if_fail(GTK_IS_V3270_TRACE(widget)); |
364 | 367 | ||
365 | // Enqueue update. | 368 | // Enqueue update. |
366 | struct _append_text * cfg = g_malloc0(sizeof(struct _append_text)+strlen(text)+1); | 369 | struct _append_text * cfg = g_malloc0(sizeof(struct _append_text)+strlen(text)+1); |
367 | cfg->widget = GTK_V3270_TRACE(widget); | 370 | cfg->widget = GTK_V3270_TRACE(widget); |
368 | strcpy(cfg->text,text); | 371 | strcpy(cfg->text,text); |
369 | - gdk_threads_add_idle_full(G_PRIORITY_LOW,(GSourceFunc) bg_append_text,cfg,g_free); | 372 | + |
373 | + g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,(GSourceFunc) bg_append_text, cfg, g_free); | ||
370 | 374 | ||
371 | } | 375 | } |
372 | 376 |