| [ Return to Bugs & Features | Roadmap 1.3 | SVN ⇄ GIT ]
STR #2152
Application: | FLTK Library |
Status: | 1 - Closed w/Resolution |
Priority: | 3 - Moderate, e.g. unable to compile the software |
Scope: | 3 - Applies to all machines and operating systems |
Subsystem: | X11 |
Summary: | Resize / redraw problems with X11 |
Version: | 1.3-current |
Created By: | AlbrechtS |
Assigned To: | AlbrechtS |
Fix Version: | 1.3-current (SVN: v7636) |
Update Notification: | |
Trouble Report Files:
Trouble Report Comments:
|
#1 | AlbrechtS 09:17 Feb 15, 2009 |
| This is a reminder for some strange resize / display problems with X11 and some X servers. The problem appeared when X11 support was added to FLTK 1.3 with cygwin, but it is not directly related to cygwin/X11. There are some strange combinations WRT which client, which server, and which mode (cygwin/X server in multiwindow or single/rooted window mode), and if xdbe support is enabled on the client (application) side.
For further information, please refer to STR 2147 [1]. More test results should be added here ...
There is also a current discussion about a resizing/redrawing problem in the cygwin xfree mailing list [2], that seem related (and maybe will solve our problem ? We should watch this and see if it helps, when a new X server will be released.
The current workaround is to disable xdbe on the client side.
----- [1] http://www.fltk.org/str.php?L2147 [2] http://cygwin.com/ml/cygwin-xfree/2009-02/msg00118.html | |
|
#2 | AlbrechtS 00:17 Feb 25, 2009 |
| There's a new release [1] of cygwin's xorg-server-1.5.3-7 with a "fix for flickering when resizing in multiwindow mode", but this doesn't solve our problem :-(
In my tests I can still see the same resizing problem with --enable-xdbe. ----- [1] http://cygwin.com/ml/cygwin-xfree-announce/2009-02/msg00007.html | |
|
#3 | matt 02:00 Apr 05, 2010 |
| Is this a dupe of 2039? Please test! | |
|
#4 | AlbrechtS 09:49 Apr 06, 2010 |
| No, I don't think so (i.e. no duplicate). I checked this already, but IMHO it's more the opposite. This STR is about enlarging a window with XDBE enabled, and STR #2039 seems to be a problem with shrinking a window, but with only some (or maybe one) window manager(s).
However, I could also be wrong.
To this STR (#2152): I'm not familiar with X11/XDBE internals, but my impression was that FLTK is doing something like its own double buffering - maybe only if "real" double buffering is not available. Is this possible, maybe with an Fl_Offscreen? Then, when the window is enlarged, the increased window size is "lost" somehow, and the new (bigger) part of the window is never drawn. At least that's how it looks. The widgets seem to resize, but there's a black or otherwise undrawn part of the window.
New tests: It looks like an interaction with X servers and/or window managers. I just started the app (test/tabs) on an Ubuntu Linux system (a VM = virtual machine) and redirected the output to different X servers:
(1) local: works (2) VM with Fedora 11: works (3) Windows 7 with Cygwin X server: fails (4) Windows XP with older Cygwin X server: fails with warning
The warning written to stderr is: 'Xlib: extension "Generic Event Extension" missing on display "localhost:12.0".'
The server localhost:12.0 is the correct server (ssh X forwarding), and the app runs, but shows the fault.
Does anybody know what X server part (module/lib) might contain this? I tried with libxcb (runtime), but this didn't change the symptoms.
If this is a Cygwin X server problem, then we could probably close this STR. Continuing tests... | |
|
#5 | a.rburgers.quicknet 14:10 May 10, 2010 |
| this issue still exists. It affects cygwin's xwin in multiwindow mode.
I notided the cube demo on 1.1.3 behaves well on resizing, no issue. This demo does not use Fl::run() but implements its own mainloop.
fltk 1.1.10 demos also have no issus when displaying on xwin -multiwindow. It does not matter whether they are compiled on cygwin or e.g. linux | |
|
#6 | AlbrechtS 01:48 Jun 09, 2010 |
| After some more investigation it looks as if some X servers (e.g. Cygwin) don't work correctly if XDBE is active and the window size is increased.
This can be fixed by deallocating the current back buffer (name) in Fl_Double_Window::resize() and thus forcing the allocation of a new back buffer later (in Fl_Double_Window::flush()).
This shouldn't be necessary, but some X servers (e.g. Cygwin, maybe only in multi-window mode) appear not to enlarge the back buffer if necessary.
Reference: http://www.xfree86.org/current/dbelib.pdf
Chapter 3 Concepts: "Both buffers associated with a window have the same visual type, depth, width, height, and shape as the window."
Chapter 3.1 Window Management Operations: "If the core ConfigureWindow request changes the size of a window, both buffers assume the new size." | |
|
#7 | AlbrechtS 01:53 Jun 09, 2010 |
| Teun, this is fixed now for FLTK 1.3. Please note that the same bug is in FLTK 1.1, but in FLTK 1.1 the default is --disable-xdbe. This might explain why you didn't see the effects in FLTK 1.1.
Please test and confirm that svn -r 7636 fixes the issue for you.
FWIW: the same patch can also be applied to 1.1.10. | |
|
#8 | AlbrechtS 01:55 Jun 09, 2010 |
| Fixed in Subversion repository.
This STR will be closed after confirmation or about two weeks. | |
[ Return to Bugs & Features ]
|
| |