summaryrefslogtreecommitdiff
path: root/src/Fl_Window_Driver.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fl_Window_Driver.cxx')
-rw-r--r--src/Fl_Window_Driver.cxx7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/Fl_Window_Driver.cxx b/src/Fl_Window_Driver.cxx
index a9faa3211..dbd9c4d08 100644
--- a/src/Fl_Window_Driver.cxx
+++ b/src/Fl_Window_Driver.cxx
@@ -41,6 +41,7 @@ Fl_Window_Driver::Fl_Window_Driver(Fl_Window *win)
: pWindow(win) {
wait_for_expose_value = 0;
other_xid = 0;
+ screen_num_ = 0;
}
@@ -219,8 +220,10 @@ void Fl_Window_Driver::wait_for_expose() {
}
int Fl_Window_Driver::screen_num() {
- if (pWindow->parent()) return Fl_Window_Driver::driver(pWindow->top_window())->screen_num();
- return Fl::screen_num(x(), y(), w(), h());
+ if (pWindow->parent()) {
+ screen_num_ = Fl_Window_Driver::driver(pWindow->top_window())->screen_num();
+ }
+ return screen_num_ >= 0 ? screen_num_ : 0;
}
bool Fl_Window_Driver::is_a_rescale_ = false;