X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xaw%2Fxoptions.c;h=1f406cbeeb51f4d660741524787d50806f3b339e;hb=e6e38912837a4fe2464356408d10dee950b3121c;hp=cee1ec361d32a78dc89a770bcbaebc2fe49b16cb;hpb=828a3f3b12c8559a5b73f85f3094f4eddfe06b8b;p=xboard.git diff --git a/xaw/xoptions.c b/xaw/xoptions.c index cee1ec3..1f406cb 100644 --- a/xaw/xoptions.c +++ b/xaw/xoptions.c @@ -1,7 +1,7 @@ /* * xoptions.c -- Move list window, part of X front end for XBoard * - * Copyright 2000, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. + * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. * ------------------------------------------------------------------------ * * GNU XBoard is free software: you can redistribute it and/or modify @@ -708,8 +708,15 @@ GraphEventProc(Widget widget, caddr_t client_data, XEvent *event) // to give drawing routines opportunity to use it before first expose event // (which are only processed when main gets to the event loop, so after all init!) // so only change when size is no longer good + cairo_t *cr; if(graph->choice) cairo_surface_destroy((cairo_surface_t *) graph->choice); graph->choice = (char**) cairo_image_surface_create (CAIRO_FORMAT_ARGB32, w, h); + // paint white, to prevent weirdness when people maximize window and drag pieces over space next to board + cr = cairo_create ((cairo_surface_t *) graph->choice); + cairo_rectangle (cr, 0, 0, w, h); + cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 1.0); + cairo_fill(cr); + cairo_destroy (cr); break; } w = ((XExposeEvent*)event)->width; @@ -981,6 +988,7 @@ GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent } else texts[h] = dialog = NULL; // kludge to position from left margin w = option[i].type == Spin || option[i].type == Fractional ? 70 : option[i].max ? option[i].max : 205; if(option[i].type == FileName || option[i].type == PathName) w -= 55; + if(squareSize > 33) w += (squareSize - 33)/2; j = SetPositionAndSize(args, dialog, last, 1 /* border */, w /* w */, option[i].type == TextBox ? option[i].value : 0 /* h */, 0x91 /* chain full width */); if(option[i].type == TextBox) { // decorations for multi-line text-edits @@ -1079,8 +1087,8 @@ GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent option[i].max /* w */, shrink ? textHeight : 0 /* h */, option[i].min & 0xE | chain /* chain */); XtSetArg(args[j], XtNlabel, _(option[i].name)); j++; if(option[i].textValue) { // special for buttons of New Variant dialog - XtSetArg(args[j], XtNsensitive, appData.noChessProgram || option[i].value < 0 - || strstr(first.variants, VariantName(option[i].value))); j++; + XtSetArg(args[j], XtNsensitive, option[i].value >= 0 && (appData.noChessProgram + || strstr(first.variants, VariantName(option[i].value)))); j++; XtSetArg(args[j], XtNborderWidth, (gameInfo.variant == option[i].value)+1); j++; } option[i].handle = (void*)