fix resize issue on Linux, using i3 window manager on Linux

fix uninitialize modified key (ALT etc) on Linux/X11
This commit is contained in:
Erwin Coumans
2016-03-30 21:45:20 -07:00
parent 5c1eb2ec07
commit 6c0ef7e597

View File

@@ -172,6 +172,8 @@ struct InternalData2
XEvent m_xev;
GLXFBConfig m_bestFbc;
int m_modifierFlags;
int m_glWidth;
int m_glHeight;
#ifdef DYNAMIC_LOAD_X11_FUNCTIONS
//dynamically load stuff
@@ -207,6 +209,9 @@ struct InternalData2
InternalData2()
:m_dpy(0),
m_vi(0),
m_modifierFlags(0),
m_glWidth(-1),
m_glHeight(-1),
m_wheelCallback(0),
m_mouseMoveCallback(0),
m_mouseButtonCallback(0),
@@ -929,6 +934,9 @@ void X11OpenGLWindow::pumpMessage()
{
// printf("@");
// fflush(0);
m_data->m_glWidth = m_data->m_xev.xconfigure.width;
m_data->m_glHeight = m_data->m_xev.xconfigure.height;
if (m_data->m_resizeCallback)
{
(*m_data->m_resizeCallback)(m_data->m_xev.xconfigure.width,m_data->m_xev.xconfigure.height);
@@ -1031,6 +1039,10 @@ void X11OpenGLWindow::setMouseButtonCallback(b3MouseButtonCallback mouseCallback
void X11OpenGLWindow::setResizeCallback(b3ResizeCallback resizeCallback)
{
if (resizeCallback && m_data->m_glWidth>0 && m_data->m_glHeight > 0)
{
resizeCallback(m_data->m_glWidth, m_data->m_glHeight);
}
m_data->m_resizeCallback = resizeCallback;
}