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
src/terminal/font/actions.c
... | ... | @@ -64,7 +64,7 @@ void v3270_zoom_best(GtkWidget *widget) |
64 | 64 | v3270 * terminal = GTK_V3270(widget); |
65 | 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 | 68 | return; |
69 | 69 | } |
70 | 70 | |
... | ... | @@ -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 | 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 | 91 | terminal->font.size += step; |
100 | 92 | |
101 | 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 | 98 | cairo_t *cr = cairo_create(terminal->surface); |
107 | 99 | |
... | ... | @@ -120,18 +112,35 @@ static void zoom(GtkWidget *widget, double step) |
120 | 112 | |
121 | 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 | 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 | 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 | 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 | 72 | do |
73 | 73 | { |
74 | 74 | terminal->font.size = s; |
75 | 75 | |
76 | - s += terminal->font.step; | |
76 | + s += 0.1; | |
77 | 77 | cairo_set_font_size(cr,s); |
78 | 78 | cairo_font_extents(cr,&extents); |
79 | 79 | ... | ... |
src/terminal/font/info.c