diff --git a/src/dialogs/hostselect.c b/src/dialogs/hostselect.c index 0929c07..6fcfc4b 100644 --- a/src/dialogs/hostselect.c +++ b/src/dialogs/hostselect.c @@ -350,7 +350,7 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) if(v3270_is_connected(widget)) { - gdk_display_beep(gdk_display_get_default()); + gtk_widget_error_bell(widget); return; } diff --git a/src/terminal/font/actions.c b/src/terminal/font/actions.c index c8b861f..6e8f737 100644 --- a/src/terminal/font/actions.c +++ b/src/terminal/font/actions.c @@ -64,7 +64,7 @@ void v3270_zoom_best(GtkWidget *widget) v3270 * terminal = GTK_V3270(widget); if(!(gtk_widget_get_realized(widget) && terminal->drawing && lib3270_is_connected(terminal->host))) { - gdk_display_beep(gdk_display_get_default()); + gtk_widget_error_bell(widget); return; } @@ -84,24 +84,16 @@ void v3270_zoom_best(GtkWidget *widget) } -static void zoom(GtkWidget *widget, double step) +static void zoom(v3270 *terminal, double step) { debug("%s",__FUNCTION__); - g_return_if_fail(GTK_IS_V3270(widget)); - v3270 * terminal = GTK_V3270(widget); - if(!(gtk_widget_get_realized(widget) && terminal->drawing && lib3270_is_connected(terminal->host))) - { - gtk_widget_error_bell(widget); - return; - } - terminal->font.size += step; // Redraw window - gint width = gtk_widget_get_allocated_width(widget); - gint height = gtk_widget_get_allocated_height(widget); + gint width = gtk_widget_get_allocated_width((GtkWidget *) terminal); + gint height = gtk_widget_get_allocated_height((GtkWidget *) terminal); cairo_t *cr = cairo_create(terminal->surface); @@ -120,18 +112,35 @@ static void zoom(GtkWidget *widget, double step) cairo_destroy(cr); - gtk_widget_queue_draw(GTK_WIDGET(terminal)); + gtk_widget_queue_draw((GtkWidget *) terminal); } void v3270_zoom_in(GtkWidget *widget) { - zoom(widget,1); + g_return_if_fail(GTK_IS_V3270(widget)); + v3270 * terminal = GTK_V3270(widget); + if(!(gtk_widget_get_realized(widget) && terminal->drawing && lib3270_is_connected(terminal->host))) + { + gtk_widget_error_bell(widget); + return; + } + + zoom(terminal,terminal->font.step); } void v3270_zoom_out(GtkWidget *widget) { - debug("%s",__FUNCTION__); - zoom(widget,-1); + g_return_if_fail(GTK_IS_V3270(widget)); + v3270 * terminal = GTK_V3270(widget); + if(!(gtk_widget_get_realized(widget) && terminal->drawing && lib3270_is_connected(terminal->host))) + { + gtk_widget_error_bell(widget); + return; + } + + if(terminal->font.size > terminal->font.step) + zoom(terminal,-terminal->font.step); + } diff --git a/src/terminal/font/compute.c b/src/terminal/font/compute.c index 5c53076..82dd123 100644 --- a/src/terminal/font/compute.c +++ b/src/terminal/font/compute.c @@ -67,13 +67,13 @@ cairo_set_font_face(cr,terminal->font.face); { - double s = terminal->font.step; + double s = 0.1; do { terminal->font.size = s; - s += terminal->font.step; + s += 0.1; cairo_set_font_size(cr,s); cairo_font_extents(cr,&extents); diff --git a/src/terminal/font/info.c b/src/terminal/font/info.c index 141908c..ad5aef1 100644 --- a/src/terminal/font/info.c +++ b/src/terminal/font/info.c @@ -37,7 +37,7 @@ void v3270_font_info_init(v3270FontInfo *info) memset(info,0,sizeof(v3270FontInfo)); info->family = g_strdup(v3270_get_default_font_name()); - info->step = 0.1; + info->step = 1; info->size = 0.1; } -- libgit2 0.21.2