aboutsummaryrefslogtreecommitdiff
path: root/dw/fltkui.cc
diff options
context:
space:
mode:
authorcorvid <corvid@lavabit.com>2012-11-28 01:23:18 +0000
committercorvid <corvid@lavabit.com>2012-11-28 01:23:18 +0000
commitac796d46158f1b514f55fa0128a6f420140c8b9d (patch)
tree7c633bee6be1194a68c4e275385a29aca69b7b01 /dw/fltkui.cc
parente8f8cc274d9ea3d940bfb453c2006f94959bb8ad (diff)
FltkListResource: can't select group
Diffstat (limited to 'dw/fltkui.cc')
-rw-r--r--dw/fltkui.cc12
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);
}