} else ResizeBoardWindow(BOARD_WIDTH * (squareSize + lineGap) + lineGap, BOARD_HEIGHT * (squareSize + lineGap) + lineGap, 0);
w = BOARD_WIDTH * (squareSize + lineGap) + lineGap;
h = BOARD_HEIGHT * (squareSize + lineGap) + lineGap;
- if(optList->max > w) optList->max = w;
- if(optList->value > h) optList->value = h;
+ if(optList[W_BOARD].max > w) optList[W_BOARD].max = w;
+ if(optList[W_BOARD].value > h) optList[W_BOARD].value = h;
}
static XtIntervalId delayedDragID = 0;
XtSetArg(args[j], XtNwidth, &w); j++;
XtSetArg(args[j], XtNheight, &h); j++;
XtGetValues(widget, args, j);
+
if(w < graph->max || w > graph->max + 1 || h != graph->value) { // use width fudge of 1 pixel
- sizing = (((XExposeEvent*)event)->count >= 0); // suppress sizing on ordered redraw in response to sizing.
+ sizing = (((XExposeEvent*)event)->count >= 0); // suppress sizing on expose for ordered redraw in response to sizing.
graph->max = w; graph->value = h; // note: old values are kept if we we don't exceed width fudge
- }
+ } else w = graph->max;
+
if(sizing && ((XExposeEvent*)event)->count > 0) { graph->max = 0; return; } // don't bother if further exposure is pending during resize
if(!graph->textValue || sizing) { // create surfaces of new size for display widget
if(graph->textValue) cairo_surface_destroy((cairo_surface_t *)graph->textValue);