From: Pasi Kallinen Date: Tue, 25 Jan 2022 09:19:12 +0000 (+0200) Subject: X11: Fix map expose area X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=61f78318a56db9d1b9ba2956a3fd022b68dfde7a;p=nethack X11: Fix map expose area The stop_row and stop_col were off-by-one in some cases, leaving black lines on the map when a window on top was closed. Simplify the calculation by always going one row/col further, ensuring previously covered area gets redrawn for sure. This should not affect speed or resource usage noticeably these days. --- diff --git a/doc/fixes37.0 b/doc/fixes37.0 index 5870e6bf9..90724a91a 100644 --- a/doc/fixes37.0 +++ b/doc/fixes37.0 @@ -1414,6 +1414,7 @@ Unix: can define NOSUSPEND in config.h or src/Makefile's CFLAGS to prevent X11: implement 'selectsaved', restore via menu of saved games X11: echo getline prompt and response (wishes, applying names) to message window and dumplog message history +X11: fix map expose area, no longer leaving black bars on the map NetHack Community Patches (or Variation) Included diff --git a/win/X11/winmap.c b/win/X11/winmap.c index bf7571796..88dbb728f 100644 --- a/win/X11/winmap.c +++ b/win/X11/winmap.c @@ -1199,12 +1199,10 @@ map_exposed(Widget w, XtPointer client_data, /* unused */ t_width = map_info->text_map.square_width; } start_row = y / t_height; - stop_row = ((y + height) / t_height) - + ((((y + height) % t_height) == 0) ? 0 : 1) - 1; + stop_row = ((y + height) / t_height) + 1; start_col = x / t_width; - stop_col = ((x + width) / t_width) - + ((((x + width) % t_width) == 0) ? 0 : 1) - 1; + stop_col = ((x + width) / t_width) + 1; #ifdef VERBOSE printf("map_exposed: x = %d, y = %d, width = %d, height = %d\n", x, y,