diff options
author | fluxgen <fluxgen> | 2004-04-18 17:46:32 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2004-04-18 17:46:32 (GMT) |
commit | 13d2dd13832c750fb9135411b99075c0117789de (patch) | |
tree | ef4f0e9f1838849110f0aea741570cd2b5e43853 /src/FbTk | |
parent | f532d212238a5f392ca64a98973a2fc86cc1115f (diff) | |
download | fluxbox_lack-13d2dd13832c750fb9135411b99075c0117789de.zip fluxbox_lack-13d2dd13832c750fb9135411b99075c0117789de.tar.bz2 |
fixed drawing issue with big menus, patch from Mathias Gumz
Diffstat (limited to 'src/FbTk')
-rw-r--r-- | src/FbTk/Menu.cc | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/FbTk/Menu.cc b/src/FbTk/Menu.cc index ab4fd19..4b59041 100644 --- a/src/FbTk/Menu.cc +++ b/src/FbTk/Menu.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Menu.cc,v 1.57 2004/04/14 14:02:41 fluxgen Exp $ | 25 | // $Id: Menu.cc,v 1.58 2004/04/18 17:46:32 fluxgen Exp $ |
26 | 26 | ||
27 | //use GNU extensions | 27 | //use GNU extensions |
28 | #ifndef _GNU_SOURCE | 28 | #ifndef _GNU_SOURCE |
@@ -502,9 +502,24 @@ void Menu::update(int active_index) { | |||
502 | menu.frame.window()<<", "<<menu.frame.width()<<", "<< | 502 | menu.frame.window()<<", "<<menu.frame.width()<<", "<< |
503 | menu.frame.height()<< | 503 | menu.frame.height()<< |
504 | ", "<<attr.depth<<") !"<<endl; | 504 | ", "<<attr.depth<<") !"<<endl; |
505 | } | 505 | } else if (menu.sublevels > 0 && menu.persub * menu.sublevels != menuitems.size()) { |
506 | 506 | ||
507 | // TODO: fill only that part of the menuframe with the | ||
508 | // pixmap/color, that has actually NO buttons on it | ||
509 | FbTk::GContext def_gc(menu.frame.window()); | ||
510 | if (menu.frame_pixmap == 0) { | ||
511 | def_gc.setForeground(m_theme.frameTexture().color()); | ||
512 | m_frame_pm.fillRectangle(def_gc.gc(), | ||
513 | 0, 0, | ||
514 | width(), menu.frame_h); | ||
507 | 515 | ||
516 | } else { | ||
517 | m_frame_pm.copyArea(menu.frame_pixmap, def_gc.gc(), | ||
518 | 0, 0, | ||
519 | 0, 0, | ||
520 | width(), menu.frame_h); | ||
521 | } | ||
522 | } | ||
508 | } | 523 | } |
509 | 524 | ||
510 | menu.frame.setBackgroundPixmap(m_frame_pm.drawable()); | 525 | menu.frame.setBackgroundPixmap(m_frame_pm.drawable()); |