@@ -456,9 +456,7 @@ function profile_i:post_event_check_()
456456 end
457457 self :update_size_ ()
458458 self :update_shape_ ()
459- if self .registered_func_ () then
460- self :update_tools_ ()
461- end
459+ self :update_tools_ ()
462460 self :update_deco_ ()
463461end
464462
@@ -671,34 +669,45 @@ function profile_i:update_tools_()
671669 local taid = tpt .selecteda
672670 local txid = tpt .selectedreplace
673671 if self .tool_lid_ ~= tlid then
674- self .tool_l_ = self .xidr_ .from_tool [tlid ] or self .xidr_ .unknown_xid
672+ if self .registered_func_ () then
673+ self .tool_l_ = self .xidr_ .from_tool [tlid ] or self .xidr_ .unknown_xid
674+ end
675675 self .tool_lid_ = tlid
676676 self :report_tool_ (0 )
677677 end
678678 if self .tool_rid_ ~= trid then
679- self .tool_r_ = self .xidr_ .from_tool [trid ] or self .xidr_ .unknown_xid
679+ if self .registered_func_ () then
680+ self .tool_r_ = self .xidr_ .from_tool [trid ] or self .xidr_ .unknown_xid
681+ end
680682 self .tool_rid_ = trid
681683 self :report_tool_ (1 )
682684 end
683685 if self .tool_aid_ ~= taid then
684- self .tool_a_ = self .xidr_ .from_tool [taid ] or self .xidr_ .unknown_xid
686+ if self .registered_func_ () then
687+ self .tool_a_ = self .xidr_ .from_tool [taid ] or self .xidr_ .unknown_xid
688+ end
685689 self .tool_aid_ = taid
686690 self :report_tool_ (2 )
687691 end
688692 if self .tool_xid_ ~= txid then
689- self .tool_x_ = self .xidr_ .from_tool [txid ] or self .xidr_ .unknown_xid
693+ if self .registered_func_ () then
694+ self .tool_x_ = self .xidr_ .from_tool [txid ] or self .xidr_ .unknown_xid
695+ end
690696 self .tool_xid_ = txid
691697 self :report_tool_ (3 )
692698 end
693- local new_tool = self .xidr_ .to_tool [self [index_to_lrax [self .last_toolslot_ ]]]
694- local new_tool_id = self [index_to_lraxid [self .last_toolslot_ ]]
695- if self .last_toolid_ ~= new_tool_id then
696- if not new_tool_id :find (" ^DEFAULT_PT_LIFECUST_" ) then
697- if toolwarn_tools [new_tool ] then
698- self .display_toolwarn_ [toolwarn_tools [new_tool ]] = true
699+ if self .registered_func_ () then
700+ local new_tool = self .xidr_ .to_tool [self [index_to_lrax [self .last_toolslot_ ]]]
701+ local new_tool_id = self [index_to_lraxid [self .last_toolslot_ ]]
702+ if self .last_toolid_ ~= new_tool_id then
703+ if not new_tool_id :find (" ^DEFAULT_PT_LIFECUST_" ) then
704+ if toolwarn_tools [new_tool ] then
705+ self .display_toolwarn_ [toolwarn_tools [new_tool ]] = true
706+ self .display_toolwarn_identifier_ = new_tool_id
707+ end
699708 end
709+ self .last_toolid_ = new_tool_id
700710 end
701- self .last_toolid_ = new_tool_id
702711 end
703712end
704713
@@ -908,14 +917,12 @@ function profile_i:handle_mousedown(px, py, button)
908917 else
909918 return
910919 end
911- if self .registered_func_ () then
912- self :update_tools_ ()
913- end
920+ self :update_tools_ ()
914921 if next (self .display_toolwarn_ ) then
915922 if self .registered_func_ () then
916923 for key in pairs (self .display_toolwarn_ ) do
917924 if key == " unknown" then
918- local identifier = self [ index_to_lraxid [ self . last_toolslot_ ]]
925+ local identifier = self . display_toolwarn_identifier_
919926 local ids = self .xidr_unsupported_ [identifier ]
920927 local display_as = identifier
921928 if elem [identifier ] then
@@ -1356,6 +1363,7 @@ end
13561363function profile_i :xidr_sync ()
13571364 if self .registered_func_ () then
13581365 self .display_toolwarn_ = {}
1366+ self .display_toolwarn_identifier_ = nil
13591367 self .xidr_ = self .client_ .xidr
13601368 self .xidr_unsupported_ = self .client_ .xidr_unsupported
13611369 self .tool_l_ = self .xidr_ .unknown_xid
@@ -1407,6 +1415,7 @@ local function new(params)
14071415 prof :update_bmode_ ()
14081416 prof :update_shape_ ()
14091417 prof :update_zoom_ ()
1418+ prof :update_tools_ ()
14101419 prof :check_signs ({})
14111420 return prof
14121421end
0 commit comments