Rémi Verschelde
b90d70d592
Merge pull request #72764 from Sauermann/fix-color-picking
...
Fix Color Picking
2023-02-17 00:33:20 +01:00
clayjohn
081b31d200
Clear Window before blitting Viewport in gl_compatibility renderer
2023-02-14 10:30:02 -08:00
Thomas ten Cate
8a17f94ab2
Some fixes for initial window position and size
...
- X11: set main window position and size hints correctly
- All platforms: update minimum and maximum size of main window at
startup
Fixes #70984
2023-02-14 12:15:14 +01:00
bruvzg
a000c64eea
Cleanup Window callbacks before destroying in to avoid callback calls with invalid object.
2023-02-13 20:39:17 +02:00
Rindbee
593598c592
Calling popup_center* with the default size will use the current size
2023-02-11 18:53:53 +08:00
Markus Sauermann
5bb66d3cfb
Fix scene reload crash caused by mouse cursor update
...
After a scene reload a mouse cursor updates is performed via a
InputEventMouseMotion, that is exposed to the user.
The state of Input is however not adjusted to this InputEventMouseMotion
which can lead to inconsistencies.
This PR makes sure, that it is not exposed to the user.
It utilizes the method of Viewport::_process_picking for marking
events that are not sent to the user, so that this function doesn't
need to be changed.
2023-02-10 01:16:23 +01:00
Markus Sauermann
88f4e5cc94
Fix that `popup_centered` didn't take the window's size into consideration
2023-02-09 22:05:39 +01:00
Markus Sauermann
888add8418
Fix Color Picking
...
With the 4.x-introduction of Windows the previous method for
color picking was no longer working.
This PR uses the following approach to reintroduce color-picking.
When the Color-Picking-Button is pressed, a quasi-screenshot of the
Window-content is created and displayed in a new Popup-Window.
This new Window allows selecting colors by Mouse-Click.
A Preview of the targeted Color is also displayed.
2023-02-09 01:00:54 +01:00
Rémi Verschelde
929333fe26
Merge pull request #62179 from Rindbee/fix-popup_center-off-center
...
Use min_size/max_size to limit window size and position while popup center
2023-02-07 16:30:41 +01:00
Rindbee
c73844f117
Use min_size/max_size to limit the window size and the position while popup center
2023-02-07 21:28:26 +08:00
Markus Sauermann
5312d83f3b
Fix Viewport::get_mouse_position for SubViewports
...
SubViewports don't have a cached mouse position available.
This PR calculates the mouse position from the screen position of
the mouse cursor.
2023-02-07 13:54:47 +01:00
Markus Sauermann
8748f4dcaa
Fix mouse/drag/touch InputEvents having no device id
...
Some internally created emulated/instantiated events didn't have a
device id. This PR sets for these cases a device id.
Also rename `DEVICE_ID_TOUCH_MOUSE` to the more generic
`DEVICE_ID_EMULATION`.
2023-02-06 22:49:42 +01:00
Markus Sauermann
e3e9da78e8
Remove `Viewport::_get_input_pre_xform`
...
This function is only relevant for `Window`. So this PR moves
the functionality to the `Window`-class.
2023-02-02 22:03:52 +01:00
Markus Sauermann
6743ac34d3
Simplify Viewport::_set_size
...
`Viewport.to_screen_rect` is used only in a single location to compare it
to `Rect2i()`.
When called from `SubViewport`, `to_screen_rect` is always equal to `Rect2i()`.
When called from `Window`, `to_screen_rect` is always different from `Rect2i()`.
So the comparison `to_screen_rect != Rect2i()` can be replaced by
`Object::cast_to<Window>(this)`.
This allows the removal of `Viewport.to_screen_rect` and the simplification of
`Viewport::_set_size`.
2023-02-02 19:09:14 +01:00
Markus Sauermann
8182f29d40
Fix stretch transform when resizing SubViewports
...
Move calculation of stretch transform from outside to inside
of `Viewport::_set_size` function.
2023-02-01 08:34:40 +01:00
Rémi Verschelde
b342dcdf04
Remove some unused signals
...
Part of #37604 .
2023-01-31 18:54:04 +01:00
Rémi Verschelde
2b710bc336
Fix MSVC shadow local warning
2023-01-31 18:06:21 +01:00
Rémi Verschelde
1c42e141d0
Merge pull request #59310 from Sauermann/proposal-event-transform
...
Calculate window input event transform only on window change
2023-01-31 15:57:07 +01:00
Rémi Verschelde
aae96945fa
Merge pull request #71470 from YeldhamDev/window_fixes
...
Fix some small bugs in the `Window` node
2023-01-27 19:26:31 +01:00
Rémi Verschelde
13e20fed99
Merge pull request #68627 from Sauermann/fix-tooltip-position
...
Fix position of Tooltips
2023-01-26 16:00:14 +01:00
Markus Sauermann
c4ed247f5f
Fix position of Tooltips
...
CanvasItem::get_screen_transform returns a transform from the CanvasItem
to the coordinate system, where a Popup - created as a child of the
CanvasItem - should be opened.
get_screen_transform makes some simplifications, that work well, when used
in the editor, but not in general cases.
Since Popups like Tooltips are now used more commonly in projects,
it becomes necessary to correct these simplifications.
This solution introduces Viewport::get_popup_base_transform, which makes
the necessary calculations.
2023-01-26 15:15:14 +01:00
bruvzg
aade5abd4f
Reorganize main and sub-window initial position properties.
2023-01-19 13:44:06 +02:00
Michael Alexsander
52b077ca28
Fix some small bugs in the `Window` node
2023-01-18 21:20:49 -03:00
bruvzg
34b34b104c
Add `WINDOW_FLAG_MOUSE_PASSTHROUGH` flag and enabled it for tooltips. Expose `window_set_mouse_passthrough` to `Window`.
2023-01-16 11:42:49 +02:00
bruvzg
2718a7b7d3
Add support for the custom initial screen for the main window, fix primary screen detection.
2023-01-07 11:14:35 +02:00
Rémi Verschelde
d95794ec8a
One Copyright Update to rule them all
...
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.
It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).
We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).
Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
bruvzg
f7955633de
Improve `window_set_current_screen` and fix secondary window initial mode and positions.
2022-12-29 09:43:39 +02:00
Yuri Sizov
29cc86fa6c
Copy local theme overrides from Control to Window
2022-12-07 20:50:51 +03:00
bruvzg
edf13eb5a6
Rename `window_get_real_size` to `window_get_size_with_decorations`, add `window_get_position_with_decorations`.
2022-12-07 11:07:30 +02:00
Markus Sauermann
3b14f0334c
Remove redundant Variant-types initializations
2022-11-14 19:35:19 +01:00
Clay John
8fd92ed867
Merge pull request #64710 from MinusKube/window-size-crash
...
Prevent windows from having a size greater than device limit
2022-10-27 10:02:44 -07:00
Rémi Verschelde
15b68f7601
Merge pull request #67232 from bruvzg/popup_edit
...
Improve Popup / Window behavior in the edited scene tree.
2022-10-12 14:45:14 +02:00
Nikola Bunjevac
d7e9b8af9a
Set window size after setting new limits
...
Otherwise this can fail as the size may not fit
into current limits. This is problematic at least
on X11.
2022-10-11 17:16:20 +02:00
bruvzg
2e1fcbe14b
Prevent `Popup`s it the edited scene tree from closing on focus loss. Hide irrelevant `Popup` flags from the editor inspector.
2022-10-11 08:55:00 +03:00
bruvzg
0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4.
2022-10-07 11:32:33 +03:00
Cykyrios
2237df6273
Fix invalid popup position for embedded popups
2022-10-03 21:23:32 +02:00
Markus Sauermann
2bf2217b1a
Calculate window input event transform only on window change
2022-10-01 09:54:38 +02:00
Rémi Verschelde
e3464c8fc8
Merge pull request #58995 from Sauermann/fix-mouse-cursor-change-2
...
Update mouse cursor shape after changes
2022-09-28 20:50:05 +02:00
kobewi
a4c3551dc6
Force window position if spawned outside screen
2022-09-26 13:44:25 +02:00
bruvzg
0dab11afa4
[macOS extend-to-title] Add scene/project name to the editor title, fix incorrect window button position/order when system primary language is RTL.
2022-09-22 23:09:56 +03:00
Markus Sauermann
52da6f1a44
Update mouse cursor shape after changes
...
This fixes some cases where the mouse cursor shape did not change automatically, but instead required a MouseMove to update.
2022-09-18 17:15:38 +02:00
Rémi Verschelde
d79040e7eb
Merge pull request #65496 from MinusKube/popup-capture-mouse-bug
...
Fix MOUSE_MODE_CAPTURED not working correctly with popups
2022-09-16 09:23:40 +02:00
MinusKube
00e153f85a
Use embedding viewport instead of parent viewport to determine popup rect
2022-09-09 01:22:46 +02:00
MinusKube
06b86fad0d
Fix MOUSE_MODE_CAPTURED not working correctly with popups
2022-09-07 19:31:57 +02:00
MinusKube
f5a808192b
Prevent windows from having a size greater than device limit
2022-09-04 22:48:54 +02:00
Yuri Sizov
41eabca0fb
Un-defer the initial theme changed notification in Window
2022-09-03 14:55:13 +03:00
Yuri Sizov
8b128081e8
Un-defer the initial theme changed notification
...
Co-authored-by: Rindbee <idleman@yeah.net>
2022-09-02 23:44:23 +03:00
Yuri Sizov
ddc55ef746
Add ThemeOwner type for managing theme propagation and lookup
2022-09-02 23:44:23 +03:00
Yuri Sizov
15fd025f90
Add dumb and manual theme caching systems to Window
2022-09-01 16:05:02 +03:00
kobewi
409613ba7b
Allow to change the Stop shortcut used at runtime
2022-08-30 14:14:15 +02:00
Rémi Verschelde
e60086f98b
Merge pull request #64119 from YuriSizov/theme-init-database
2022-08-29 14:02:21 +02:00
Rémi Verschelde
4f60fd0480
Merge pull request #64777 from bruvzg/extend_to_title
...
[macOS] Extend editor contents to the window title bar for better space usage.
2022-08-26 23:03:31 +02:00
Yuri Sizov
6320a0fc18
Add ThemeDB, expose previously static Theme methods
2022-08-26 19:23:05 +03:00
bruvzg
bc4ba6cb78
[macOS] Extend editor contents to the window titlebar for better space usage.
2022-08-26 15:12:43 +03:00
Rémi Verschelde
ff612b6916
Merge pull request #64574 from Begah/fix_transient_window_wrap_mouse
2022-08-26 13:54:23 +02:00
Aaron Record
74eb2a70bd
Refactor and remove excessive calls of `NOTIFICATION_THEME_CHANGED`
2022-08-25 14:50:49 -06:00
MathieuRoux
5ac5c8bc06
Fix warp_mouse for transient windows, smoother mouse positioning when releasing mouse for spinbox
2022-08-25 11:30:49 +02:00
Pedro J. Estébanez
910efbff03
Avoid warnings about cursor shape change not supported
2022-08-23 11:14:07 +02:00
Yuri Sizov
1a24c9e14b
Make `_validate_property` a multilevel method
2022-08-22 18:35:11 +03:00
Michael Alexsander
2b86c458bf
Fix some bugs with `Window`s
2022-08-05 02:25:15 -03:00
Fabian Keller
2bf9e6090c
rename translate(d) to translate(d)_local in Transform 2D/3D
2022-07-16 11:47:54 +02:00
Rémi Verschelde
82a56e5c42
Merge pull request #61587 from YuriSizov/control-fix-theme-owner-toplevel
...
Fix theme propagation for children of top level controls and windows
2022-06-27 12:03:36 +02:00
Rindbee
5ac259fad8
Quickfix editor hangs when rooting a window with exclusive and transient flags enabled
2022-06-20 21:45:08 +08:00
markdibarry
459228cdb3
Add explicit deferred flags
2022-06-19 10:04:53 -04:00
Rindbee
53bd72fa70
Fix previous min size affects _get_contents_minimum_size in AcceptDialog
2022-06-17 16:21:23 +08:00
bruvzg
f7269fe878
Single-window mode popups and edited scene windows fixes.
...
Fix single-window mode popup not closing when OptionBox is clicked.
Fix single-window mode submenus closing when parent menu item, that was used to open it is clicked (using same safe-area logic as platform specific code).
Disallow windows that are part of an edited scene from being set as exclusive or popup to prevent it from locking up the editor.
2022-06-13 09:56:08 +03:00
FireForge
4678736a39
Add suffixes to all nodes and resources
2022-06-11 09:41:05 -05:00
Rémi Verschelde
659f4b64d6
Merge pull request #60830 from Ansraer/fix-2d-scale
...
[4.x] Add viewport content scale
2022-06-04 00:15:38 +02:00
Yuri Sizov
ba273c6c5f
Fix theme propagation for children of top level controls and windows
2022-06-01 04:20:00 +03:00
Aaron Record
900c676b02
Use range iterators for RBSet in most cases
2022-05-19 12:09:16 +02:00
reduz
746dddc067
Replace most uses of Map by HashMap
...
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
(order matters) but use is discouraged.
There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
Ansraer
045f511bd9
Add viewport content scale
2022-05-06 19:50:53 +02:00
bruvzg
defcd0c57e
Avoid setting sub-window or started project window positions, if it's impossible to get screen rect.
2022-04-20 11:10:33 +03:00
FireForge
0b0a74e135
Redesign InputEvent editor plugin
...
- Use vertical layout and add text wrapping
- Fix Window.popup_centered() rect calculation
2022-04-12 08:30:24 -05:00
Rémi Verschelde
2507b2b006
Merge pull request #54191 from Ev1lbl0w/bugfix-window_popup_ratio
2022-04-11 17:49:20 +02:00
kobewi
63de41b996
Improvements to files_dropped signal
2022-04-11 00:37:06 +02:00
Ev1lbl0w
139c1eb655
Clamp ratio from popup_centered_ratio
2022-04-10 11:10:21 +01:00
Rémi Verschelde
398d502cc7
Merge pull request #59308 from Sauermann/fix-viewport-warp-mouse
2022-03-30 11:41:31 +02:00
Markus Sauermann
ffe42171a5
Fix using Viewport::warp_mouse within Viewports
2022-03-28 11:59:40 +02:00
Markus Sauermann
ba208df6e6
Send a focus-out notification when opening a Window Manager Popup
2022-03-28 09:40:36 +02:00
Markus Sauermann
40c08e522f
Revert "Update mouse cursor shape after changes"
...
This reverts commit 0fce98b4b5
.
2022-03-10 09:43:06 +01:00
Markus Sauermann
0fce98b4b5
Update mouse cursor shape after changes
...
This fixes some cases where the mouse cursor shape did not change automatically, but instead required a MouseMove to update.
2022-03-09 07:54:03 +01:00
Rémi Verschelde
345b4bb86a
Merge pull request #58282 from keptsecret/filedialog_visibility_unresponsive
...
Fix to prevent AcceptDialog and children class taking over main window
2022-02-28 12:48:59 +01:00
bruvzg
74ff5921d6
Improve popup window handling.
...
Add window FLAG_POPUP and a platform specific routines to control popup auto-hiding and event forwarding.
2022-02-25 09:33:27 +02:00
keptsecret
128e98c124
fixed wrong ifdef enclosed block
2022-02-18 13:31:54 -05:00
keptsecret
cb905fa957
prevent acceptdialog taking over main editor window when made visible
2022-02-18 11:06:41 -05:00
Markus Sauermann
415042ac89
Connect notifications from Container to Viewport
...
mouse enter+exit
2022-02-15 22:41:30 +01:00
Rémi Verschelde
0f5455230c
Use `switch` consistently in `_notification` (`scene` folder)
2022-02-15 18:44:55 +01:00
Rémi Verschelde
d3a6b6daaa
Merge pull request #56953 from bruvzg/ex_wnd
2022-02-12 16:46:55 +01:00
Hendrik Brucker
b396fd4eef
Improve compilation speed (forward declarations/includes cleanup)
2022-02-12 02:46:22 +01:00
bruvzg
7d59b81d79
Add exclusive window handling to DisplayServer (on macOS and Windows).
2022-02-12 00:14:09 +02:00
bruvzg
f4ea9cd9f3
[Windows] Add WS_BORDER flag to windows in WINDOW_MODE_FULLSCREEN mode to allow multi-window interface in full-screen.
...
[Windows] Add WINDOW_MODE_EXCLUSIVE_FULLSCREEN without WS_BORDER flag enabled (no multi-window support).
2022-02-04 12:08:46 +02:00
bruvzg
3d79ad6e50
Fix main window title translation.
2022-01-21 15:32:22 +02:00
Rémi Verschelde
6ab5d9d008
Merge pull request #56935 from V-Sekai/window_theme_changed_signal
2022-01-19 13:31:56 +01:00
SaracenOne
2db30ef223
Add missing 'theme_changed' signal to Window class
2022-01-19 07:59:42 +00:00
bruvzg
d62ca0c9c0
Window management improvements.
...
[macOS] Fix transient windows not working in the full-screen mode.
[macOS] Fix moving transient windows to the other screen than parent window.
[macOS] Fix popup menu switch on hover.
[macOS] Use content origin rect for windows position (to ensure `DS.mouse_get_position` is equal to `DS.window_get_position` + mouse position from the input events).
[macOS] Fix incorrect input coordinates, when external display with different scaling in connected/disconnected.
[macOS/Windows] Fix moving fullscreen windows between the screens.
Add auto refocusing of the parent window, when the focused transient window is closed.
Remove redundant `DS.mouse_get_absolute_position` function (returns mouse position in the screen coordinates, same as `DS.mouse_get_position`).
2022-01-18 11:47:03 +02:00
Rémi Verschelde
fe52458154
Update copyright statements to 2022
...
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
Ansraer
c7a03412ac
add 2d scale factor property
2021-12-17 19:19:41 +01:00
Yuri Roubinsky
eabf8f5edf
Added `reset_size` method to `Control` and `Window` classes
2021-11-22 16:55:21 +03:00
Aaron Franke
3c0fdcc8ac
Use "enum class" for input enums
2021-11-12 15:37:54 -06:00