diff options
author | Richard Wilson <rjw@netsurf-browser.org> | 2006-09-08 17:11:01 +0000 |
---|---|---|
committer | Richard Wilson <rjw@netsurf-browser.org> | 2006-09-08 17:11:01 +0000 |
commit | f775b64fb731286612ec4b9a5996c4d10fc01ac4 (patch) | |
tree | a16784b20b65508dd8d2686bcee397141ab6c8f6 | |
parent | 02a8722cc66980069afe7c674dbb93710846a07f (diff) | |
download | netsurf-f775b64fb731286612ec4b9a5996c4d10fc01ac4.tar.gz netsurf-f775b64fb731286612ec4b9a5996c4d10fc01ac4.tar.bz2 |
Possibly fix the GTK build and implement frameset scaling.
svn path=/trunk/netsurf/; revision=2933
-rw-r--r-- | gtk/gtk_window.c | 41 |
1 files 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) |