From f775b64fb731286612ec4b9a5996c4d10fc01ac4 Mon Sep 17 00:00:00 2001 From: Richard Wilson Date: Fri, 8 Sep 2006 17:11:01 +0000 Subject: Possibly fix the GTK build and implement frameset scaling. svn path=/trunk/netsurf/; revision=2933 --- gtk/gtk_window.c | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/gtk/gtk_window.c b/gtk/gtk_window.c index 2adb2e1a0..048eeb5ce 100644 --- a/gtk/gtk_window.c +++ b/gtk/gtk_window.c @@ -128,7 +128,6 @@ static gboolean nsgtk_history_button_press_event(GtkWidget *, GdkEventButton *, gpointer); static void nsgtk_attach_menu_handlers(GladeXML *, gpointer); -static void nsgtk_window_change_scale(struct gui_window *, float); #define MENUEVENT(x) { #x, G_CALLBACK(nsgtk_on_##x##_activate) } #define MENUPROTO(x) static gboolean nsgtk_on_##x##_activate( \ @@ -560,39 +559,23 @@ MENUHANDLER(choices) return TRUE; } -void nsgtk_window_change_scale(struct gui_window *g, float scale) -{ - g->scale = scale; - - if (g->bw->current_content != NULL) - gui_window_update_extent(g); - - gtk_widget_queue_draw(GTK_WIDGET(g->drawing_area)); -} - MENUHANDLER(zoom_in) { - struct gui_window *gw = g; - - nsgtk_window_change_scale(gw, gw->scale + 0.05); + browser_window_set_scale(g->bw, g->scale + 0.05, true); return TRUE; } MENUHANDLER(normal_size) { - struct gui_window *gw = g; - - nsgtk_window_change_scale(gw, 1.00); + browser_window_set_scale(g->bw, 1.0, true); return TRUE; } MENUHANDLER(zoom_out) { - struct gui_window *gw = g; - - nsgtk_window_change_scale(gw, gw->scale - 0.05); + browser_window_set_scale(g->bw, g->scale - 0.05, true); return TRUE; } @@ -965,6 +948,24 @@ void gui_window_set_scroll(struct gui_window *g, int sx, int sy) } +float gui_window_get_scale(struct gui_window *g) +{ + return g->scale; +} + +void gui_window_set_scale(struct gui_window *g, float scale) +{ + if (g->scale == scale) + return; + g->scale = scale; + + if (g->bw->current_content != NULL) + gui_window_update_extent(g); + + gtk_widget_queue_draw(GTK_WIDGET(g->drawing_area)); + +} + void gui_window_update_extent(struct gui_window *g) { if (!g->bw->current_content) -- cgit v1.2.3