Double Menu Bar on certain OSX Machines?

Hi all. First time posting here. I’ve got an application that uses GLFW to open a fullscreen-able OpenGL window.

On most machines, the window is fine. It spawns with a title bar and the typical red, yellow, green, OSX buttons. Green successfully fullscreens the window and the title bar hides, as it should.

However, on my friend’s computer, running OSX 10.12.13, the GLFW window has this extra menu bar just below the real one. I’ve never seen anything like it, and it really interferes with the app because even when fullscreened, this extra grey bar is visible, and it actually pushes the content below out of the way. You can see it here:

Above, you can see it says “Synesthesia Visualizer” twice. The top actual menu bar is good, the second fake one is bad!

I’d like to turn off that bottom menu bar in any way possible. I tried to set the “decorated” window hint to false, and this removed the title from the menu bar but left both grey menu bars.

Any ideas?

If you can reproduce this with the latest code from Github using one of the examples then I would file an issue.

Thanks for the reply. Good idea, I’ll update our GLFW and try again. Looking at it again, it could be that we’re doing something wrong with our NSWindow, rather than doing something wrong in GLFW, as they both have their own options when spawning a window.

We tried the updated GLFW and changing some of the flags we were setting for our “NSWindow”, but couldn’t fix the issue. It definitely seems to be OS version dependent.

Unless someone else has a solution, I think we’ll have to move towards spawning a fullscreen window with no menu bar at all on the correct display. I’ve always thought it’s nice to give the user control over their window, just let them drag it to the display they like and fullscreen it. But I believe if we remove the menu bar entirely, both do disappear.

Have you tried this with a GLFW example and replicated the problem? If so it might be a GLFW bug and so you should post an issue on Github.

If it only occurs with your own code, perhaps you could reproduce this with a cut down version of the code and post that to Github so someone can take a look or post the code snippet of your window creation / flag setting?

Hello,

I have exactly the same issue on my mac OS 10.12.6. I code with openframeworks (that use GLFW).

Do you got a solution to this issue ?

Thanks,

This could be an openframeworks issue, as like @meebs openFrameworks changes the NSWindow style, see the code in ofAppGLFWWindow.cpp here.

If you can replicate this problem in one of the GLFW test or example applications from the latest code on Github then we can look into filing an issue.

Thanks for your reply, when I compile just the code bellow, it works, I don’t have the double bar. So I guess the issue is related to Openframework, but the weird thing is when I compile my openframework project on another mac (not same OS version) with the same code and same openframework version I don’t have the double bar issue.

#include <GLFW/glfw3.h>

int main(void)
{
GLFWwindow* window;

/* Initialize the library */
if (!glfwInit())
return -1;

/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window)
{
    glfwTerminate();
    return -1;
}

/* Make the window's context current */
glfwMakeContextCurrent(window);

/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))
{
    /* Swap front and back buffers */
    glfwSwapBuffers(window);
    
    /* Poll for and process events */
    glfwPollEvents();
}

glfwTerminate();
return 0;
}

Thanks for checking this, as you say it appears to be an issue with OpenFrameworks or it’s interaction with GLFW.

As both you and @meebs note it’s OS version dependent. Looking at the source the OpenFrameworks code uses the NSWIndowStyleMask NSTitledWindowMask which is now deprecated, so perhaps this is the issue? You could try removing it from the mask list and see what happens.

Alternatively you could post on the OpenFrameworks forum and ask if anyone knows what’s going on, or post a bug in their issue tracker.

Hey! Quick update here, I just found out what it was. It is the “tab bar”. So I probably need a way to define the window as tabless. Haven’t fixed it yet, but I found a workaround! If you have the window selected, and go up to “Window”, you can choose to “Hide Tab Bar”.

I’ll keep looking for the final solution, but wanted to post the update first. Doug, it looks like your instincts were correct, likely not a GLFW issue. Thanks for the help!

1 Like