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;
|
XEvent m_xev;
|
||||||
GLXFBConfig m_bestFbc;
|
GLXFBConfig m_bestFbc;
|
||||||
int m_modifierFlags;
|
int m_modifierFlags;
|
||||||
|
int m_glWidth;
|
||||||
|
int m_glHeight;
|
||||||
|
|
||||||
#ifdef DYNAMIC_LOAD_X11_FUNCTIONS
|
#ifdef DYNAMIC_LOAD_X11_FUNCTIONS
|
||||||
//dynamically load stuff
|
//dynamically load stuff
|
||||||
@@ -207,6 +209,9 @@ struct InternalData2
|
|||||||
InternalData2()
|
InternalData2()
|
||||||
:m_dpy(0),
|
:m_dpy(0),
|
||||||
m_vi(0),
|
m_vi(0),
|
||||||
|
m_modifierFlags(0),
|
||||||
|
m_glWidth(-1),
|
||||||
|
m_glHeight(-1),
|
||||||
m_wheelCallback(0),
|
m_wheelCallback(0),
|
||||||
m_mouseMoveCallback(0),
|
m_mouseMoveCallback(0),
|
||||||
m_mouseButtonCallback(0),
|
m_mouseButtonCallback(0),
|
||||||
@@ -929,6 +934,9 @@ void X11OpenGLWindow::pumpMessage()
|
|||||||
{
|
{
|
||||||
// printf("@");
|
// printf("@");
|
||||||
// fflush(0);
|
// 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)
|
if (m_data->m_resizeCallback)
|
||||||
{
|
{
|
||||||
(*m_data->m_resizeCallback)(m_data->m_xev.xconfigure.width,m_data->m_xev.xconfigure.height);
|
(*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)
|
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;
|
m_data->m_resizeCallback = resizeCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user