Tk Source Code

View Ticket
Login
Ticket UUID: aca9953f8c528f5e454ab42a65fe8a81175b0a03
Title: Get rid of the ugly Motif-style cascade arrows on X11
Type: Patch Version: all
Submitter: nemethi Created on: 2026-03-19 20:32:59
Subsystem: 12. Unix Menus Assigned To: nemethi
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2026-03-24 14:24:08
Resolution: Fixed Closed By: nemethi
    Closed on: 2026-03-24 14:24:08
Description:

Tk uses ugly Motif-style cascade arrows in cascading menus on X11, as seen in the attached screenshot Cascade_old.png. These arrows have raised and sunken relief and a border width of 2.

This ticket proposes to replace the ugly Motif-style cascade arrows with modern-looking ones of flat relief, filled with the color specified by the -foreground or -activeforeground widget or menu entry option, or -disabledforeground widget option, depending on the state of the entry in question. The attached screenshot Cascade_new.png shows the nice modern look of the cascade arrows drawn by the code implemented in the x11-cascade-arrows branch.

User Comments: nemethi (claiming to be Csaba Nemethi) added on 2026-03-24 14:24:08:

Fixed in "core-8-6-branch", too. See commit [88cc6f9e].


nemethi (claiming to be Csaba Nemethi) added on 2026-03-23 18:04:54:

Fixed by commits [c36f3908] and [f47592cf].


nemethi (claiming to be Csaba Nemethi) added on 2026-03-21 14:34:47:

While working on the improved, modern look of the cascade arrows, I discovered quite a few hard-coded screen distances related to menus, given in pixels (!). This has always been a bad programming habit, which on scaled screens leads to bad-looking menus and especially menubars. Now I have replaced all these numbers with scaled ones, according to the screen's scaling level.


nemethi (claiming to be Csaba Nemethi) added on 2026-03-19 20:50:08:

Unlike the current cascade arrows, the proposed new ones have an optimal shape that makes sure that the edges will always be straight lines, regardless of the size (which in Tk 9+ is scaling-aware).


Attachments: