i91@nikhefh.hep.nl (Fons Rademakers) (02/06/88)
For a DIALOG guru: I have the following problem with DIALOG and GMR3D. Every time when a popup or help pops down my GMR3D area gets completely refreshed by DIALOG before it enters my own refresh routine. I know that after an action given in a popup, DIALOG should refresh the screen since the action could have changed the screen. The screen refresh should not happen when a help popup pops down or when no action is performed in a popup. DIALOG should just restore the bitmap under the popup. The screen refresh is only in the GMR area, not in the complete PAD. I also know that screen flicker occurs when dynamic strings without SIZE attribute gets changed, but in that case the whole PAD gets refreshed. Does somebody know in what direction I have to look to solve this problem? Why does DIALOG always think that an action has been perfromed, even when leaving a help popup? Using DIALOG v2.0 and SR9.7. ===== description of GPR task I use: gmr_area := GPR : APPL_CRSR_CTRL = true; INIT_RTN = init_gmr_area; ENTERED_WINDOW => <RETURN>; LEFT_WINDOW => <RETURN>; BUTTONS => <RETURN>; LOCATOR => <CALL locator_input>; KEYSTROKE => <CALL keystroke_input>; KEYS = [m1, m1u, m2, m2u, m3, m3u, r, R]; END ==== and the techniques: gmr_tech := GRAPHICS_AREA : TASK = gmr_area; OUTLINE = on; BORDER_WIDTH = 2; HELP_TEXT = "This is the area where the GMR " &"file is displayed."; SIZE = ((200 200) (500 500) (10000 10000)) pixels; END ... ... ... STD_WINDOW : CONTENTS = everything; [M1, F1] => <* select>; [M3] => <* help>; [M2] => <>; [M1U, M2U, M3U] => <>; END ==== My init_gmr_area routine: SUBROUTINE init_gmr_area(task_id, event_id) INTEGER*4 task_id, event_id * %INCLUDE '/sys/ins/gmr3d.ins.ftn' * COMMON /stream/ pad_stream INTEGER*2 num_planes, bitmap_size(2), pad_stream INTEGER*4 gmr_bitmap_d, status * EXTERNAL dm_refresh * bitmap_size(1) = 1280 bitmap_size(2) = 1024 num_planes = 8 CALL gmr_$init(gmr_$current_bitmap, pad_stream, bitmap_size, # num_planes, status) * CALL dp_$gpr_inq_bitmap(task_id, gmr_bitmap_d, status) CALL gpr_$set_bitmap(gmr_bitmap_d, status) CALL gmr_$dm_refresh_entry(IADDR(dm_refresh), status) * RETURN END =================== Regards, Fons Rademakers -- Org: NIKHEF-H, National Institute for Nuclear and High-Energy Physics. Mail: Kruislaan 409, P.O. Box 41882, 1009 DB Amsterdam, the Netherlands Phone: (20)5925018 or 5925003 Telex: 10262 (hef nl) UUCP: i91@nikhefh.hep.nl BITNET: nikhefh!i91@mcvax.bitnet