diff --git a/pyzebra/app/panel_ccl_integrate.py b/pyzebra/app/panel_ccl_integrate.py
index a722ef32b5768b2e57b952dbd3476573755b2ce9..5b406f8ba758b2238a078845b0ee388b419ba253 100644
--- a/pyzebra/app/panel_ccl_integrate.py
+++ b/pyzebra/app/panel_ccl_integrate.py
@@ -10,6 +10,7 @@ from bokeh.layouts import column, row
 from bokeh.models import (
     BasicTicker,
     Button,
+    CellEditor,
     CheckboxEditor,
     CheckboxGroup,
     ColumnDataSource,
@@ -326,9 +327,9 @@ def create():
     scan_table = DataTable(
         source=scan_table_source,
         columns=[
-            TableColumn(field="scan", title="Scan", width=50),
-            TableColumn(field="hkl", title="hkl", width=100),
-            TableColumn(field="fit", title="Fit", width=50),
+            TableColumn(field="scan", title="Scan", editor=CellEditor(), width=50),
+            TableColumn(field="hkl", title="hkl", editor=CellEditor(), width=100),
+            TableColumn(field="fit", title="Fit", editor=CellEditor(), width=50),
             TableColumn(field="export", title="Export", editor=CheckboxEditor(), width=50),
         ],
         width=310,  # +60 because of the index column
@@ -464,7 +465,7 @@ def create():
     fitparams_table = DataTable(
         source=fitparams_table_source,
         columns=[
-            TableColumn(field="param", title="Parameter"),
+            TableColumn(field="param", title="Parameter", editor=CellEditor()),
             TableColumn(field="value", title="Value", editor=NumberEditor()),
             TableColumn(field="vary", title="Vary", editor=CheckboxEditor()),
             TableColumn(field="min", title="Min", editor=NumberEditor()),
diff --git a/pyzebra/app/panel_hdf_param_study.py b/pyzebra/app/panel_hdf_param_study.py
index a371624fa96b116d3ad27b3e517b1715a3d4617d..652e9ea8d05dc363249a23b2dc2f010420e66ee6 100644
--- a/pyzebra/app/panel_hdf_param_study.py
+++ b/pyzebra/app/panel_hdf_param_study.py
@@ -10,6 +10,7 @@ from bokeh.models import (
     BasicTicker,
     BoxZoomTool,
     Button,
+    CellEditor,
     CheckboxGroup,
     ColumnDataSource,
     DataRange1d,
@@ -210,7 +211,7 @@ def create():
     scan_table = DataTable(
         source=scan_table_source,
         columns=[
-            TableColumn(field="file", title="file", width=150),
+            TableColumn(field="file", title="file", editor=CellEditor(), width=150),
             TableColumn(
                 field="param",
                 title="param",
@@ -218,9 +219,15 @@ def create():
                 editor=NumberEditor(),
                 width=50,
             ),
-            TableColumn(field="frame", title="Frame", formatter=num_formatter, width=70),
-            TableColumn(field="x_pos", title="X", formatter=num_formatter, width=70),
-            TableColumn(field="y_pos", title="Y", formatter=num_formatter, width=70),
+            TableColumn(
+                field="frame", title="Frame", formatter=num_formatter, editor=CellEditor(), width=70
+            ),
+            TableColumn(
+                field="x_pos", title="X", formatter=num_formatter, editor=CellEditor(), width=70
+            ),
+            TableColumn(
+                field="y_pos", title="Y", formatter=num_formatter, editor=CellEditor(), width=70
+            ),
         ],
         width=470,  # +60 because of the index column
         height=420,
diff --git a/pyzebra/app/panel_param_study.py b/pyzebra/app/panel_param_study.py
index 466acff0bbd67b4251c9acaf2097d5adf711b028..6943264bc44b631b5a3999dd7ae4dff1b37e8f8b 100644
--- a/pyzebra/app/panel_param_study.py
+++ b/pyzebra/app/panel_param_study.py
@@ -11,6 +11,7 @@ from bokeh.layouts import column, row
 from bokeh.models import (
     BasicTicker,
     Button,
+    CellEditor,
     CheckboxEditor,
     CheckboxGroup,
     ColumnDataSource,
@@ -494,10 +495,10 @@ def create():
     scan_table = DataTable(
         source=scan_table_source,
         columns=[
-            TableColumn(field="file", title="file", width=150),
-            TableColumn(field="scan", title="scan", width=50),
+            TableColumn(field="file", title="file", editor=CellEditor(), width=150),
+            TableColumn(field="scan", title="scan", editor=CellEditor(), width=50),
             TableColumn(field="param", title="param", editor=NumberEditor(), width=50),
-            TableColumn(field="fit", title="Fit", width=50),
+            TableColumn(field="fit", title="Fit", editor=CellEditor(), width=50),
             TableColumn(field="export", title="Export", editor=CheckboxEditor(), width=50),
         ],
         width=410,  # +60 because of the index column
@@ -624,7 +625,7 @@ def create():
     fitparams_table = DataTable(
         source=fitparams_table_source,
         columns=[
-            TableColumn(field="param", title="Parameter"),
+            TableColumn(field="param", title="Parameter", editor=CellEditor()),
             TableColumn(field="value", title="Value", editor=NumberEditor()),
             TableColumn(field="vary", title="Vary", editor=CheckboxEditor()),
             TableColumn(field="min", title="Min", editor=NumberEditor()),