{"id":764,"date":"2026-04-13T06:03:13","date_gmt":"2026-04-13T06:03:13","guid":{"rendered":"http:\/\/www.qchartist.net\/blog\/?p=764"},"modified":"2026-05-10T07:27:19","modified_gmt":"2026-05-10T07:27:19","slug":"major-bug-solved-in-qchartist-build-333","status":"publish","type":"post","link":"https:\/\/www.qchartist.net\/blog\/major-bug-solved-in-qchartist-build-333\/","title":{"rendered":"Bug solved in QChartist build 333\/334"},"content":{"rendered":"\n<p>Very often, the app freezed and crashed under WineHQ when i moved the cursor of the mouse on certain elements of the gui. This was due to the timer interval set at 1ms for screen.mousex and y. Under Wine, Screen.MouseX\/Y makes a Win32 call to GetCursorPos through the X11\u2192Win32 translation layer. This bridge can block the main thread if there is a synchronization issue with the X server, causing an apparent freeze. On native Windows this call is nearly instantaneous, but under Wine it goes through<br>XQueryPointer or equivalent, which can stall.<br>Solution : i increased the interval of timers for mouse events to 30 ms<br>Now the build 333 of QChartist is much more stable under WineHQ.<br>If you have not made it yet, run update to obtain the build 333 ! Or if you are on build 332, download the archive of the build 333 from the website and overwrite the files.<\/p>\n\n\n\n<p>The app is still freezing and crashing sometimes under WineHQ.<br>This may be because of the graphcursorpos sub that is called too often by<br>graph.onmousedown<br>Solution: the best fix is to throttle graphcursorpos<br>with a timestamp \u2014 and not to execute it if less than ~30ms are elapsed<br>since the last call<br>same thing for sub sepindicursorpos<br>Fix of multiples assignations of infotext2.Text has not been applied yet \u2014 there are 20+ separated assignations at each call of graphcursorpos. It is probably the remaining cause of crashes because infotext2.Text = forces redraw X11 synchrone under Wine.<br>Concret fix: replace all assignations in graphcursorpos with only one :<br>DIM t AS STRING<br>t = &#8220;&#8221;<br>t = t + chartsymbolnamedisp + &#8220;,&#8221; + charttfdisp + CHR$(10)<br>t=t+\u2026<br>infotext2.Text = t<br>Added IF LIKE(frmmain.caption, &#8220;<em>wait<\/em>&#8220;) = 1 THEN EXIT SUB in<br>sub graphcursorpos and sepindicursorpos<\/p>\n\n\n\n<p>build 334<\/p>\n\n\n\n<p>Cheers and enjoy!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Very often, the app freezed and crashed under WineHQ when i moved the cursor of the mouse on certain elements of the gui. This was due to the timer interval set at 1ms for screen.mousex and y. Under Wine, Screen.MouseX\/Y makes a Win32 call to GetCursorPos through the X11\u2192Win32 translation layer. This bridge can block [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":""},"categories":[13],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/posts\/764"}],"collection":[{"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/comments?post=764"}],"version-history":[{"count":4,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/posts\/764\/revisions"}],"predecessor-version":[{"id":772,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/posts\/764\/revisions\/772"}],"wp:attachment":[{"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/media?parent=764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/categories?post=764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/tags?post=764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}