NOFLUSH doesn't appear to be listed: https://www.tecgraf.puc-rio.br/iup/en/dlg/iupdialog.html
In fact it doesn't appear in the docs at all from what I can tell, except as a value to REDRAW on IupPlot: https://www.google.com/search?sxsrf=ALeKk00WalATCnPUaZhvfZkAu055CZ5iZw:1622222650320&q=%22NOFLUSH%22+site:+https://www.tecgraf.puc-rio.br/iup&sa=X&ved=2ahUKEwjUg8am8uzwAhVBKqwKHbVQAJ4Q5t4CMAB6BAgJEBA&biw=1695&bih=1228 On Fri, May 28, 2021, at 10:15 AM, Antonio Scuri wrote: > Yes. Please take a look at the IupDialog documentation. > > Best, > Scuri > > Em sex., 28 de mai. de 2021 12:09, Isaac Raway <is...@mm.st> escreveu: >> __ >> I just need to set NOFLUSH on the dialog element itself? >> >> On Thu, May 27, 2021, at 4:13 PM, Antonio Scuri wrote: >>> Easier will be to disable the IupFlush on the close of that dialog. Set >>> NOFLUSH=Yes. >>> >>> But it seems to me that your timer is doing something that prevents the >>> popup loop to end. >>> >>> Best, >>> Scuri >>> >>> >>> Em qui., 27 de mai. de 2021 às 18:11, Isaac Raway <is...@mm.st> escreveu: >>>> __ >>>> Scuri, >>>> >>>> Ah great, this was enough for me to figure out what was going on, well... >>>> sort of. >>>> >>>> I did have 3 timers, one of which had a very small interval of 1 (TIME=1). >>>> >>>> If I change this to TIME=100 the problem seemed to go away, but would >>>> impact performance of the module that it was calling (a web server's >>>> polling function). >>>> >>>> So instead I implemented my own message loop: >>>> >>>> However there are two issues: >>>> >>>> 1. I'm not sure how to know when to exit the loop >>>> 2. The documentation for IupLoopStep says: >>>> >>>> "Note that this function does not replace IupMainLoop." >>>> >>>> So, are there things that IupLoopStep doesn't do that are needed for IUP >>>> to be healthy? Is there an example on completely replacing IupMainLoop >>>> with a custom event loop? >>>> >>>> >>>> >>>> On Wed, May 26, 2021, at 10:19 PM, Antonio Scuri wrote: >>>>> Hi, >>>>> >>>>> IupPopup starts a new message loop that will return only when one of >>>>> the following occurs: "a callback returns IUP_CLOSE, IupExitLoop is >>>>> called, or when the popup dialog is hidden, for example using IupHide". >>>>> >>>>> It looks that you are doing it right, but this: "IupHide never returns >>>>> and all following events are handled inside IupHide." Is quite weird. >>>>> There is no message processing in IupHide, but IupFlush is called. So >>>>> pending messages are processed. I noticed you have a timer, it may >>>>> process the timer and call the timer callback. >>>>> >>>>> If this does not help you find the problem, then to be able to >>>>> reproduce the problem here I'll need a small example code. For instance, >>>>> you can change one of the pre-defined samples. >>>>> >>>>> Sorry for taking so long. >>>>> >>>>> Best, >>>>> Scuri >>>>> >>>>> >>>>> >>>>> Em qua., 26 de mai. de 2021 às 14:14, Antonio Scuri >>>>> <antonio.sc...@gmail.com> escreveu: >>>>>> Later today, I'll see this. >>>>>> >>>>>> Best, >>>>>> Scuri >>>>>> >>>>>> Em qua., 26 de mai. de 2021 às 14:12, Isaac Raway <is...@mm.st> escreveu: >>>>>>> __ >>>>>>> Could really use some help with this. This bug is bad enough and hard >>>>>>> enough to track down I'm being forced to consider using a different >>>>>>> toolkit, which would be a ton of work and isn't really something I want >>>>>>> to do. Is there any way to figure out why these functions aren't >>>>>>> returning as documented? >>>>>>> >>>>>>> IJR >>>>>>> >>>>>>> On Thu, May 13, 2021, at 10:27 AM, Isaac Raway wrote: >>>>>>>> I should clarify that the callback below is on CLOSE_CB as well as >>>>>>>> ACTION of the OK button on the form. When I close the dialog box with >>>>>>>> the windows close button, it works correctly (callback is fired, and >>>>>>>> IupPopup returns, where the data is saved). But it does *not* work >>>>>>>> when clicking the OK button -- IupHide never returns and all following >>>>>>>> events are handled inside IupHide. >>>>>>>> >>>>>>>> I tried removing the event callback from CLOSE_CB but the result is >>>>>>>> the same when clicking the OK button: >>>>>>>> >>>>>>>> > stonenotes_nt.exe!win_dialog_ok_cb(Ihandle_ * self) Line 125 C >>>>>>>> [External Code] >>>>>>>> stonenotes_nt.exe!win_dialog_show(const char * id, const char * >>>>>>>> ledFilename, int(*)(Ihandle_ *) callback, int(*)(WIN_DIALOG *, void *) >>>>>>>> value_callback, void * data) Line 120 C >>>>>>>> stonenotes_nt.exe!win_options_categories(Ihandle_ * self) Line 2748 C >>>>>>>> [External Code] >>>>>>>> stonenotes_nt.exe!win_dialog_ok_cb(Ihandle_ * self) Line 133 C >>>>>>>> [External Code] >>>>>>>> stonenotes_nt.exe!win_dialog_show(const char * id, const char * >>>>>>>> ledFilename, int(*)(Ihandle_ *) callback, int(*)(WIN_DIALOG *, void *) >>>>>>>> value_callback, void * data) Line 120 C >>>>>>>> stonenotes_nt.exe!win_options_categories(Ihandle_ * self) Line 2748 C >>>>>>>> [External Code] >>>>>>>> stonenotes_nt.exe!main(int argc, char * * argv) Line 136 C++ >>>>>>>> [External Code] >>>>>>>> >>>>>>>> >>>>>>>> Also here is the dialog setup code in case that helps: >>>>>>>> >>>>>>>> >>>>>>>> tWIN_DIALOG *win_dialog_show(const char *id, const char *ledFilename, >>>>>>>> Icallback callback, dialog_value_callback value_callback, void *data) >>>>>>>> { >>>>>>>> tWIN_DIALOG *result = calloc(1, sizeof(tWIN_DIALOG)); >>>>>>>> Ihandle *config = get_config(); >>>>>>>> sds attr; >>>>>>>> int immediate_show = 0; >>>>>>>> int x = 0, y = 0; >>>>>>>> >>>>>>>> char *error = sys_load_led(ledFilename); // this function calls >>>>>>>> IupLoad and returns the result after locating the file >>>>>>>> if (NULL == error) { >>>>>>>> sds key = NULL; >>>>>>>> >>>>>>>> // get handles from loaded LED file >>>>>>>> result->ok = IupGetHandle(key = sdscatfmt(sdsempty(), >>>>>>>> "IDC_%s_OK", id)); >>>>>>>> sdsfree(key); >>>>>>>> >>>>>>>> result->cancel = IupGetHandle(key = sdscatfmt(sdsempty(), >>>>>>>> "IDC_%s_CANCEL", id)); >>>>>>>> sdsfree(key); >>>>>>>> >>>>>>>> result->dlg = IupGetHandle(key = sdscatfmt(sdsempty(), >>>>>>>> "IDD_%s", id)); >>>>>>>> sdsfree(key); >>>>>>>> } else { >>>>>>>> result->dlg = IupSetAttributes(IupDialog(IupLabel(error)), >>>>>>>> "TITLE=\"StoneNotes Dialog Load - ERROR\", SIZE=400x200, >>>>>>>> EXPANDCHILDREN=YES, RESIZE=YES"); >>>>>>>> } >>>>>>>> >>>>>>>> IupSetAttribute(result->dlg, "MINBOX", "NO"); >>>>>>>> >>>>>>>> //IupSetCallback(result->dlg, "CLOSE_CB", >>>>>>>> (Icallback)win_dialog_ok_cb); >>>>>>>> //IupSetAttribute(result->dlg, "WIND", (char *)result); >>>>>>>> >>>>>>>> IupSetCallback(result->ok, "ACTION", (Icallback)win_dialog_ok_cb); >>>>>>>> IupSetAttribute(result->ok, "WIND", (char *)result); >>>>>>>> >>>>>>>> IupSetCallback(result->cancel, "ACTION", >>>>>>>> (Icallback)win_dialog_cancel_cb); >>>>>>>> IupSetAttribute(result->cancel, "WIND", (char *)result); >>>>>>>> >>>>>>>> // .. snip .. removed additional elements on the form >>>>>>>> >>>>>>>> IupPopup(result->dlg, IUP_CENTER, IUP_CENTER); >>>>>>>> return result; >>>>>>>> } >>>>>>>> >>>>>>>> IJR >>>>>>>> >>>>>>>> On Wed, May 12, 2021, at 12:31 PM, Isaac Raway wrote: >>>>>>>>> For some reason I've noticed that calls to IupPopup have stopped >>>>>>>>> returning. >>>>>>>>> >>>>>>>>> My dialogs have a callback for CLOSE_CB like this: >>>>>>>>> >>>>>>>>> int win_dialog_ok_cb(Ihandle *self) >>>>>>>>> { >>>>>>>>> tWIN_DIALOG *dialog = (tWIN_DIALOG *)IupGetAttribute(self, >>>>>>>>> "WIND"); >>>>>>>>> Ihandle *config = get_config(); >>>>>>>>> sds val; >>>>>>>>> >>>>>>>>> dialog->ok_clicked = 1; >>>>>>>>> >>>>>>>>> IupHide(dialog->dlg); >>>>>>>>> >>>>>>>>> return IUP_DEFAULT; >>>>>>>>> } >>>>>>>>> >>>>>>>>> >>>>>>>>> This has always worked before, but now it seems that the IupHide call >>>>>>>>> enters a new loop which processes events from my main window. >>>>>>>>> >>>>>>>>> I tried returning IUP_CLOSE instead and commenting out IupHide, but >>>>>>>>> the loop appears to be entered instead after the callback returns. >>>>>>>>> >>>>>>>>> [External Code] >>>>>>>>> ... snip, below is a IUP timer callback .. >>>>>>>>> stonenotes_nt.exe!win_ipc_timer(Ihandle_ * self) Line 4203 C >>>>>>>>> [External Code] >>>>>>>>> > stonenotes_nt.exe!win_dialog_show(const char * id, const char * >>>>>>>>> > ledFilename, int(*)(Ihandle_ *) callback, int(*)(WIN_DIALOG *, void >>>>>>>>> > *) value_callback, void * data) Line 120 C >>>>>>>>> stonenotes_nt.exe!win_options_categories(Ihandle_ * self) Line 2748 C >>>>>>>>> [External Code] >>>>>>>>> stonenotes_nt.exe!main(int argc, char * * argv) Line 136 C++ >>>>>>>>> [External Code] >>>>>>>>> >>>>>>>>> >>>>>>>>> My win_dialog_show function is what calls IupPopup. This function is >>>>>>>>> never returned to, the rest of the execution happens inside the >>>>>>>>> IupPopup call (2nd External Code above). >>>>>>>>> >>>>>>>>> Any ideas why this would have changed? >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Iup-users mailing list >>>>>>>>> Iup-users@lists.sourceforge.net >>>>>>>>> <mailto:Iup-users%40lists.sourceforge.net> >>>>>>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Iup-users mailing list >>>>>>>> Iup-users@lists.sourceforge.net >>>>>>>> <mailto:Iup-users%40lists.sourceforge.net> >>>>>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Iup-users mailing list >>>>>>> Iup-users@lists.sourceforge.net >>>>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>> >>>>> _______________________________________________ >>>>> Iup-users mailing list >>>>> Iup-users@lists.sourceforge.net <mailto:Iup-users%40lists.sourceforge.net> >>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>> >>>> >>>> _______________________________________________ >>>> Iup-users mailing list >>>> Iup-users@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>> >>> _______________________________________________ >>> Iup-users mailing list >>> Iup-users@lists.sourceforge.net <mailto:Iup-users%40lists.sourceforge.net> >>> https://lists.sourceforge.net/lists/listinfo/iup-users >>> >> _______________________________________________ >> Iup-users mailing list >> Iup-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/iup-users > > _______________________________________________ > Iup-users mailing list > Iup-users@lists.sourceforge.net <mailto:Iup-users%40lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/iup-users >
_______________________________________________ Iup-users mailing list Iup-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iup-users