From 042b7631afccdd6f0d060fbeb767e6339edd0ce1 Mon Sep 17 00:00:00 2001 From: Matt Birkholz Date: Sat, 2 Feb 2013 12:34:15 -0700 Subject: [PATCH] gtk-screen: Merge with Gtk. Eliminate some diffs between the Gtk and Gtk-Screen branches. --- src/gtk/cairo.scm | 2 +- src/gtk/gtkio.c.stay | 41 ++++++++++++++++++++--------------------- src/gtk/scm-widget.scm | 2 +- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/gtk/cairo.scm b/src/gtk/cairo.scm index 7421880dd..45220b12d 100644 --- a/src/gtk/cairo.scm +++ b/src/gtk/cairo.scm @@ -68,4 +68,4 @@ USA. (let ((x1. (C-> doubles "double")) (y1. (C-> y1 "double")) (x2. (C-> x2 "double")) (y2. (C-> y2 "double"))) (free doubles) - (receiver x1. y1. x2. y2.))))) + (receiver x1. y1. x2. y2.))))) \ No newline at end of file diff --git a/src/gtk/gtkio.c.stay b/src/gtk/gtkio.c.stay index 42b67ce77..9010cdd64 100644 --- a/src/gtk/gtkio.c.stay +++ b/src/gtk/gtkio.c.stay @@ -1,6 +1,6 @@ /* -*-C-*- -Copyright (C) 2008, 2009, 2010, 2011 Matthew Birkholz +Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013 Matthew Birkholz This file is part of MIT/GNU Scheme. @@ -148,7 +148,6 @@ scheme_source_prepare (GSource * source, gint * timeout) if (src->time_limit == 0.0) { trace (";scheme_source_prepare: polling\n"); - /* 0 here does not allow expose events to be delivered? */ *timeout = 0; return (FALSE); } @@ -243,24 +242,7 @@ pending_io (SchemeSource * src) static gboolean do_scheme (GSource *source) { - SchemeSource * src = (SchemeSource *)source; - slice_counter += 1; - if (slice_window != NULL) - { - gchar * fdstr, * text; - - text = g_strdup_printf ("Scheme time-slice: %d", slice_counter); - gtk_label_set_text (GTK_LABEL (slice_label), text); - g_free (text); - - fdstr = gpollfds_string (src->gpollfds); - text = g_strdup_printf ("Channels:%s", fdstr); - if (fdstr[0] != '\0') - g_free (fdstr); - gtk_label_set_text (GTK_LABEL (status_label), text); - g_free (text); - } trace (";scheme_source_dispatch: running time slice %d\n", slice_counter); Interpret (1); @@ -437,6 +419,23 @@ run_gtk (unsigned long registry, double time) if (fdstr[0] != '\0') g_free (fdstr); } + + /* Update the time-slice window before "sleeping". */ + if (slice_window != NULL) + { + gchar * fdstr, * text; + + text = g_strdup_printf ("Scheme time-slice: %d", slice_counter); + gtk_label_set_text (GTK_LABEL (slice_label), text); + g_free (text); + fdstr = gpollfds_string (scheme_source->gpollfds); + text = g_strdup_printf ("Channels:%s", fdstr); + if (fdstr[0] != '\0') + g_free (fdstr); + gtk_label_set_text (GTK_LABEL (status_label), text); + g_free (text); + } + /* Force expose event delivery, so that animations continue to move even when Scheme is not "idle". */ gdk_window_process_all_updates (); @@ -521,7 +520,7 @@ open_slice_window (void) { slice_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); GtkWidget * grid = gtk_grid_new (); - status_label = gtk_label_new ("Channels:"); + status_label = gtk_label_new ("Channels: -"); slice_label = gtk_label_new ("Scheme time-slice: 0"); g_signal_connect (slice_window, "delete_event", G_CALLBACK (slice_window_delete_event), NULL); @@ -531,7 +530,7 @@ open_slice_window (void) gtk_container_add (GTK_CONTAINER (grid), status_label); gtk_container_add (GTK_CONTAINER (grid), slice_label); gtk_container_add (GTK_CONTAINER (slice_window), grid); - gtk_container_set_border_width (GTK_CONTAINER (slice_window), 2); + gtk_container_set_border_width (GTK_CONTAINER (slice_window), 5); gtk_window_set_title (GTK_WINDOW (slice_window), "Scheme Time-Slice Counter"); gtk_window_set_type_hint (GTK_WINDOW (slice_window), GDK_WINDOW_TYPE_HINT_UTILITY); diff --git a/src/gtk/scm-widget.scm b/src/gtk/scm-widget.scm index 21c684315..981e21048 100644 --- a/src/gtk/scm-widget.scm +++ b/src/gtk/scm-widget.scm @@ -56,4 +56,4 @@ USA. (guarantee-non-negative-fixnum height 'set-scm-widget-natural-size!) (let ((a (gobject-alien widget))) (C->= a "ScmWidget natural_width" width) - (C->= a "ScmWidget natural_height" height))) + (C->= a "ScmWidget natural_height" height))) \ No newline at end of file -- 2.25.1