@@ -30,7 +30,7 @@ T.ComboBox {
3030 rightPadding: padding + (control .mirrored || ! indicator || ! indicator .visible ? 0 : indicator .width + spacing)
3131
3232 delegate: MenuItem {
33- implicitWidth: ListView . view . width
33+ implicitWidth: Math . max ( DS . Style . control . implicitWidth (control), popup . implicitWidth - DS . Style . popup . margin * 2 )
3434 useIndicatorPadding: true
3535 text: control .textRole ? (Array .isArray (control .model ) ? modelData[control .textRole ] : (model[control .textRole ] === undefined ? modelData[control .textRole ] : model[control .textRole ])) : modelData
3636 icon .name : (control .iconNameRole && model[control .iconNameRole ] !== undefined ) ? model[control .iconNameRole ] : null
@@ -103,8 +103,10 @@ T.ComboBox {
103103 }
104104
105105 T .TextField {
106- Layout .fillWidth : true
106+ Layout .fillWidth : ! control . flat
107107 Layout .fillHeight : true
108+ implicitWidth: control .flat ? contentWidth : implicitBackgroundWidth + leftInset + rightInset
109+ || contentWidth + leftPadding + rightPadding
108110 Layout .rightMargin : DS .Style .comboBox .spacing
109111 text: control .editable ? control .editText : control .displayText
110112
@@ -124,7 +126,8 @@ T.ComboBox {
124126 }
125127
126128 background: Item {
127- implicitWidth: DS .Style .comboBox .width
129+ implicitWidth: control .flat ? control .implicitContentWidth + control .leftPadding + control .rightPadding
130+ : DS .Style .comboBox .width
128131 implicitHeight: DS .Style .comboBox .height
129132 Loader {
130133 anchors .fill : parent
@@ -156,8 +159,11 @@ T.ComboBox {
156159 }
157160
158161 popup: Popup {
162+ id: popup
163+ leftMargin: DS .Style .popup .margin
164+ rightMargin: DS .Style .popup .margin
159165 palette: control .palette
160- implicitWidth: control .width
166+ implicitWidth: control .flat ? Math . max ( contentItem . implicitWidth , control . width ) : control . width
161167 contentItem: ArrowListView {
162168 clip: true
163169 maxVisibleItems: control .maxVisibleItems
0 commit comments