From: pfuetz@igd.fhg.de (Matthias Pfuetzner)
Newsgroups: comp.windows.x.pex
Subject: Problem with locator requests in PEX-SI. Any hints?
Summary: input beyond x-pixel-value 1000 impossible!
Keywords: PHIGS, PEX-SI, REQUESTS, INPUT, LOCATOR
Date: 10 Sep 92 14:54:10 GMT
Reply-To: pfuetz@igd.fhg.de (Matthias Pfuetzner)
Followup-To: poster
Organization: Zentrum fuer Graphische Datenverarbeitung, Darmstadt, FRG

Hi Everybody!

I have a problem with the PEX-SI as supplied by X11R5 from MIT (I don't know,
whether this might also be a problem with other PHIGS implementations, I only
used this one). I'm running my application on SUN SparcStation 1+, displaying
it on the X11R5-MIT server for this Sparcstation and on Tektronix XP29P. Both
have the same behavior.

The problem is as follows:

   appl_display = XOpenDisplay( display_name );
   
   xswa.backing_store     = NotUseful;
   xswa.event_mask        = ExposureMask | StructureNotifyMask;
   xswa.override_redirect = True;
   
   visual.visualid = CopyFromParent;
   
   appl_window =
      XCreateWindow( appl_display,
                     RootWindow( appl_display, DefaultScreen( appl_display ) ),
                     0,
                     0, 
                     DisplayWidth( appl_display,
                                   DefaultScreen( appl_display ) ),
                     DisplayHeight( appl_display,
                                    DefaultScreen( appl_display ) ),
		     (unsigned int)0,
                     DefaultDepth( appl_display,
                                   DefaultScreen( appl_display ) ),
                     InputOutput,
                     &visual,
                     CWEventMask | CWBackingStore | CWBorderPixel | 
                     CWOverrideRedirect,
                     &xswa );
   
   XMapWindow( appl_display, appl_window );
   
   XSync( appl_display, False );
   XWindowEvent( appl_display, appl_window, ExposureMask, &exposureEvent );
   
   conn.display     = appl_display;
   conn.drawable_id = appl_window;
   
   xinfo.display               = appl_display;
   xinfo.flags.no_monitor      = 0; /* False -> Monitor is running! */
   xinfo.flags.force_client_SS = 0; /* False! */
   
   popen_xphigs( NULL, 0, PXPHIGS_INFO_FLAGS_NO_MON |
                          PXPHIGS_INFO_FLAGS_CLIENT_SS |
                          PXPHIGS_INFO_DISPLAY, &xinfo );
   
   popen_ws( WS1, (Pconnid)(&conn), phigs_ws_type_x_drawable );
   
   /* some stuff for creating objects deleted */
   
   init_loc_pos.x = .5;
   init_loc_pos.y = .5;
   init_loc_pos.z = .5;
   
   echo_volume.x_min = 300.0;
   echo_volume.x_max = (Pfloat) DisplayWidth( appl_display,
                                              DefaultScreen( appl_display ) );
   
   echo_volume.y_min = 0.0;
   echo_volume.y_max = (Pfloat) DisplayHeight( appl_display,
                                               DefaultScreen( appl_display ) );
   
   echo_volume.z_min = 0.0;
   echo_volume.z_max = 1.0;
   
   pset_loc_mode( 1, 1, POP_REQ, PSWITCH_ECHO );
   
   pinit_loc3( 1 , 1, 0, &init_loc_pos, 1, &echo_volume,
               &record );
   
   preq_loc3( 1, 1, &status, &init_view_ind, &loc_pos );

The problem is quite simple: in x-dimension always values between 0 and 1000
are recognized, even if echo_volume.x_min is set to 300! Even inquiry with
pinq_loc_st3 returns that echo_volume is set to the above values and also
realized to these values. Clicking beyond the x-pixel-value of 1000 doesn't do
anything! The resulting values in loc_pos are 0 for x-pixel == 0 and 1 for
x-pixel == 1000 (view_index 0 isn't used, so default values are taken). But no
problems with the y-direction. This can be larger than 1000 pixels!

Any hints?

Sincerly,
        Matthias
-- 
    Matthias Pfuetzner  |  @work:  +49 6151 155-150  | @home: +49 6151 75717
    6100 Darmstadt, FRG | ZGDV, Wilhelminenstrasse 7 | Lichtenbergstrasse 73
      pfuetzner@igd.fhg.de, pfuetzner@zgdvda.UUCP    | Hans-Ulrich Klose sagte:
    Wir pfeifen nicht nach ihrer Tanze... (09.09.92 in der Haushaltsdebatte)