summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2009-08-14 10:37:33 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2009-08-14 10:37:33 +0000
commit13afa0ff4c591e7800dc4c11a81d04c335418c05 (patch)
tree017f315584621f418a8bab5627aee8f8364d377b /gtk
parent3549846a9aec635bea82a919c5c1e38c7163731a (diff)
downloadnetsurf-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.c2
-rw-r--r--gtk/gtk_plotters.h1
-rw-r--r--gtk/gtk_scaffolding.c1
-rw-r--r--gtk/gtk_window.c15
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)