@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
-// $Id: Basemenu.cc,v 1.21 2002/04/09 12:22:06 fluxgen Exp $
+// $Id: Basemenu.cc,v 1.22 2002/04/28 15:54:59 fluxgen Exp $
//use GNU extensions
#ifndef _GNU_SOURCE
void Basemenu::drawItem(unsigned int index, bool highlight, bool clear,
int x, int y, unsigned int w, unsigned int h)
{
- if (index >= menuitems.size()) return;
+ if (index >= menuitems.size() || menuitems.size() == 0)
+ return;
BasemenuItem *item = menuitems[index];
if (! item) return;
@@ -880,7 +882,7 @@
void Basemenu::buttonReleaseEvent(XButtonEvent *re) {
if (re->window == menu.title) {
if (moving) {
- moving = False;
+ moving = false;
if (which_sub >= 0)
drawSubmenu(which_sub);
@@ -1071,7 +1073,7 @@ #endif // XINERAMA
XMoveWindow(m_display, menu.window, menu.x_shift, menu.y_shift);
}
- if (which_sub >= 0) {
+ if (which_sub >= 0 && static_cast<size_t>(which_sub) < menuitems.size()) {
BasemenuItem *tmp = menuitems[which_sub];
if (tmp->submenu()->isVisible()) {
int sbl = (ce->x / menu.item_w), i = (ce->y / menu.item_h),
@@ -1094,16 +1096,17 @@ if (ce->window == menu.frame) {