A Window can be one of these types.
Most things you’d consider a “window” should have type TOPLEVEL; windows with this type are managed by the window manager and have a frame by default (call set_decorated to toggle the frame). Windows with type POPUP are ignored by the window manager; window manager keybindings won’t work on them, the window manager won’t decorate the window with a frame, many GTK+ features that rely on the window manager will not work ( e.g. resize grips and maximization/minimization). POPUP is used to implement widgets such as Menu or tooltips that you normally don’t think of as windows per se. Nearly all windows should be TOPLEVEL. In particular, do not use POPUP just to turn off the window borders; use set_decorated for that.