purr-data merge requestshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests2020-09-30T21:43:01Zhttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/567Fixes openpanel unable to open a custom path on windows2020-09-30T21:43:01ZIvica BukvicFixes openpanel unable to open a custom path on windows*Addresses issue #449*Addresses issue #449Ivica BukvicIvica Bukvichttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/563Fixed asynchronous getscroll and activate regression2020-09-30T21:43:07ZIvica BukvicFixed asynchronous getscroll and activate regression* This was caused by the improvement in the scrolling algorithm earlier this summer to throttle down getscroll calls invoked by arrays that resulted in CPU intensive redraws. As it turns out, the same also up until this patch prevented t...* This was caused by the improvement in the scrolling algorithm earlier this summer to throttle down getscroll calls invoked by arrays that resulted in CPU intensive redraws. As it turns out, the same also up until this patch prevented the following from working properly:
1. select text object and displace it by dragging using a mouse until it goes partially outside the canvas edge
2. the object is activated at a location before getscroll changes the viewport settings to ideally fit everything within the window
3. getscroll is called and everything is relocated except the activated box because its current implementation is oblivious to the changes in canvas positioning.
4. as a result the activated box does not match the actual object position.
* The new patch addresses this by introducing a synchronous scroll request that has no delays and executes immediately, thereby completing canvas relocation before the activated box is drawn. Due to its potential to be misused causing high CPU usage, this call is currently reserved only for this special case.
* LATER: consider ensuring that activated boxes are also relocated on getscroll, so that in the case of scripted changes to the viewport activated boxes remain in a correct place. Even so, this should not be seen as a workaround but as a feature that may prove useful in other contexts. So, the solution is to have both this patch and this other thing eventually implemented.Ivica BukvicIvica Bukvichttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/579Glist grab numbox/gatom regression fix2020-10-12T10:49:07ZIvica BukvicGlist grab numbox/gatom regression fix* Main changes are in the g_editor.c, g_text.c, g_numbox.c, with minor changes in g_slider.c g_all_guis.h, and externals that issue glist_grab calls.
* Reenabled the mouseup event that was mysteriously disabled for an unknown amount of ...* Main changes are in the g_editor.c, g_text.c, g_numbox.c, with minor changes in g_slider.c g_all_guis.h, and externals that issue glist_grab calls.
* Reenabled the mouseup event that was mysteriously disabled for an unknown amount of time. This made it difficult to report to the object mouse release event after it has been dragged and the mouse ended-up being positioned outside object's bounds.
* This now allows for very nice control over objects that are being grabbed.
* Mouse release sets doubleclick flag to -1 to differentiate itself from the regular mouse movement which also reports mouse press as 0.
* Allowed for glist_grab to be exclusive in respect to key presses and settable as such via the glist_grab call. See iemgui numbox for benefits of this implementation, described below.
* Completely reworked numbox logic with additional variables designed to improve code readability and disambiguate the x->x_gui.x_changed and x->x_gui.x_change.
* Rotated the order of event propagation to have glist_grab 1st and event bound objects second (e.g. key/keyname etc.). THIS IMPLEMENTATION SHOULD BE HEAVILY SCRUTINIZED TO MAKE SURE THERE ARE NO ADVERSE EFFECTS. Given the rapid release cycle I suggest adding it to the next release and then observing user feedback.
* The numbox now offers the following behavior:
1) click and drag and release (with or without shift which can be pressed at any time to toggle between fine +-0.01 and +-1 increments) which immediately changes the number value and outputs it. This kind of grab does not do exclusive keyboard grab and therefore allows keyboard to still propagate to other bound events.
2) click and immediately release enters the exclusive keyboard mode and makes the '>' appear to make the user aware of this. Here you can use arrows up/down with and without shift, press allowed keyboard keys (numbers, enter, delete, etc.) and edit the value accordingly. Pressing arrows always changes the last digit of the currently truncated number. Pressing enter commits the value and retains the focus for another 3 seconds unless user presses Esc or clicks outside the number box. If all the digits are erased the number implicity assumes 0.
3) clicking and immediately releasing without shift pressed to activate exclusive keyboard mode activates legacy/default behavior where entered text overwrites the existing (the cursor starts at the beginning and initially only has '>'). Doing the same with shift key puts the numbox in the append mode where one can continue adding to the previously committed number. This is even true if the displayed number is simply '+' or '-' due to it exceeding the number box width (not including decimals).
4) Values whenever committed are clipped to the object's min and max and reflected as such in the number object. If the object remains activated, the number is not clipped if it exceeds the object's length, but shows only last n visible digits. Upon removing focus (activation), it redraws from the beginning (if number of digits exceeds the width but does not exceed the min/max thresholds. Re-activating the object redraws it with the last digits visible.
* All glist_grab instances in externals should be taken care of and are, by default, not exclusive.
* gatom due to its reliance on the "click" legacy message lacks adequate information to allow for some of the advanced functionality of the iemgui numbox. This, coupled with other legacy behavior (e.g. having a min and max that does not apply to the values coming into its inlet) in my view make vanilla gatom a legacy object. This also makes a distinguishing factor between it and the iemgui numbox.
* Nonetheless, new features persist, such as drag and shift+drag that offers +-1 and +-0.01 increments respectively inside the number gatom, the ability to append to the symbol gatom text by shift+clicking onto it, and shift+delete deletes all the text at once inside the gatom symbol.
* Ensured slider benefits from the new implementation. Now the shift press is dynamic during the dragging and the grab is properly disengaged after letting go of the mouse, regardless if this happens over the object or outside it.Ivica BukvicIvica Bukvichttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/594ci: Restore missing osx_version flag2020-10-16T09:46:20ZAlbert Gräfci: Restore missing osx_version flagSam's ci-osx-10.8 MR resurrected.
This causes tar_em_up.sh to download an older version of nw.js suitable
for OSX 10.8.
It was accidentally removed by me in 4bffb36f92ff3b3ee67cde7cb2d3fc055.Sam's ci-osx-10.8 MR resurrected.
This causes tar_em_up.sh to download an older version of nw.js suitable
for OSX 10.8.
It was accidentally removed by me in 4bffb36f92ff3b3ee67cde7cb2d3fc055.Jonathan WilkesJonathan Wilkes