prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Scrolling containers should be focusable by default
  `ScrollHorizontal` and `ScrollVertical` should have `can_focus=True`.
  
  Check this doesn't break any of the example apps.
  
  </issue>
  <code>
  [start of src/textual/containers.py]
  1 """
  2 Container widgets for quick styling.
  3 
  4 """
  5 
  6 
  7 from .widget import Widget
  8 
  9 
  10 class Container(Widget):
  11     """Simple container widget, with vertical layout."""
  12 
  13     DEFAULT_CSS = """
  14     Container {
  15         height: 1fr;
  16         layout: vertical;
  17         overflow: auto;
  18     }
  19     """
  20 
  21 
  22 class Vertical(Widget):
  23     """A container which arranges children vertically."""
  24 
  25     DEFAULT_CSS = """
  26     Vertical {
  27         width: 1fr;
  28         layout: vertical;
  29         overflow: hidden hidden;
  30     }
  31     """
  32 
  33 
  34 class VerticalScroll(Widget):
  35     """A container which arranges children vertically, with an automatic vertical scrollbar."""
  36 
  37     DEFAULT_CSS = """
  38     VerticalScroll {
  39         width: 1fr;
  40         layout: vertical;
  41         overflow-y: auto;
  42     }
  43     """
  44 
  45 
  46 class Horizontal(Widget):
  47     """A container which arranges children horizontally."""
  48 
  49     DEFAULT_CSS = """
  50     Horizontal {
  51         height: 1fr;
  52         layout: horizontal;
  53         overflow: hidden hidden;
  54     }
  55     """
  56 
  57 
  58 class HorizontalScroll(Widget):
  59     """A container which arranges children horizontally, with an automatic horizontal scrollbar."""
  60 
  61     DEFAULT_CSS = """
  62     HorizontalScroll {
  63         height: 1fr;
  64         layout: horizontal;
  65         overflow-x: auto;
  66     }
  67     """
  68 
  69 
  70 class Center(Widget):
  71     """A container which centers children horizontally."""
  72 
  73     DEFAULT_CSS = """
  74     Center {
  75         align-horizontal: center;
  76         height: auto;
  77         width: 1fr;
  78     }
  79     """
  80 
  81 
  82 class Middle(Widget):
  83     """A container which aligns children vertically in the middle."""
  84 
  85     DEFAULT_CSS = """
  86     Middle {
  87         align-vertical: middle;
  88         width: auto;
  89         height: 1fr;
  90     }
  91     """
  92 
  93 
  94 class Grid(Widget):
  95     """A container with grid alignment."""
  96 
  97     DEFAULT_CSS = """
  98     Grid {
  99         height: 1fr;
  100         layout: grid;
  101     }
  102     """
  103 
  104 
  105 class Content(Widget, can_focus=True, can_focus_children=False):
  106     """A container for content such as text."""
  107 
  108     DEFAULT_CSS = """
  109     VerticalScroll {
  110         height: 1fr;
  111         layout: vertical;
  112         overflow-y: auto;
  113     }
  114     """
  115
  [end of src/textual/containers.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/src/textual/containers.py b/src/textual/containers.py
  --- a/src/textual/containers.py
  +++ b/src/textual/containers.py
  @@ -31,7 +31,7 @@
       """
   
   
  -class VerticalScroll(Widget):
  +class VerticalScroll(Widget, can_focus=True):
       """A container which arranges children vertically, with an automatic vertical scrollbar."""
   
       DEFAULT_CSS = """
  @@ -55,7 +55,7 @@
       """
   
   
  -class HorizontalScroll(Widget):
  +class HorizontalScroll(Widget, can_focus=True):
       """A container which arranges children horizontally, with an automatic horizontal scrollbar."""
   
       DEFAULT_CSS = """
  
verification_info: {"golden_diff": "diff --git a/src/textual/containers.py b/src/textual/containers.py\n--- a/src/textual/containers.py\n+++ b/src/textual/containers.py\n@@ -31,7 +31,7 @@\n     \"\"\"\n \n \n-class VerticalScroll(Widget):\n+class VerticalScroll(Widget, can_focus=True):\n     \"\"\"A container which arranges children vertically, with an automatic vertical scrollbar.\"\"\"\n \n     DEFAULT_CSS = \"\"\"\n@@ -55,7 +55,7 @@\n     \"\"\"\n \n \n-class HorizontalScroll(Widget):\n+class HorizontalScroll(Widget, can_focus=True):\n     \"\"\"A container which arranges children horizontally, with an automatic horizontal scrollbar.\"\"\"\n \n     DEFAULT_CSS = \"\"\"\n", "issue": "Scrolling containers should be focusable by default\n`ScrollHorizontal` and `ScrollVertical` should have `can_focus=True`.\n\nCheck this doesn't break any of the example apps.\n", "before_files": [{"content": "\"\"\"\nContainer widgets for quick styling.\n\n\"\"\"\n\n\nfrom .widget import Widget\n\n\nclass Container(Widget):\n    \"\"\"Simple container widget, with vertical layout.\"\"\"\n\n    DEFAULT_CSS = \"\"\"\n    Container {\n        height: 1fr;\n        layout: vertical;\n        overflow: auto;\n    }\n    \"\"\"\n\n\nclass Vertical(Widget):\n    \"\"\"A container which arranges children vertically.\"\"\"\n\n    DEFAULT_CSS = \"\"\"\n    Vertical {\n        width: 1fr;\n        layout: vertical;\n        overflow: hidden hidden;\n    }\n    \"\"\"\n\n\nclass VerticalScroll(Widget):\n    \"\"\"A container which arranges children vertically, with an automatic vertical scrollbar.\"\"\"\n\n    DEFAULT_CSS = \"\"\"\n    VerticalScroll {\n        width: 1fr;\n        layout: vertical;\n        overflow-y: auto;\n    }\n    \"\"\"\n\n\nclass Horizontal(Widget):\n    \"\"\"A container which arranges children horizontally.\"\"\"\n\n    DEFAULT_CSS = \"\"\"\n    Horizontal {\n        height: 1fr;\n        layout: horizontal;\n        overflow: hidden hidden;\n    }\n    \"\"\"\n\n\nclass HorizontalScroll(Widget):\n    \"\"\"A container which arranges children horizontally, with an automatic horizontal scrollbar.\"\"\"\n\n    DEFAULT_CSS = \"\"\"\n    HorizontalScroll {\n        height: 1fr;\n        layout: horizontal;\n        overflow-x: auto;\n    }\n    \"\"\"\n\n\nclass Center(Widget):\n    \"\"\"A container which centers children horizontally.\"\"\"\n\n    DEFAULT_CSS = \"\"\"\n    Center {\n        align-horizontal: center;\n        height: auto;\n        width: 1fr;\n    }\n    \"\"\"\n\n\nclass Middle(Widget):\n    \"\"\"A container which aligns children vertically in the middle.\"\"\"\n\n    DEFAULT_CSS = \"\"\"\n    Middle {\n        align-vertical: middle;\n        width: auto;\n        height: 1fr;\n    }\n    \"\"\"\n\n\nclass Grid(Widget):\n    \"\"\"A container with grid alignment.\"\"\"\n\n    DEFAULT_CSS = \"\"\"\n    Grid {\n        height: 1fr;\n        layout: grid;\n    }\n    \"\"\"\n\n\nclass Content(Widget, can_focus=True, can_focus_children=False):\n    \"\"\"A container for content such as text.\"\"\"\n\n    DEFAULT_CSS = \"\"\"\n    VerticalScroll {\n        height: 1fr;\n        layout: vertical;\n        overflow-y: auto;\n    }\n    \"\"\"\n", "path": "src/textual/containers.py"}]}