WindowStack.cpp 745 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include "WindowStack.h"
  7. namespace WindowServer {
  8. WindowStack::WindowStack()
  9. {
  10. }
  11. WindowStack::~WindowStack()
  12. {
  13. }
  14. void WindowStack::add(Window& window)
  15. {
  16. m_windows.append(window);
  17. }
  18. void WindowStack::remove(Window& window)
  19. {
  20. m_windows.remove(window);
  21. }
  22. void WindowStack::move_to_front(Window& window)
  23. {
  24. if (m_windows.last() != &window)
  25. window.invalidate();
  26. m_windows.remove(window);
  27. m_windows.append(window);
  28. }
  29. void WindowStack::set_highlight_window(Window* window)
  30. {
  31. if (!window)
  32. m_highlight_window = nullptr;
  33. else
  34. m_highlight_window = window->make_weak_ptr<Window>();
  35. }
  36. }