back by popular demand: load mode icons, tweak shapewipe layout
[goodguy/cinelerra.git] / cinelerra-5.1 / guicast / bcwindowbase.C
index 21d6bd37996741580e34057762c763d6066b3010..93b3d4554077c45aeb721636fe574ed77a09a73a 100644 (file)
@@ -460,8 +460,19 @@ int BC_WindowBase::create_window(BC_WindowBase *parent_window, const char *title
                vis = get_glx_visual(display);
                if( !vis )
 #endif
+               {
+                       int mask = VisualDepthMask | VisualClassMask;
+                       static XVisualInfo vinfo;
+                       memset(&vinfo, 0, sizeof(vinfo));
+                       vinfo.depth = 24;
+                       vinfo.c_class = TrueColor;
+                       int nitems = 0;
+                       XVisualInfo *vis_info = XGetVisualInfo(display, mask, &vinfo, &nitems);
+                       vis = vis_info && nitems>0 ? vis_info[0].visual : 0;
+                       if( vis_info ) XFree(vis_info);
+               }
+               if( !vis )
                        vis = DefaultVisual(display, screen);
-
                default_depth = DefaultDepth(display, screen);
 
                client_byte_order = (*(const u_int32_t*)"a   ") & 0x00000001;
@@ -4060,6 +4071,11 @@ int BC_WindowBase::resize_window(int w, int h)
                size_hints.max_width = w;
                size_hints.min_height = h;
                size_hints.max_height = h;
+               if( this->x > -BC_INFINITY && this->x < BC_INFINITY ) {
+                       size_hints.flags |= PPosition;
+                       size_hints.x = this->x;
+                       size_hints.y = this->y;
+               }
                XSetNormalHints(top_level->display, win, &size_hints);
        }
        XResizeWindow(top_level->display, win, w, h);