aboutsummaryrefslogtreecommitdiff
path: root/src/Toolbar.hh
diff options
context:
space:
mode:
authorPavel Labath <pavelo@centrum.sk>2011-07-02 15:21:24 (GMT)
committerPavel Labath <pavelo@centrum.sk>2011-11-01 09:57:20 (GMT)
commitf2709b26d8af7292f750fc05525ac90ad0d99c41 (patch)
tree794903544922abe2b90af6250de24124cd94d546 /src/Toolbar.hh
parent0584414d3845239202d5ea02da2ce6fb5b1b0cbb (diff)
downloadfluxbox_paul-f2709b26d8af7292f750fc05525ac90ad0d99c41.zip
fluxbox_paul-f2709b26d8af7292f750fc05525ac90ad0d99c41.tar.bz2
Store menus if smart pointers (RefCount)
This was originally intended to be a bugfix for an memory error reported by valgrind (accessing freed memory). While debugging it, I found the menu ownership semantics confusing (setInternalMenu() et al.), so I decided to get rid of it and store it in smart pointers everywhere. Looking back, I'm not sure if this was worth all the trouble, but the good news is that the valgrind error disappeared. :)
Diffstat (limited to 'src/Toolbar.hh')
-rw-r--r--src/Toolbar.hh18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/Toolbar.hh b/src/Toolbar.hh
index eca379b..b0aeb60 100644
--- a/src/Toolbar.hh
+++ b/src/Toolbar.hh
@@ -104,13 +104,13 @@ public:
104 104
105 int layerNumber() const { return const_cast<FbTk::LayerItem &>(m_layeritem).getLayerNum(); } 105 int layerNumber() const { return const_cast<FbTk::LayerItem &>(m_layeritem).getLayerNum(); }
106 106
107 const FbTk::Menu &menu() const { return m_toolbarmenu; } 107 FbTk::RefCount<const FbTk::Menu> menu() const { return m_toolbarmenu; }
108 FbTk::Menu &menu() { return m_toolbarmenu; } 108 FbTk::RefCount<FbTk::Menu> menu() { return m_toolbarmenu; }
109 FbTk::Menu &placementMenu() { return m_placementmenu; } 109 FbTk::RefCount<FbTk::Menu> placementMenu() { return m_placementmenu; }
110 const FbTk::Menu &placementMenu() const { return m_placementmenu; } 110 FbTk::RefCount<const FbTk::Menu> placementMenu() const { return m_placementmenu; }
111 111
112 FbTk::Menu &layerMenu() { return m_layermenu; } 112 FbTk::RefCount<FbTk::Menu> layerMenu() { return m_layermenu; }
113 const FbTk::Menu &layerMenu() const { return m_layermenu; } 113 FbTk::RefCount<const FbTk::Menu> layerMenu() const { return m_layermenu; }
114 114
115 /// are we hidden? 115 /// are we hidden?
116 bool isHidden() const { return m_hidden; } 116 bool isHidden() const { return m_hidden; }
@@ -165,10 +165,10 @@ private:
165 FbTk::Timer m_hide_timer; ///< timer to for auto hide toolbar 165 FbTk::Timer m_hide_timer; ///< timer to for auto hide toolbar
166 166
167 FbTk::LayerItem m_layeritem; ///< layer item, must be declared before layermenu 167 FbTk::LayerItem m_layeritem; ///< layer item, must be declared before layermenu
168 LayerMenu m_layermenu; 168 FbTk::RefCount<LayerMenu> m_layermenu;
169 FbMenu m_placementmenu, m_toolbarmenu; 169 FbTk::RefCount<FbMenu> m_placementmenu, m_toolbarmenu;
170#ifdef XINERAMA 170#ifdef XINERAMA
171 XineramaHeadMenu<Toolbar> *m_xineramaheadmenu; 171 FbTk::RefCount<XineramaHeadMenu<Toolbar> > m_xineramaheadmenu;
172#endif // XINERAMA 172#endif // XINERAMA
173 173
174 174