diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2003-07-18 10:02:02 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2003-07-18 10:02:02 (GMT) |
commit | 2a536d15c96c18d94c90cfb3eb881e912a960964 (patch) | |
tree | e0b942f1cfe64b5312fff662adef925000764b44 | |
parent | 2b7692adde444f5fddd9059308d594aaa73039da (diff) | |
download | tk-2a536d15c96c18d94c90cfb3eb881e912a960964.zip tk-2a536d15c96c18d94c90cfb3eb881e912a960964.tar.gz tk-2a536d15c96c18d94c90cfb3eb881e912a960964.tar.bz2 |
Fix for [Bug 702230], and an evil bug it is too!
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | generic/tkPanedWindow.c | 10 | ||||
-rw-r--r-- | tests/panedwindow.test | 19 |
3 files changed, 34 insertions, 2 deletions
@@ -1,3 +1,10 @@ +2003-07-18 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + * tests/panedwindow.test (panedwindow-30.2): + * generic/tkPanedWindow.c (Tk_PanedWindowObjCmd): Ensure that we + can share GCs between a panedwindow and its sash proxy, even if + the panedwindow is in a toplevel with a different visual. [Bug 702230] + 2003-07-17 Daniel Steffen <das@users.sourceforge.net> * macosx/Makefile: Changes for new tcl buildsystem. diff --git a/generic/tkPanedWindow.c b/generic/tkPanedWindow.c index eb0108f..873243c 100644 --- a/generic/tkPanedWindow.c +++ b/generic/tkPanedWindow.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkPanedWindow.c,v 1.15 2003/07/17 00:39:53 hobbs Exp $ + * RCS: @(#) $Id: tkPanedWindow.c,v 1.16 2003/07/18 10:02:03 dkf Exp $ */ #include "tkPort.h" @@ -424,6 +424,14 @@ Tk_PanedWindowObjCmd(clientData, interp, objc, objv) } pwPtr->proxywin = Tk_CreateAnonymousWindow(interp, parent, (char *) NULL); + /* + * The proxy window has to be able to share GCs with the main + * panedwindow despite being children of windows with potentially + * different characteristics, and it looks better that way too. + * [Bug 702230] + */ + Tk_SetWindowVisual(pwPtr->proxywin, + Tk_Visual(tkwin), Tk_Depth(tkwin), Tk_Colormap(tkwin)); Tk_CreateEventHandler(pwPtr->proxywin, ExposureMask, ProxyWindowEventProc, (ClientData) pwPtr); diff --git a/tests/panedwindow.test b/tests/panedwindow.test index 446830f..e345e2a 100644 --- a/tests/panedwindow.test +++ b/tests/panedwindow.test @@ -6,7 +6,7 @@ # Copyright (c) 1998-1999 by Scriptics Corporation. # All rights reserved. # -# RCS: @(#) $Id: panedwindow.test,v 1.11 2003/07/17 00:39:53 hobbs Exp $ +# RCS: @(#) $Id: panedwindow.test,v 1.12 2003/07/18 10:02:03 dkf Exp $ package require tcltest 2.1 eval tcltest::configure $argv @@ -2502,6 +2502,23 @@ test panedwindow-30.1 {display on depths other than the default one} { -cleanup {destroy .t} -result {} } +test panedwindow-30.2 {display on depths other than the default one} { + -constraints {pseudocolor8 haveTruecolor24} + -body { + toplevel .t -visual {pseudocolor 8} + pack [frame .t.f -visual {truecolor 24}] + pack [panedwindow .t.f.p] + .t.f.p add [frame .t.f.p.f1 -width 5] [frame .t.f.p.f2 -width 5] + update + .t.f.p proxy place 1 1 + update + .t.f.p proxy forget + update + # If we got here, we didn't crash and that's good + } + -cleanup {destroy .t} + -result {} +} # cleanup cleanupTests |