Submitted by Anonymous on Thu, 04/10/2003 - 11:44.
Hi,
I am working on an multi-platform/OS application and I`m trying to reduce the flickering within some of our panels. I am developing under Linux but have to take into account different Unixes (Solaris, AIX, SGI, and others).
Before resizing/moving a widget we used to call XtUnmanageChild(), call XtSetValues() and then remanage the child. I`ve tried to commented out the calls to XtUnmanageChild() and it turns out to remove a lot of flickering when dealing with a drawing area.
However, for other widgets (like pushbuttons) removing the call to XtUnmanageChild() introduces X errors (invalid values and others).
I look through the Motif FAQ and could not find anything stating that we Must unmanage a child before calling XtSetValues.
Is there such a rule? Should I investigate on there X errors and fix them?
Thanks,
Thu, 04/10/2003 - 17:11#1
Anonymous
XtSetValues and XtUnmanageChild()
for using XtSetValues you need not unmanage the child , i use this quite often in my code, and i had not problems, what exactly is you problem???
make positional placements(i meant XmN...Position) for the children and then try your move or resize ..., dont fix the positions of children within a parent.
Fri, 04/11/2003 - 07:51#2
ICS_support
XtSetValues and XtUnmanageChild()
Agreed. I`m with "ragu". Flickering would be reduced because the corresponding window is moved without being unmapped. You can avoid the calls to XtUnmanageChild(). (You sometimes see these inserted for very complex changes that would repeatedly affect the parent.)
Fri, 04/11/2003 - 07:52#3
ICS_support
XtSetValues and XtUnmanageChild()
Yes; basically, there shouldn`t be anything that you can do at the Xt level that introduces X protocol errors.
Fri, 04/11/2003 - 15:07#4
Anonymous
XtSetValues and XtUnmanageChild()
My main problem is that when I resize a Drawing Area, a call to XtUnmanageChild() is made then XtSetValues is called to update the widget`s size and position. Then XtManageChild is called.
This introduce a lot of flickering. You actually see the drawing Area flash on the screen.
I tried removing the call that unmanage the widget and the resize still work and without any flickering. -)
My question is "Do I have to unmanage a widget to actually resize it?" Is this going to cause other geometry problems with the widget`s parent?
Thanks for your input.
Mon, 04/14/2003 - 13:28#5
Anonymous
XtSetValues and XtUnmanageChild()
"Do I have to unmanage a widget to actually resize it?" if this is your question , my answer based on my experience is NO
does that drawarea have any expose callback ?? Moreover , if you unmanage and manage a draw area widget , you will def. see the flickering.