Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Remove caching for "frame" width/height as well |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | main |
Files: | files | file ages | folders |
SHA3-256: |
26d5613469cb55fba285f90901db157b |
User & Date: | jan.nijtmans 2024-08-25 21:02:32 |
Context
2024-08-26
| ||
06:03 | Fix [de83677067]: Compile error (undeclared identifier) in generic/tkFrame.c check-in: 72673289 user: jan.nijtmans tags: trunk, main | |
2024-08-25
| ||
21:02 | Remove caching for "frame" width/height as well check-in: 26d56134 user: jan.nijtmans tags: trunk, main | |
20:49 | Remove caching for "frame" width/height as well check-in: 1c3e5313 user: jan.nijtmans tags: core-8-branch | |
20:27 | Reduce caching in "frame", in case of scaling factor changes check-in: 707f77d5 user: jan.nijtmans tags: trunk, main | |
Changes
Changes to generic/tkFrame.c.
︙ | ︙ | |||
98 99 100 101 102 103 104 | Tk_Image bgimg; /* Derived from bgimgPtr by calling * Tk_GetImage, or NULL if bgimgPtr is * NULL. */ int tile; /* Whether to tile the bgimg. */ #ifndef TK_NO_DOUBLE_BUFFERING GC copyGC; /* GC for copying when double-buffering. */ #endif /* TK_NO_DOUBLE_BUFFERING */ | < < < | 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | Tk_Image bgimg; /* Derived from bgimgPtr by calling * Tk_GetImage, or NULL if bgimgPtr is * NULL. */ int tile; /* Whether to tile the bgimg. */ #ifndef TK_NO_DOUBLE_BUFFERING GC copyGC; /* GC for copying when double-buffering. */ #endif /* TK_NO_DOUBLE_BUFFERING */ } Frame; /* * A data structure of the following type is kept for each labelframe widget * managed by this file: */ |
︙ | ︙ | |||
198 199 200 201 202 203 204 | */ {TK_OPTION_BOOLEAN, "-container", "container", "Container", DEF_FRAME_CONTAINER, TCL_INDEX_NONE, offsetof(Frame, isContainer), 0, 0, 0}, {TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor", DEF_FRAME_CURSOR, TCL_INDEX_NONE, offsetof(Frame, cursor), TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_PIXELS, "-height", "height", "Height", | | | | 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 | */ {TK_OPTION_BOOLEAN, "-container", "container", "Container", DEF_FRAME_CONTAINER, TCL_INDEX_NONE, offsetof(Frame, isContainer), 0, 0, 0}, {TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor", DEF_FRAME_CURSOR, TCL_INDEX_NONE, offsetof(Frame, cursor), TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_PIXELS, "-height", "height", "Height", DEF_FRAME_HEIGHT, offsetof(Frame, heightObj), TCL_INDEX_NONE, 0, 0, 0}, {TK_OPTION_COLOR, "-highlightbackground", "highlightBackground", "HighlightBackground", DEF_FRAME_HIGHLIGHT_BG, TCL_INDEX_NONE, offsetof(Frame, highlightBgColorPtr), 0, 0, 0}, {TK_OPTION_COLOR, "-highlightcolor", "highlightColor", "HighlightColor", DEF_FRAME_HIGHLIGHT, TCL_INDEX_NONE, offsetof(Frame, highlightColorPtr), 0, 0, 0}, {TK_OPTION_PIXELS, "-highlightthickness", "highlightThickness", "HighlightThickness", DEF_FRAME_HIGHLIGHT_WIDTH, offsetof(Frame, highlightWidthObj), TCL_INDEX_NONE, 0, 0, 0}, {TK_OPTION_PIXELS, "-padx", "padX", "Pad", DEF_FRAME_PADX, offsetof(Frame, padXObj), TCL_INDEX_NONE, 0, 0, 0}, {TK_OPTION_PIXELS, "-pady", "padY", "Pad", DEF_FRAME_PADY, offsetof(Frame, padYObj), TCL_INDEX_NONE, 0, 0, 0}, {TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus", DEF_FRAME_TAKE_FOCUS, TCL_INDEX_NONE, offsetof(Frame, takeFocus), TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_STRING, "-visual", "visual", "Visual", DEF_FRAME_VISUAL, TCL_INDEX_NONE, offsetof(Frame, visualName), TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_PIXELS, "-width", "width", "Width", DEF_FRAME_WIDTH, offsetof(Frame, widthObj), TCL_INDEX_NONE, 0, 0, 0}, {TK_OPTION_END, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0} }; static const Tk_OptionSpec frameOptSpec[] = { {TK_OPTION_STRING, "-backgroundimage", "backgroundImage", "BackgroundImage", DEF_FRAME_BG_IMAGE, offsetof(Frame, bgimgPtr), TCL_INDEX_NONE, TK_OPTION_NULL_OK, 0, 0}, |
︙ | ︙ | |||
927 928 929 930 931 932 933 | Tcl_Obj *const objv[]) /* Arguments. */ { Tk_SavedOptions savedOptions; char *oldMenuName; Tk_Window oldWindow = NULL; Labelframe *labelframePtr = (Labelframe *) framePtr; Tk_Image image = NULL; | | | 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 | Tcl_Obj *const objv[]) /* Arguments. */ { Tk_SavedOptions savedOptions; char *oldMenuName; Tk_Window oldWindow = NULL; Labelframe *labelframePtr = (Labelframe *) framePtr; Tk_Image image = NULL; int padX, padY, width, height; int borderWidth, highlightWidth; /* * Need the old menubar name for the menu code to delete it. */ if (framePtr->menuName == NULL) { |
︙ | ︙ | |||
991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 | if (framePtr->border != NULL) { Tk_SetBackgroundFromBorder(framePtr->tkwin, framePtr->border); } else { Tk_SetWindowBackgroundPixmap(framePtr->tkwin, None); } Tk_GetPixelsFromObj(NULL, framePtr->tkwin, framePtr->borderWidthObj, &borderWidth); if (borderWidth < 0) { Tcl_DecrRefCount(framePtr->borderWidthObj); framePtr->borderWidthObj = Tcl_NewIntObj(0); Tcl_IncrRefCount(framePtr->borderWidthObj); } Tk_GetPixelsFromObj(NULL, framePtr->tkwin, framePtr->highlightWidthObj, &highlightWidth); | > > > > > > > > > > > > | 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 | if (framePtr->border != NULL) { Tk_SetBackgroundFromBorder(framePtr->tkwin, framePtr->border); } else { Tk_SetWindowBackgroundPixmap(framePtr->tkwin, None); } Tk_GetPixelsFromObj(NULL, framePtr->tkwin, framePtr->widthObj, &width); if (width < 0) { Tcl_DecrRefCount(framePtr->widthObj); framePtr->widthObj = Tcl_NewIntObj(0); Tcl_IncrRefCount(framePtr->widthObj); } Tk_GetPixelsFromObj(NULL, framePtr->tkwin, framePtr->heightObj, &height); if (height < 0) { Tcl_DecrRefCount(framePtr->heightObj); framePtr->heightObj = Tcl_NewIntObj(0); Tcl_IncrRefCount(framePtr->heightObj); } Tk_GetPixelsFromObj(NULL, framePtr->tkwin, framePtr->borderWidthObj, &borderWidth); if (borderWidth < 0) { Tcl_DecrRefCount(framePtr->borderWidthObj); framePtr->borderWidthObj = Tcl_NewIntObj(0); Tcl_IncrRefCount(framePtr->borderWidthObj); } Tk_GetPixelsFromObj(NULL, framePtr->tkwin, framePtr->highlightWidthObj, &highlightWidth); |
︙ | ︙ | |||
1115 1116 1117 1118 1119 1120 1121 | Labelframe *labelframePtr = (Labelframe *)instanceData; Tk_Window tkwin = framePtr->tkwin; XGCValues gcValues; GC gc; int anyTextLabel, anyWindowLabel; int bWidthLeft, bWidthRight, bWidthTop, bWidthBottom; const char *labelText; | | | 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 | Labelframe *labelframePtr = (Labelframe *)instanceData; Tk_Window tkwin = framePtr->tkwin; XGCValues gcValues; GC gc; int anyTextLabel, anyWindowLabel; int bWidthLeft, bWidthRight, bWidthTop, bWidthBottom; const char *labelText; int padX, padY, width, height; int borderWidth, highlightWidth; anyTextLabel = (framePtr->type == TYPE_LABELFRAME) && (labelframePtr->textPtr != NULL) && (labelframePtr->labelWin == NULL); anyWindowLabel = (framePtr->type == TYPE_LABELFRAME) && (labelframePtr->labelWin != NULL); |
︙ | ︙ | |||
1258 1259 1260 1261 1262 1263 1264 | } else { minheight += padding; minwidth += borderWidth + highlightWidth; } Tk_SetMinimumRequestSize(tkwin, minwidth, minheight); } | > > | | | 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 | } else { minheight += padding; minwidth += borderWidth + highlightWidth; } Tk_SetMinimumRequestSize(tkwin, minwidth, minheight); } Tk_GetPixelsFromObj(NULL, framePtr->tkwin, framePtr->widthObj, &width); Tk_GetPixelsFromObj(NULL, framePtr->tkwin, framePtr->heightObj, &height); if ((width > 0) || (height > 0)) { Tk_GeometryRequest(tkwin, width, height); } if (Tk_IsMapped(tkwin)) { if (!(framePtr->flags & REDRAW_PENDING)) { Tcl_DoWhenIdle(DisplayFrame, framePtr); } framePtr->flags |= REDRAW_PENDING; |
︙ | ︙ |