From d5404dea25123567e9645d3e88a6cd0c14b2073f Mon Sep 17 00:00:00 2001 From: Greg Ercolano Date: Mon, 8 Apr 2013 18:24:17 +0000 Subject: Fix for STR #2944 [2]: Fix Apple-specifc nested window problem for Fl_Gl_Window's. Added new method Fl_Widget::window_offset(x,y) to access the top-level window offset of the current widget. Open to alternative names for the new method. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9866 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Window.cxx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/Fl_Window.cxx') diff --git a/src/Fl_Window.cxx b/src/Fl_Window.cxx index 20bb520fd..b6e5985bc 100644 --- a/src/Fl_Window.cxx +++ b/src/Fl_Window.cxx @@ -278,6 +278,21 @@ void Fl_Window::icon(const void * ic) { icon_ = ic; } +/** + Finds the x/y offset of the current window relative to the top-level window. + \param[out] xoff,yoff Returns the x/y offset + \returns the top-level window +*/ +Fl_Window* Fl_Window::window_offset(int& xoff, int& yoff) const { + xoff = yoff = 0; + const Fl_Window *win = (const Fl_Window*)this; + while (win && win->window()) { + xoff += win->x(); // accumulate offsets + yoff += win->y(); + win = win->window(); // walk up window hierarchy + } + return (Fl_Window*)win; +} // // End of "$Id$". -- cgit v1.2.3