# To subscribers of the xforms list from Me <serge@omensys.com> :
Steve Lamont wrote:
> # To subscribers of the xforms list from Steve Lamont <spl@ncmir.ucsd.edu> :
>
> > Here goes, you will see that pressing the button on one of the
> > tab_folder forms _after_ the parent window has been dragged onscreen
> > returns the wrong x,y for the form. It is necessary to de-select then
> > re-select the form which was displayed at the time of dragging to get
> > correct origin coordinates.
>
> Okay. Here is a workaround that probably ought to be folded into the
> source (TC -- you out there?):
>
> - - -
> int main(int argc, char *argv[])
> {
> FD_fda *fd_fda, *sub1, *sub2;
> FD_fdb *fd_fdb;
>
> fl_initialize(&argc, argv, 0, 0, 0);
>
> [...]
>
> fl_show_form(fd_fda->fda,FL_PLACE_FREE,FL_FULLBORDER,"fda");
>
> /* Add this */
>
> fl_register_raw_callback( fd_fda->fda, FL_ALL_EVENT, catch_configure );
> fl_show_form(fd_fdb->fdb,FL_PLACE_FREE,FL_FULLBORDER,"fdb");
>
> /* And this */
>
> fl_register_raw_callback( fd_fdb->fdb, FL_ALL_EVENT, catch_configure );
>
> fl_do_forms();
> return 0;
> }
>
> /*
> * A hack to deal with the ConfigureNotify event.
> */
>
> int catch_configure( FL_FORM *form, void *xevent )
>
> {
>
> XEvent *event = ( XEvent *) xevent;
>
> /*
> * Are we processing a ConfigureNotify event?
> * ConfigureNotify events are generated when a Form is moved.
> */
>
> if ( event->type == ConfigureNotify ) {
>
> XConfigureEvent *configure_event = ( XConfigureEvent *) event;
> FL_OBJECT *obj = form->first;
>
> /*
> * Chain through the objects in this form to find any TabFolders.
> */
>
> do
> if ( obj->objclass == FL_TABFOLDER ) {
>
> /*
> * Found one... modify the active Form's origin.
> *
> * The parent Form's origin will not have been modified
> * yet, so this becomes a simple process of finding an
> * offset.
> */
>
> FL_FORM *active = fl_get_active_folder( obj );
>
> active->x = configure_event->x + ( active->x - form->x );
> active->y = configure_event->y + ( active->y - form->y );
>
> }
> while ( obj = obj->next );
>
> }
> return !FL_PREEMPT;
>
> }
> - - -
>
> Making the OneLiner actively follow the Form is left as an exercise
> for the student. (Didn't you just hate it when they did that in your
> undergraduate Calculus book?)
>
> spl
>
> _________________________________________________
> To unsubscribe, send the message "unsubscribe" to
> xforms-request@bob.usuhs.mil or see
> http://bob.usuhs.mil/mailserv/xforms.html
> XForms Home Page: http://world.std.com/~xforms
> List Archive: http://bob.usuhs.mil/mailserv/list-archives/
As a note, this is also true of tool-tips.
Moving the folder and activating a tip, results
in the tip appearing in the original forders-tip
position. Hum!!
_________________________________________________
To unsubscribe, send the message "unsubscribe" to
xforms-request@bob.usuhs.mil or see
http://bob.usuhs.mil/mailserv/xforms.html
XForms Home Page: http://world.std.com/~xforms
List Archive: http://bob.usuhs.mil/mailserv/list-archives/
This archive was generated by hypermail 2b29 : Wed Jun 20 2001 - 12:59:45 EDT