+
+void WindowManager::set_focused_window(Window *win)
+{
+ focused_win = win;
+}
+
+const Window *WindowManager::get_focused_window() const
+{
+ return focused_win;
+}
+
+Window *WindowManager::get_focused_window()
+{
+ return focused_win;
+}
+
+Window *WindowManager::get_window_at_pos(int pointer_x, int pointer_y)
+{
+ Window *win = 0;
+ std::list<Window*>::reverse_iterator rit = windows.rbegin();
+ while(rit != windows.rend()) {
+ if((*rit)->contains_point(pointer_x, pointer_y)) {
+ win = *rit;
+ break;
+ }
+ rit++;
+ }
+
+ return win;
+}