chiark / gitweb /
Use tmpfile trick for pixmaps too [-iwj]
[ypp-sc-tools.main.git] / pctb / dictionary-manager
index 24e1aa28d306ed74bad41b7406998deca965427b..5e108a7ea72583e29a958ac60027dac37f73f845 100755 (executable)
@@ -145,6 +145,7 @@ static unsigned char csr_bits[] = {
 
     button .pe.ok -text OK
     pack .pe.grid .pe.ok -side left
+    bind .pe.ok <Key-Return> { .pe.ok invoke }
 
     pack .d.mi .d.ctx -side top -anchor w
     pack .d -fill x -padx 2 -pady 2
@@ -366,7 +367,9 @@ proc pixmap_select {ncol} {
        if {$col==$ncol} continue
        .pe.grid.l$col selection clear 0 end
     }
-    pixmap_maybe_ok
+    if {[pixmap_maybe_ok]} {
+       focus .pe.ok
+    }
 }
 proc pixmap_maybe_ok {} {
     global alloptions pixmap_selcol pixmap_selrow
@@ -382,8 +385,10 @@ proc pixmap_maybe_ok {} {
     if {$nsel==1} {
        debug "MAYBE_OK YES col=$pixmap_selcol row=$pixmap_selrow."
        .pe.ok configure -state normal -command pixmap_ok
+       return 1
     } else {
        .pe.ok configure -state disabled -command {}
+       return 0
     }
 }
 proc pixmap_ok {} {
@@ -417,8 +422,10 @@ proc required/pixmap {} {
        if {![string length $ppml]} break
        append ppm $ppml "\n"
     }
-    set data [exec pnmscale 2 << $ppm]
-    image create photo image/main -data $data
+    set tmpfile ./#dictimage#.tmp
+    exec pnmscale 2 << $ppm >$tmpfile
+    image create photo image/main -file $tmpfile
+    file delete $tmpfile
 
     set alloptions [exec ./database-info-fetch $unk_what]
 
@@ -452,7 +459,7 @@ proc required/pixmap {} {
     pixmap_maybe_ok
     
     helptext {
-       {{Indicate the meaning of this image, and click OK.}}
+       {{Indicate the meaning of this image; then click OK or hit Return.}}
     }
 }
 
@@ -731,7 +738,7 @@ proc startup_cursor {} {
     global glyphsdone unk_l unk_r
     
     set cur_already [expr {[llength $glyphsdone]/5-1}]
-    set cur_mode 1 ;# one of:   0 1 already text
+    set cur_mode 0 ;# one of:   0 1 already text
 
     set cur_0 $unk_l
     set cur_1 [expr {$unk_r+1}]