diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 6a20442ed41..3996579e02a 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -2877,7 +2877,7 @@
padding: 3px 6px;
white-space: pre-line;
}
-.openerp .oe_list_content > tbody > tr > td > button, .openerp .oe_list_content > tbody > tr > th > button {
+.openerp .oe_list_content > tbody > tr > td > button.btn_img, .openerp .oe_list_content > tbody > tr > th > button.btn_img {
border: none;
background: transparent;
padding: 0;
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 38a47eed1c5..b08427e0832 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -2312,7 +2312,7 @@ $sheet-padding: 16px
padding: 3px 6px
white-space: pre-line
> td, > th
- > button
+ > button.btn_img
border: none
background: transparent
padding: 0
diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index 7426c70838c..d9a44fb991d 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -2260,8 +2260,8 @@ instance.web.list.Button = instance.web.list.Column.extend({
attrs = this.modifiers_for(row_data);
}
if (attrs.invisible) { return ''; }
-
- return QWeb.render('ListView.row.button', {
+ var template = this.icon && 'ListView.row.button' || 'ListView.row.text_button';
+ return QWeb.render(template, {
widget: this,
prefix: instance.session.prefix,
disabled: attrs.readonly
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 6f1c98cdda2..ded573f2af3 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -785,11 +785,17 @@
+
+ t-att-class="disabled ? 'oe_list_button_disabled btn_img' : 'btn_img'">
+
+