Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch bug-2712f43f6e Excluding Merge-Ins
This is equivalent to a diff from 043b12d0 to a8069c8c
2020-05-01
| ||
11:57 | Fix [2712f43f6e]: X11: crash for rotated text w/o Xft, and optimize text item drawing in canvas by skipping the drawing of empty unselected portions of text. Patch from Christopher Chavez. check-in: ef40798d user: fvogel tags: core-8-6-branch | |
2020-04-26
| ||
21:05 | More accurately comment canvText-20.2 Closed-Leaf check-in: a8069c8c user: fvogel tags: bug-2712f43f6e | |
20:30 | Add test canvText-20.2 failing before commit [f74fffb4] and no longer failing with this commit. check-in: 2d463458 user: fvogel tags: bug-2712f43f6e | |
2020-04-25
| ||
09:38 | Fix [6e25fc7cc1]: widget demo: dark-mode friendly 'NEW' image. Patch from Christopher Chavez. check-in: 4af616c6 user: fvogel tags: core-8-6-branch | |
2020-04-24
| ||
13:54 | Create TKNSString which implements Christopher Chavez's suggestion in [4cda3ff048] for more efficient conversion from TclUtf to UTF-16. Closed-Leaf check-in: d7f8c0cc user: marc_culler tags: rfe-4cda3ff048 | |
2020-04-23
| ||
20:58 | Fix [2712f43f6e]: X11: crash for rotated text w/o Xft. Patch from Christopher Chavez. check-in: f74fffb4 user: fvogel tags: bug-2712f43f6e | |
2020-04-22
| ||
21:39 | Fix [cd8714756c]: Long lines of rotated text not printing correctly - MultiFontTextOut. Patch from Christopher Chavez. check-in: d850ea1f user: fvogel tags: bug-cd8714756c | |
2020-04-19
| ||
09:34 | Fix [7655f65ae7]: text positioning issues in entry widgets. This is a patch from Christopher Chavez, slightly modified, and addresses the bug for Windows, Linux and macOS. check-in: 52f87eb1 user: fvogel tags: bug-7655f65ae | |
2020-04-18
| ||
10:52 | Add .gitignore file Closed-Leaf check-in: 35821519 user: fvogel tags: rfe-acde5a7641 | |
09:44 | Fix [14188104c3]: ttk::treeview scrollbar not updating. Add test treeview-9.2 revealing this bug, failing before the fix and passing with it. Thanks to cjmcdonald. check-in: ca58681e user: fvogel tags: bug-14188104c3 | |
2020-04-17
| ||
13:49 | Merge 8.6 check-in: fea18cf8 user: jan.nijtmans tags: trunk | |
13:46 | Sync tcl.m4 with Tcl. Re-generate UNIX configure script check-in: 043b12d0 user: jan.nijtmans tags: core-8-6-branch | |
13:42 | Merge 8.5 check-in: 74d4703c user: jan.nijtmans tags: core-8-6-branch | |
Changes to generic/tkCanvText.c.
︙ | ︙ | |||
953 954 955 956 957 958 959 | * text up to the selection, draw the selection, then draw the rest of the * regular text. Drawing the regular text and then the selected text over * it would causes problems with anti-aliased text because the two * anti-aliasing colors would blend together. */ if ((selFirstChar >= 0) && (textPtr->selTextGC != textPtr->gc)) { | > | | | > > | | | > | | 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 | * text up to the selection, draw the selection, then draw the rest of the * regular text. Drawing the regular text and then the selected text over * it would causes problems with anti-aliased text because the two * anti-aliasing colors would blend together. */ if ((selFirstChar >= 0) && (textPtr->selTextGC != textPtr->gc)) { if (0 < selFirstChar) { TkDrawAngledTextLayout(display, drawable, textPtr->gc, textPtr->textLayout, drawableX, drawableY, textPtr->angle, 0, selFirstChar); } TkDrawAngledTextLayout(display, drawable, textPtr->selTextGC, textPtr->textLayout, drawableX, drawableY, textPtr->angle, selFirstChar, selLastChar + 1); if (selLastChar + 1 < textPtr->numChars) { TkDrawAngledTextLayout(display, drawable, textPtr->gc, textPtr->textLayout, drawableX, drawableY, textPtr->angle, selLastChar + 1, textPtr->numChars); } } else { TkDrawAngledTextLayout(display, drawable, textPtr->gc, textPtr->textLayout, drawableX, drawableY, textPtr->angle, 0, textPtr->numChars); } TkUnderlineAngledTextLayout(display, drawable, textPtr->gc, textPtr->textLayout, drawableX, drawableY, textPtr->angle, textPtr->underline); if (stipple != None) { XSetTSOrigin(display, textPtr->gc, 0, 0); |
︙ | ︙ |
Changes to tests/canvText.test.
︙ | ︙ | |||
959 960 961 962 963 964 965 966 967 968 969 | list [expr {$bb0 eq $bb2 ? "ok" : "$bb0,$bb2"}] \ [expr {$bb1 eq $bb3 ? "ok" : "$bb1,$bb3"}] \ [expr {$bb0 eq [transpose $bb1] ? "ok" : "$bb0,$bb1"}] \ } -cleanup { destroy .c rename transpose {} } -result {ok ok ok} # cleanup cleanupTests return | > > > > > > > > > > > > > > | 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 | list [expr {$bb0 eq $bb2 ? "ok" : "$bb0,$bb2"}] \ [expr {$bb1 eq $bb3 ? "ok" : "$bb1,$bb3"}] \ [expr {$bb0 eq [transpose $bb1] ? "ok" : "$bb0,$bb1"}] \ } -cleanup { destroy .c rename transpose {} } -result {ok ok ok} test canvText-20.2 {crash on angled text selection (X11, without xft) - bug 2712f43f6e} -setup { destroy .c canvas .c -background bisque -selectforeground green2 grid .c set id [.c create text 50 150 -anchor w -text "Angled text" \ -angle 30 -font {Helvetica 32} -fill darkblue] } -body { .c select clear .c select from $id 0 .c select to $id 8 ; update ; # used to crash on X11 (--disable-xft build only) } -cleanup { destroy .c } -result {} # cleanup cleanupTests return |
Changes to unix/tkUnixFont.c.
︙ | ︙ | |||
3062 3063 3064 3065 3066 3067 3068 | int *realWidthPtr, int *realHeightPtr) { int width, height; TkFont *fontPtr = (TkFont *) tkfont; Pixmap bitmap; GC bitmapGC; XGCValues values; | | > | | | | | | | | | | | | | | | | > | | > | | | | | | | | | > | 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 | int *realWidthPtr, int *realHeightPtr) { int width, height; TkFont *fontPtr = (TkFont *) tkfont; Pixmap bitmap; GC bitmapGC; XGCValues values; XImage *image = NULL; (void) Tk_MeasureChars(tkfont, source, numBytes, -1, 0, &width); height = fontPtr->fm.ascent + fontPtr->fm.descent; if ((width > 0) && (height > 0)) { bitmap = Tk_GetPixmap(display, drawable, width, height, 1); values.graphics_exposures = False; values.foreground = BlackPixel(display, DefaultScreen(display)); bitmapGC = XCreateGC(display, bitmap, GCGraphicsExposures|GCForeground, &values); XFillRectangle(display, bitmap, bitmapGC, 0, 0, width, height); values.font = Tk_FontId(tkfont); values.foreground = WhitePixel(display, DefaultScreen(display)); values.background = BlackPixel(display, DefaultScreen(display)); XChangeGC(display, bitmapGC, GCFont|GCForeground|GCBackground, &values); Tk_DrawChars(display, bitmap, bitmapGC, tkfont, source, numBytes, 0, fontPtr->fm.ascent); XFreeGC(display, bitmapGC); image = XGetImage(display, bitmap, 0, 0, width, height, AllPlanes, ZPixmap); Tk_FreePixmap(display, bitmap); } *realWidthPtr = width; *realHeightPtr = height; return image; } static inline XImage * InitDestImage( Display *display, Drawable drawable, int width, int height, Pixmap *bitmapPtr) { Pixmap bitmap = None; XImage *image = NULL; GC bitmapGC; XGCValues values; if ((width > 0) && (height > 0)) { bitmap = Tk_GetPixmap(display, drawable, width, height, 1); values.graphics_exposures = False; values.foreground = BlackPixel(display, DefaultScreen(display)); bitmapGC = XCreateGC(display, bitmap, GCGraphicsExposures|GCForeground, &values); XFillRectangle(display, bitmap, bitmapGC, 0, 0, width, height); XFreeGC(display, bitmapGC); image = XGetImage(display, bitmap, 0, 0, width, height, AllPlanes, ZPixmap); } *bitmapPtr = bitmap; return image; } void TkDrawAngledChars( Display *display, /* Display on which to draw. */ |
︙ | ︙ |