From ae4e815fc6feecfff1312eb64e6eb4efba7e848a Mon Sep 17 00:00:00 2001 From: neil Date: Tue, 7 Apr 2015 23:58:43 +0000 Subject: [PATCH] - Pass all tags to the super-constructor. Now Listviews can have MUIA_Disabled set at creation time, for example. - Check for MADF_SETUP before manipulating the event handler. git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@50297 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- workbench/libs/muimaster/classes/listview.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/workbench/libs/muimaster/classes/listview.c b/workbench/libs/muimaster/classes/listview.c index 299ba3875c..c1a141d7f2 100644 --- a/workbench/libs/muimaster/classes/listview.c +++ b/workbench/libs/muimaster/classes/listview.c @@ -116,20 +116,15 @@ IPTR Listview__OM_NEW(struct IClass *cl, Object *obj, struct opSet *msg) Object *list = (Object *) GetTagData(MUIA_Listview_List, (IPTR) NULL, msg->ops_AttrList); - IPTR cyclechain; LONG entries = 0, first = 0, visible = 0; if (!list) return (IPTR) NULL; - cyclechain = - (IPTR) GetTagData(MUIA_CycleChain, (IPTR) 0, msg->ops_AttrList); - vert = ScrollbarObject, MUIA_Group_Horiz, FALSE, End; obj = (Object *) DoSuperNewTags(cl, obj, NULL, MUIA_Group_Horiz, FALSE, - MUIA_CycleChain, cyclechain, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, Child, (IPTR) (group = HGroup, @@ -137,7 +132,7 @@ IPTR Listview__OM_NEW(struct IClass *cl, Object *obj, struct opSet *msg) MUIA_InnerRight, 0, MUIA_Group_Spacing, 0, End), - TAG_DONE); + TAG_MORE, msg->ops_AttrList); if (!obj) return (IPTR) NULL; @@ -280,14 +275,18 @@ IPTR Listview__OM_SET(struct IClass *cl, Object *obj, struct opSet *msg) data->select_change = tag->ti_Data != 0; break; case MUIA_Disabled: - /* Stop listening for events we only listen to when mouse button is - down: we will not be informed of the button being released */ - DoMethod(_win(obj), MUIM_Window_RemEventHandler, - (IPTR) &data->ehn); - data->ehn.ehn_Events &= - ~(IDCMP_MOUSEMOVE | IDCMP_INTUITICKS | IDCMP_INACTIVEWINDOW); - DoMethod(_win(obj), MUIM_Window_AddEventHandler, - (IPTR) &data->ehn); + if (_flags(obj) & MADF_SETUP) + { + /* Stop listening for events we only listen to when mouse + button is down: we will not be informed of the button + being released */ + DoMethod(_win(obj), MUIM_Window_RemEventHandler, + (IPTR) &data->ehn); + data->ehn.ehn_Events &= ~(IDCMP_MOUSEMOVE | IDCMP_INTUITICKS + | IDCMP_INACTIVEWINDOW); + DoMethod(_win(obj), MUIM_Window_AddEventHandler, + (IPTR) &data->ehn); + } break; } } -- 2.11.4.GIT