Commit fbe0a112b6b67f0b2be156ab33429c2618718c48
1 parent
74576b2a
Exists in
master
and in
1 other branch
Fixing manual zoom.
Showing
4 changed files
with
29 additions
and
20 deletions
Show diff stats
src/dialogs/hostselect.c
| @@ -350,7 +350,7 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) | @@ -350,7 +350,7 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) | ||
| 350 | 350 | ||
| 351 | if(v3270_is_connected(widget)) | 351 | if(v3270_is_connected(widget)) |
| 352 | { | 352 | { |
| 353 | - gdk_display_beep(gdk_display_get_default()); | 353 | + gtk_widget_error_bell(widget); |
| 354 | return; | 354 | return; |
| 355 | } | 355 | } |
| 356 | 356 |
src/terminal/font/actions.c
| @@ -64,7 +64,7 @@ void v3270_zoom_best(GtkWidget *widget) | @@ -64,7 +64,7 @@ void v3270_zoom_best(GtkWidget *widget) | ||
| 64 | v3270 * terminal = GTK_V3270(widget); | 64 | v3270 * terminal = GTK_V3270(widget); |
| 65 | if(!(gtk_widget_get_realized(widget) && terminal->drawing && lib3270_is_connected(terminal->host))) | 65 | if(!(gtk_widget_get_realized(widget) && terminal->drawing && lib3270_is_connected(terminal->host))) |
| 66 | { | 66 | { |
| 67 | - gdk_display_beep(gdk_display_get_default()); | 67 | + gtk_widget_error_bell(widget); |
| 68 | return; | 68 | return; |
| 69 | } | 69 | } |
| 70 | 70 | ||
| @@ -84,24 +84,16 @@ void v3270_zoom_best(GtkWidget *widget) | @@ -84,24 +84,16 @@ void v3270_zoom_best(GtkWidget *widget) | ||
| 84 | 84 | ||
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | -static void zoom(GtkWidget *widget, double step) | 87 | +static void zoom(v3270 *terminal, double step) |
| 88 | { | 88 | { |
| 89 | debug("%s",__FUNCTION__); | 89 | debug("%s",__FUNCTION__); |
| 90 | 90 | ||
| 91 | - g_return_if_fail(GTK_IS_V3270(widget)); | ||
| 92 | - v3270 * terminal = GTK_V3270(widget); | ||
| 93 | - if(!(gtk_widget_get_realized(widget) && terminal->drawing && lib3270_is_connected(terminal->host))) | ||
| 94 | - { | ||
| 95 | - gtk_widget_error_bell(widget); | ||
| 96 | - return; | ||
| 97 | - } | ||
| 98 | - | ||
| 99 | terminal->font.size += step; | 91 | terminal->font.size += step; |
| 100 | 92 | ||
| 101 | // Redraw window | 93 | // Redraw window |
| 102 | 94 | ||
| 103 | - gint width = gtk_widget_get_allocated_width(widget); | ||
| 104 | - gint height = gtk_widget_get_allocated_height(widget); | 95 | + gint width = gtk_widget_get_allocated_width((GtkWidget *) terminal); |
| 96 | + gint height = gtk_widget_get_allocated_height((GtkWidget *) terminal); | ||
| 105 | 97 | ||
| 106 | cairo_t *cr = cairo_create(terminal->surface); | 98 | cairo_t *cr = cairo_create(terminal->surface); |
| 107 | 99 | ||
| @@ -120,18 +112,35 @@ static void zoom(GtkWidget *widget, double step) | @@ -120,18 +112,35 @@ static void zoom(GtkWidget *widget, double step) | ||
| 120 | 112 | ||
| 121 | cairo_destroy(cr); | 113 | cairo_destroy(cr); |
| 122 | 114 | ||
| 123 | - gtk_widget_queue_draw(GTK_WIDGET(terminal)); | 115 | + gtk_widget_queue_draw((GtkWidget *) terminal); |
| 124 | 116 | ||
| 125 | } | 117 | } |
| 126 | 118 | ||
| 127 | void v3270_zoom_in(GtkWidget *widget) | 119 | void v3270_zoom_in(GtkWidget *widget) |
| 128 | { | 120 | { |
| 129 | - zoom(widget,1); | 121 | + g_return_if_fail(GTK_IS_V3270(widget)); |
| 122 | + v3270 * terminal = GTK_V3270(widget); | ||
| 123 | + if(!(gtk_widget_get_realized(widget) && terminal->drawing && lib3270_is_connected(terminal->host))) | ||
| 124 | + { | ||
| 125 | + gtk_widget_error_bell(widget); | ||
| 126 | + return; | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + zoom(terminal,terminal->font.step); | ||
| 130 | } | 130 | } |
| 131 | 131 | ||
| 132 | void v3270_zoom_out(GtkWidget *widget) | 132 | void v3270_zoom_out(GtkWidget *widget) |
| 133 | { | 133 | { |
| 134 | - debug("%s",__FUNCTION__); | ||
| 135 | - zoom(widget,-1); | 134 | + g_return_if_fail(GTK_IS_V3270(widget)); |
| 135 | + v3270 * terminal = GTK_V3270(widget); | ||
| 136 | + if(!(gtk_widget_get_realized(widget) && terminal->drawing && lib3270_is_connected(terminal->host))) | ||
| 137 | + { | ||
| 138 | + gtk_widget_error_bell(widget); | ||
| 139 | + return; | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + if(terminal->font.size > terminal->font.step) | ||
| 143 | + zoom(terminal,-terminal->font.step); | ||
| 144 | + | ||
| 136 | } | 145 | } |
| 137 | 146 |
src/terminal/font/compute.c
| @@ -67,13 +67,13 @@ | @@ -67,13 +67,13 @@ | ||
| 67 | cairo_set_font_face(cr,terminal->font.face); | 67 | cairo_set_font_face(cr,terminal->font.face); |
| 68 | 68 | ||
| 69 | { | 69 | { |
| 70 | - double s = terminal->font.step; | 70 | + double s = 0.1; |
| 71 | 71 | ||
| 72 | do | 72 | do |
| 73 | { | 73 | { |
| 74 | terminal->font.size = s; | 74 | terminal->font.size = s; |
| 75 | 75 | ||
| 76 | - s += terminal->font.step; | 76 | + s += 0.1; |
| 77 | cairo_set_font_size(cr,s); | 77 | cairo_set_font_size(cr,s); |
| 78 | cairo_font_extents(cr,&extents); | 78 | cairo_font_extents(cr,&extents); |
| 79 | 79 |
src/terminal/font/info.c
| @@ -37,7 +37,7 @@ void v3270_font_info_init(v3270FontInfo *info) | @@ -37,7 +37,7 @@ void v3270_font_info_init(v3270FontInfo *info) | ||
| 37 | memset(info,0,sizeof(v3270FontInfo)); | 37 | memset(info,0,sizeof(v3270FontInfo)); |
| 38 | 38 | ||
| 39 | info->family = g_strdup(v3270_get_default_font_name()); | 39 | info->family = g_strdup(v3270_get_default_font_name()); |
| 40 | - info->step = 0.1; | 40 | + info->step = 1; |
| 41 | info->size = 0.1; | 41 | info->size = 0.1; |
| 42 | } | 42 | } |
| 43 | 43 |