home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / x / volume17 / xbae / patch1 < prev    next >
Encoding:
Text File  |  1992-04-22  |  20.9 KB  |  756 lines

  1. Newsgroups: comp.sources.x
  2. Path: uunet!wupost!darwin.sura.net!mips!msi!dcmartin
  3. From: Andrew Wason <aw@bae.bellcore.com>
  4. Subject: v17i075: Xbae patch, Patch1, Part01/01
  5. Message-ID: <1992Apr23.125827.29074@msi.com>
  6. Originator: dcmartin@fascet
  7. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  8. Nntp-Posting-Host: fascet
  9. Organization: Molecular Simulations, Inc.
  10. References: <csx-17i075-xbae@uunet.UU.NET>
  11. Date: Thu, 23 Apr 1992 12:58:27 GMT
  12. Approved: dcmartin@msi.com
  13. Lines: 741
  14.  
  15. Submitted-by: Andrew Wason <aw@bae.bellcore.com>
  16. Posting-number: Volume 17, Issue 75
  17. Archive-name: xbae/patch1
  18. Patch-To: xbae: Volume 17, Issue 28
  19.  
  20. This patch fixes a number of bugs in Xbae 3.5, bringing it up to
  21. version 3.6.  This patch does not update the PostScript
  22. documents, because even though the changes were small, the diffs
  23. were huge.
  24.  
  25. Andrew
  26.  
  27. #!/bin/sh
  28. # This is a shell archive (produced by shar 3.50)
  29. # To extract the files from this archive, save it to a file, remove
  30. # everything above the "!/bin/sh" line above, and type "sh file_name".
  31. #
  32. # made 04/10/1992 17:40 UTC by aw@jello
  33. # Source directory /fs/11/m/acp/aw/Xbae-rls/Xbae-6-public/patch
  34. #
  35. # existing files will NOT be overwritten unless -c is specified
  36. #
  37. # This shar contains:
  38. # length  mode       name
  39. # ------ ---------- ------------------------------------------
  40. #    454 -rw-r--r-- README.patch
  41. #  18187 -rw-r--r-- patch-3.5-to-3.6
  42. #
  43. # ============= README.patch ==============
  44. if test -f 'README.patch' -a X"$1" != X"-c"; then
  45.     echo 'x - skipping README.patch (File already exists)'
  46. else
  47. echo 'x - extracting README.patch (Text)'
  48. sed 's/^X//' << 'SHAR_EOF' > 'README.patch' &&
  49. This patch brings Xbae 3.5 up to version 3.6.  See the patched
  50. README for what was changed.  This patch does *not* patch the
  51. PostScript documents.  Even though they did not change much, the
  52. diff was over 6000 lines long.  If you want the new docs, ftp the
  53. entire 3.6 distribution from export.lcs.mit.edu in
  54. contrib/Xbae-widgets-3.6.tar.Z.
  55. X
  56. To apply the patch, cd to the toplevel directory in the Xbae
  57. distribution, and do
  58. X
  59. X  patch -p0 < patch-3.5-to-3.6
  60. SHAR_EOF
  61. chmod 0644 README.patch ||
  62. echo 'restore of README.patch failed'
  63. Wc_c="`wc -c < 'README.patch'`"
  64. test 454 -eq "$Wc_c" ||
  65.     echo 'README.patch: original size 454, current size' "$Wc_c"
  66. fi
  67. # ============= patch-3.5-to-3.6 ==============
  68. if test -f 'patch-3.5-to-3.6' -a X"$1" != X"-c"; then
  69.     echo 'x - skipping patch-3.5-to-3.6 (File already exists)'
  70. else
  71. echo 'x - extracting patch-3.5-to-3.6 (Text)'
  72. sed 's/^X//' << 'SHAR_EOF' > 'patch-3.5-to-3.6' &&
  73. *** ../../Xbae-5-public/Xbae/README    Tue Mar 17 15:59:59 1992
  74. --- README    Fri Apr 10 10:47:44 1992
  75. ***************
  76. *** 1,5 ****
  77. ! Xbae Library Version 3.5 (see src/version.c)
  78. ! Xbae 3.5 is the first public release.
  79. X  
  80. X  The Xbae library is a set of two Motif widgets, XbaeMatrix and
  81. X  XbaeCaption.  It was developed using X11R4/X11R5 and Motif 1.1.[0-4]
  82. --- 1,5 ----
  83. ! Xbae Library Version 3.6 (see src/version.c)
  84. ! Xbae 3.6 is the second public release.
  85. X  
  86. X  The Xbae library is a set of two Motif widgets, XbaeMatrix and
  87. X  XbaeCaption.  It was developed using X11R4/X11R5 and Motif 1.1.[0-4]
  88. ***************
  89. *** 50,52 ****
  90. --- 50,78 ----
  91. X     groups of related widgets can be labeled similarly to the IBM CUA
  92. X     "Group Box", but with more flexibility.  XbaeCaption is also useful
  93. X     for associating labels with individual XmTextField widgets.
  94. + Bugs fixed in version 3.6:
  95. +  * XbaeMatrix computes a bad width when XmNvisibleColumns == XmNcolumns.
  96. +    (reported by salevin@drl.mobil.com (S. A. Levin [Stewart]))
  97. +  * Changed XbaeMatrix to allow XmNvisibleRows to be greater than XmNrows.
  98. +    (reported by mark@bryce.llnl.gov (Mark Spruiell))
  99. +  * The XbaeMatrix methods: XbaeMatrixAddRows, XbaeMatrixDeleteRows,
  100. +    XbaeMatrixAddColumns, XbaeMatrixDeleteColumns, XbaeMatrixSetRowColors,
  101. +    XbaeMatrixSetColumnColors and XbaeMatrixSetCellColor need to check
  102. +    if they are realized.
  103. +    (reported by salevin@drl.mobil.com (S. A. Levin [Stewart]))
  104. +  * Calling XbaeMatrixEditCell before the widget is realized could result
  105. +    in the edit TextField being positioned wrong.
  106. +  * XbaeMatrix needs to call the XmNtraverseCellCallback functions when
  107. +    the widget initially gets traversed into, and it is not currently
  108. +    editing a cell.
  109. +    (reported by mark@bryce.llnl.gov (Mark Spruiell))
  110. +  * Adding/deleting rows from an XbaeMatrix with XmNfixedRows could later
  111. +    result in a core dump when scrolling to the bottom of the matrix.
  112. +    (reported by nick@ps.quotron.com (Nick Aiuto))
  113. +  * Changed XbaeMatrix to use XrmPermStringToQuark for R5.
  114. + Andrew Wason
  115. + aw@bae.bellcore.com
  116. *** ../../Xbae-5-public/Xbae/src/Matrix.c    Mon Mar 16 13:05:11 1992
  117. --- src/Matrix.c    Thu Apr  9 11:26:20 1992
  118. ***************
  119. *** 38,46 ****
  120. X  #include <Xbae/MatrixP.h>
  121. X  
  122. X  #ifndef SABER
  123. ! static char sccsid[] = "@(#)Matrix.c    3.12 3/11/92";
  124. X  #endif
  125. X  
  126. X  /*
  127. X   * Translations for Matrix (these will also be used by the Clip child).
  128. X   */
  129. --- 38,50 ----
  130. X  #include <Xbae/MatrixP.h>
  131. X  
  132. X  #ifndef SABER
  133. ! static char sccsid[] = "@(#)Matrix.c    3.16 4/9/92";
  134. X  #endif
  135. X  
  136. + #ifndef XlibSpecificationRelease
  137. + #define XrmPermStringToQuark XrmStringToQuark
  138. + #endif
  139. X  /*
  140. X   * Translations for Matrix (these will also be used by the Clip child).
  141. X   */
  142. ***************
  143. *** 978,994 ****
  144. X      }
  145. X  
  146. X      /*
  147. -      * We can't have too many visible rows
  148. -      */
  149. -     if (new->matrix.visible_rows > new->matrix.rows - new->matrix.fixed_rows) {
  150. -     XtAppWarningMsg(XtWidgetToApplicationContext((Widget)new),
  151. -             "initialize", "tooManyVisibleRows", "XbaeMatrix",
  152. -             "XbaeMatrix: Too many visible rows",
  153. -             (String *) NULL, (Cardinal *) NULL);
  154. -     new->matrix.visible_rows = 0;
  155. -     }
  156. -     /*
  157. X       * We can't have too many visible columns
  158. X       */
  159. X      if (new->matrix.visible_columns >
  160. --- 982,987 ----
  161. ***************
  162. *** 1252,1258 ****
  163. X      XtRealizeWidget(TextChild(mw));
  164. X      XtRealizeWidget(ClipChild(mw));
  165. X      XReparentWindow(XtDisplay(mw), XtWindow(TextChild(mw)),
  166. !             XtWindow(ClipChild(mw)), 0, 0);
  167. X  }
  168. X  
  169. X  static void
  170. --- 1245,1252 ----
  171. X      XtRealizeWidget(TextChild(mw));
  172. X      XtRealizeWidget(ClipChild(mw));
  173. X      XReparentWindow(XtDisplay(mw), XtWindow(TextChild(mw)),
  174. !             XtWindow(ClipChild(mw)),
  175. !             TextChild(mw)->core.x, TextChild(mw)->core.y);
  176. X  }
  177. X  
  178. X  static void
  179. ***************
  180. *** 2399,2423 ****
  181. X      }
  182. X  
  183. X      /*
  184. !      * We can't have too many visible rows.
  185. !      * This could be caused by visible_rows or rows or fixed_rows changing.
  186. !      */
  187. !     if (new->matrix.visible_rows >
  188. !     new->matrix.rows - new->matrix.fixed_rows) {
  189. !     XtAppWarningMsg(XtWidgetToApplicationContext((Widget)new),
  190. !               "setValues", "tooManyVisibleRows", "XbaeMatrix",
  191. !               "XbaeMatrix: visibleRows must not be greater than (rows - fixedRows)",
  192. !               (String *) NULL, (Cardinal *) NULL);
  193. !     if (NE(matrix.visible_rows))
  194. !         new->matrix.visible_rows = current->matrix.visible_rows;
  195. !     if (NE(matrix.rows))
  196. !         new->matrix.rows = current->matrix.rows;
  197. !     if (NE(matrix.fixed_rows))
  198. !         new->matrix.fixed_rows = current->matrix.fixed_rows;
  199. !     }
  200. !     /*
  201. !      * We can't have too many visible columns.
  202. X       * This could be caused by visible_columns or columns or fixed_columns
  203. X       * changing.
  204. X       */
  205. --- 2393,2399 ----
  206. X      }
  207. X  
  208. X      /*
  209. !      * We can't have too many visible columns.
  210. X       * This could be caused by visible_columns or columns or fixed_columns
  211. X       * changing.
  212. X       */
  213. ***************
  214. *** 2897,2904 ****
  215. X       */
  216. X      if (mw->matrix.visible_columns)
  217. X      width = ROW_LABEL_WIDTH(mw) + 2 * mw->manager.shadow_thickness +
  218. !         mw->matrix.column_positions[mw->matrix.fixed_columns +
  219. !                     mw->matrix.visible_columns];
  220. X      else if (compute_width)
  221. X      width = full_width;
  222. X      else
  223. --- 2873,2881 ----
  224. X       */
  225. X      if (mw->matrix.visible_columns)
  226. X      width = ROW_LABEL_WIDTH(mw) + 2 * mw->manager.shadow_thickness +
  227. !         COLUMN_WIDTH(mw, mw->matrix.visible_columns - 1) +
  228. !         mw->matrix.column_positions[mw->matrix.fixed_columns +
  229. !                         mw->matrix.visible_columns - 1];
  230. X      else if (compute_width)
  231. X      width = full_width;
  232. X      else
  233. ***************
  234. *** 3365,3370 ****
  235. --- 3342,3350 ----
  236. X       */
  237. X      VERT_ORIGIN(mw) = call_data->value;
  238. X  
  239. +     if (!XtIsRealized(mw))
  240. +     return;
  241. X      /*
  242. X       * If we scrolled more than a screenful, just clear and
  243. X       * redraw the whole thing
  244. ***************
  245. *** 3541,3546 ****
  246. --- 3521,3529 ----
  247. X       */
  248. X      HORIZ_ORIGIN(mw) = call_data->value;
  249. X  
  250. +     if (!XtIsRealized(mw))
  251. +     return;
  252. X      /*
  253. X       * If we scrolled more than a screenful, just clear and
  254. X       * redraw the whole thing
  255. ***************
  256. *** 3729,3737 ****
  257. X       */
  258. X      else {
  259. X      int column = XtoCol(mw, FIXED_COLUMN_WIDTH(mw) +  HORIZ_ORIGIN(mw));
  260. X  
  261. X      (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.edit_cell)
  262. !         (mw, VERT_ORIGIN(mw) + mw->matrix.fixed_rows, column);
  263. X  
  264. X      XmProcessTraversal(TextChild(mw), XmTRAVERSE_CURRENT);
  265. X      }
  266. --- 3712,3747 ----
  267. X       */
  268. X      else {
  269. X      int column = XtoCol(mw, FIXED_COLUMN_WIDTH(mw) +  HORIZ_ORIGIN(mw));
  270. +     int row = VERT_ORIGIN(mw) + mw->matrix.fixed_rows;
  271. X  
  272. +     /*
  273. +      * Call the traverseCellCallback to allow the application to
  274. +      * perform custom traversal.
  275. +      */
  276. +     if (mw->matrix.traverse_cell_callback) {
  277. +         XbaeMatrixTraverseCellCallbackStruct call_data;
  278. +         
  279. +         call_data.reason = XbaeTraverseCellReason;
  280. +         call_data.row = 0;
  281. +         call_data.column = 0;
  282. +         call_data.next_row = row;
  283. +         call_data.next_column = column;
  284. +         call_data.fixed_rows = mw->matrix.fixed_rows;
  285. +         call_data.fixed_columns = mw->matrix.fixed_columns;
  286. +         call_data.num_rows = mw->matrix.rows;
  287. +         call_data.num_columns = mw->matrix.columns;
  288. +         call_data.param = NULL;
  289. +         call_data.qparam = NULLQUARK;
  290. +         
  291. +         XtCallCallbackList((Widget)mw, mw->matrix.traverse_cell_callback,
  292. +                    (XtPointer) &call_data);
  293. +         row = call_data.next_row;
  294. +         column = call_data.next_column;
  295. +     }
  296. +                
  297. X      (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.edit_cell)
  298. !         (mw, row, column);
  299. X  
  300. X      XmProcessTraversal(TextChild(mw), XmTRAVERSE_CURRENT);
  301. X      }
  302. ***************
  303. *** 5986,5992 ****
  304. X       * Reconfig the VSB maximum.
  305. X       */
  306. X      XtVaSetValues(VertScrollChild(mw),
  307. !           XmNmaximum,    mw->matrix.rows,
  308. X            NULL);
  309. X  
  310. X      /*
  311. --- 5996,6003 ----
  312. X       * Reconfig the VSB maximum.
  313. X       */
  314. X      XtVaSetValues(VertScrollChild(mw),
  315. !           XmNmaximum,    (mw->matrix.rows -
  316. !                  (int) mw->matrix.fixed_rows),
  317. X            NULL);
  318. X  
  319. X      /*
  320. ***************
  321. *** 6000,6014 ****
  322. X      (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit)
  323. X      (mw, True);
  324. X  
  325. !     /*
  326. !      * Generate expose events on Matrix and Clip to force the
  327. !      * new rows to be drawn.
  328. !      */
  329. !     XClearArea(XtDisplay(mw), XtWindow(mw),
  330. !            0, 0,
  331. !            0 /*Full Width*/, 0 /*Full Height*/,
  332. !            True);
  333. !     XbaeClipRedraw(ClipChild(mw));
  334. X  }
  335. X  
  336. X  /*
  337. --- 6011,6027 ----
  338. X      (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit)
  339. X      (mw, True);
  340. X  
  341. !     if (XtIsRealized(mw)) {
  342. !     /*
  343. !      * Generate expose events on Matrix and Clip to force the
  344. !      * new rows to be drawn.
  345. !      */
  346. !     XClearArea(XtDisplay(mw), XtWindow(mw),
  347. !            0, 0,
  348. !            0 /*Full Width*/, 0 /*Full Height*/,
  349. !            True);
  350. !     XbaeClipRedraw(ClipChild(mw));
  351. !     }
  352. X  }
  353. X  
  354. X  /*
  355. ***************
  356. *** 6073,6079 ****
  357. X       * Reconfig the VSB maximum. Reset the sliderSize to avoid warnings.
  358. X       */
  359. X      XtVaSetValues(VertScrollChild(mw),
  360. !           XmNmaximum,    mw->matrix.rows,
  361. X            XmNsliderSize,1,
  362. X            NULL);
  363. X  
  364. --- 6086,6093 ----
  365. X       * Reconfig the VSB maximum. Reset the sliderSize to avoid warnings.
  366. X       */
  367. X      XtVaSetValues(VertScrollChild(mw),
  368. !           XmNmaximum,    (mw->matrix.rows -
  369. !                  (int) mw->matrix.fixed_rows),
  370. X            XmNsliderSize,1,
  371. X            NULL);
  372. X  
  373. ***************
  374. *** 6088,6102 ****
  375. X      (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit)
  376. X      (mw, True);
  377. X  
  378. !      /*
  379. !      * Generate expose events on Matrix and Clip to force the
  380. !      * rows to be redrawn.
  381. !      */
  382. !     XClearArea(XtDisplay(mw), XtWindow(mw),
  383. !            0, 0,
  384. !            0 /*Full Width*/, 0 /*Full Height*/,
  385. !            True);
  386. !     XbaeClipRedraw(ClipChild(mw));
  387. X  }
  388. X  
  389. X  /*
  390. --- 6102,6118 ----
  391. X      (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit)
  392. X      (mw, True);
  393. X  
  394. !     if (XtIsRealized(mw)) {
  395. !     /*
  396. !      * Generate expose events on Matrix and Clip to force the
  397. !      * rows to be redrawn.
  398. !      */
  399. !     XClearArea(XtDisplay(mw), XtWindow(mw),
  400. !            0, 0,
  401. !            0 /*Full Width*/, 0 /*Full Height*/,
  402. !            True);
  403. !     XbaeClipRedraw(ClipChild(mw));
  404. !     }
  405. X  }
  406. X  
  407. X  /*
  408. ***************
  409. *** 6167,6173 ****
  410. X       * Reconfig the HSB maximum.
  411. X       */
  412. X      XtVaSetValues(HorizScrollChild(mw),
  413. !           XmNmaximum,    mw->matrix.cell_total_width,
  414. X            NULL);
  415. X  
  416. X      /*
  417. --- 6183,6189 ----
  418. X       * Reconfig the HSB maximum.
  419. X       */
  420. X      XtVaSetValues(HorizScrollChild(mw),
  421. !           XmNmaximum,    CELL_TOTAL_WIDTH(mw),
  422. X            NULL);
  423. X  
  424. X      /*
  425. ***************
  426. *** 6181,6195 ****
  427. X      (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit)
  428. X      (mw, True);
  429. X  
  430. !     /*
  431. !      * Generate expose events on Matrix and Clip to force the
  432. !      * new columns to be drawn.
  433. !      */
  434. !     XClearArea(XtDisplay(mw), XtWindow(mw),
  435. !            0, 0,
  436. !            0 /*Full Width*/, 0 /*Full Height*/,
  437. !            True);
  438. !     XbaeClipRedraw(ClipChild(mw));
  439. X  }
  440. X  
  441. X  /*
  442. --- 6197,6213 ----
  443. X      (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit)
  444. X      (mw, True);
  445. X  
  446. !     if (XtIsRealized(mw)) {
  447. !     /*
  448. !      * Generate expose events on Matrix and Clip to force the
  449. !      * new columns to be drawn.
  450. !      */
  451. !     XClearArea(XtDisplay(mw), XtWindow(mw),
  452. !            0, 0,
  453. !            0 /*Full Width*/, 0 /*Full Height*/,
  454. !            True);
  455. !     XbaeClipRedraw(ClipChild(mw));
  456. !     }
  457. X  }
  458. X  
  459. X  /*
  460. ***************
  461. *** 6260,6266 ****
  462. X       * Reconfig the HSB maximum. Reset the sliderSize to avoid warnings.
  463. X       */
  464. X      XtVaSetValues(HorizScrollChild(mw),
  465. !           XmNmaximum,    mw->matrix.cell_total_width,
  466. X            XmNsliderSize,1,
  467. X            NULL);
  468. X  
  469. --- 6278,6284 ----
  470. X       * Reconfig the HSB maximum. Reset the sliderSize to avoid warnings.
  471. X       */
  472. X      XtVaSetValues(HorizScrollChild(mw),
  473. !           XmNmaximum,    CELL_TOTAL_WIDTH(mw),
  474. X            XmNsliderSize,1,
  475. X            NULL);
  476. X  
  477. ***************
  478. *** 6275,6289 ****
  479. X      (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit)
  480. X      (mw, True);
  481. X  
  482. !     /*
  483. !      * Generate expose events on Matrix and Clip to force the
  484. !      * columns to be redrawn.
  485. !      */
  486. !     XClearArea(XtDisplay(mw), XtWindow(mw),
  487. !            0, 0,
  488. !            0 /*Full Width*/, 0 /*Full Height*/,
  489. !            True);
  490. !     XbaeClipRedraw(ClipChild(mw));
  491. X  }
  492. X  
  493. X  /*
  494. --- 6293,6309 ----
  495. X      (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit)
  496. X      (mw, True);
  497. X  
  498. !     if (XtIsRealized(mw)) {
  499. !     /*
  500. !      * Generate expose events on Matrix and Clip to force the
  501. !      * columns to be redrawn.
  502. !      */
  503. !     XClearArea(XtDisplay(mw), XtWindow(mw),
  504. !            0, 0,
  505. !            0 /*Full Width*/, 0 /*Full Height*/,
  506. !            True);
  507. !     XbaeClipRedraw(ClipChild(mw));
  508. !     }
  509. X  }
  510. X  
  511. X  /*
  512. ***************
  513. *** 6354,6376 ****
  514. X      for (j = 0; j < mw->matrix.columns; j++)
  515. X          mw->matrix.colors[i + position][j] = colors[i];
  516. X  
  517. !     /*
  518. !      * Redraw all the visible non-fixed cells.    We don't need to clear first
  519. !      * since only the color changed.
  520. !      */
  521. !     SETRECT(rect,
  522. !         0, 0,
  523. !         ClipChild(mw)->core.width - 1, ClipChild(mw)->core.height - 1);
  524. !     RedrawCells(mw, &rect);
  525. X  
  526. !     /*
  527. !      * Redraw all the visible fixed cells (but not the labels).
  528. !      * We don't need to clear first since only the color changed.
  529. !      */
  530. !     SETRECT(rect,
  531. !         ROW_LABEL_WIDTH(mw), COLUMN_LABEL_HEIGHT(mw),
  532. !         mw->core.width - 1, mw->core.height - 1);
  533. !     RedrawLabelsAndFixed(mw, &rect);
  534. X  }
  535. X  
  536. X  /*
  537. --- 6374,6398 ----
  538. X      for (j = 0; j < mw->matrix.columns; j++)
  539. X          mw->matrix.colors[i + position][j] = colors[i];
  540. X  
  541. !     if (XtIsRealized(mw)) {
  542. !     /*
  543. !      * Redraw all the visible non-fixed cells. We don't need to clear first
  544. !      * since only the color changed.
  545. !      */
  546. !     SETRECT(rect,
  547. !         0, 0,
  548. !         ClipChild(mw)->core.width - 1, ClipChild(mw)->core.height - 1);
  549. !     RedrawCells(mw, &rect);
  550. X  
  551. !     /*
  552. !      * Redraw all the visible fixed cells (but not the labels).
  553. !      * We don't need to clear first since only the color changed.
  554. !      */
  555. !     SETRECT(rect,
  556. !         ROW_LABEL_WIDTH(mw), COLUMN_LABEL_HEIGHT(mw),
  557. !         mw->core.width - 1, mw->core.height - 1);
  558. !     RedrawLabelsAndFixed(mw, &rect);
  559. !     }
  560. X  }
  561. X  
  562. X  /*
  563. ***************
  564. *** 6442,6464 ****
  565. X      for (j = 0; j < num_colors; j++)
  566. X          mw->matrix.colors[i][j + position] = colors[j];
  567. X  
  568. !     /*
  569. !      * Redraw all the visible non-fixed cells.    We don't need to clear first
  570. !      * since only the color changed.
  571. !      */
  572. !     SETRECT(rect,
  573. !         0, 0,
  574. !         ClipChild(mw)->core.width - 1, ClipChild(mw)->core.height - 1);
  575. !     RedrawCells(mw, &rect);
  576. X  
  577. !     /*
  578. !      * Redraw all the visible fixed cells (but not the labels).
  579. !      * We don't need to clear first since only the color changed.
  580. !      */
  581. !     SETRECT(rect,
  582. !         ROW_LABEL_WIDTH(mw), COLUMN_LABEL_HEIGHT(mw),
  583. !         mw->core.width - 1, mw->core.height - 1);
  584. !     RedrawLabelsAndFixed(mw, &rect);
  585. X  }
  586. X  
  587. X  /*
  588. --- 6464,6488 ----
  589. X      for (j = 0; j < num_colors; j++)
  590. X          mw->matrix.colors[i][j + position] = colors[j];
  591. X  
  592. !     if (XtIsRealized(mw)) {
  593. !     /*
  594. !      * Redraw all the visible non-fixed cells. We don't need to clear first
  595. !      * since only the color changed.
  596. !      */
  597. !     SETRECT(rect,
  598. !         0, 0,
  599. !         ClipChild(mw)->core.width - 1, ClipChild(mw)->core.height - 1);
  600. !     RedrawCells(mw, &rect);
  601. X  
  602. !     /*
  603. !      * Redraw all the visible fixed cells (but not the labels).
  604. !      * We don't need to clear first since only the color changed.
  605. !      */
  606. !     SETRECT(rect,
  607. !         ROW_LABEL_WIDTH(mw), COLUMN_LABEL_HEIGHT(mw),
  608. !         mw->core.width - 1, mw->core.height - 1);
  609. !     RedrawLabelsAndFixed(mw, &rect);
  610. !     }
  611. X  }
  612. X  
  613. X  /*
  614. ***************
  615. *** 6522,6532 ****
  616. X       */
  617. X      mw->matrix.colors[row][column] = color;
  618. X  
  619. !     /*
  620. !      * Redraw the cell if it is visible
  621. !      */
  622. !     if (IsCellVisible(mw, row, column))
  623. !     DrawCell(mw, row, column);
  624. X  }
  625. X  
  626. X  /*
  627. --- 6546,6558 ----
  628. X       */
  629. X      mw->matrix.colors[row][column] = color;
  630. X  
  631. !     if (XtIsRealized(mw)) {
  632. !     /*
  633. !      * Redraw the cell if it is visible
  634. !      */
  635. !     if (IsCellVisible(mw, row, column))
  636. !         DrawCell(mw, row, column);
  637. !     }
  638. X  }
  639. X  
  640. X  /*
  641. ***************
  642. *** 6573,6583 ****
  643. X       * Get static quarks for the parms we understand
  644. X       */
  645. X      if (!haveQuarks) {
  646. !     QPointer = XrmStringToQuark("Pointer");
  647. !     QLeft = XrmStringToQuark("Left");
  648. !     QRight = XrmStringToQuark("Right");
  649. !     QUp = XrmStringToQuark("Up");
  650. !     QDown = XrmStringToQuark("Down");
  651. X      haveQuarks = True;
  652. X      }
  653. X  
  654. --- 6599,6609 ----
  655. X       * Get static quarks for the parms we understand
  656. X       */
  657. X      if (!haveQuarks) {
  658. !     QPointer = XrmPermStringToQuark("Pointer");
  659. !     QLeft = XrmPermStringToQuark("Left");
  660. !     QRight = XrmPermStringToQuark("Right");
  661. !     QUp = XrmPermStringToQuark("Up");
  662. !     QDown = XrmPermStringToQuark("Down");
  663. X      haveQuarks = True;
  664. X      }
  665. X  
  666. *** ../../Xbae-5-public/Xbae/src/MatrixP.h    Mon Mar 16 13:05:14 1992
  667. --- src/MatrixP.h    Thu Apr  9 11:26:22 1992
  668. ***************
  669. *** 30,36 ****
  670. X  #define _MatrixP_h
  671. X  
  672. X  /*
  673. !  *  "@(#)MatrixP.h    3.7 3/11/92"
  674. X   */
  675. X  
  676. X  #include <Xm/XmP.h>
  677. --- 30,36 ----
  678. X  #define _MatrixP_h
  679. X  
  680. X  /*
  681. !  *  "@(#)MatrixP.h    3.8 4/8/92"
  682. X   */
  683. X  
  684. X  #include <Xm/XmP.h>
  685. ***************
  686. *** 379,385 ****
  687. X      GC        cell_bottom_shadow_clip_gc; /* GC for clipped bottom shadow */
  688. X  
  689. X      XFontStruct    *font;            /* fontStruct from fontList */
  690. -     int        char_width;        /* average character width for font */
  691. X  
  692. X      int        *column_positions;  /* pixel position of each column */
  693. X  
  694. --- 379,384 ----
  695. *** ../../Xbae-5-public/Xbae/src/version.c    Mon Mar 16 13:05:39 1992
  696. --- src/version.c    Thu Apr  9 11:26:22 1992
  697. ***************
  698. *** 21,27 ****
  699. X   */
  700. X  
  701. X  #ifndef SABER
  702. ! static char sccsid[] = "@(#)version.c    3.5 3/13/92";
  703. X  #endif
  704. X  
  705. X  /*
  706. --- 21,27 ----
  707. X   */
  708. X  
  709. X  #ifndef SABER
  710. ! static char sccsid[] = "@(#)version.c    3.6 4/9/92";
  711. X  #endif
  712. X  
  713. X  /*
  714. ***************
  715. *** 30,37 ****
  716. X    The SCCSID of this file should be used as the Xbae release number.
  717. X  
  718. X    Matrix.h    3.7
  719. !   MatrixP.h    3.7
  720. !   Matrix.c    3.12
  721. X    Clip.h    3.3
  722. X    ClipP.h    3.3
  723. X    Clip.c    3.3
  724. --- 30,37 ----
  725. X    The SCCSID of this file should be used as the Xbae release number.
  726. X  
  727. X    Matrix.h    3.7
  728. !   MatrixP.h    3.8
  729. !   Matrix.c    3.16
  730. X    Clip.h    3.3
  731. X    ClipP.h    3.3
  732. X    Clip.c    3.3
  733. SHAR_EOF
  734. chmod 0644 patch-3.5-to-3.6 ||
  735. echo 'restore of patch-3.5-to-3.6 failed'
  736. Wc_c="`wc -c < 'patch-3.5-to-3.6'`"
  737. test 18187 -eq "$Wc_c" ||
  738.     echo 'patch-3.5-to-3.6: original size 18187, current size' "$Wc_c"
  739. fi
  740. exit 0
  741. -- 
  742. --
  743. Molecular Simulations, Inc.            mail: dcmartin@msi.com
  744. 796 N. Pastoria Avenue                uucp: uunet!dcmartin
  745. Sunnyvale, California 94086            at&t: 408/522-9236
  746.