Skip to content

Commit b997d6b

Browse files
authored
Fix: Gamepad menus do not work correctly
1 parent 97d8ecd commit b997d6b

5 files changed

Lines changed: 28 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
1515
- Thumbnail generation speed has been improved [`155f064`](https://github.com/ollm/OpenComic/commit/155f064b4c9716c050a6231e44323169686997ea)
1616
- Support for `HEIC` image format [`4f4b5a1`](https://github.com/ollm/OpenComic/commit/4f4b5a16572ea2bd5aff2e519d473b42d80312fb)
1717
- Option to apply configuration profile based on folder/file label [`71d9ff5`](https://github.com/ollm/OpenComic/commit/71d9ff5655f934e4d710e1833b081e4fddf8d428)
18-
- Option to disable `Align with next horizontal` when reading on double page
18+
- Option to disable `Align with next horizontal` when reading on double page [`97d8ecd`](https://github.com/ollm/OpenComic/commit/97d8ecdde04c2a5c418440d8fbbf06496b16c8ba)
1919

20+
##### 🐛 Bug Fixes
21+
22+
- Gamepad menus do not work correctly
2023

2124
## [v1.4.1](https://github.com/ollm/OpenComic/releases/tag/v1.4.1) (08-02-2025)
2225

scripts/gamepad.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -715,13 +715,13 @@ function showMenu()
715715
{
716716
let query = !onReading ? '#index-menu-gamepad' : '#reading-menu-gamepad';
717717

718+
dom.query('.gamepad-reading-music').css({display: !handlebarsContext.hasMusic ? 'none' : ''});
719+
718720
if(document.querySelector(query+' .menu-simple.a'))
719721
events.desactiveMenu(query);
720722
else
721723
events.activeMenu(query, false, 'gamepad');
722724

723-
dom.query('.gamepad-reading-music').css({display: !handlebarsContext.hasMusic ? 'none' : ''});
724-
725725
if(!onReading)
726726
{
727727
let viewIcon = document.querySelector('.menu-gamepad-view-icon');
@@ -814,7 +814,8 @@ function goBack(fromKeyboard = false)
814814

815815
if(menuActive)
816816
{
817-
eval(menuActive.getAttribute('onclick'));
817+
const menu = menuActive.closest('.menu');
818+
if(menu) events.desactiveMenu(menu);
818819

819820
return;
820821
}
@@ -849,7 +850,8 @@ function goForwards(fromKeyboard = false)
849850

850851
if(menuActive)
851852
{
852-
eval(menuActive.getAttribute('onclick'));
853+
const menu = menuActive.closest('.menu');
854+
if(menu) events.desactiveMenu(menu);
853855

854856
return;
855857
}

scripts/reading.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3819,6 +3819,15 @@ function loadReadingPages(key = false, edit = false, tab = 'page-layout')
38193819
updateConfigLabels();
38203820

38213821
events.events();
3822+
3823+
// Fix error in gamepad menus
3824+
(async function(){
3825+
3826+
await app.sleep(5);
3827+
3828+
events.events();
3829+
3830+
})();
38223831
}
38233832

38243833
function setReadingShortcutPagesConfig(key = 0, desactiveMenu = true)

templates/index.elements.menus.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,12 +167,12 @@
167167
{{language.global.filterCurrentPage}}
168168
</div>
169169

170-
<div class="menu-simple-element gamepad-item" onclick="events.desactiveMenu('#index-menu-gamepad'); events.activeMenu('#index-view', false, 'gamepad', 'gamepad');">
170+
<div class="menu-simple-element gamepad-item" onclick="(async function(){await events.desactiveMenu('#index-menu-gamepad'); events.activeMenu('#index-view', false, 'gamepad', 'gamepad');})()">
171171
<i class="material-icon menu-simple-icon-first menu-gamepad-view-icon">view_module</i>
172172
{{language.global.view.main}}
173173
</div>
174174

175-
<div class="menu-simple-element gamepad-item" onclick="events.desactiveMenu('#index-menu-gamepad'); events.activeMenu('#index-sort', false, 'gamepad', 'gamepad');">
175+
<div class="menu-simple-element gamepad-item" onclick="(async function(){await events.desactiveMenu('#index-menu-gamepad'); events.activeMenu('#index-sort', false, 'gamepad', 'gamepad');})()">
176176
<i class="material-icon menu-simple-icon-first">sort</i>
177177
{{language.global.sort.main}}
178178
</div>

templates/reading.elements.menus.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,37 +126,37 @@
126126
<div class="menu-simple menu-simple-header elevation-2" style="width: 256px;">
127127
<div class="menu-simple-content">
128128
<div>
129-
<div class="menu-simple-element gamepad-item" onclick="events.desactiveMenu('#reading-menu-gamepad'); reading.loadBookmarks(); events.activeMenu('#collections-bookmark', false, 'gamepad', 'gamepad');">
129+
<div class="menu-simple-element gamepad-item" onclick="(async function(){await events.desactiveMenu('#reading-menu-gamepad'); reading.loadBookmarks(); events.activeMenu('#collections-bookmark', false, 'gamepad', 'gamepad');})()">
130130
<i class="material-icon menu-simple-icon-first">collections_bookmark</i>
131131
{{language.reading.viewBookmarks}}
132132
</div>
133133

134-
<div class="menu-simple-element gamepad-item gamepad-reading-music" onclick="events.desactiveMenu('#reading-menu-gamepad'); reading.music.loadMenu(); events.activeMenu('#reading-music', false, 'gamepad', 'gamepad');">
134+
<div class="menu-simple-element gamepad-item gamepad-reading-music" onclick="(async function(){await events.desactiveMenu('#reading-menu-gamepad'); reading.music.loadMenu(); events.activeMenu('#reading-music', false, 'gamepad', 'gamepad');})()">
135135
<i class="material-icon menu-simple-icon-first">queue_music</i>
136136
{{language.reading.music.main}}
137137
</div>
138138

139-
<div class="menu-simple-element gamepad-item" onclick="events.desactiveMenu('#reading-menu-gamepad'); reading.loadTrackigSites(); events.activeMenu('#tracking-sites', false, 'gamepad', 'gamepad');">
139+
<div class="menu-simple-element gamepad-item" onclick="(async function(){await events.desactiveMenu('#reading-menu-gamepad'); reading.loadTrackigSites(); events.activeMenu('#tracking-sites', false, 'gamepad', 'gamepad');})()">
140140
<i class="material-icon menu-simple-icon-first">sync</i>
141141
{{language.reading.tracking.main}}
142142
</div>
143143

144-
<div class="menu-simple-element gamepad-item" onclick="events.desactiveMenu('#reading-menu-gamepad'); events.activeMenu('#reading-magnifying-glass', false, 'gamepad', 'gamepad');">
144+
<div class="menu-simple-element gamepad-item" onclick="(async function(){await events.desactiveMenu('#reading-menu-gamepad'); events.activeMenu('#reading-magnifying-glass', false, 'gamepad', 'gamepad');})()">
145145
<i class="material-icon menu-simple-icon-first">search</i>
146146
{{language.reading.magnifyingGlass.main}}
147147
</div>
148148

149-
<div class="menu-simple-element gamepad-item" onclick="events.desactiveMenu('#reading-menu-gamepad'); reading.loadReadingPages(false, false, 'ebook-layout'); events.activeMenu('#reading-pages', false, 'gamepad', 'gamepad');">
149+
<div class="menu-simple-element gamepad-item" onclick="(async function(){await events.desactiveMenu('#reading-menu-gamepad'); reading.loadReadingPages(false, false, 'ebook-layout'); events.activeMenu('#reading-pages', false, 'gamepad', 'gamepad');})()">
150150
<i class="material-icon menu-simple-icon-first">format_size</i>
151151
{{language.reading.pages.ebookLayout}}
152152
</div>
153153

154-
<div class="menu-simple-element gamepad-item" onclick="events.desactiveMenu('#reading-menu-gamepad'); reading.loadReadingPages(false, false, 'page-layout'); events.activeMenu('#reading-pages', false, 'gamepad', 'gamepad');">
154+
<div class="menu-simple-element gamepad-item" onclick="(async function(){await events.desactiveMenu('#reading-menu-gamepad'); reading.loadReadingPages(false, false, 'page-layout'); events.activeMenu('#reading-pages', false, 'gamepad', 'gamepad');})()">
155155
<i class="material-icon menu-simple-icon-first">auto_stories</i>
156156
{{language.reading.pages.pageLayout}}
157157
</div>
158158

159-
<div class="menu-simple-element gamepad-item" onclick="events.desactiveMenu('#reading-menu-gamepad'); reading.loadReadingPages(false, false, 'filters'); events.activeMenu('#reading-pages', false, 'gamepad', 'gamepad');">
159+
<div class="menu-simple-element gamepad-item" onclick="(async function(){await events.desactiveMenu('#reading-menu-gamepad'); reading.loadReadingPages(false, false, 'filters'); events.activeMenu('#reading-pages', false, 'gamepad', 'gamepad');})()">
160160
<i class="material-icon menu-simple-icon-first">invert_colors</i>
161161
{{language.reading.pages.colorFilters}}
162162
</div>

0 commit comments

Comments
 (0)