Skip to content

Commit 68aab9f

Browse files
author
jan.nijtmans
committed
(cherry-pick): Fix [13ac26b35d]: wm iconbitmap does not correctly set the icon pixmap hint on macOS. Thanks to Serhiy Storchaka.
1 parent d214a88 commit 68aab9f

File tree

3 files changed

+12
-17
lines changed

3 files changed

+12
-17
lines changed

Diff for: macosx/tkMacOSXWm.c

+8-7
Original file line numberDiff line numberDiff line change
@@ -2977,14 +2977,15 @@ WmIconbitmapCmd(
29772977
TkMacOSXMakeRealWindowExist(winPtr);
29782978
}
29792979
if (WmSetAttribute(winPtr, TkMacOSXGetNSWindowForDrawable(winPtr->window), interp,
2980-
WMATT_TITLEPATH, objv[3]) == TCL_OK) {
2981-
if (!len) {
2982-
if (wmPtr->hints.icon_pixmap != None) {
2983-
Tk_FreeBitmap(winPtr->display, wmPtr->hints.icon_pixmap);
2984-
wmPtr->hints.icon_pixmap = None;
2985-
}
2986-
wmPtr->hints.flags &= ~IconPixmapHint;
2980+
WMATT_TITLEPATH, objv[3]) != TCL_OK) {
2981+
return TCL_ERROR;
2982+
}
2983+
if (!len) {
2984+
if (wmPtr->hints.icon_pixmap != None) {
2985+
Tk_FreeBitmap(winPtr->display, wmPtr->hints.icon_pixmap);
2986+
wmPtr->hints.icon_pixmap = None;
29872987
}
2988+
wmPtr->hints.flags &= ~IconPixmapHint;
29882989
} else {
29892990
pixmap = Tk_GetBitmap(interp, (Tk_Window)winPtr, str);
29902991
if (pixmap == None) {

Diff for: tests/unixWm.test

+2-8
Original file line numberDiff line numberDiff line change
@@ -815,15 +815,9 @@ test unixWm-22.2 {Tk_WmCmd procedure, "iconbitmap" option} {unix testwrapper} {
815815
WM_HINTS] 0]]]
816816
lappend result [wm iconbitmap .t] $bit
817817
} {{} questhead 0x4 {} 0x0}
818-
if {[tk windowingsystem] eq "aqua"} {
819-
set result_22_3 {0 {}}
820-
} else {
821-
set result_22_3 {1 {bitmap "bad-bitmap" not defined}}
822-
}
823-
test unixWm-22.3 {Tk_WmCmd procedure, "iconbitmap" option for unix only} \
824-
unix {
818+
test unixWm-22.3 {Tk_WmCmd procedure, "iconbitmap" option} unix {
825819
list [catch {wm iconbitmap .t bad-bitmap} msg] $msg
826-
} $result_22_3
820+
} {1 {bitmap "bad-bitmap" not defined}}
827821

828822
test unixWm-23.1 {Tk_WmCmd procedure, "iconify" option} unix {
829823
list [catch {wm iconify .t 12} msg] $msg

Diff for: tests/wm.test

+2-2
Original file line numberDiff line numberDiff line change
@@ -878,11 +878,11 @@ test wm-iconbitmap-1.2.2 {usage} -constraints win -returnCodes error -body {
878878
test wm-iconbitmap-1.3 {usage} -constraints win -returnCodes error -body {
879879
wm iconbitmap .t 12 13
880880
} -result {illegal option "12" must be "-default"}
881-
test wm-iconbitmap-1.4 {usage} -constraints notAqua -returnCodes error -body {
881+
test wm-iconbitmap-1.4 {usage} -returnCodes error -body {
882882
wm iconbitmap .t bad-bitmap
883883
} -result {bitmap "bad-bitmap" not defined}
884884

885-
test wm-iconbitmap-2.1 {setting and reading values} -constraints notAqua -setup {
885+
test wm-iconbitmap-2.1 {setting and reading values} -setup {
886886
set result {}
887887
} -body {
888888
lappend result [wm iconbitmap .t]

0 commit comments

Comments
 (0)