Comments (5)
Bisected #92424 as the first bad commit.
from godot.
I can't reproduce (Godot v4.3.beta (475248d) - Windows 10.0.22631 - Vulkan (Forward+)).
But it looks like TextEdit is receiving mouse unpressed and pressed notifications when you didn't actually release the mouse button.
Does this also affect actions like panning or selecting in the scene view, or using ui sliders, or is it only the script editor?
from godot.
Bisected #92424 as the first bad commit.
Thanks for bisecting. I suspect it is because the patch uses GetAsyncKeyState
instead of GetKeyState
. Hypothetically, if one press the mouse button while moving the cursor, the window could be receiving these messages (pseudo code):
- MouseMove, buttons=None, xy=(100, 100)
- MousePress(Left), buttons=LeftMouse, xy=(101, 101)
- MouseMove, buttons=LeftMouse, xy=(102, 102)
When the application processes the first message, it is possible that the user has already pressed the mouse button so GetAsyncKeyState(VK_LBUTTON)
may indicate the mouse button is pressed, different from what the message represents. More importantly it would indicate the mouse button being held down before the MousePress message had been processed. If the control relies on the MousePress message to initialize states related to text selection, it could explain the bug. (This is just a hypothesis -- I haven't checked what is happening within Godot.)
I think it really should use GetKeyState
instead.
I can't reproduce [...]. But it looks like TextEdit is receiving mouse unpressed and pressed notifications when you didn't actually release the mouse button. [...]
In my capture, when the selection stops changing I definitely released the left mouse button. If my hypothesis above is correct, then the key point is that the mouse must be moving when pressing the mouse button to reproduce the bug.
If you really need to verify, I can make a capture with an OSD showing the mouse buttons (though I don't currently have a tool for this so I'll need to hunt for one).
from godot.
Can confirm in v4.3.beta.custom_build [475248d]
Windows 10.0.19045
from godot.
I misunderstood earlier, I can reproduce it now while moving the mouse.
Adding logpoints show that a mouse motion event with the left mouse button down is being sent before the mouse pressed event.
Created a PR #93105 that uses GetKeyState as suggested.
from godot.
Related Issues (20)
- The fusion effect of multiple normal maps is inconsistent with Blender HOT 2
- Found a bug when deleting file in the filesystem HOT 1
- Parser Error: Cannot infer the type of return value of `await signal` to retrieve passed arguments HOT 3
- Animating FontVariations causes memory leak(?) HOT 2
- GDScript "Cannot find member" errors for user-defined classes when member definitely exists, only resolved by reloading project in the editor
- GodotSharp: Inconsistent use of types in TabBar HOT 1
- Popups don't register mouse click shortly after opening HOT 2
- Inconsistent Import for bmps in 1bpp and 4bpp indexed format
- Baking Lightmaps with LightmapGI breaks meshlibrary (Gridmap) transforms. HOT 1
- Demo of a Godot game completely crashes computer upon start up. HOT 3
- Signal panel gets visible/invisible when i double click filesystem items
- Still if you copy and paste a TileMap it deletes hours of work just cause HOT 1
- Assigned shader ignored on mesh HOT 3
- Visual shader plugin complains about missing version and category HOT 2
- [C#] Data partially lost when iterating through a deserialized Dictionary HOT 2
- Disabled in editor NavigationLink3D doesn't have a map even after enabling it
- Code completion shortcut (CTRL+SPACE) does not work without a filter (e.g. on blank lines before you start typing)
- iOS version of the game crashes on iPad HOT 1
- GDShader allows commas in `for` conditions (middle part) incorrectly
- GDShader incorrectly expects `int` cases in `switch` on `uint` expressions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from godot.