diff --git a/src/event.cxx b/src/event.cxx index 7879661..0945b83 100644 --- a/src/event.cxx +++ b/src/event.cxx @@ -3556,7 +3556,7 @@ bool CEvent::PlayUp (POINT pos) { m_menuCel = m_pDecor->ConvPosToCel (pos); m_menuPos = pos; - m_menu.Create (m_pPixmap, m_pSound, + m_menu.Create (m_pPixmap, m_pSound, this, pos, m_menuNb, m_menuButtons, m_menuErrors, m_menuTexts, m_menuPerso); m_bMenu = true; diff --git a/src/menu.cxx b/src/menu.cxx index b23c95e..b0777d1 100644 --- a/src/menu.cxx +++ b/src/menu.cxx @@ -131,6 +131,7 @@ CMenu::CMenu() m_pPixmap = nullptr; m_pDecor = nullptr; m_pSound = nullptr; + m_pEvent = nullptr; } // Destructeur. @@ -142,7 +143,7 @@ CMenu::~CMenu() // Crée un nouveau bouton. -bool CMenu::Create (CPixmap *pPixmap, CSound *pSound, +bool CMenu::Create (CPixmap *pPixmap, CSound *pSound, CEvent *pEvent, POINT pos, Sint32 nb, Sint32 *pButtons, Sint32 *pErrors, std::unordered_map &texts, Sint32 perso) @@ -152,6 +153,7 @@ bool CMenu::Create (CPixmap *pPixmap, CSound *pSound, m_pPixmap = pPixmap; m_pSound = pSound; + m_pEvent = pEvent; m_nbButtons = nb; m_pos = pos; m_perso = perso; @@ -173,7 +175,9 @@ bool CMenu::Create (CPixmap *pPixmap, CSound *pSound, pos = m_pos; pos.x += DIMBUTTONX / 2; pos.y += DIMBUTTONY / 2; - SDL_WarpMouseInWindow (g_window, pos.x, pos.y); + SDL_WarpMouseInWindow (g_window, + pos.x * m_pEvent->GetWindowScale (), + pos.y * m_pEvent->GetWindowScale ()); } m_selRank = Detect (pos); diff --git a/src/menu.h b/src/menu.h index 475e1a9..aab7cb6 100644 --- a/src/menu.h +++ b/src/menu.h @@ -4,7 +4,7 @@ #include #include "def.h" -///////////////////////////////////////////////////////////////////////////// +class CEvent; class CMenu { @@ -12,7 +12,7 @@ public: CMenu(); ~CMenu(); - bool Create (CPixmap *pPixmap, CSound *pSound, + bool Create (CPixmap *pPixmap, CSound *pSound, CEvent *pEvent, POINT pos, Sint32 nb, Sint32 *pButtons, Sint32 *pErrors, std::unordered_map &texts, Sint32 perso); @@ -38,6 +38,7 @@ protected: CPixmap *m_pPixmap; CDecor *m_pDecor; CSound *m_pSound; + CEvent *m_pEvent; POINT m_pos; // coin sup/gauche POINT m_dim; // dimensions Sint32 m_nbButtons;