From ddf8368bfd03478a708a55408596b3382ec31d0e Mon Sep 17 00:00:00 2001 From: coderkun Date: Sat, 25 Jul 2020 11:07:57 +0200 Subject: [PATCH] Fix shortcut to exit fullscreen mode (close #71) Fix the shortcut for fullscreen mode to also exit it. Additionally fix the shortcuts window to show the correct shortcut for fullscreen mode. --- data/gtk.glade | 3 +- data/gtk.menu.ui | 5 ++ data/gtk.shortcuts.ui | 2 +- locale/de/LC_MESSAGES/mcg.mo | Bin 4320 -> 4374 bytes locale/de/LC_MESSAGES/mcg.po | 92 ++++++++++++++++++----------------- locale/en/LC_MESSAGES/mcg.mo | Bin 4067 -> 4121 bytes locale/en/LC_MESSAGES/mcg.po | 92 ++++++++++++++++++----------------- mcg/widgets.py | 17 +++++-- 8 files changed, 115 insertions(+), 96 deletions(-) diff --git a/data/gtk.glade b/data/gtk.glade index 2c1570e..138fa15 100644 --- a/data/gtk.glade +++ b/data/gtk.glade @@ -419,7 +419,7 @@ True True Show the cover in fullscreen mode - + win.toggle-fullscreen True @@ -427,7 +427,6 @@ view-fullscreen-symbolic - False diff --git a/data/gtk.menu.ui b/data/gtk.menu.ui index a5d3df7..e12fb59 100644 --- a/data/gtk.menu.ui +++ b/data/gtk.menu.ui @@ -17,6 +17,11 @@ Clear Playlist <Primary>r + + win.toggle-fullscreen + Toggle Fullscreen + F11 +
diff --git a/data/gtk.shortcuts.ui b/data/gtk.shortcuts.ui index 1fd5190..048cc3b 100644 --- a/data/gtk.shortcuts.ui +++ b/data/gtk.shortcuts.ui @@ -97,7 +97,7 @@ 1 - <alt>Return F11 + F11 Show the cover in fullscreen mode diff --git a/locale/de/LC_MESSAGES/mcg.mo b/locale/de/LC_MESSAGES/mcg.mo index 49179f218aa189fbcb7fa5a58931c0b7600b118b..903b0516f1ff54a08e66d1618ccc6e49195ce698 100644 GIT binary patch delta 1329 zcmXZaT}TvB7{>9ly6d{?nydMd`JD+-8!E|0lxbTFMiG$|UX-LRT1*<6m|$!m5n)j< z=uJ^zbP-ZPi$OspNz_F}S3wq07exk9kWg3J|B*Ay%x}(_bI$vocjj~DL{;Kbu6NvU z#JEbh_M{kd6i2+=bfg)R2_6h#5IIe`wFdpP!x+Q{+aJYr+Pg6u4`42KpvDhkzA*`N z#tv{XgBO$N!#k+JNo>cbScv7!R-zFs#a85%=|{~QMoyEk?emyJ`x0tT*HMYwL_hJ( z10Iz56I7HKd4WnY}B8He*T|g+pc0z5&gBOz%9rWv(MU= zMg4g;o!k`gB(fPZgeuWlEXFISiBnjE)2MIy5mkwwr~v zpX7Ux`YZ5nIuzh9Y9SBX*3SH>%H&}l7NG)eK$S3p`eZH0-)xRx0iHswH)b72{R=lx z8@rE+^DM!GGI@zw;4Ny$-%yqCFj|2!P&+O`l{Ab>Jcb&-7uR49*5XA}fXAqWXHgq^ zgPJ#oYccVK2bIXr>iTJFQ0*qvg6*hZ;<y8C(2P5J7hKjmPTk0a~YwO+S jjG2^;bxBWVmoId%&v81AIb9V)@y?!sxYO%)<&69XwH$x3 delta 1286 zcmXZbOGs2v9LMo9Ha8ueaeRz3Sx)4{6d{G<5Xkf}n{g2oSRu9uh8~iFA+03D?n2N_ z33V|F$%rf>!WI+JA|t9rQJWr{1T8R%+Dt)&E|R{#IF~#3bI&>Vod5s)@14tu&yDUv zjeo*$bnt87mn$*m820B~$j}fx1$24mG0aV5MQ0t7M z=AB1Z3wn0oiXE6jWqQl{09B#q7{s@zSF>RIf1ty6vt-*V46b23$ioVlM21Y0bvtsJ zwjlLaCi`iTyg7_2%~4#7{ium!xCt+!-sK}y1zw>7d_Yb!$7K+|p(>Fl>ja*&-ax&I z7pS;zLeyUY-qWFl=21IaL{+AUwfGwqu#B?kUr>vBRY~M4HW`d!Cu+S@)-$MYU?SyYAGMQ-%5ln_N74X6copccxbcGP1Xu%5M!pmu%%$\n" "Language-Team: \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 2.3.1\n" "X-Poedit-Basepath: ../../..\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -62,127 +62,127 @@ msgstr "Zu MPD verbinden" msgid "Show the cover in fullscreen mode" msgstr "Das Cover im Vollbildmodus anzeigen" -#: data/gtk.glade:470 data/gtk.glade:549 +#: data/gtk.glade:469 data/gtk.glade:548 msgid "Select multiple albums" msgstr "Mehrere Alben auswählen" -#: data/gtk.glade:492 data/gtk.shortcuts.ui:88 +#: data/gtk.glade:491 data/gtk.shortcuts.ui:88 msgid "Clear the playlist" msgstr "Die Wiedergabeliste leeren" -#: data/gtk.glade:526 data/gtk.shortcuts.ui:114 +#: data/gtk.glade:525 data/gtk.shortcuts.ui:114 msgid "Search the library" msgstr "Die Bibliothek durchsuchen" -#: data/gtk.glade:571 +#: data/gtk.glade:570 msgid "Settings and actions" msgstr "Einstellungen und Aktionen" -#: data/gtk.glade:676 +#: data/gtk.glade:675 msgid "Enter hostname or IP address" msgstr "Hostnamen oder IP-Adresse eingeben" -#: data/gtk.glade:688 +#: data/gtk.glade:687 msgid "Enter URL or local path" msgstr "URL oder lokalen Pfad eingeben" -#: data/gtk.glade:701 +#: data/gtk.glade:700 msgid "Enter password or leave blank" msgstr "Passwort eingeben oder leer lassen" -#: data/gtk.glade:729 +#: data/gtk.glade:728 msgid "Host:" msgstr "Host:" -#: data/gtk.glade:741 +#: data/gtk.glade:740 msgid "Port:" msgstr "Port:" -#: data/gtk.glade:753 +#: data/gtk.glade:752 msgid "Password:" msgstr "Passwort:" -#: data/gtk.glade:765 +#: data/gtk.glade:764 msgid "Image Directory:" msgstr "Bildordner:" -#: data/gtk.glade:866 +#: data/gtk.glade:865 msgid "File:" msgstr "Datei:" -#: data/gtk.glade:879 +#: data/gtk.glade:878 msgid "Audio:" msgstr "Audio:" -#: data/gtk.glade:892 +#: data/gtk.glade:891 msgid "Bitrate:" msgstr "Bitrate:" -#: data/gtk.glade:905 +#: data/gtk.glade:904 msgid "Error:" msgstr "Fehler:" -#: data/gtk.glade:917 data/gtk.glade:933 data/gtk.glade:949 data/gtk.glade:965 +#: data/gtk.glade:916 data/gtk.glade:932 data/gtk.glade:948 data/gtk.glade:964 msgid "none" msgstr "nichts" -#: data/gtk.glade:1000 +#: data/gtk.glade:999 msgid "Status" msgstr "Status" -#: data/gtk.glade:1085 +#: data/gtk.glade:1084 msgid "Albums" msgstr "Alben" -#: data/gtk.glade:1097 +#: data/gtk.glade:1096 msgid "Songs" msgstr "Songs" -#: data/gtk.glade:1109 +#: data/gtk.glade:1108 msgid "Artists" msgstr "Künstler" -#: data/gtk.glade:1133 +#: data/gtk.glade:1132 msgid "Seconds" msgstr "Sekunden" -#: data/gtk.glade:1180 +#: data/gtk.glade:1179 msgid "Seconds played" msgstr "Sekunden gespielt" -#: data/gtk.glade:1191 +#: data/gtk.glade:1190 msgid "Seconds running" msgstr "Sekunden laufend" -#: data/gtk.glade:1222 +#: data/gtk.glade:1221 msgid "Statistics" msgstr "Statistiken" -#: data/gtk.glade:1292 +#: data/gtk.glade:1291 msgid "Audio Devices" msgstr "Audiogeräte" -#: data/gtk.glade:1306 +#: data/gtk.glade:1305 msgid "Server" msgstr "Server" -#: data/gtk.glade:1487 data/gtk.menu.ui:30 +#: data/gtk.glade:1486 data/gtk.menu.ui:35 msgid "Cover" msgstr "Cover" -#: data/gtk.glade:1629 data/gtk.menu.ui:36 +#: data/gtk.glade:1628 data/gtk.menu.ui:41 msgid "Playlist" msgstr "Wiedergabeliste" -#: data/gtk.glade:1656 +#: data/gtk.glade:1655 msgid "search library" msgstr "Bibliothek durchsuchen" -#: data/gtk.glade:1881 data/gtk.menu.ui:42 +#: data/gtk.glade:1880 data/gtk.menu.ui:47 msgid "Library" msgstr "Bibliothek" -#: data/gtk.glade:1964 +#: data/gtk.glade:1963 msgid "" "CoverGrid is a client for the Music Player Daemon, focusing on albums " "instead of single tracks." @@ -202,19 +202,23 @@ msgstr "Abspielen" msgid "Clear Playlist" msgstr "Playlist leeren" -#: data/gtk.menu.ui:24 +#: data/gtk.menu.ui:22 +msgid "Toggle Fullscreen" +msgstr "Vollbild wechseln" + +#: data/gtk.menu.ui:29 msgid "Connection" msgstr "Verbindung" -#: data/gtk.menu.ui:50 +#: data/gtk.menu.ui:55 msgid "Keyboard Shortcuts" msgstr "Tastenkombinationen" -#: data/gtk.menu.ui:55 +#: data/gtk.menu.ui:60 msgid "Info" msgstr "Info" -#: data/gtk.menu.ui:60 +#: data/gtk.menu.ui:65 msgid "Quit" msgstr "Beenden" @@ -270,27 +274,27 @@ msgstr "{} mit {}" msgid "{}:{} minutes" msgstr "{}:{} Minuten" -#: mcg/widgets.py:1279 mcg/widgets.py:1620 +#: mcg/widgets.py:1285 mcg/widgets.py:1626 msgid "cancel" msgstr "abbrechen" -#: mcg/widgets.py:1296 mcg/widgets.py:1637 +#: mcg/widgets.py:1302 mcg/widgets.py:1643 msgid "play" msgstr "abspielen" -#: mcg/widgets.py:1299 +#: mcg/widgets.py:1305 msgid "remove" msgstr "entfernen" -#: mcg/widgets.py:1623 mcg/widgets.py:1640 +#: mcg/widgets.py:1629 mcg/widgets.py:1646 msgid "queue" msgstr "einreihen" -#: mcg/widgets.py:1872 +#: mcg/widgets.py:1878 msgid "Loading albums" msgstr "Alben werden geladen" -#: mcg/widgets.py:1954 +#: mcg/widgets.py:1960 msgid "Loading images" msgstr "Bilder werden geladen" diff --git a/locale/en/LC_MESSAGES/mcg.mo b/locale/en/LC_MESSAGES/mcg.mo index cb66775b0b84838279a99d8ea109e2bedb9af7b6..339d2b960969c2bb923009a33a9e200321475bf4 100644 GIT binary patch delta 1333 zcmYk)Ur3Wt7{~Fm`A(Z|>ZED^bShGeGE^Ljl(km7h`b0T35v*CM$7_BP%z#IL`b6O zB_W8Q|5PNwNGPJLE-L8HRY3&aR2K%-g+X++zCSrZFMIcS&w0;to^zh}e2!hHb!RJ_ z^M)(Uy@Gq2-hPzl(3leNVFbg-&%~@Nv50mfhB0CLQ@DusRxHJCtiV3h_#uoM zsJId2XI$GJ$8y@IQG2?CTF6x_ zBEOmDK`VcZTIp-+CtOVX8wN3tnjpxwl&}=F!zh1BT!VVwfQpNw5_KY>W;<&Bomhqk zv6B2|mo=McF zyojzQnBqYb-?sxEqWWi0D}G`9fU4A24Bk+gi{EigI_<5=L5Gr8= zwZSE*Jaw)eunHBp29+p@O4MWBg*r6*u@aA=CY(UUokN|On;6Ges08z<3jMJ9&~70QHQ46I)EzKIBKG6sBd{2HNhj)&Ys)%FKz!@B$s)Qs=yc2j(?yw^c(ew z@<@>iOi8(S$my%zL|;31id&a*D6g&!-kj6x+w3I+Rna7E;uhxA#&m7;1_D*Sb>3JY z73rkCexcWxEtt-I4CD$TJxBWcvzglTP&RvX-(V(l*qaF63b!@3Bx;*mJDS^8H??@l Y;u-(i=A5r&%=tI|!2jdp-c(uQFLHW)=l}o! delta 1290 zcmXZaKWI}?6vy!!`=0%mG;K)}ibktYw20ay2%-3=G3n4juwt=;C|dkes0uDl;i<*A zREInQ6=@x$A_#GagNTCSR2;;igATD^!T(f6#11WffAKz&_sP5WopbIzxwpDLZ1k$_ zPRVc$@LkV0x5k(gIPP%c`r#VWj6bmrS8y$cxydNEdW>TTyX|-i8+h)+7R+Kh9zwl; z3OkJP%sKnQ1U4~IL~596RN=dL93Nr~!$fPLTQH6}WXhaG#f>2!bHP4e!d9O1s6E|8 zEyTxq>YID~(8|lGl|Hq;!U)gruo0I~36@a>S5Z53xv6jqYCeLB>qHgWfxK!msQiN% z#u1EC-<;)#5_+h>0&c?FxDKD83cN)Xc#rDTA}VeP)rmj20VAxo6H}=81E`LTq4E?^ zag*pNp>HRq?8FRerL)#Ys1CivAihEUHB~$Q1wRIi`D@1)nABPMhP6&vU4qq#ASz!Z zNdNW1W(HWi=|L4vqFR?h1sp~Wi#clNFQPhd1+}9|)PjnrvoeD^E32rTN2#U`rBL;T zP;nz6`mX}V?7(T%VHrntCXZUkRn&VW\n" "Language-Team: \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 2.3.1\n" "X-Poedit-Basepath: ../../..\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SearchPath-0: data/gtk.glade\n" @@ -61,127 +61,127 @@ msgstr "Connect to MPD" msgid "Show the cover in fullscreen mode" msgstr "Show the cover in fullscreen mode" -#: data/gtk.glade:470 data/gtk.glade:549 +#: data/gtk.glade:469 data/gtk.glade:548 msgid "Select multiple albums" msgstr "Select multiple albums" -#: data/gtk.glade:492 data/gtk.shortcuts.ui:88 +#: data/gtk.glade:491 data/gtk.shortcuts.ui:88 msgid "Clear the playlist" msgstr "Clear the playlist" -#: data/gtk.glade:526 data/gtk.shortcuts.ui:114 +#: data/gtk.glade:525 data/gtk.shortcuts.ui:114 msgid "Search the library" msgstr "Search the library" -#: data/gtk.glade:571 +#: data/gtk.glade:570 msgid "Settings and actions" msgstr "Settings and actions" -#: data/gtk.glade:676 +#: data/gtk.glade:675 msgid "Enter hostname or IP address" msgstr "Enter hostname or IP address" -#: data/gtk.glade:688 +#: data/gtk.glade:687 msgid "Enter URL or local path" msgstr "Enter URL or local path" -#: data/gtk.glade:701 +#: data/gtk.glade:700 msgid "Enter password or leave blank" msgstr "Enter password or leave blank" -#: data/gtk.glade:729 +#: data/gtk.glade:728 msgid "Host:" msgstr "Host:" -#: data/gtk.glade:741 +#: data/gtk.glade:740 msgid "Port:" msgstr "Port:" -#: data/gtk.glade:753 +#: data/gtk.glade:752 msgid "Password:" msgstr "Password:" -#: data/gtk.glade:765 +#: data/gtk.glade:764 msgid "Image Directory:" msgstr "Image Directory:" -#: data/gtk.glade:866 +#: data/gtk.glade:865 msgid "File:" msgstr "File:" -#: data/gtk.glade:879 +#: data/gtk.glade:878 msgid "Audio:" msgstr "Audio:" -#: data/gtk.glade:892 +#: data/gtk.glade:891 msgid "Bitrate:" msgstr "Bitrate:" -#: data/gtk.glade:905 +#: data/gtk.glade:904 msgid "Error:" msgstr "Error:" -#: data/gtk.glade:917 data/gtk.glade:933 data/gtk.glade:949 data/gtk.glade:965 +#: data/gtk.glade:916 data/gtk.glade:932 data/gtk.glade:948 data/gtk.glade:964 msgid "none" msgstr "none" -#: data/gtk.glade:1000 +#: data/gtk.glade:999 msgid "Status" msgstr "Status" -#: data/gtk.glade:1085 +#: data/gtk.glade:1084 msgid "Albums" msgstr "Albums" -#: data/gtk.glade:1097 +#: data/gtk.glade:1096 msgid "Songs" msgstr "Songs" -#: data/gtk.glade:1109 +#: data/gtk.glade:1108 msgid "Artists" msgstr "Artists" -#: data/gtk.glade:1133 +#: data/gtk.glade:1132 msgid "Seconds" msgstr "Seconds" -#: data/gtk.glade:1180 +#: data/gtk.glade:1179 msgid "Seconds played" msgstr "Seconds" -#: data/gtk.glade:1191 +#: data/gtk.glade:1190 msgid "Seconds running" msgstr "Seconds running" -#: data/gtk.glade:1222 +#: data/gtk.glade:1221 msgid "Statistics" msgstr "Statistics" -#: data/gtk.glade:1292 +#: data/gtk.glade:1291 msgid "Audio Devices" msgstr "Audio Devices" -#: data/gtk.glade:1306 +#: data/gtk.glade:1305 msgid "Server" msgstr "Server" -#: data/gtk.glade:1487 data/gtk.menu.ui:30 +#: data/gtk.glade:1486 data/gtk.menu.ui:35 msgid "Cover" msgstr "Cover" -#: data/gtk.glade:1629 data/gtk.menu.ui:36 +#: data/gtk.glade:1628 data/gtk.menu.ui:41 msgid "Playlist" msgstr "Playlist" -#: data/gtk.glade:1656 +#: data/gtk.glade:1655 msgid "search library" msgstr "search library" -#: data/gtk.glade:1881 data/gtk.menu.ui:42 +#: data/gtk.glade:1880 data/gtk.menu.ui:47 msgid "Library" msgstr "Library" -#: data/gtk.glade:1964 +#: data/gtk.glade:1963 msgid "" "CoverGrid is a client for the Music Player Daemon, focusing on albums " "instead of single tracks." @@ -201,19 +201,23 @@ msgstr "Play" msgid "Clear Playlist" msgstr "Clear Playlist" -#: data/gtk.menu.ui:24 +#: data/gtk.menu.ui:22 +msgid "Toggle Fullscreen" +msgstr "Toggle fullscreen" + +#: data/gtk.menu.ui:29 msgid "Connection" msgstr "Connection" -#: data/gtk.menu.ui:50 +#: data/gtk.menu.ui:55 msgid "Keyboard Shortcuts" msgstr "Keyboard Shortcuts" -#: data/gtk.menu.ui:55 +#: data/gtk.menu.ui:60 msgid "Info" msgstr "Info" -#: data/gtk.menu.ui:60 +#: data/gtk.menu.ui:65 msgid "Quit" msgstr "Quit" @@ -269,27 +273,27 @@ msgstr "{} feat. {}" msgid "{}:{} minutes" msgstr "{}:{} minutes" -#: mcg/widgets.py:1279 mcg/widgets.py:1620 +#: mcg/widgets.py:1285 mcg/widgets.py:1626 msgid "cancel" msgstr "cancel" -#: mcg/widgets.py:1296 mcg/widgets.py:1637 +#: mcg/widgets.py:1302 mcg/widgets.py:1643 msgid "play" msgstr "play" -#: mcg/widgets.py:1299 +#: mcg/widgets.py:1305 msgid "remove" msgstr "remove" -#: mcg/widgets.py:1623 mcg/widgets.py:1640 +#: mcg/widgets.py:1629 mcg/widgets.py:1646 msgid "queue" msgstr "queue" -#: mcg/widgets.py:1872 +#: mcg/widgets.py:1878 msgid "Loading albums" msgstr "Loading albums" -#: mcg/widgets.py:1954 +#: mcg/widgets.py:1960 msgid "Loading images" msgstr "Loading images" diff --git a/mcg/widgets.py b/mcg/widgets.py index ac65d2a..c983c12 100644 --- a/mcg/widgets.py +++ b/mcg/widgets.py @@ -230,6 +230,10 @@ class Window(): self._panel_action.set_enabled(False) self._panel_action.connect('change-state', self.on_menu_panel) self._appwindow.add_action(self._panel_action) + self._toggle_fullscreen_action = Gio.SimpleAction.new("toggle-fullscreen", None) + self._toggle_fullscreen_action.set_enabled(True) + self._toggle_fullscreen_action.connect('activate', self.on_menu_toggle_fullscreen) + self._appwindow.add_action(self._toggle_fullscreen_action) def get(self): @@ -269,6 +273,14 @@ class Window(): self._stack.set_visible_child(self._panels[int(value.get_string())].get()) + def on_menu_toggle_fullscreen(self, action, value): + self._stack.set_visible_child(self._panels[Window._PANEL_INDEX_COVER].get()) + if not self._state.get_property(WindowState.IS_FULLSCREENED): + self._appwindow.fullscreen() + else: + self._appwindow.unfullscreen() + + # HeaderBar callbacks def on_header_bar_stack_switched(self, widget): @@ -1029,7 +1041,6 @@ class CoverPanel(GObject.GObject): def get_signal_handlers(self): return { - 'on_cover-toolbar-fullscreen_clicked': self.on_fullscreen_clicked, 'on_cover-box_button_press_event': self.on_cover_box_pressed, 'on_cover-scroll_size_allocate': self.on_cover_size_allocate, 'on_cover-songs_button_press_event': self.on_songs_start_change, @@ -1037,10 +1048,6 @@ class CoverPanel(GObject.GObject): } - def on_fullscreen_clicked(self, widget): - self.emit('toggle-fullscreen') - - def on_cover_box_pressed(self, widget, event): if self._current_album and event.type == Gdk.EventType._2BUTTON_PRESS: self.emit('toggle-fullscreen')