Repository navigation
data_editor not editable in full screen mode #10079
Copy link
Copy link
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
When a mo.ui.data_editor is opened in full screen mode double clicking the cells does not allow the editing.
This behaviour occurs both when full screen is reached:
- clicking fullscreen button in code cell output in edit mode
- clicking fullscreen button in App view when presented as Slide
this behaviour occurs both in local environment and molab
Will you submit a PR?
- Yes
Environment
Details
{
"marimo": "0.23.9",
"editable": false,
"location": "/usr/local/lib/python3.13/site-packages/marimo",
"OS": "Linux",
"OS Version": "6.8.12-680-6063-coreweave-amd64-f81899c8",
"Processor": "",
"Python Version": "3.13.11",
"Locale": "en_US",
"Binaries": {
"Browser": "--",
"Node": "v22.22.3",
"uv": "0.11.19 (x86_64-unknown-linux-gnu)"
},
"Dependencies": {
"click": "8.4.1",
"docutils": "0.23",
"itsdangerous": "2.2.0",
"jedi": "0.19.2",
"markdown": "3.10.2",
"narwhals": "2.22.0",
"packaging": "26.2",
"psutil": "7.2.2",
"pygments": "2.20.0",
"pymdown-extensions": "10.21.3",
"pyyaml": "6.0.3",
"starlette": "1.2.1",
"tomlkit": "0.15.0",
"typing-extensions": "4.15.0",
"uvicorn": "0.49.0",
"websockets": "16.0"
},
"Optional Dependencies": {
"altair": "6.1.0",
"anywidget": "0.11.0",
"duckdb": "1.5.3",
"loro": "1.10.3",
"nbformat": "5.10.4",
"openai": "2.41.0",
"pandas": "3.0.3",
"polars": "1.41.2",
"pyarrow": "24.0.0",
"pytest": "9.0.3",
"python-lsp-ruff": "2.3.1",
"python-lsp-server": "1.14.0",
"ruff": "0.15.16",
"sqlglot": "30.9.0",
"ty": "0.0.44"
},
"Experimental Flags": {}
}
Code to reproduce
# /// script
# [tool.marimo.runtime]
# auto_instantiate = false
# ///
<img width="1920" height="1032" alt="Image" src="https://github.com/user-attachments/assets/52644e3f-f683-4fd0-b47c-8c03e335c5d5" />
<img width="1920" height="1032" alt="Image" src="https://github.com/user-attachments/assets/c188f3e4-cf3f-4257-a7a6-349da90fe42e" />
import marimo
__generated_with = "0.23.9"
app = marimo.App(
width="medium",
auto_download=["html"],
)
@app.cell
def _():
import marimo as mo
import pandas as pd
import numpy as np
import altair as alt
# Utility to make a small, varied dataframe
rng = np.random.default_rng(42)
sample_size = 10
sample_df = pd.DataFrame({
"id": np.arange(1, sample_size+1),
"bool": np.bool(rng.integers(0,1,size=sample_size)),
"category": pd.Categorical(rng.choice(["A", "B", "C"], size=sample_size)),
"value_int": rng.integers(0, 100, size=sample_size),
"value_float": np.round(rng.normal(50, 15, size=sample_size), 2),
"text": [f"row_{i}" for i in range(sample_size)],
"date": pd.date_range("2024-01-01", periods=sample_size, freq="D")
})
mo.md("""
# Repro: mo.ui.data_editor cannot edit in fullscreen
Use this notebook to reproduce the issue where entering fullscreen on the data editor prevents editing cells.
Instructions:
1. Use the editor below and verify you can edit cells normally (e.g., change 'text' or numbers).
2. Click the fullscreen button on the top-right of the editor element.
3. Try to click into a cell and edit it while in fullscreen.
4. Observe whether focus is placed and whether keystrokes update the cell.
5. Exit fullscreen and compare behavior.
Below we provide two editors:
- A small dataframe with varied dtypes (int, float, categorical, text, date)
- A larger dataframe to test virtualization/scrolling in fullscreen
""")
return alt, mo, np, pd, rng, sample_df
@app.cell
def _(mo, sample_df):
# Small editor with varied dtypes
small_editor = mo.ui.data_editor(sample_df.copy())
# Display with some surrounding UI to ensure focus handling is realistic
mo.vstack([
mo.md("## Small editor (mixed dtypes)"),
small_editor,
mo.md("Selected summary (reactive): The table above is fully editable when not fullscreen. Enter fullscreen and try editing cells.")
])
return (small_editor,)
@app.cell
def _(mo, np, pd, rng):
# Larger editor to test scrolling/virtualization interactions in fullscreen
rows = 500
large_df = pd.DataFrame({
"row": np.arange(rows),
"group": rng.choice(list("ABCDE"), size=rows),
"x": np.round(rng.uniform(0, 1, size=rows), 3),
"y": np.round(rng.normal(0, 1, size=rows), 3),
"label": [f"item_{i}" for i in range(rows)]
})
large_editor = mo.ui.data_editor(large_df.copy())
mo.vstack([
mo.md("## Large editor (500 rows)"),
large_editor,
mo.md("Try entering fullscreen and editing multiple cells while scrolling.")
])
return (large_editor,)
@app.cell
def _(large_editor, mo, small_editor):
# Echo back current values to confirm edits propagate reactively when not in fullscreen
# Note: Access editor values from a separate cell
small_value = small_editor.value
large_value = large_editor.value
mo.tabs({
"Small head": mo.ui.data_editor(small_value.head(10)),
"Small describe": mo.ui.data_editor(small_value.describe(include="all").fillna("")),
"Large head": mo.ui.data_editor(large_value.head(10))
})
return (small_value,)
@app.cell
def _(alt, mo, np, pd, small_value):
# Minimal visual check: build a chart from the edited data to ensure reactive pipeline still works
chart_data = small_value.copy()
# Coerce types safely for plotting
if "value_float" in chart_data.columns:
chart_data["value_float_num"] = pd.to_numeric(chart_data["value_float"], errors="coerce")
else:
chart_data["value_float_num"] = np.nan
if "category" in chart_data.columns:
chart_data["category_str"] = chart_data["category"].astype(str)
else:
chart_data["category_str"] = "unknown"
chart = alt.Chart(chart_data).mark_bar().encode(
x=alt.X("category_str:N", title="Category"),
y=alt.Y("mean(value_float_num):Q", title="Mean value_float"),
tooltip=["category_str", alt.Tooltip("mean(value_float_num):Q", title="Mean value_float")]
).properties(title="Reactive check: mean(value_float) by category (updates when edits apply)")
mo.ui.altair_chart(chart)
return
@app.cell
def _(mo):
# Environment info to include in the issue
import sys
import platform
info = {
"python_version": sys.version.split(" ")[0],
"platform": platform.platform(),
"marimo_version": mo.__version__,
}
mo.md("""
### Environment
Below is useful environment information to paste into the issue along with reproduction steps.
""")
info
return
if __name__ == "__main__":
app.run()Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity
NukeMike commentedon Jul 5, 2026
Could be related to #4642
NukeMike commentedon Jul 5, 2026
Example recording of cell output full screen in edito mode.
Notice that when closing the full screen view, the double clicked cell seems to be floating around, maybe it is stuck behind the fullscreen view.
NukeMike commentedon Jul 5, 2026
Example recording in app view - present as slide
fix data editor in fullscreen (marimo-team#10098)
fix data editor in fullscreen (marimo-team#10098)