From dbe528755ef388f5db01296eaf5dbabcb3c82ec7 Mon Sep 17 00:00:00 2001 From: markt Date: Fri, 5 Jan 2007 19:58:44 +0000 Subject: fix window menu placement with toolbar at top of screen, and disable titlebar when doing it --- ChangeLog | 3 +++ src/IconButton.cc | 1 - src/Window.cc | 6 ++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 299a5b2..6f269df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ (Format: Year/Month/Day) Changes for 1.0rc3: *07/01/05: + * Fix placement of window menu with toolbar at the top of the screen, + and remove titlebar from window menu (Mark) + Window.cc IconButton.cc * Don't change focus to a window that doesn't accept focus (Mark) FocusControl.cc * Only grab keybindings on screens managed by fluxbox (Mark) diff --git a/src/IconButton.cc b/src/IconButton.cc index b9cf523..aaff5b8 100644 --- a/src/IconButton.cc +++ b/src/IconButton.cc @@ -57,7 +57,6 @@ public: explicit ShowMenu(FluxboxWindow &win):m_win(win) { } void execute() { m_win.screen().hideMenus(); - m_win.menu().enableTitle(); // get last button pos const XEvent &event = Fluxbox::instance()->lastEvent(); int x = event.xbutton.x_root - (m_win.menu().width() / 2); diff --git a/src/Window.cc b/src/Window.cc index 523fd66..d878e2e 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -2333,8 +2333,10 @@ void FluxboxWindow::showMenu(int menu_x, int menu_y) { int head = screen().getHead(menu_x, menu_y); - // but not under screen - if (menu_y + menu().height() >= screen().maxBottom(head)) + // but not off the screen + if (menu_y < static_cast(screen().maxTop(head))) + menu_y = screen().maxTop(head); + else if (menu_y + menu().height() >= screen().maxBottom(head)) menu_y = screen().maxBottom(head) - menu().height() - 1 - menu().fbwindow().borderWidth(); if (menu_x < static_cast(screen().maxLeft(head))) -- cgit v0.11.2