Commit Graph

48 Commits

Author SHA1 Message Date
Josh Adams
35f58f3dd4 - Fixed up various threading and menu initialization issues with Programs on Mac
- Moved boilerplate program startup code into a shared Obj-C class, MacProgramDelegate
#rb zack.neyland
#fyi brandon.schaefer,robert.seiver
#preflight 632b45dba4769ad71456b18b

[CL 22116672 by Josh Adams in ue5-main branch]
2022-09-21 13:20:37 -04:00
Devin Doucette
f5b40af3dc Fixed unsafe type casts in Mac platform code
#preflight 630d013af92416fb926b3c7a
#rb Bryan.Sefcik
#rnx

[CL 21685328 by Devin Doucette in ue5-main branch]
2022-08-29 15:03:32 -04:00
dave hunter
7dde981dc2 Fix window activation when menus close
CocoaWindows now store their Type.  This is used so that we can make sure that we can call OnWindowActivationChanged
when the menu closes.  This is needed to restore focus in the main window after the menu is triggered.  Several other
utility windows are now not treated as main windows.


[REVIEW] will.damon
#jira UE-139065
#rnx
#preflight n/a
#lockdown cristina.riveron


#ROBOMERGE-AUTHOR: dave.hunter
#ROBOMERGE-SOURCE: CL 19093114 via CL 19093772 via CL 19094565 via CL 19096071 via CL 19105329
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19146632 by dave hunter in ue5-main branch]
2022-02-25 09:42:22 -05:00
dave hunter
8f30b73b1d Menus are not main windows (Mac)
I've added a boolean AllowMainWindow to CocoaWindow which is now set to true unless the window is a menu.  This status is reported to the OS via the canBecomeMainWindow method.  It is also used by the MacApplication which will now not activate a window when a window that's being closed is not a main window (via AllowMainWindow).

#rb will.damon
#jira UE-137460
#preflight n/a

#ROBOMERGE-AUTHOR: dave.hunter
#ROBOMERGE-SOURCE: CL 18734334 in //UE5/Release-5.0/... via CL 18734343 via CL 18734356
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18734361 by dave hunter in ue5-main branch]
2022-01-26 07:59:53 -05:00
Leon Huang
cbb0f379be Generic Accessible Interfaces refactor to support multiple users and focuses.
- Moved FAccessibleEventArgs out of FGenericAccessibleMessageHandler to avoid the need to include GenericAccessibleInterfaces.h in header files where all
they really need is a forward declaration of the struct.
- Removed instances of FGenericAccessibleMessageHandler::FAccessibleEventArgs to FAccessibleEventArgs.

- Updated API for IAccessibleWidget and IAccessibleWindow that deal with getting and setting focus to also take a user index parameter. This facilitates multiple accessible users for the same application.
-Updated platform files that leverage the old IAccessibleWidget and IAccessibleWindow focus API

- Introduced FGenericAccessibleUser and FGenericAccessibleUserRegistry to GenericAccessibleInterfaces.h. An FGenericAccessibleUser is meant to be analogous to FSlateUser that keeps track of hardware users' focus. An FGenericAccessibleUserRegistry is a registry of FGenericAccessibleUsers. These interfaces are meant to insulate FGenericAccessibleMessageHandler from storing and tracking
focus etc when that should be an implementation detail by other modules.
- Refactored how FSlateCoreAccessibleWidgets set focus in the application. Accessible focus is now unified to a single code path that starts from FSlateAccessibleMessageHandler. Requests to shift accessible focus should be done by raising a Slate accessible event or through IAccessibleWidget::SetUserFocus()
- Introduced finer grain querying of focus capabilities for an IAccessibleWidget. Users can now check if an AccessibleWidget supports regular focus (keyboard/gamepad), if it supports accessible focus and if the widget can currently accept regular or accessible focus.
-Updated platforms to use the new FGenericAccessibleUser and FGenericAccessibleUserRegistry ApI to update and retrieve user focus.

#preflight: 61af2481813adc3fbb2ca7d5

[CL 18396441 by Leon Huang in ue5-main branch]
2021-12-07 12:50:45 -05:00
Leon Huang
098ff8c905 Refactoring FGenericAccessibleMessageHandler to raise accessible events that include user Id and additional arguments. This is to stabilize the accessibility API and allow more information to be passed
around for modules that require more accessibility information such as User/Controller Id.
#rnx
#rb: Patrick.Boutot
#preflight: 617b17e05aecf4000120a61a

[CL 17974834 by Leon Huang in ue5-main branch]
2021-10-29 00:22:28 -04:00
Richard Wallis
f5d99e2c68 Fix for crash in FMacApplication::FindScreenByCocoaPosition(). FindScreenByCocoaPosition/FindScreenBySlatePosition can be accessed externally from any thread. Mouse move (and other event) updates in the Engine Game Thread were causing a race condition with an external plugin Main Thread event processing. Update FMacScreen references to ESPMode::ThreadSafe and use C++ references where is makes sense - even though UE5 has now since defaulted to thread safe - still changing this just in case it goes back to non thread safe and we want to be explicit about it in the mac screen handling.
#jira UE-121896
#rb will.damon

[CL 17247660 by Richard Wallis in ue5-main branch]
2021-08-20 10:41:22 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
dave hunter
b2c7ef5a31 Remove UE4 references
This removes a variety of low-risk UE4 references.

#jira UE-112113
#rb will.damon

[CL 16023965 by dave hunter in ue5-main branch]
2021-04-15 14:09:49 -04:00
Marc Audy
bc88b73a29 Merge Release-Engine-Staging to Main @ CL# 15151250
Represents UE4/Main @ 15133763

[CL 15158774 by Marc Audy in ue5-main branch]
2021-01-21 16:22:06 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
Rolando Caloca
bbb9564388 Copying //UE4/Dev-RenderPlat-Staging@11110326 to //UE4/Main
#rb none
#rnx

[CL 11110369 by Rolando Caloca in Main branch]
2020-01-24 18:07:01 -05:00
JeanMichel Dignard
dc2d35695f Copyright fixes
#rb none
#rnx

[CL 10910710 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-08 17:11:23 -05:00
JeanMichel Dignard
70d074639f Merging //UE4/Dev-Main @ 10886849 to Dev-Tools-Staging (//UE4/Dev-Tools-Staging)
#rb none
#rnx

[CL 10906274 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-08 13:26:18 -05:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00
Chris Gagnon
346a4b05ea Copy up from Dev-Editor @10681378
#rb none

[CL 10837446 by Chris Gagnon in Dev-Tools-Staging branch]
2019-12-19 18:07:47 -05:00
jason stasik
d7e15b508e Store the current opacity in FMacWindow so we can revert back to it when necessary
#jira UE-83456
#rnx
#rb michael.trepka

#ROBOMERGE-SOURCE: CL 10125724 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v587-10111126)

[CL 10125757 by jason stasik in Main branch]
2019-11-13 10:56:29 -05:00
Lihao Huang
6262c8adab Accessibility: Introduced accessibility support for Mac. Mac VoiceOver navigation and interaction support for buttons, checkboxes, text and sliders now supported.
#jira: UE-80103
#rb: Jason.Stasik

[CL 9425621 by Lihao Huang in Dev-Editor branch]
2019-10-04 22:43:37 -04:00
Chris Gagnon
930e33cb48 Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) for 4.23 From CL 6837861
#rb none

[CL 6838042 by Chris Gagnon in Main branch]
2019-06-04 15:42:48 -04:00
Chris Gagnon
0a9f86357f Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
#rb none

[CL 6837840 by Chris Gagnon in Dev-Editor branch]
2019-06-04 15:16:30 -04:00
Arciel Rekman
7ef9626fe8 Copying //UE4/Dev-Console@6677439 to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 6677614 by Arciel Rekman in Main branch]
2019-05-30 14:48:02 -04:00
Chris Gagnon
80918bea22 Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
#rb none

[CL 5110714 by Chris Gagnon in Dev-Editor branch]
2019-02-21 13:05:30 -05:00
michael trepka
65d0cc041d Added a mutex in MacApplication to fix thread safety issue with SlateWindowsToClose array
#jira UE-70164
#rb none

#ROBOMERGE-SOURCE: CL 5012119 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5012130 by michael trepka in Main branch]
2019-02-15 17:11:20 -05:00
michael trepka
e5f1edc478 Queue Slate CloseWindow calls in MacApplication so that they're called in Tick instead of at random times when main thread is doing blocked game thread calls.
#jira UE-51711
#rb Richard.Wallis

#ROBOMERGE-SOURCE: CL 4993210 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 4993211 by michael trepka in Main branch]
2019-02-14 09:18:38 -05:00
Brandon Schaefer
e330479d73 Symbols are now hidden by default for Linux/Mac
Add support for MODULE_VTABLE for exposing the VTable (Also optionally if enabled RTTI) info for a given type for clang (Linux/Mac)

Rename command line arg bHideSymbolsByDefault to bPublicSymbolsByDefault, as well as now add support for setting this change the BuildConfiguration.xml file

Started from Github PR #3351 though a different way to go about it

#jira UE-42635
#rb Arciel.Rekman, Steve.Robb, Ben.Marsh, Michael.Trepka
#fyi Chris.Bunner, Chris.Gagnon

[CL 4923631 by Brandon Schaefer in Dev-Editor branch]
2019-02-06 14:44:31 -05:00