+ set tray_$szv $new_sz
+# switch -exact -- $evtype 35 { return }
+ if {[info exists innerwindow_after]} return
+ set innerwindow_after [after idle applet::innerwindow-resetup]
+}
+
+proc innerwindow-resetup {} {
+ variable innerwindow_after
+ variable subwindow_on_destroying
+ variable subwindow_on_ready
+ variable border_colour
+ variable border_width
+ variable deforient
+ variable orientation
+ unset innerwindow_after
+
+ debug::debug RESETUP
+
+ if {![winfo exists .i.i]} return
+ destroy [frame .i.i.make-exist]
+
+ uplevel #0 $subwindow_on_destroying
+ catch { destroy .i.i.b }
+
+ set orientation [.i orientation]
+ debug::debug "orientation $orientation"
+ if {![string compare $orientation unknown]} {
+ set orientation $deforient
+ }
+ .i configure -image applet::innerwindow-ph-$orientation
+
+ frame .i.i.b -background $border_colour -bd $border_width
+ pack .i.i.b -fill both -side left -expand 1
+
+ uplevel #0 $subwindow_on_ready [list $orientation]
+}
+
+proc setup-subwindow {on_destroying on_ready} {
+ variable w
+ variable h
+
+ foreach v {on_destroying on_ready} {
+ variable subwindow_$v [set $v]
+ }
+
+ image create photo applet::innerwindow-ph-horizontal -width $w -height 2
+ image create photo applet::innerwindow-ph-vertical -width 2 -height $h
+ .i configure -image applet::innerwindow-ph-horizontal
+
+ destroy [frame .i.make-exist]
+ destroy [frame .i.i.make-exist]
+ bind .i <<IconConfigure>> {
+ applet::subwindow-need-recreate %T "%T i=%i k=%K N=%N R=%R S=%S k=%k m=%m d=%d s=%s a=%a b=%b c=%c f=%f w,h=%w,%h o=%o p=%p t=%t x,y=%x,%y B=%B D=%D E=%E P=%P W=%W X,Y=%X,%Y"
+ }
+}
+
+#----- subprocess -----
+
+variable subproc none
+variable ratelimit {}
+
+proc setup-subproc {get_cmdline} {
+ variable subproc_get_cmdline $get_cmdline
+ setup-subwindow applet::subproc-destroying applet::subproc-ready
+}
+
+proc subproc-destroying {} {
+ variable subproc
+ debug::debug "DESTROYING $subproc"
+
+ catch { destroy .i.i.b.c }
+
+ switch -exact $subproc {
+ none { }
+ old { }
+ default { kill $subproc; set subproc old }
+ }
+}
+
+proc subproc-ready {orientation} {
+ variable subproc
+ variable subproc_orientation $orientation
+ debug::debug "READY $subproc"
+
+ frame .i.i.b.c -container 1 -background orange
+ pack .i.i.b.c -fill both -side left -expand 1
+
+ switch -exact $subproc {
+ none {
+ run-child
+ }
+ old {
+ # wait for it to die