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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user