# To subscribers of the xforms list from Clive A Stubbings <xforms@vjet.demon.co.uk> :
This one is really strange!
I have a form, on which there is a browser and a tabbed folder.
In the tabbed folder there are some input objects.
When the app starts, without pressing any mouse buttons, if I point at
some part of the main form, except the tabbed bit, and press a key, then
point at a "de-focussed" input object on the tabbed folder and press a
key, the key character is input in that object and a cursor appears in
that object.
The input object that appeared to have focus still does and it also
has a cursor in it...
So we now have 2 cursors visible.. You can then go on and do the same with
other input objects..
It does not happen if you don't press that first key outside the tabbed
object...
Since you probably wont believe this, an example follows....
How do I stop it doing this?
Cheers
Clive
==========================================
compile with
cc bug_main.c bug.c -L/usr/X11R6/lib -lforms -lX11 -lm
I linked with libforms.so.0.89 on linux, 2.0.36/RedHat 5.2 on a 486
bug_main.c
==========
#include "forms.h"
#include "bug.h"
/* callbacks and freeobj handles for form main */
/* callbacks and freeobj handles for form tab1 */
int main(int argc, char *argv[])
{
FD_main *fd_main;
FD_tab1 *fd_tab1;
fl_initialize(&argc, argv, 0, 0, 0);
fd_main = create_form_main();
fd_tab1 = create_form_tab1();
/* fill-in form initialization code */
fl_addto_tabfolder(fd_main->tab,"Test", fd_tab1->tab1);
fl_set_input(fd_tab1->in1, "1");
fl_set_input(fd_tab1->in2, "2");
fl_set_input(fd_tab1->in3, "3");
/* show the first form */
fl_show_form(fd_main->main,FL_PLACE_CENTERFREE,FL_FULLBORDER,"main");
fl_do_forms();
return 0;
}
bug.c
=====
/* Form definition file generated with fdesign. */
#include "forms.h"
#include <stdlib.h>
#include "bug.h"
FD_main *create_form_main(void)
{
FL_OBJECT *obj;
FD_main *fdui = (FD_main *) fl_calloc(1, sizeof(*fdui));
fdui->main = fl_bgn_form(FL_NO_BOX, 360, 280);
obj = fl_add_box(FL_UP_BOX,0,0,360,280,"");
fdui->tab = obj = fl_add_tabfolder(FL_TOP_TABFOLDER,20,20,190,240,"Tabbed folder");
obj = fl_add_browser(FL_NORMAL_BROWSER,230,130,100,100,"");
obj = fl_add_text(FL_NORMAL_TEXT,220,30,130,80,"FIRST Point here and\npress a key\nDO NOT click mouse");
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_end_form();
fdui->main->fdui = fdui;
return fdui;
}
/*---------------------------------------*/
FD_tab1 *create_form_tab1(void)
{
FL_OBJECT *obj;
FD_tab1 *fdui = (FD_tab1 *) fl_calloc(1, sizeof(*fdui));
fdui->tab1 = fl_bgn_form(FL_NO_BOX, 190, 190);
obj = fl_add_box(FL_UP_BOX,0,0,190,190,"");
fdui->in1 = obj = fl_add_input(FL_NORMAL_INPUT,40,30,120,30,"Input");
fdui->in2 = obj = fl_add_input(FL_NORMAL_INPUT,40,70,110,30,"Input");
fdui->in3 = obj = fl_add_input(FL_NORMAL_INPUT,40,150,110,30,"Input");
obj = fl_add_text(FL_NORMAL_TEXT,10,110,170,30,"THEN point into either of these\nlower input objects and press a key");
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_end_form();
fdui->tab1->fdui = fdui;
return fdui;
}
/*---------------------------------------*/
bug.h
=====
/** Header file generated with fdesign on Mon May 22 21:34:47 2000.**/
#ifndef FD_main_h_
#define FD_main_h_
/** Callbacks, globals and object handlers **/
/**** Forms and Objects ****/
typedef struct {
FL_FORM *main;
void *vdata;
char *cdata;
long ldata;
FL_OBJECT *tab;
} FD_main;
extern FD_main * create_form_main(void);
typedef struct {
FL_FORM *tab1;
void *vdata;
char *cdata;
long ldata;
FL_OBJECT *in1;
FL_OBJECT *in2;
FL_OBJECT *in3;
} FD_tab1;
extern FD_tab1 * create_form_tab1(void);
#endif /* FD_main_h_ */
bug.fd
======
Magic: 13000
Internal Form Definition File
(do not change)
Number of forms: 2
Unit of measure: FL_COORD_PIXEL
=============== FORM ===============
Name: main
Width: 360
Height: 280
Number of Objects: 4
--------------------
class: FL_BOX
type: UP_BOX
box: 0 0 360 280
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label:
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name:
callback:
argument:
--------------------
class: FL_TABFOLDER
type: TOP_TABFOLDER
box: 20 20 190 240
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_TOP_LEFT
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: Tabbed folder
shortcut:
resize: FL_RESIZE_NONE
gravity: FL_NoGravity FL_NoGravity
name: tab
callback:
argument:
--------------------
class: FL_BROWSER
type: NORMAL_BROWSER
box: 230 130 100 100
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_BOTTOM
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label:
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name:
callback:
argument:
--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 220 30 130 80
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: FIRST Point here and\npress a key\nDO NOT click mouse
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name:
callback:
argument:
=============== FORM ===============
Name: tab1
Width: 190
Height: 190
Number of Objects: 5
--------------------
class: FL_BOX
type: UP_BOX
box: 0 0 190 190
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label:
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name:
callback:
argument:
--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 40 30 120 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: Input
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: in1
callback:
argument:
--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 40 70 110 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: Input
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: in2
callback:
argument:
--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 40 150 110 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: Input
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: in3
callback:
argument:
--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 10 110 170 30
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: THEN point into either of these\nlower input objects and press a key
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name:
callback:
argument:
==============================
create_the_forms
_________________________________________________
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 : Mon May 22 2000 - 17:49:28 EDT