|
From: | Donato Lorenzo López |
Subject: | [XForms] FL_BROWSER: different behaviour between 'left click' and 'slowly left click' |
Date: | Fri, 16 Sep 2011 12:56:55 +0000 |
Hi,
S.O.: HP-UX B.11.31 U ia64 (td) X Window version: X11R6 XForms version: xforms-1.0.93sp1 I'm gonna try to explain it as short as possible! A program, wich has a FL_TABFOLDER. And a FL_BROWSER inside it. The FL_BROWSER has an own handler. Well, in the FL_BROWSER I insert a few lines (in its textbox, exactly), calling this functions: fl_clear_browser() while(/*reading data*/) fl_add_browser_line(); Well, if I do (over the FL_BROWSER lines): a) Right click => It calls the FL_BROWSER's own handler. OK, perfect. b) Center click => It calls the FL_BROWSER's own handler. OK, perfect. c) Slow Left click (pressing one or two seconds) => It calls the FL_BROWSER's own handler. OK, perfect. d) Fast Left click => It doesn't call the FL_BROWSER's own handler. Ohhh, why?. The strange of the d) option it's that the line inside the FL_BROWSER get selected (it changes its colour)... Well, I've been debuggin' a little bit, and I've seen the difference in the function FL_OBJECT * fli_object_qread( void ), of events.c. First, it call the textbox callback: if ( obj->object_callback ) { fli_handled_obj = obj; obj->object_callback( obj, obj->argument ); ====> It calls the funcion tbcb() in browser.c And then it reads the parents: if ( obj->parent ) { obj = obj->parent; ... (etc.) fli_handled_parent = obj; while ( fli_handled_parent ) { ... (etc.) And here is the difference. When I do a), b) and c), it detects FL_BROWSER as parent and calls its handler. But when I do d), it detects first the FL_TABFOLDER as parent, then FL_BROWSER. But it doen's call the callback, because the next 'if' is true: /* If we arrive here the original object either was a child object or it had no callback. Run either the parent callback or the forms callback (if there's one). */ if ( ! obj->returned ) { return NULL; } ------------------------------------------------------------------------------------------------------------------------------------ And I have the same problem in the FL_CHOICE objects, to see the list of elements you have to press left button like one second. ------------------------------------------------------------------------------------------------------------------------------------ Yeah, about this kind of error, the programmers we say: "the program works 99'9% fine". But users say "that's a serious problem, I cannot work this way" :)) I guess the problem is in X Window configuration, or something like that, outside the XForms. But maybe we got a way to solve the problem from the program source.... I've been trying playing with object's focus, moving things... but it's still present :( Well, I hope you think something! Thanks a lot!!
http://tiralledoaire.blogaliza.org/ |
[Prev in Thread] | Current Thread | [Next in Thread] |