Commit 3d310c07 authored by Ben Avison's avatar Ben Avison
Browse files

System windows (eg STB command window) can now have window furniture but no 1-pixel borders.

Detail:
  The code that checked for a Wimp_Initialise version number of >= 380 before
  applying the new interpretation of title foreground colour &FF was broken:
  it was checking the current task handle instead of the task handle of the
  window's creator. A few other things needed tampering with in order to ensure
  that the window's task handle word is correctly set up at the time that the
  colour check is performed.
Admin:
  Tested in a desktop build, using STB resources.

Version 4.43. Tagged as 'Wimp-4_43'
parent 17fd99f3
......@@ -6,9 +6,9 @@
GBLS Module_MinorVersion
GBLS Module_Date
GBLS Module_FullVersion
Module_MajorVersion SETS "4.42"
Module_Version SETA 442
Module_MajorVersion SETS "4.43"
Module_Version SETA 443
Module_MinorVersion SETS ""
Module_Date SETS "29 Mar 2000"
Module_FullVersion SETS "4.42"
Module_Date SETS "30 Mar 2000"
Module_FullVersion SETS "4.43"
END
/* (4.42)
/* (4.43)
*
* This file is automatically maintained by srccommit, do not edit manually.
*
*/
#define Module_MajorVersion_CMHG 4.42
#define Module_MajorVersion_CMHG 4.43
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 29 Mar 2000
#define Module_Date_CMHG 30 Mar 2000
#define Module_MajorVersion "4.42"
#define Module_Version 442
#define Module_MajorVersion "4.43"
#define Module_Version 443
#define Module_MinorVersion ""
#define Module_Date "29 Mar 2000"
#define Module_Date "30 Mar 2000"
#define Module_FullVersion "4.42"
#define Module_FullVersion "4.43"
......@@ -274,10 +274,12 @@ createsystemp
Debug systmpl,"Loading template to",userblk
BLVC int_load_template
MOVVC R14, #0 ; created window will be 'owned' by Wimp
STRVC R14, createwindowtaskhandle
BLVC int_create_window ; R0,handle = window handles (if V clr)
MOV R14, #1 ; subsequent windows are 'owned' by their creators
STR R14, createwindowtaskhandle
MOVVC R14,#0
STRVC R14,[handle,#w_taskhandle] ; 'owned' by Wimp
MOVVC R14,#1
STRVC R14,[handle,#w_areaCBptr] ; use common sprite pool
98
......
......@@ -943,6 +943,7 @@ polltaskhandle # 4 ; task handle on entry to Wimp_Poll
menutaskhandle # 4 ; task handle of menu owner
nulltaskhandle # 4 ; for cycling null events
singletaskhandle # 4 ; single = taskhandle if 1-tasking
createwindowtaskhandle # 4 ; if <= 0, this is used to fill in w_taskhandle (else current taskhandle is used)
inithandle # 4 ; "owner" slot if [freepool] = -1
taskcount # 4 ; number of active tasks
tasknumber # 4 ; global task number (monotonic)
......
......@@ -3617,8 +3617,10 @@ crw5 LDR R0,[R14],#4
BLO crw5
crw5e
LDR R14,taskhandle
STR R14,[handle,#w_taskhandle]
LDR R14, createwindowtaskhandle
CMP R14, #0
LDRGT R14, taskhandle
STR R14, [handle, #w_taskhandle]
[ ChildWindows
ASSERT lh_forwards=0 :LAND: lh_indicator=4 :LAND: lh_backwards=8
......@@ -3747,7 +3749,7 @@ bodgewindowflags
LDRNE R14,[handle,#w_flags] ; ... cancel all border bits
BNE %FT01
LDR R14,taskhandle ; but only if task doesn't know about Wimp 3.80
LDR R14,[handle,#w_taskhandle] ; but only if task doesn't know about Wimp 3.80
CMP R14,#0
MOVLE R14,#380 ; treat the system task as knowing what to do
LDRGT R14,[wsptr,R14]
......
......@@ -3476,7 +3476,11 @@ int_create_menu_withscroll
createsubmenu TraceL sc
ADRL userblk,menuwindow ; window 'template'
MOV R14, #-1 ; created window will be 'owned' by the Wimp
STR R14, createwindowtaskhandle
BL int_create_window
MOV R14, #1 ; subsequent windows are 'owned' by their creators
STR R14, createwindowtaskhandle
STRVC R0,menuhandle
[ debug :LAND: debugmenuw
BVS createsubmenu_continue1
......@@ -3486,9 +3490,6 @@ createsubmenu_continue1
Trace menuw, "not storing task handle -1 at w_taskhandle of window ", X, R0
createsubmenu_continue2
]
MOVVC R14,#-1 ; menus have task handle -1
BIC R0, R0, #3 ;make sure R0 is word aligned ; }
STRVC R14, [R0, #w_taskhandle] ; } was STRVC R14, [handle, #w_taskhandle]
exitcrmenu
Pull "R1-R4,userblk,PC",VS ; error
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment