diff --git a/data/gtk.css b/data/gtk.css
index b5d1b6d..3a04426 100644
--- a/data/gtk.css
+++ b/data/gtk.css
@@ -30,6 +30,10 @@
font-weight:bold;
}
+window.fullscreen #cover_box {
+ background: black;
+}
+
#cover_info_revealer {
background-color:alpha(@theme_bg_color, 0.8);
box-shadow:0 0 10px @theme_bg_color;
diff --git a/data/ui/cover-panel.ui b/data/ui/cover-panel.ui
index e41148b..766723c 100644
--- a/data/ui/cover-panel.ui
+++ b/data/ui/cover-panel.ui
@@ -41,6 +41,7 @@
fill
@@ -81,9 +79,6 @@
slide-right
cover_info_revealer
diff --git a/src/coverpanel.py b/src/coverpanel.py
index a3adb52..13dbf8b 100644
--- a/src/coverpanel.py
+++ b/src/coverpanel.py
@@ -63,6 +63,11 @@ class CoverPanel(Gtk.Overlay):
# Initial actions
GObject.idle_add(self._enable_tracklist)
+ # Click handler for image
+ clickController = Gtk.GestureClick()
+ clickController.connect('pressed', self.on_cover_box_pressed)
+ self.cover_box.add_controller(clickController)
+
def get_toolbar(self):
return self.toolbar
@@ -72,11 +77,9 @@ class CoverPanel(Gtk.Overlay):
pass
- # FIXME on_cover_box_pressed()
- #@Gtk.Template.Callback()
- #def on_cover_box_pressed(self, widget, event):
- # if self._current_album and event.type == Gdk.EventType._2BUTTON_PRESS:
- # self.emit('toggle-fullscreen')
+ def on_cover_box_pressed(self, widget, npress, x, y):
+ if self._current_album and npress == 2:
+ self.emit('toggle-fullscreen')
def set_width(self, width):
@@ -150,13 +153,12 @@ class CoverPanel(Gtk.Overlay):
def set_fullscreen(self, active):
if active:
self.info_revealer.set_reveal_child(False)
- self.cover_box.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0, 0, 0, 1))
GObject.idle_add(self._resize_image)
self._fullscreened = True
else:
self._fullscreened = False
- self.info_revealer.set_reveal_child(True)
- self.cover_box.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0, 0, 0, 0))
+ if self._current_album:
+ self.info_revealer.set_reveal_child(True)
GObject.idle_add(self._resize_image)
@@ -171,7 +173,6 @@ class CoverPanel(Gtk.Overlay):
self._cover_pixbuf = None
else:
# Reset image
- self._cover_pixbuf = self._get_default_image()
self._cover_pixbuf = None
self._current_size = None
self._current_cover_album = album
@@ -205,7 +206,8 @@ class CoverPanel(Gtk.Overlay):
def _enable_tracklist(self):
if self._current_album:
# enable
- self.info_revealer.set_reveal_child(True)
+ if not self._fullscreened:
+ self.info_revealer.set_reveal_child(True)
else:
# disable
self.info_revealer.set_reveal_child(False)
diff --git a/src/window.py b/src/window.py
index a438b6f..c10e85e 100644
--- a/src/window.py
+++ b/src/window.py
@@ -230,7 +230,7 @@ class Window(Adw.ApplicationWindow):
def on_menu_toggle_fullscreen(self, action, value):
- self.panel_stack.set_visible_child(self.cover_panel_page)
+ self.panel_stack.set_visible_child(self._cover_panel)
if not self._state.get_property(WindowState.IS_FULLSCREENED):
self.fullscreen()
else:
@@ -259,7 +259,7 @@ class Window(Adw.ApplicationWindow):
def on_fullscreened(self, widget, fullscreened):
- self._fullscreen(fullscreened is True)
+ self._fullscreen(self.is_fullscreen())
# HeaderBar callbacks
@@ -544,17 +544,11 @@ class Window(Adw.ApplicationWindow):
if self._state.get_property(WindowState.IS_FULLSCREENED):
self.headerbar.hide()
self._cover_panel.set_fullscreen(True)
- # Hide cursor
- self.get_window().set_cursor(
- Gdk.Cursor.new_from_name(Gdk.Display.get_default(), "none")
- )
+ self.set_cursor(Gdk.Cursor.new_from_name("none", None))
else:
self.headerbar.show()
self._cover_panel.set_fullscreen(False)
- # Reset cursor
- self.get_window().set_cursor(
- Gdk.Cursor.new_from_name(Gdk.Display.get_default(), "default")
- )
+ self.set_cursor(Gdk.Cursor.new_from_name("default", None))
def _save_visible_panel(self):