Commit 732703e6 by Geoff Lang

Don't duplicate calls to X11Window's setVisible.

Calling setVisible multiple times in a row can cause a hang while X11Window waits for events that will never be generted. Change-Id: I43af8d4c79c7010dae78aa38c9716ed5b7b02865 Reviewed-on: https://chromium-review.googlesource.com/322380Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Tested-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 1a679900
......@@ -157,7 +157,8 @@ X11Window::X11Window()
TEST_EVENT(None),
mDisplay(nullptr),
mWindow(0),
mRequestedVisualId(-1)
mRequestedVisualId(-1),
mVisible(false)
{
}
......@@ -167,7 +168,8 @@ X11Window::X11Window(int visualId)
TEST_EVENT(None),
mDisplay(nullptr),
mWindow(0),
mRequestedVisualId(visualId)
mRequestedVisualId(visualId),
mVisible(false)
{
}
......@@ -347,7 +349,7 @@ bool X11Window::resize(int width, int height)
void X11Window::setVisible(bool isVisible)
{
if (isVisible)
if (mVisible != isVisible)
{
XMapWindow(mDisplay, mWindow);
......@@ -363,6 +365,7 @@ void X11Window::setVisible(bool isVisible)
XUnmapWindow(mDisplay, mWindow);
XFlush(mDisplay);
}
mVisible = isVisible;
}
void X11Window::signalTestEvent()
......
......@@ -48,6 +48,7 @@ class X11Window : public OSWindow
Display *mDisplay;
Window mWindow;
int mRequestedVisualId;
bool mVisible;
};
#endif // UTIL_X11_WINDOW_H
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment