From 2a536d15c96c18d94c90cfb3eb881e912a960964 Mon Sep 17 00:00:00 2001 From: dkf Date: Fri, 18 Jul 2003 10:02:02 +0000 Subject: Fix for [Bug 702230], and an evil bug it is too! --- ChangeLog | 7 +++++++ generic/tkPanedWindow.c | 10 +++++++++- tests/panedwindow.test | 19 ++++++++++++++++++- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 85c779d..02d9114 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-07-18 Donal K. Fellows + + * 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 * 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 -- cgit v0.12