Tk Source Code

Check-in [0807e606]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Ugh; misread the code. The highlight ring is drawn first and always on the real window. Because of backgroundless frames.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | tip-262
Files: files | file ages | folders
SHA3-256: 0807e6062bdea3685a6851adf60b670a2baca40ec6031b4d83daa0a656e33ba8
User & Date: dkf 2019-05-17 20:37:55.718
Context
2019-05-19
07:33
merge trunk check-in: f79e06d6 user: dkf tags: tip-262
2019-05-17
20:37
Ugh; misread the code. The highlight ring is drawn first and always on the real window. Because of backgroundless frames. check-in: 0807e606 user: dkf tags: tip-262
20:06
Add double buffering to frames and toplevels.

Theoretically only needed when drawing background with images, but simpler to do always. Incidentally fixes minor bug in labelframes with redrawing of focus rings, but nobody really used those on labelframes so it was never reported... check-in: 86db63ba user: dkf tags: tip-262

Changes
Unified Diff Ignore Whitespace Patch
Changes to generic/tkFrame.c.
1667
1668
1669
1670
1671
1672
1673
1674


1675
1676
1677
1678
1679
1680
1681
1682
1683

#ifndef TK_NO_DOUBLE_BUFFERING
    /*
     * Everything's been redisplayed; now copy the pixmap onto the screen and
     * free up the pixmap.
     */

    XCopyArea(framePtr->display, pixmap, Tk_WindowId(tkwin), framePtr->copyGC,


	    0, 0, (unsigned) Tk_Width(tkwin), (unsigned) Tk_Height(tkwin),
	    0, 0);
    Tk_FreePixmap(framePtr->display, pixmap);
#endif /* TK_NO_DOUBLE_BUFFERING */
}

/*
 *----------------------------------------------------------------------
 *







|
>
>
|
|







1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685

#ifndef TK_NO_DOUBLE_BUFFERING
    /*
     * Everything's been redisplayed; now copy the pixmap onto the screen and
     * free up the pixmap.
     */

    XCopyArea(framePtr->display, pixmap, Tk_WindowId(tkwin),
	    framePtr->copyGC, hlWidth, hlWidth,
	    (unsigned) (Tk_Width(tkwin) - 2 * hlWidth),
	    (unsigned) (Tk_Height(tkwin) - 2 * hlWidth),
	    hlWidth, hlWidth);
    Tk_FreePixmap(framePtr->display, pixmap);
#endif /* TK_NO_DOUBLE_BUFFERING */
}

/*
 *----------------------------------------------------------------------
 *