diff --git a/rpcs3/rpcs3qt/game_list.h b/rpcs3/rpcs3qt/game_list.h index f708c3c870..e7005e35a8 100644 --- a/rpcs3/rpcs3qt/game_list.h +++ b/rpcs3/rpcs3qt/game_list.h @@ -17,10 +17,10 @@ struct gui_game_info compat::status compat; QPixmap icon; QPixmap pxmap; - bool hasCustomConfig; - bool hasCustomPadConfig; - bool has_hover_gif; - movie_item* item; + bool hasCustomConfig = false; + bool hasCustomPadConfig = false; + bool has_hover_gif = false; + movie_item* item = nullptr; }; typedef std::shared_ptr game_info; diff --git a/rpcs3/rpcs3qt/game_list_frame.cpp b/rpcs3/rpcs3qt/game_list_frame.cpp index a388d2be58..8d9b4eaa76 100644 --- a/rpcs3/rpcs3qt/game_list_frame.cpp +++ b/rpcs3/rpcs3qt/game_list_frame.cpp @@ -2289,7 +2289,7 @@ void game_list_frame::PopulateGameList() icon_item->set_icon_func([this, icon_item, game](int) { - ensure(icon_item); + ensure(icon_item && game); if (QMovie* movie = icon_item->movie(); movie && icon_item->get_active()) { @@ -2298,6 +2298,12 @@ void game_list_frame::PopulateGameList() else { icon_item->setData(Qt::DecorationRole, game->pxmap); + + if (!game->has_hover_gif) + { + game->pxmap = {}; + } + if (movie) { movie->stop(); diff --git a/rpcs3/rpcs3qt/game_list_grid.cpp b/rpcs3/rpcs3qt/game_list_grid.cpp index ee4e8aba28..e3a4d05cbc 100644 --- a/rpcs3/rpcs3qt/game_list_grid.cpp +++ b/rpcs3/rpcs3qt/game_list_grid.cpp @@ -114,6 +114,11 @@ movie_item* game_list_grid::addItem(const game_info& app, const QString& name, c painter.drawImage(offset, bg_img); painter.drawPixmap(offset, app->pxmap); + if (!app->has_hover_gif) + { + app->pxmap = {}; + } + if (movie) { movie->stop();