diff options
author | corvid <corvid@lavabit.com> | 2012-11-28 01:23:18 +0000 |
---|---|---|
committer | corvid <corvid@lavabit.com> | 2012-11-28 01:23:18 +0000 |
commit | ac796d46158f1b514f55fa0128a6f420140c8b9d (patch) | |
tree | 7c633bee6be1194a68c4e275385a29aca69b7b01 /dw/fltkui.cc | |
parent | e8f8cc274d9ea3d940bfb453c2006f94959bb8ad (diff) |
FltkListResource: can't select group
Diffstat (limited to 'dw/fltkui.cc')
-rw-r--r-- | dw/fltkui.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/dw/fltkui.cc b/dw/fltkui.cc index 14914dfe..d5236a03 100644 --- a/dw/fltkui.cc +++ b/dw/fltkui.cc @@ -1229,12 +1229,19 @@ void FltkListResource::widgetCallback (Fl_Widget *widget, void *data) { Fl_Tree_Item *fltkItem = ((Fl_Tree *) widget)->callback_item (); int index = -1; + if (fltkItem) index = (long) (fltkItem->user_data ()); if (index > -1) { - FltkListResource *res = (FltkListResource *) data; bool selected = fltkItem->is_selected (); - res->itemsSelected.set (index, selected); + + if (selected && fltkItem->has_children()) { + /* Don't permit a group to be selected. */ + fltkItem->deselect(); + } else { + FltkListResource *res = (FltkListResource *) data; + res->itemsSelected.set (index, selected); + } } } @@ -1290,7 +1297,6 @@ void FltkListResource::pushGroup (const char *name, bool enabled) { bool selected = false; - /* TODO: make it impossible to select a group */ currParent = (Fl_Tree_Item *) newItem(name, enabled, selected); queueResize (true); } |