diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2009-08-14 10:37:33 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2009-08-14 10:37:33 +0000 |
commit | 13afa0ff4c591e7800dc4c11a81d04c335418c05 (patch) | |
tree | 017f315584621f418a8bab5627aee8f8364d377b /gtk | |
parent | 3549846a9aec635bea82a919c5c1e38c7163731a (diff) | |
download | netsurf-13afa0ff4c591e7800dc4c11a81d04c335418c05.tar.gz netsurf-13afa0ff4c591e7800dc4c11a81d04c335418c05.tar.bz2 |
Merge Paul Blokus' selectscroll branch. Adds core select menu widget for forms and core scrollbar widget.
svn path=/trunk/netsurf/; revision=9289
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtk_gui.c | 2 | ||||
-rw-r--r-- | gtk/gtk_plotters.h | 1 | ||||
-rw-r--r-- | gtk/gtk_scaffolding.c | 1 | ||||
-rw-r--r-- | gtk/gtk_window.c | 15 |
4 files changed, 14 insertions, 5 deletions
diff --git a/gtk/gtk_gui.c b/gtk/gtk_gui.c index 58bc18ed6..971c3fbf2 100644 --- a/gtk/gtk_gui.c +++ b/gtk/gtk_gui.c @@ -250,6 +250,8 @@ void gui_init(int argc, char** argv) if (nsgtk_throbber == NULL) die("Unable to load throbber image.\n"); + option_core_select_menu = true; + find_resource(buf, "Choices", "~/.netsurf/Choices"); LOG(("Using '%s' as Preferences file", buf)); options_file_location = strdup(buf); diff --git a/gtk/gtk_plotters.h b/gtk/gtk_plotters.h index 33e1a9484..a59ae00bb 100644 --- a/gtk/gtk_plotters.h +++ b/gtk/gtk_plotters.h @@ -29,6 +29,7 @@ struct plotter_table; extern const struct plotter_table nsgtk_plotters; +/* make sure this is NULL if no redraw is in progress */ extern GtkWidget *current_widget; extern GdkDrawable *current_drawable; extern GdkGC *current_gc; diff --git a/gtk/gtk_scaffolding.c b/gtk/gtk_scaffolding.c index 6905408fa..942587c54 100644 --- a/gtk/gtk_scaffolding.c +++ b/gtk/gtk_scaffolding.c @@ -1182,6 +1182,7 @@ gboolean nsgtk_history_expose_event(GtkWidget *widget, history_redraw(bw->history); + current_widget = NULL; g_object_unref(current_gc); #ifdef CAIRO_VERSION cairo_destroy(current_cr); diff --git a/gtk/gtk_window.c b/gtk/gtk_window.c index c0377ca43..aa0ccaae6 100644 --- a/gtk/gtk_window.c +++ b/gtk/gtk_window.c @@ -305,8 +305,8 @@ gboolean nsgtk_window_expose_event(GtkWidget *widget, if (c->type == CONTENT_HTML) scale = 1; - current_widget = widget; - current_drawable = widget->window; + current_widget = (GtkWidget *)g->drawing_area; + current_drawable = current_widget->window; current_gc = gdk_gc_new(current_drawable); #ifdef CAIRO_VERSION current_cr = gdk_cairo_create(current_drawable); @@ -315,6 +315,7 @@ gboolean nsgtk_window_expose_event(GtkWidget *widget, plot = nsgtk_plotters; nsgtk_plot_set_scale(g->bw->scale); current_redraw_browser = g->bw; + content_redraw(c, 0, 0, widget->allocation.width * scale, widget->allocation.height * scale, @@ -328,6 +329,7 @@ gboolean nsgtk_window_expose_event(GtkWidget *widget, if (g->careth != 0) nsgtk_plot_caret(g->caretx, g->carety, g->careth); + current_widget = NULL; g_object_unref(current_gc); #ifdef CAIRO_VERSION cairo_destroy(current_cr); @@ -442,7 +444,8 @@ gboolean nsgtk_window_button_release_event(GtkWidget *widget, browser_window_mouse_click(g->bw, g->mouse->state, event->x / g->bw->scale, event->y / g->bw->scale); else - browser_window_mouse_drag_end(g->bw, 0, event->x, event->y); + browser_window_mouse_drag_end(g->bw, 0, event->x / g->bw->scale, + event->y / g->bw->scale); g->mouse->state = 0; return TRUE; @@ -654,8 +657,10 @@ void gui_window_update_box(struct gui_window *g, return; gtk_widget_queue_draw_area(GTK_WIDGET(g->drawing_area), - data->redraw.x, data->redraw.y, - data->redraw.width, data->redraw.height); + data->redraw.x * g->bw->scale, + data->redraw.y * g->bw->scale, + data->redraw.width * g->bw->scale, + data->redraw.height * g->bw->scale); } bool gui_window_get_scroll(struct gui_window *g, int *sx, int *sy) |