Skip to content

Commit

Permalink
WindowServer+LibGUI: Remove the global menubar :^)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
awesomekling committed Mar 25, 2021
1 parent 1108c41 commit e9db10e
Show file tree
Hide file tree
Showing 6 changed files with 6 additions and 22 deletions.
3 changes: 1 addition & 2 deletions Userland/Libraries/LibGUI/ComboBox.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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()) {
Expand Down
1 change: 0 additions & 1 deletion Userland/Libraries/LibGUI/Desktop.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ class Desktop {
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&);

Expand Down
1 change: 0 additions & 1 deletion Userland/Services/WindowServer/Compositor.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ class Compositor final : public Core::Object {
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();
Expand Down
1 change: 1 addition & 0 deletions Userland/Services/WindowServer/MenuManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
21 changes: 4 additions & 17 deletions Userland/Services/WindowServer/WindowManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
};
}

Expand Down Expand Up @@ -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());
Expand Down Expand Up @@ -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) {
Expand All @@ -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;
Expand Down
1 change: 0 additions & 1 deletion Userland/Services/WindowServer/WindowManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,6 @@ class WindowManager : public Core::Object {

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;

Expand Down

0 comments on commit e9db10e

Please sign in to comment.