Uucp@resq.fidonet.org (Uucp) (03/26/91)
From uunet!osf.org!motif-talk-request From: uunet!logm.se!beaver (Per Beremark) To: motif-talk@osf.org Date: Mon, 25 Mar 91 14:31:03 +0100 OSF Problem Report ================================= Submitter Information --------------------- Submitter Name: Per Beremark Organization: Telesoft Europe AB Email Address: beaver@logm.se Phone: 46-040-254713 OSF License Number: Hummm? Hardware/Software Configuration ------------------------------- Offering and Version: Motif 1.1.1 Component (Module): Text.c, TextIn.c, TextOut.c ? Client Hardware: Sun Sparcstation IPC, HP 9000/300-400 Client Software: SunOS-4.0.3 X11R4.18, HPUX 7.0 Server Hardware: Sun Sparcstation IPC, HP 9000/300-400 Server Software: SunOS 4.0.3 X11R4.18, HPUX 7.0 Compiler: gcc-1.37 Problem Description ------------------- Severity Level: Critical -- represents a problem which resulted in software malfunctio n or a feature failure and has no work-around. Date of First Occurrence: 910325 One Line Description: XmTextReplace followed by XmTextShowPosition, screws up the Textbuffer showed in a scrolled window. Full Description: Run the appended example, by scrolling down, and clicking anywhere in the text area. After clicking you can't scroll to the beginning of the text. You can scroll below the last line in the text. You also get a Toolkit Warning about the scrollbar. Repeat By: Run the appended example. Proposed Solution: No solution, but the following workwround helped us: In TextOut.c: In function ChangeVSB, change the following lines. - if (widget->text.last_top_char < widget->text.top_character) - widget->text.top_line += CountLines(widget, widget->text.last_top_char, - widget->text.top_character); - else - widget->text.top_line -= CountLines(widget, widget->text.top_character, - widget->text.last_top_char); To. + widget->text.top_line = CountLines(widget, 0, widget->text.top_character); *********************** EXAMPLE ************************** #include <X11/Intrinsic.h> #include <X11/Core.h> #include <X11/Shell.h> #include <Xm/Xm.h> #include <Xm/Text.h> #include <Xm/DialogS.h> #include <Xm/BulletinB.h> static Widget appShell; static char *helpText = "TOP------ --------- --------- --------- ---------\n\ 1 77777777777777777777777777777777777777777777777\n\ 2 77777777777777777777777777777777777777777777777\n\ 3 77777777777777777777777777777777777777777777777\n\ 4 77777777777777777777777777777777777777777777777\n\ 5 77777777777777777777777777777777777777777777777\n\ 6 77777777777777777777777777777777777777777777777\n\ 7 77777777777777777777777777777777777777777777777\n\ 8 77777777777777777777777777777777777777777777777\n\ 9 77777777777777777777777777777777777777777777777\n\ 10 7777777777777777777777777777777777777777777777\n\ 11 7777777777777777777777777777777777777777777777\n\ 12 7777777777777777777777777777777777777777777777\n\ 13 7777777777777777777777777777777777777777777777\n\ 14 7777777777777777777777777777777777777777777777\n\ 15 7777777777777777777777777777777777777777777777\n\ 16 7777777777777777777777777777777777777777777777\n\ 17 7777777777777777777777777777777777777777777777\n\ 18 7777777777777777777777777777777777777777777777\n\ 19 7777777777777777777777777777777777777777777777\n\ 20 7777777777777777777777777777777777777777777777\n\ 21 7777777777777777777777777777777777777777777777\n\ 22 7777777777777777777777777777777777777777777777\n\ 23 7777777777777777777777777777777777777777777777\n\ 24 7777777777777777777777777777777777777777777777\n\ 25 7777777777777777777777777777777777777777777777\n\ 26 7777777777777777777777777777777777777777777777\n\ 27 7777777777777777777777777777777777777777777777\n\ 28 7777777777777777777777777777777777777777777777\n\ 29 7777777777777777777777777777777777777777777777\n\ 30 7777777777777777777777777777777777777777777777\n\ 31 7777777777777777777777777777777777777777777777\n\ 32 7777777777777777777777777777777777777777777777\n\ 33 7777777777777777777777777777777777777777777777\n\ 34 7777777777777777777777777777777777777777777777\n\ 35 7777777777777777777777777777777777777777777777\n\ 36 7777777777777777777777777777777777777777777777\n\ 37 7777777777777777777777777777777777777777777777\n\ 38 7777777777777777777777777777777777777777777777\n\ 39 7777777777777777777777777777777777777777777777\n\ 40 7777777777777777777777777777777777777777777777\n\ 41 7777777777777777777777777777777777777777777777\n\ 42 7777777777777777777777777777777777777777777777\n\ 43 7777777777777777777777777777777777777777777777\n\ 44 7777777777777777777777777777777777777777777777\n\ 45 7777777777777777777777777777777777777777777777\n\ 46 7777777777777777777777777777777777777777777777\n\ 47 7777777777777777777777777777777777777777777777\n\ 48 7777777777777777777777777777777777777777777777\n\ 49 7777777777777777777777777777777777777777777777\n\ 50 7777777777777777777777777777777777777777777777\n\ 51 7777777777777777777777777777777777777777777777\n\ 52 7777777777777777777777777777777777777777777777\n\ 53 7777777777777777777777777777777777777777777777\n\ 54 7777777777777777777777777777777777777777777777\n\ 55 7777777777777777777777777777777777777777777777\n\ 56 7777777777777777777777777777777777777777777777\n\ 57 7777777777777777777777777777777777777777777777\n\ 58 7777777777777777777777777777777777777777777777\n\ 59 7777777777777777777777777777777777777777777777\n\ 60 7777777777777777777777777777777777777777777777\n\ 61 7777777777777777777777777777777777777777777777\n\ 62 7777777777777777777777777777777777777777777777\n\ 63 7777777777777777777777777777777777777777777777\n\ 64 7777777777777777777777777777777777777777777777\n\ 65 7777777777777777777777777777777777777777777777\n\ 66 7777777777777777777777777777777777777777777777\n\ 67 7777777777777777777777777777777777777777777777\n\ 68 7777777777777777777777777777777777777777777777\n\ 69 7777777777777777777777777777777777777777777777\n\ 70 7777777777777777777777777777777777777777777777\n\ 71 7777777777777777777777777777777777777777777777\n\ 72 7777777777777777777777777777777777777777777777\n\ 73 7777777777777777777777777777777777777777777777\n\ 74 7777777777777777777777777777777777777777777777\n\ 75 7777777777777777777777777777777777777777777777\n\ 76 7777777777777777777777777777777777777777777777\n\ 77 7777777777777777777777777777777777777777777777\n\ 78 7777777777777777777777777777777777777777777777\n\ 79 7777777777777777777777777777777777777777777777\n\ 80 7777777777777777777777777777777777777777777777\n\ 81 7777777777777777777777777777777777777777777777\n\ 82 7777777777777777777777777777777777777777777777\n\ 83 7777777777777777777777777777777777777777777777\n\ 84 7777777777777777777777777777777777777777777777\n\ 85 7777777777777777777777777777777777777777777777\n\ 86 7777777777777777777777777777777777777777777777\n\ 87 7777777777777777777777777777777777777777777777\n\ 88 7777777777777777777777777777777777777777777777\n\ 89 7777777777777777777777777777777777777777777777\n\ 90 7777777777777777777777777777777777777777777777\n\ 91 7777777777777777777777777777777777777777777777\n\ 92 7777777777777777777777777777777777777777777777\n\ 93 7777777777777777777777777777777777777777777777\n\ 94 7777777777777777777777777777777777777777777777\n\ 95 7777777777777777777777777777777777777777777777\n\ 96 7777777777777777777777777777777777777777777777\n\ 97 7777777777777777777777777777777777777777777777\n\ 98 7777777777777777777777777777777777777777777777\n\ 99 7777777777777777777777777777777777777777777777\n\ 100 777777777777777777777777777777777777777777777\n\ BOTTOM--- --------- --------- --------- --------- \n"; /******************************************************************/ static void cursorMotionCB( Widget w, XmTextVerifyPtr closure, XtPointer data) { XmTextReplace( w, 50, 50, "1 77777777777777777777777777777777777777777777777\n\ 2 77777777777777777777777777777777777777777777777\n\ 3 77777777777777777777777777777777777777777777777\n\ 4 77777777777777777777777777777777777777777777777\n\ 5 77777777777777777777777777777777777777777777777\n\ 6 77777777777777777777777777777777777777777777777\n\ 7 77777777777777777777777777777777777777777777777\n\ 8 77777777777777777777777777777777777777777777777\n\ 9 77777777777777777777777777777777777777777777777\n\ 10 7777777777777777777777777777777777777777777777\n" ); XmTextShowPosition( w, 200); } static Widget CreatetextWindow(Widget parent) { Arg arg[10]; Cardinal nrOfArgs; Widget dialogText; nrOfArgs = 0; /* Place cursor at the end of text */ XtSetArg(arg[nrOfArgs], XmNcursorPosition, strlen(helpText)); nrOfArgs++; XtSetArg(arg[nrOfArgs], XmNcolumns, 60); nrOfArgs++; XtSetArg(arg[nrOfArgs], XmNrows, 40); nrOfArgs++; XtSetArg(arg[nrOfArgs], XmNeditMode, XmMULTI_LINE_EDIT); nrOfArgs++; XtSetArg(arg[nrOfArgs], XmNvalue, helpText); nrOfArgs++; /* OK now lets create it */ dialogText = XmCreateScrolledText(parent, "InputField", arg, nrOfArgs); XtAddCallback( dialogText, XmNmotionVerifyCallback, cursorMotionCB, NULL); return(dialogText); } /* CreatetextWindow */ void CreateApplication ( Widget parent ) { Widget buletinB, textW; buletinB = XmCreateBulletinBoardDialog( parent, "BulletinBoard", NULL, 0); textW = CreatetextWindow(buletinB); XtManageChild( textW); XtManageChild(buletinB); } void main (unsigned int argc, char **argv) { appShell = XtInitialize("SDT2 - Graphics Main Window", "SDT2", NULL, 0, /* XtNumber(options), */ &argc, argv); CreateApplication (appShell); XtMainLoop (); } -- Uucp - via FidoNet node 1:269/133 UUCP: uunet!resq!Uucp