summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/gtk_window.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/gtk/gtk_window.c b/gtk/gtk_window.c
index 638df28dc..b1ed0f731 100644
--- a/gtk/gtk_window.c
+++ b/gtk/gtk_window.c
@@ -594,14 +594,28 @@ void gui_window_update_box(struct gui_window *g,
bool gui_window_get_scroll(struct gui_window *g, int *sx, int *sy)
{
- *sx = 0;
- *sy = 0;
- return true;
+ GtkAdjustment *vadj = gtk_viewport_get_vadjustment(g->viewport);
+ GtkAdjustment *hadj = gtk_viewport_get_hadjustment(g->viewport);
+
+ assert(vadj);
+ assert(hadj);
+
+ *sy = (int)(gtk_adjustment_get_value(vadj));
+ *sx = (int)(gtk_adjustment_get_value(hadj));
+
+ return true;
}
void gui_window_set_scroll(struct gui_window *g, int sx, int sy)
{
-
+ GtkAdjustment *vadj = gtk_viewport_get_vadjustment(g->viewport);
+ GtkAdjustment *hadj = gtk_viewport_get_hadjustment(g->viewport);
+
+ assert(vadj);
+ assert(hadj);
+
+ gtk_adjustment_set_value(vadj, (double)sy);
+ gtk_adjustment_set_value(hadj, (double)sx);
}
float gui_window_get_scale(struct gui_window *g)