Commit b2c6fb58abfdecf01c66509e5102a2bc37758244

Authored by Perry Werneck
1 parent 431eace4
Exists in master and in 1 other branch develop

Fixing auto-scroll on trace window.

Showing 2 changed files with 37 additions and 25 deletions   Show diff stats
src/terminal/widget.c
... ... @@ -235,6 +235,13 @@ static void finalize(GObject *object)
235 235 G_OBJECT_CLASS(v3270_parent_class)->finalize(object);
236 236 }
237 237  
  238 +static gboolean signal_keypress(GtkWidget *widget,guint keyval, GdkModifierType state)
  239 +{
  240 +// debug("v3270::%s",__FUNCTION__);
  241 +
  242 + return FALSE;
  243 +}
  244 +
238 245 static void v3270_class_init(v3270Class *klass)
239 246 {
240 247 GObjectClass * gobject_class = G_OBJECT_CLASS(klass);
... ... @@ -246,6 +253,9 @@ static void v3270_class_init(v3270Class *klass)
246 253  
247 254 lib3270_set_log_handler(loghandler);
248 255  
  256 + // V3270 methods
  257 + klass->keypress = signal_keypress;
  258 +
249 259 // Object methods
250 260 gobject_class->finalize = finalize;
251 261  
... ...
src/trace/widget.c
... ... @@ -68,16 +68,18 @@
68 68  
69 69 struct _V3270Trace
70 70 {
71   - GtkGrid parent;
72   - H3270 * hSession; ///< @brief TN3270 Session.
73   - GtkWidget * terminal; ///< @brief V3270 Widget.
  71 + GtkGrid parent;
  72 + H3270 * hSession; ///< @brief TN3270 Session.
  73 + GtkWidget * terminal; ///< @brief V3270 Widget.
  74 + GtkScrolledWindow * scroll;
74 75  
75   - GtkTextBuffer * text; ///< @brief Trace window contents.
76   - GtkEntry * entry; ///< @brief Command line entry.
  76 + GtkTextView * view; ///< @brief Text view;
  77 + GtkTextBuffer * text; ///< @brief Trace window contents.
  78 + GtkEntry * entry; ///< @brief Command line entry.
77 79  
78   - gchar * filename; ///< @brief Selected file name.
  80 + gchar * filename; ///< @brief Selected file name.
79 81  
80   - guint log_handler; ///< @brief GTK Log Handler.
  82 + guint log_handler; ///< @brief GTK Log Handler.
81 83  
82 84 /// @brief lib3270's saved trace handler.
83 85 struct {
... ... @@ -248,21 +250,23 @@
248 250  
249 251 // Create text view
250 252 {
251   - GtkWidget *scrolled = gtk_scrolled_window_new(NULL,NULL);
252   - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
253   - gtk_widget_set_vexpand(scrolled,TRUE);
254   - gtk_widget_set_hexpand(scrolled,TRUE);
255   - gtk_grid_attach(GTK_GRID(widget),scrolled,0,0,10,1);
  253 + widget->scroll = GTK_SCROLLED_WINDOW(gtk_scrolled_window_new(NULL,NULL));
  254 + gtk_scrolled_window_set_policy(widget->scroll,GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
  255 + gtk_widget_set_vexpand(GTK_WIDGET(widget->scroll),TRUE);
  256 + gtk_widget_set_hexpand(GTK_WIDGET(widget->scroll),TRUE);
  257 + gtk_grid_attach(GTK_GRID(widget),GTK_WIDGET(widget->scroll),0,0,10,1);
256 258  
257   - GtkWidget *view = gtk_text_view_new();
258   - gtk_text_view_set_monospace(GTK_TEXT_VIEW(view),TRUE);
  259 + widget->view = GTK_TEXT_VIEW(gtk_text_view_new());
259 260  
260   - widget->text = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
261   - gtk_text_view_set_editable(GTK_TEXT_VIEW(view), TRUE);
  261 +#if GTK_CHECK_VERSION(3,16,0)
  262 + gtk_text_view_set_monospace(widget->view,TRUE);
  263 +#endif // GTK_CHECK_VERSION
262 264  
263   - gtk_container_add(GTK_CONTAINER(scrolled),view);
  265 + widget->text = gtk_text_view_get_buffer(widget->view);
  266 + gtk_text_view_set_editable(widget->view, TRUE);
264 267  
265   - gtk_widget_set_can_default(view,FALSE);
  268 + gtk_container_add(GTK_CONTAINER(widget->scroll),GTK_WIDGET(widget->view));
  269 + gtk_widget_set_can_default(GTK_WIDGET(widget->view),FALSE);
266 270  
267 271 }
268 272  
... ... @@ -339,8 +343,6 @@
339 343 GtkTextIter itr;
340 344 gtk_text_buffer_get_end_iter(cfg->widget->text,&itr);
341 345  
342   - printf("%s\n",cfg->text);
343   -
344 346 if(g_utf8_validate(cfg->text,strlen(cfg->text),NULL))
345 347 {
346 348 gtk_text_buffer_insert(cfg->widget->text,&itr,cfg->text,strlen(cfg->text));
... ... @@ -350,12 +352,12 @@
350 352 gtk_text_buffer_insert(cfg->widget->text,&itr,"** Invalid UTF8 String **",-1);
351 353 }
352 354  
353   - // gtk_text_buffer_get_end_iter(hwnd->text,&itr);
354   - // gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW(hwnd->view), &itr, 0.0, FALSE, 0.0, 0.0);
  355 + // gtk_text_buffer_get_end_iter(cfg->widget->text,&itr);
  356 + // gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(cfg->widget->view), &itr, 0.0, FALSE, 0.0, 0.0);
355 357  
356   - //GtkAdjustment *vadj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(hwnd->scroll));
357   - //gtk_adjustment_set_value(vadj,gtk_adjustment_get_upper(vadj));
358   - //gtk_scrolled_window_set_vadjustment(GTK_SCROLLED_WINDOW(hwnd->scroll), vadj);
  358 + GtkAdjustment *vadj = gtk_scrolled_window_get_vadjustment(cfg->widget->scroll);
  359 + gtk_adjustment_set_value(vadj,gtk_adjustment_get_upper(vadj));
  360 + gtk_scrolled_window_set_vadjustment(cfg->widget->scroll, vadj);
359 361  
360 362 return FALSE;
361 363  
... ...