I just compiled a fresh download of the fltk-2.0.x-r6970 tarball. The demo programs in the test directory show a weird behavior w.r.t the window manager, on my laptop. I have tried with 1.1 and 1.3 too, with similar results. A few days ago I compiled demo programs without this strangeness.
I must have done something, but I cannot figure out what. Does anyone see what the failure mechanism could be here? The glpuzzle demo comes with invisible / transparent window manager decorations (title bar and border around the window). I can play normally with it. It responds to keyboard commands. I here describe some behaviors that may have been there always, but I had never noticed it much before I began investigating this. Invisible WM decorations is certainly something new. I have focus-follows-mouse and click-to-raise. When the mouse enter the region where the decorations should have been, the other windows loose focus (the title bar gets the inactive color). Moving the mouse out again gives the focus to the new window that is entered, as it should. This is normal. At the edge of where the decorations should have been, the pointer assumes the drag-this-border shape. When I hover the mouse in the area where the title bar buttons should have been, the tool-tips "Maximize Window", etc, show. All this is normal. When the tool-tips show, the nearest 3-4 mm area around the tool-tip is cleared to the color of whatever is under the glpuzzle, e.g. details of the desktop or my console window show through. After the tool-tip is gone, the whole tool-tip area is cleared to show whatever is under the glpuzzle. Not normal. I can move the glpuzzle window by dragging the invisible title bar. The contents is redrawn in the new position. However, the old position is not redrawn to reflect that the glpuzzle is not there. It is as if the exposed areas do not receive expose events. This applies to both the desktop root window and to e.g. console command windows. Not normal. I use multiple "destops" or "work areas" each with its own set of windows. When I change desktop to one having a running glpuzzle, the glpuzzle is either not shown at all, or it just flashes, shows for a tiny fraction of a second and disappears. The running glpuzzle shows in the taskbar (or whatever it's called in in Gnome, I am on Ubuntu with Gnome). When I click the taskbar button, the button becomes gray, as if the window is being minimized. The button label is shown in brackets. Clicking again unminimizes, and shows the glpuzzle. I can also get glpuzzle to show if I can give it focus and hit a key that makes it redraw, like 'r' or 's', but not e.g. 'q'. When glpuzzle redraws, it also draws in regions that are obscured by other windows. Since I have click-to-raise, a window can have focus and receive keyboard commands while another window is partially obscuring it. Not normal. On the other hand, if glpuzzle is on top of a console window partially overlapping it, and I move the mouse into the console window, when the console get focus the window decorations of the console are drawn where they should not, cutting through the glpuzzle. Not only the decoration, also the scrollbar of the console is redrawn. Not normal If I have evince, a pdf viewer, running in maximized state, and unminimize or raise a glpuzzle on top of it, the document area of evince quickly redraws to obscure glpuzzle, even glpuzzle should be on top. So glpuzzle just flashes, but much slower than when I switch desktops. Other areas of evince, the toolbar, menu, etc, do not place themselves in front of glpuzzle. These areas suffer if I move glpuzzle (as already described) since they do not seem to get expose events. The same thing happens if I maximize glpuzzle and unmaximize it. I have also tried with the fractals demo. One difference is that the window decorations show as they should. But the client area behaves much the same way as the glpuzzle, with some effects due to the continuous redrawing that happens in an animated demo. If the fractals window partially overlaps a console, and I give focus to the console without raising it, by moving the mouse into the console area, then, as the border around the console redraws even where it should not, I learn something interesting about the fractals window. The Gnome windows manager shows shadows "under" the windows. To achieve this, it draws not only the visible border, but also the nearest two-three mm next to the border, with a gradual darkening as one approaches the border. The shadow region is drawn with the colors of whatever is "under" the window and surrounding it. When the console window border is drawn in spite of the fractals window being on top, it does not show the actual contents of the fractals window, but the contents the fractals window had before the first drawing in GL. This reflects what was in the area when the fractals window was created. If the fractals window was created on top of an editor window, when the console window later has its borders drawn, contents from the editor window shows in the shadow next to the border. If I move the fractals window, this contents move along. I don't know how exactly that works, but I imagine that the window manager asks the X server to blend the shadow with the contents of the area, but the X server appears to keep a copy of the fractals' window's contents that is unaffected by the opengl drawing operations. I have also tested with a few non-fltk demos from tcl3d, and find much the same behavior, except that glpuzzle is the only that has invisible borders. Also, switching desktops works normally, with fractals and with tcl3d demos. Moving the window leaves unupdated regions behind with all these programs. My first guess as to what I may have done, is that perhaps I have got a new version of some library as part of the constant stream of security updates. Checking the libraries used by glpuzzle, here they are with symlinks expanded and with modification dates, sorted with newest last: 2008-05-19 /usr/lib/libXdmcp.so.6.0.0 2008-05-19 /usr/lib/libXdamage.so.1.1.0 2009-02-27 /usr/lib/libXft.so.2.1.13 2009-03-19 /usr/lib/libfontconfig.so.1.3.0 2009-04-29 /usr/lib/libXau.so.6.0.0 2009-05-12 /usr/lib/libXfixes.so.3.1.0 2009-05-15 /usr/lib/libXi.so.6.0.0 2009-06-04 /usr/lib/libfreetype.so.6.3.20 2009-07-28 /usr/lib/libX11.so.6.2.0 2009-07-28 /usr/lib/libxcb.so.1.1.0 2009-09-08 /lib/libz.so.1.2.3.3 2009-09-16 /lib/libexpat.so.1.5.2 2009-10-07 /lib/librt-2.10.1.so 2009-10-07 /lib/libm-2.10.1.so 2009-10-07 /lib/libdl-2.10.1.so 2009-10-07 /lib/libc-2.10.1.so 2009-10-07 /lib/libpthread-2.10.1.so 2009-10-08 /usr/lib/libdrm.so.2.4.0 2009-10-12 /usr/lib/libXext.so.6.4.0 2009-10-12 /usr/lib/libXrender.so.1.3.0 2009-10-12 /usr/lib/libXxf86vm.so.1.0.0 2009-10-14 /usr/lib/libGL.so.1.2 2009-10-14 /usr/lib/libGLU.so.1.3.070600 2009-10-15 /lib/libgcc_s.so.1 2009-10-15 /usr/lib/libstdc++.so.6.0.13 I have also un-installed every package that seemed related to fltk, and downloaded a fresh copy of the source tarball; and done ./configure && make with no options. This is on a 64-bit amd laptop, Ubuntu 9.10 "Karmic" with the latest everything; gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8). The video adapter, if it matters is ATI Radeon X1300, without dri support. The software package manager log shows some xorg packages where upgraded: 2009-12-03 15:17:20 upgrade xserver-xorg-video-all 1:7.4+3ubuntu7 1:7.4+3ubuntu10 2009-12-03 15:17:20 upgrade xserver-xorg-input-all 1:7.4+3ubuntu7 1:7.4+3ubuntu10 2009-12-03 15:17:20 upgrade xserver-xorg 1:7.4+3ubuntu7 1:7.4+3ubuntu10 2009-12-03 15:17:21 upgrade xorg 1:7.4+3ubuntu7 1:7.4+3ubuntu10 2009-12-03 15:17:22 install xorg-options-editor-gtk <none> 0.2ubuntu2 2009-12-03 15:17:22 install libpciaccess-dev <none> 0.10.6-2ubuntu1 2009-12-03 15:17:22 install xserver-xorg-dev <none> 2:1.6.4-2ubuntu4 but I think this was before i last toyed with a glpuzzle that had the title bar and border intact. Any ideas? Thanks. _______________________________________________ fltk-opengl mailing list fltk-opengl@easysw.com http://lists.easysw.com/mailman/listinfo/fltk-opengl