From 81d9ddf6066fe8a7b52aadef4ead3e8c547f2c66 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Hamal=20Dvo=C5=99=C3=A1k?= <mordae@anilinux.org>
Date: Sat, 8 Mar 2025 21:56:41 +0100
Subject: [PATCH] Make overlay wrap

---
 lazy_player/__init__.py | 16 ++++++++++++----
 lazy_player/style.css   |  2 ++
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/lazy_player/__init__.py b/lazy_player/__init__.py
index 6412597..52f2699 100644
--- a/lazy_player/__init__.py
+++ b/lazy_player/__init__.py
@@ -10,7 +10,8 @@ import gi
 gi.require_version("Gdk", "4.0")
 gi.require_version("Gtk", "4.0")
 gi.require_version("Gst", "1.0")
-from gi.repository import Gdk, Gst, Gtk  # NOQA: E402
+gi.require_version("Pango", "1.0")
+from gi.repository import Gdk, Gst, Gtk, Pango  # NOQA: E402
 
 
 class MainWindow(Gtk.ApplicationWindow):
@@ -34,6 +35,8 @@ class MainWindow(Gtk.ApplicationWindow):
         self.overlay_label.set_valign(Gtk.Align.CENTER)
         self.overlay_label.set_halign(Gtk.Align.CENTER)
         self.overlay_label.set_visible(False)
+        self.overlay_label.set_wrap(True)
+        self.overlay_label.set_wrap_mode(Pango.WrapMode.WORD_CHAR)
 
         def update_overlay(widget: Gtk.Widget, frame_clock: Gdk.FrameClock, data: Any) -> bool:
             current_time = frame_clock.get_frame_time() / 1_000_000
@@ -65,12 +68,17 @@ class MainWindow(Gtk.ApplicationWindow):
         self.video_widget.set_vexpand(True)
         self.video_widget.set_hexpand(True)
 
-        overlay_box = Gtk.Box()
+        overlay_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
         overlay_box.set_name("black-overlay")
         overlay_box.set_vexpand(True)
         overlay_box.set_hexpand(True)
-        overlay_box.append(self.video_widget)
-        overlay_box.append(self.overlay_label)
+        
+        # Create an overlay container
+        overlay = Gtk.Overlay()
+        overlay.set_child(self.video_widget)
+        overlay.add_overlay(self.overlay_label)
+        
+        overlay_box.append(overlay)
 
         # Setup GStreamer pipeline
         self.pipeline = Gst.Pipeline.new("video-player")
diff --git a/lazy_player/style.css b/lazy_player/style.css
index 104a52f..e09d947 100644
--- a/lazy_player/style.css
+++ b/lazy_player/style.css
@@ -15,4 +15,6 @@ listview > row {
   background-color: rgba(64, 64, 64, 0.25);
   padding: 20px;
   border-radius: 10px;
+  margin: 48px;
+  width: 80%;
 }