-
-
Notifications
You must be signed in to change notification settings - Fork 21.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Separate DisplayServer from OS and add multiple windows support #37317
Separate DisplayServer from OS and add multiple windows support #37317
Conversation
5f6c020
to
256f1af
Compare
Still a lot of work to do.
Also renamed Input to InputFilter because all it does is filter events.
Controls using the old modal API have been replaced to use popups.
@YeldhamDev You know the drill after all these years and this happening twice a year ;)
(Or Maybe we should rename |
@akien-mga Sorry, I tend to forget to clean up the files in those situations, probably because it reminds me of how much time it will take to compile everything again... :V |
70158f4
to
ecd7e34
Compare
There's |
Change global menu to use Callable, add support for check items and submenus.
Also re-enable macOS builds disabled in dbb3f99.
ecd7e34
to
be07f86
Compare
I prepared a proposal already to discuss this: godotengine/godot-proposals#639. 🙂 |
This issue was referenced by one/some of the "multi monitor support" issues and I just installed Godot 4 from git because I was hoping that I could just pop the main tabs like the code editor or the help into a new window, so I can expand that window on one of my other monitors. Oddly enough, everything but the code editor now pops into a new window (like context menus from the main menu, when I rightclick something the right click menu becomes a new window and so forth). I am not sure how this works out for MS Windows, but I am on Linux and I also use a tiled/tabbed window manager and it totally breaks everything the program is virtually unusable. My window manager allows me to totally disable the tiling - so its not really an issue of WM either. Usually you only need to disable tiling for totally outlandish weird apps (like Acroread blob from 1998 and similar), but still no matter what I configure, the context menus open in the wrong place and flip open and closed back and forth sometimes. I am not exactly sure if this commit is to blame, from what I saw at first glance it is. But how on earth did it all play out like this? For multi-monitor: Couldn't you guys just quickly add a button "make floating" for some of the tabs, like the code editor (especially that!), or all of the tabs? The "make floating" already is there for the Dock in the Dock context menu. I mean, for multi-monitor support why make absolutely everything open in a new window even context menus? That seems totally mental to me. Just make a single button that opens a single additional window, in which you can hard-code a new code editor or dock tabs from the main screen to and hundreds of people can use at least two screens and will be totally happy. |
It changed name as part of the DisplayServer and input refactoring in godotengine#37317, with the rationale that input no longer goes through the main loop, so the previous Input singleton now only does filtering. But the gains in consistency are quite limited in the renaming, and it breaks compatibility for all scripts and tutorials that access the Input singleton via the scripting language. A temporary option was suggested to keep the scripting singleton named `Input` even if its type is `InputFilter`, but that adds inconsistency and breaks C#. Fixes godotengine/godot-proposals#639. Fixes godotengine#37319. Fixes godotengine#37690.
Same content as the
display-server
branch that @reduz worked on (with help from @kuruk-mm and @bruvzg), but rebased on top of the currentmaster
branch (only took ~5 hours!).OS
is split intoOS
andDisplayServer
.X11
OS is renamed toLinuxBSD
(Linux, FreeBSD and OpenBSD "desktop" systems as per Freedesktop),X11
is now its firstDisplayServer
implementation (DisplayServerWayland
can be added eventually).Input
refactor (the singleton is nowInputFilter
).Window
node which is the new scene root.master
branch!I forgot to use
--preserve-merges
when rebasing, so we lost the references to PRs #36936 and #37029 which were merged indisplay-server
.