WindowServer+LibGUI: Remove the global menubar :^)

This leaves menu applets running but invisible, and that's a regression
we need to take care of obviously. But not today, because it's getting
too late.
This commit is contained in:
Andreas Kling 2021-03-25 23:27:11 +01:00
parent 1108c41790
commit e9db10e3a9
Notes: sideshowbarker 2024-07-18 21:05:11 +09:00
6 changed files with 6 additions and 22 deletions

View file

@ -244,12 +244,11 @@ void ComboBox::open()
};
auto taskbar_height = GUI::Desktop::the().taskbar_height();
auto menubar_height = GUI::Desktop::the().menubar_height();
// NOTE: This is so the combobox bottom edge exactly fits the taskbar's
// top edge - the value was found through trial and error though.
auto offset = 8;
Gfx::IntRect list_window_rect { my_screen_rect.bottom_left(), size };
list_window_rect.intersect(Desktop::the().rect().shrunken(0, taskbar_height + menubar_height + offset));
list_window_rect.intersect(Desktop::the().rect().shrunken(0, taskbar_height + offset));
m_editor->set_focus(true);
if (m_selected_index.has_value()) {

View file

@ -48,7 +48,6 @@ public:
Gfx::IntRect rect() const { return m_rect; }
int taskbar_height() const { return 28; }
int menubar_height() const { return 19; }
void did_receive_screen_rect(Badge<WindowServerConnection>, const Gfx::IntRect&);

View file

@ -81,7 +81,6 @@ private:
void init_bitmaps();
void flip_buffers();
void flush(const Gfx::IntRect&);
void draw_menubar();
void run_animations(Gfx::DisjointRectSet&);
void notify_display_links();
void start_compose_async_timer();

View file

@ -56,6 +56,7 @@ MenuManager::MenuManager()
m_window = Window::construct(*this, WindowType::Menubar);
m_window->set_rect(menubar_rect());
m_window->set_visible(false);
m_search_timer = Core::Timer::create_single_shot(0, [this] {
m_current_search.clear();

View file

@ -929,8 +929,7 @@ void WindowManager::process_mouse_event(MouseEvent& event, Window*& hovered_wind
MenuManager::the().set_hovered_menu(nullptr);
if (MenuManager::the().has_open_menu()
|| hitting_menu_in_window_with_active_menu
|| menubar_rect().contains(event.position())) {
|| hitting_menu_in_window_with_active_menu) {
for_each_visible_window_of_type_from_front_to_back(WindowType::MenuApplet, [&](auto& window) {
if (!window.rect_in_menubar().contains(event.position()))
return IterationDecision::Continue;
@ -1113,22 +1112,15 @@ void WindowManager::clear_resize_candidate()
m_resize_candidate = nullptr;
}
Gfx::IntRect WindowManager::menubar_rect() const
{
if (active_fullscreen_window())
return {};
return MenuManager::the().menubar_rect();
}
Gfx::IntRect WindowManager::desktop_rect() const
{
if (active_fullscreen_window())
return Screen::the().rect();
return {
0,
menubar_rect().bottom() + 1,
0,
Screen::the().width(),
Screen::the().height() - menubar_rect().height() - 28
Screen::the().height() - 28
};
}
@ -1447,10 +1439,6 @@ Gfx::IntRect WindowManager::maximized_window_rect(const Window& window) const
rect.set_y(rect.y() + window.frame().title_bar_rect().height() + window.frame().menubar_rect().height());
rect.set_height(rect.height() - window.frame().title_bar_rect().height() - window.frame().menubar_rect().height());
// Subtract menu bar
rect.set_y(rect.y() + menubar_rect().height());
rect.set_height(rect.height() - menubar_rect().height());
// Subtract taskbar window height if present
const_cast<WindowManager*>(this)->for_each_visible_window_of_type_from_back_to_front(WindowType::Taskbar, [&rect](Window& taskbar_window) {
rect.set_height(rect.height() - taskbar_window.height());
@ -1558,7 +1546,6 @@ Gfx::IntPoint WindowManager::get_recommended_window_position(const Gfx::IntPoint
// FIXME: Find a better source for this.
int taskbar_height = 28;
int menubar_height = MenuManager::the().menubar_rect().height();
const Window* overlap_window = nullptr;
for_each_visible_window_of_type_from_front_to_back(WindowType::Normal, [&](Window& window) {
@ -1573,7 +1560,7 @@ Gfx::IntPoint WindowManager::get_recommended_window_position(const Gfx::IntPoint
point = overlap_window->position() + shift;
point = { point.x() % Screen::the().width(),
(point.y() >= (Screen::the().height() - taskbar_height))
? menubar_height + Gfx::WindowTheme::current().title_bar_height(Gfx::WindowTheme::WindowType::Normal, palette())
? Gfx::WindowTheme::current().title_bar_height(Gfx::WindowTheme::WindowType::Normal, palette())
: point.y() };
} else {
point = desired;

View file

@ -121,7 +121,6 @@ public:
void move_to_front_and_make_active(Window&);
Gfx::IntRect menubar_rect() const;
Gfx::IntRect desktop_rect() const;
Gfx::IntRect arena_rect_for_type(WindowType) const;