diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/FbTk/Menu.cc | 21 |
2 files changed, 14 insertions, 11 deletions
@@ -1,5 +1,9 @@ | |||
1 | (Format: Year/Month/Day) | 1 | (Format: Year/Month/Day) |
2 | Changes for 0.9.13 | 2 | Changes for 0.9.13 |
3 | *05/04/15: | ||
4 | * Fixed a few drawing bugs created by last patch (Simon) | ||
5 | (titlebar no clear on resize, menu opening offscreen...) | ||
6 | Menu.cc FbWinFrame.cc | ||
3 | *05/04/11: | 7 | *05/04/11: |
4 | * Rework lots of stuff relating to transparency, esp menus+frame (Simon) | 8 | * Rework lots of stuff relating to transparency, esp menus+frame (Simon) |
5 | + Massively reduce pixmap memory usage (view with xrestop) | 9 | + Massively reduce pixmap memory usage (view with xrestop) |
diff --git a/src/FbTk/Menu.cc b/src/FbTk/Menu.cc index 370afb8..a4aed46 100644 --- a/src/FbTk/Menu.cc +++ b/src/FbTk/Menu.cc | |||
@@ -388,10 +388,6 @@ void Menu::enableTitle() { | |||
388 | } | 388 | } |
389 | 389 | ||
390 | void Menu::updateMenu(int active_index) { | 390 | void Menu::updateMenu(int active_index) { |
391 | if (!m_visible) { | ||
392 | m_need_update = true; | ||
393 | return; | ||
394 | } | ||
395 | if (m_title_vis) { | 391 | if (m_title_vis) { |
396 | menu.item_w = theme().titleFont().textWidth(menu.label.c_str(), | 392 | menu.item_w = theme().titleFont().textWidth(menu.label.c_str(), |
397 | menu.label.size()); | 393 | menu.label.size()); |
@@ -425,9 +421,6 @@ void Menu::updateMenu(int active_index) { | |||
425 | menu.persub = 0; | 421 | menu.persub = 0; |
426 | } | 422 | } |
427 | 423 | ||
428 | if (menu.frame.alpha() != alpha()) | ||
429 | menu.frame.setAlpha(alpha()); | ||
430 | |||
431 | int itmp = (theme().itemHeight() * menu.persub); | 424 | int itmp = (theme().itemHeight() * menu.persub); |
432 | menu.frame_h = itmp < 1 ? 1 : itmp; | 425 | menu.frame_h = itmp < 1 ? 1 : itmp; |
433 | 426 | ||
@@ -448,8 +441,16 @@ void Menu::updateMenu(int active_index) { | |||
448 | if (new_height < 1) | 441 | if (new_height < 1) |
449 | new_height = 1; | 442 | new_height = 1; |
450 | 443 | ||
444 | // must update main window size whether visible or not | ||
445 | // the rest can wait until the end | ||
451 | menu.window.resize(new_width, new_height); | 446 | menu.window.resize(new_width, new_height); |
452 | 447 | ||
448 | if (!m_visible) | ||
449 | return; | ||
450 | |||
451 | if (menu.frame.alpha() != alpha()) | ||
452 | menu.frame.setAlpha(alpha()); | ||
453 | |||
453 | Pixmap tmp = 0; | 454 | Pixmap tmp = 0; |
454 | if (m_title_vis && m_need_update) { | 455 | if (m_title_vis && m_need_update) { |
455 | tmp = menu.title_pixmap; | 456 | tmp = menu.title_pixmap; |
@@ -1267,10 +1268,8 @@ void Menu::reconfigure() { | |||
1267 | 1268 | ||
1268 | menu.window.setBorderWidth(theme().borderWidth()); | 1269 | menu.window.setBorderWidth(theme().borderWidth()); |
1269 | menu.title.setBorderWidth(theme().borderWidth()); | 1270 | menu.title.setBorderWidth(theme().borderWidth()); |
1270 | 1271 | ||
1271 | if (m_visible) { | 1272 | updateMenu(); |
1272 | updateMenu(); | ||
1273 | } | ||
1274 | } | 1273 | } |
1275 | 1274 | ||
1276 | 1275 | ||