There was a hardcoded exception to never reset caret blinking if Ctrl
(`command`) was pressed. This broke on Ctrl+arrows,
Ctrl+Home/End/PgUp/PgDn, Ctrl+C, Ctrl+V, Ctrl+Backspace and Ctrl+Delete.
Resetting blink only for those Ctrl operations that actually touch the
cursor somehow would clutter the code a lot, so I removed the check
entirely. That means we now also reset blinking on unrelated operations
like Ctrl+O, but that seems pretty harmless. I actually like the
additional bit of feedback even in that case (most of these will
immediately defocus the editor anyway, so you never see it).
Fixes#18100
(cherry picked from commit 44d761e55c)
Fixes thread and process handles leak when running and killing project
from editor (caused by a missing CloseHandle call) plus a potential leak
when calling OS_Windows::execute with p_blocking and !r_pipe.
The leak could be easily observed with a Handles counter in Task Manager
(or Performance Monitor) for the Godot editor process.
(cherry picked from commit b1e0da455b)
Note that gl_InstanceID is not supported in OpenGL ES 2.0,
so in the gles2 backend we assign it to 0.
Also clean up some duplicates/commented out code.
Fixes#20088.
(cherry picked from commit 00dfc9c8eb)
Fixes#20119 where newly installed templates were not detected.
Also fix a bug with preset deletion where it would attempt to
edit an already removed preset. For this I made it so that
ItemList::deselect_all() also resets `current` to -1, as a manual
ItemList::deselect(idx) already does.
(cherry picked from commit 13239cd4cc)
Draw scrollbar icons through their textures, rather than calling
directly to the server. Allows atlas textures to manipulate the source
rect as required.
(cherry picked from commit e51a94905d)
Initialised relevant variables before stating thread,
to prevent a branch on uninitialised data.
Fixed race condition in polling that could miss a device change.
(cherry picked from commit fe4265ad46)
When the viewport's size.y becomes lower than 2, the storage->frame.current_rt->effects.mip_maps[0].sizes Vector during rendering becomes empty, resulting in crashes in at least GLES3. This is a temporary fix to stop rendering a viewport when its size is below 2 rather than below 1.
(cherry picked from commit 892a4b175a)
KEY_MASK_CMD is automatically replaced by KEY_MASK_CTRL on non-OSX
and KEY_MASK_META (Command key) on OSX, so it should be used for all
Ctrl/Cmd + key shortcuts.
Also de-hacked the macOS shortcut replacements with proper conditional
definition. Not tested on macOS, cannot judge if they are good shortcuts.
Fixes#10761.
(cherry picked from commit 3f09cac267)
The code had a subtle signed/unsigned bug -
```cpp
if( signed - unsigned < 0)
// signed - unsigned is unsigned in c++, so
if( unsigned < 0)
// and thus the if block will never be executed
```
Thus all the following code would be ran, including unnecessary retries
of compacting the pool.
(cherry picked from commit 2bbe6144ff)