diff --git a/modules/controlcenter/main.py b/modules/controlcenter/main.py index ec037ad..7651852 100644 --- a/modules/controlcenter/main.py +++ b/modules/controlcenter/main.py @@ -14,11 +14,9 @@ from modules.controlcenter.bluetooth import BluetoothConnections from modules.controlcenter.wifi import WifiConnections from services.brightness import Brightness from utils.exml import exml -from widgets.mousecapture import DropDownMouseCapture from utils.roam import audio_service, modus_service from widgets.wayland import WaylandWindow as Window from modules.controlcenter.player import PlayerBoxStack -from modules.controlcenter.expanded_player import ExpandedPlayer from services.mpris import MprisPlayerManager brightness_service = Brightness.get_initial() @@ -44,10 +42,6 @@ class ModusControlCenter(Window): self._updating_brightness = False self._updating_volume = False - self.expanded_player = ExpandedPlayer() - self.ex_mousecapture = DropDownMouseCapture( - layer="top", child_window=self.expanded_player - ) self.add_keybinding("Escape", self.hide_controlcenter) volume = 100 @@ -111,14 +105,15 @@ class ModusControlCenter(Window): self.brightness_scale.set_sensitive(False) # Create music widget with ultra-lazy player container - self.music_widget = Button( + self.music_widget = Box( name="music-widget", - on_clicked=lambda *_: ( - self.hide_controlcenter(), - self.expanded_player.set_visible(True), - self.ex_mousecapture.toggle_mousecapture(), - ), - child=PlayerBoxStack(MprisPlayerManager()), + h_align="start", + # on_clicked=lambda *_: ( + # self.hide_controlcenter(), + # self.expanded_player.set_visible(True), + # self.ex_mousecapture.toggle_mousecapture(), + # ), + children=PlayerBoxStack(MprisPlayerManager()), ) self.wifi_man = WifiConnections(self) @@ -440,7 +435,3 @@ class ModusControlCenter(Window): def hide_controlcenter(self, *_): self._mousecapture_parent.toggle_mousecapture() self.set_visible(False) - - def close_bluetooth(self, *args): - """Close Bluetooth control center""" - self.ex_mousecapture.hide_child_window() diff --git a/modules/controlcenter/player.py b/modules/controlcenter/player.py index 656145b..26f9364 100644 --- a/modules/controlcenter/player.py +++ b/modules/controlcenter/player.py @@ -12,6 +12,7 @@ from fabric.widgets.box import Box from fabric.widgets.button import Button from fabric.widgets.centerbox import CenterBox from fabric.widgets.image import Image +from modules.controlcenter.expanded_player import ExpandedPlayer from fabric.widgets.label import Label from fabric.widgets.overlay import Overlay from fabric.widgets.stack import Stack @@ -20,6 +21,7 @@ from loguru import logger from services.mpris import MprisPlayer, MprisPlayerManager import config.data as data +from widgets.mousecapture import DropDownMouseCapture CACHE_DIR = f"{data.CACHE_DIR}/media" @@ -379,6 +381,10 @@ class PlayerBox(Box): self.player_stack = player_stack self.fallback_cover_path = f"{data.HOME_DIR}/.current.wall" + self.expanded_player = ExpandedPlayer() + self.ex_mousecapture = DropDownMouseCapture( + layer="top", child_window=self.expanded_player + ) self.image_size = 120 self.icon_size = 15 @@ -515,7 +521,11 @@ class PlayerBox(Box): self.prev_button = Button( style_classes=["player-button"], child=self.skip_prev_icon, - on_clicked=self._on_player_prev, + on_clicked=lambda *_: ( + self.expanded_player.set_visible(True), + self.ex_mousecapture.toggle_mousecapture(), + ), + # on_clicked=self._on_player_prev, ) self.shuffle_button = Button( style_classes=["player-button"], @@ -530,12 +540,16 @@ class PlayerBox(Box): self.play_pause_button, self.next_button, ) + self.custom = Button( + child=self.track_info, + on_clicked=lambda *_: self.expanded_player.set_visible(True), + ) self.player_info_box = Box( name="player-info-box", v_align="center", h_align="start", orientation="v", - children=[self.track_info, self.controls_box, self.stack_buttons_box], + children=[self.custom, self.controls_box, self.stack_buttons_box], ) self.inner_box = Box( @@ -763,3 +777,7 @@ class PlayerBox(Box): GLib.idle_add(self._update_image, local_arturl) return None + + def close_bluetooth(self, *args): + """Close Bluetooth control center""" + self.ex_mousecapture.hide_child_window()