@@ -330,78 +330,85 @@ Item {
330330 id: comboButton
331331
332332 width: parent.width
333− visible: notification.type == Notification.SnapDecision && actionRepeater.count > 4
333+ visible: notification.type == Notification.SnapDecision && actionRepeater.count > 3
334334 gradient: darkgreyGradient
335335 onClicked: notification.notification.invokeAction(comboRepeater.itemAt(2).actionId)
336336 expanded: false
337− expandedHeight: (comboRepeater.count) * units.gu(5)
338− comboList: Column {
339− Repeater {
340− id: comboRepeater
341−
342− Component.onCompleted: {
343− // an assignment is ok here, since this
344− // label is static and does not change
345− comboButton.text = comboRepeater.itemAt(2).actionLabel
346− }
337+ expandedHeight: (comboRepeater.count - 2) * units.gu(4) + units.gu(.5)
338+ comboList: Flickable {
339+ // this has to be wrapped inside a flickable
340+ // to work around a feature/bug? of the
341+ // ComboButton SDK-element, making a regular
342+ // unwrapped Column item flickable
343+ interactive: false
344+ Column {
345+ Repeater {
346+ id: comboRepeater
347+
348+ Component.onCompleted: {
349+ // an assignment is ok here, since this
350+ // label is static and does not change
351+ comboButton.text = comboRepeater.itemAt(2).actionLabel
352+ }
347353
348− model: notification.actions
349− delegate: Loader {
350− id: comboLoader
354+ model: notification.actions
355+ delegate: Loader {
356+ id: comboLoader
351357
352− asynchronous: true
353− visible: status == Loader.Ready
354− property string actionId: id
355− property string actionLabel: label
356− Component {
357− id: comboEntry
358+ asynchronous: true
359+ visible: status == Loader.Ready
360+ property string actionId: id
361+ property string actionLabel: label
362+ Component {
363+ id: comboEntry
358364
359− MouseArea {
360− id: comboInputArea
365+ MouseArea {
366+ id: comboInputArea
361367
362− width: comboButton.width
363− height: comboIcon.height + units.gu(2)
368+ width: comboButton.width
369+ height: comboIcon.height + units.gu(2)
364370
365− onClicked: {
366− notification.notification.invokeAction(actionId)
367− }
368−
369− ListItem.ThinDivider {
370− visible: index > 3
371− }
371+ onClicked: {
372+ notification.notification.invokeAction(actionId)
373+ }
372374
373− Icon {
374− id: comboIcon
375+ ListItem.ThinDivider {
376+ visible: index > 3
377+ }
375378
376− anchors {
377− left: parent.left
378− leftMargin: units.gu(.5)
379− top: parent.top
380− topMargin: units.gu(1)
381− bottom: parent.bottom
382− bottomMargin: units.gu(1)
379+ Icon {
380+ id: comboIcon
381+
382+ anchors {
383+ left: parent.left
384+ leftMargin: units.gu(.5)
385+ top: parent.top
386+ topMargin: units.gu(1)
387+ bottom: parent.bottom
388+ bottomMargin: units.gu(1)
389+ }
390+ width: units.gu(2)
391+ height: units.gu(2)
392+ name: "messages"
393+ color: "white"
383394 }
384− width: units.gu(2)
385− height: units.gu(2)
386− name: "messages"
387− color: "white"
388− }
389395
390− Label {
391− id: comboLabel
392−
393− anchors.left: comboIcon.right
394− anchors.leftMargin: units.gu(1)
395− anchors.verticalCenter: comboIcon.verticalCenter
396− verticalAlignment: Text.AlignVCenter
397− height: comboIcon.height
398− fontSize: "small"
399− color: "white"
400− text: actionLabel
396+ Label {
397+ id: comboLabel
398+
399+ anchors.left: comboIcon.right
400+ anchors.leftMargin: units.gu(1)
401+ anchors.verticalCenter: comboIcon.verticalCenter
402+ verticalAlignment: Text.AlignVCenter
403+ height: comboIcon.height
404+ fontSize: "small"
405+ color: "white"
406+ text: actionLabel
407+ }
401408 }
402409 }
410+ sourceComponent: (index > 2) ? comboEntry : undefined
403411 }
404− sourceComponent: (index > 2) ? comboEntry : undefined
405412 }
406413 }
407414 }