aboutsummaryrefslogtreecommitdiff
path: root/src/gui/StaticPage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/StaticPage.cpp')
-rw-r--r--src/gui/StaticPage.cpp17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/gui/StaticPage.cpp b/src/gui/StaticPage.cpp
index c014f38..5147819 100644
--- a/src/gui/StaticPage.cpp
+++ b/src/gui/StaticPage.cpp
@@ -20,8 +20,9 @@ namespace gsr {
// Process widgets by visibility (backwards)
return widgets.for_each_reverse([selected_widget, &window, &event, offset](std::unique_ptr<Widget> &widget) {
- if(widget.get() != selected_widget) {
- if(!widget->on_event(event, window, offset))
+ Widget *p = widget.get();
+ if(p != selected_widget) {
+ if(!p->on_event(event, window, offset))
return false;
}
return true;
@@ -36,14 +37,8 @@ namespace gsr {
offset = draw_pos;
Widget *selected_widget = selected_child_widget;
- mgl_scissor prev_scissor;
- mgl_window_get_scissor(window.internal_window(), &prev_scissor);
-
- const mgl_scissor new_scissor = {
- mgl_vec2i{(int)draw_pos.x, (int)draw_pos.y},
- mgl_vec2i{(int)size.x, (int)size.y}
- };
- mgl_window_set_scissor(window.internal_window(), &new_scissor);
+ const mgl::Scissor prev_scissor = window.get_scissor();
+ window.set_scissor({draw_pos.to_vec2i(), size.to_vec2i()});
for(size_t i = 0; i < widgets.size(); ++i) {
auto &widget = widgets[i];
@@ -54,7 +49,7 @@ namespace gsr {
if(selected_widget)
selected_widget->draw(window, offset);
- mgl_window_set_scissor(window.internal_window(), &prev_scissor);
+ window.set_scissor(prev_scissor);
}
mgl::vec2f StaticPage::get_size() {