summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpspjuth <peter.spjuth@gmail.com>2002-10-10 21:07:51 (GMT)
committerpspjuth <peter.spjuth@gmail.com>2002-10-10 21:07:51 (GMT)
commit9d868002e735f03a02b204864b139004861e6ff6 (patch)
tree4aaa2c6b1324c85b05259766380573941a817551
parentdd2a728b2874239f39fa0a833ea27e33beb07340 (diff)
downloadtk-9d868002e735f03a02b204864b139004861e6ff6.zip
tk-9d868002e735f03a02b204864b139004861e6ff6.tar.gz
tk-9d868002e735f03a02b204864b139004861e6ff6.tar.bz2
The grid size was not updated properly
when removing a widget from a grid. [Bug #621241] (forssen)
-rw-r--r--ChangeLog6
-rw-r--r--generic/tkGrid.c11
-rw-r--r--tests/grid.test22
3 files changed, 30 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 5c9a4e5..aa4669d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2002-10-10 Peter Spjuth <peter.spjuth@space.se>
+
+ * tests/grid.test:
+ * generic/tkGrid.c: The grid size was not updated properly
+ when removing a widget from a grid. [Bug #621241] (forssen)
+
2002-10-10 Jeff Hobbs <jeffh@ActiveState.com>
* tests/canvPs.test: tests for canvas embedded window ps generation
diff --git a/generic/tkGrid.c b/generic/tkGrid.c
index 27f9dde..f5c3503 100644
--- a/generic/tkGrid.c
+++ b/generic/tkGrid.c
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkGrid.c,v 1.24 2002/08/05 04:30:38 dgp Exp $
+ * RCS: @(#) $Id: tkGrid.c,v 1.25 2002/10/10 21:07:51 pspjuth Exp $
*/
#include "tkInt.h"
@@ -2342,18 +2342,15 @@ Unlink(slavePtr)
register Gridder *slavePtr; /* Window to unlink. */
{
register Gridder *masterPtr, *slavePtr2;
- GridMaster *gridPtr; /* pointer to grid data */
masterPtr = slavePtr->masterPtr;
if (masterPtr == NULL) {
return;
}
- gridPtr = masterPtr->masterDataPtr;
if (masterPtr->slavePtr == slavePtr) {
masterPtr->slavePtr = slavePtr->nextPtr;
- }
- else {
+ } else {
for (slavePtr2 = masterPtr->slavePtr; ; slavePtr2 = slavePtr2->nextPtr) {
if (slavePtr2 == NULL) {
panic("Unlink couldn't find previous window");
@@ -2372,9 +2369,7 @@ Unlink(slavePtr)
*masterPtr->abortPtr = 1;
}
- if ((slavePtr->numCols+slavePtr->column == gridPtr->columnMax)
- || (slavePtr->numRows+slavePtr->row == gridPtr->rowMax)) {
- }
+ SetGridSize(slavePtr->masterPtr);
slavePtr->masterPtr = NULL;
}
diff --git a/tests/grid.test b/tests/grid.test
index daeef7e..c47348e 100644
--- a/tests/grid.test
+++ b/tests/grid.test
@@ -5,7 +5,7 @@
# Copyright (c) 1998-1999 by Scriptics Corporation.
# All rights reserved.
#
-# RCS: @(#) $Id: grid.test,v 1.16 2002/07/13 21:52:34 dgp Exp $
+# RCS: @(#) $Id: grid.test,v 1.17 2002/10/10 21:07:52 pspjuth Exp $
package require tcltest 2.1
namespace import -force tcltest::configure
@@ -1497,6 +1497,26 @@ test grid-19.1 {uniform realloc} {
} {0 0 600 20}
grid_reset 19.1
+test grid-20.1 {recalculate size after removal (destroy)} {
+ label .l1 -text l1
+ grid .l1 -row 2 -column 2
+ destroy .l1
+ label .l2 -text l2
+ grid .l2
+ grid size .
+} {1 1}
+grid_reset 20.1
+
+test grid-20.2 {recalculate size after removal (forget)} {
+ label .l1 -text l1
+ grid .l1 -row 2 -column 2
+ grid forget .l1
+ label .l2 -text l2
+ grid .l2
+ grid size .
+} {1 1}
+grid_reset 20.2
+
# cleanup
::tcltest::cleanupTests
return