Browse Source

Merge pull request #8258 from AvaloniaUI/fixes/osx-keyboard-input

OSX: fix call to virtual method from ctor.
pull/8269/head
Dan Walmsley 4 years ago
parent
commit
8499a55af2
  1. 6
      native/Avalonia.Native/src/OSX/PopupImpl.mm
  2. 2
      native/Avalonia.Native/src/OSX/WindowBaseImpl.h
  3. 7
      native/Avalonia.Native/src/OSX/WindowBaseImpl.mm
  4. 3
      native/Avalonia.Native/src/OSX/WindowImpl.h
  5. 3
      native/Avalonia.Native/src/OSX/WindowImpl.mm

6
native/Avalonia.Native/src/OSX/PopupImpl.mm

@ -25,17 +25,13 @@ private:
PopupImpl(IAvnWindowEvents* events, IAvnGlContext* gl) : WindowBaseImpl(events, gl) PopupImpl(IAvnWindowEvents* events, IAvnGlContext* gl) : WindowBaseImpl(events, gl)
{ {
WindowEvents = events; WindowEvents = events;
[Window setLevel:NSPopUpMenuWindowLevel];
} }
protected: protected:
virtual NSWindowStyleMask GetStyle() override virtual NSWindowStyleMask GetStyle() override
{ {
return NSWindowStyleMaskBorderless; return NSWindowStyleMaskBorderless;
} }
virtual void OnInitialiseNSWindow () override
{
[Window setLevel:NSPopUpMenuWindowLevel];
}
public: public:
virtual bool ShouldTakeFocusOnShow() override virtual bool ShouldTakeFocusOnShow() override

2
native/Avalonia.Native/src/OSX/WindowBaseImpl.h

@ -106,8 +106,6 @@ protected:
virtual NSWindowStyleMask GetStyle(); virtual NSWindowStyleMask GetStyle();
void UpdateStyle(); void UpdateStyle();
virtual void OnInitialiseNSWindow ();
private: private:
void CreateNSWindow (bool isDialog); void CreateNSWindow (bool isDialog);

7
native/Avalonia.Native/src/OSX/WindowBaseImpl.mm

@ -566,11 +566,6 @@ void WindowBaseImpl::CreateNSWindow(bool isDialog) {
} }
} }
void WindowBaseImpl::OnInitialiseNSWindow()
{
}
void WindowBaseImpl::InitialiseNSWindow() { void WindowBaseImpl::InitialiseNSWindow() {
if(Window != nullptr) { if(Window != nullptr) {
[Window setContentView:StandardContainer]; [Window setContentView:StandardContainer];
@ -593,8 +588,6 @@ void WindowBaseImpl::InitialiseNSWindow() {
[GetWindowProtocol() showWindowMenuWithAppMenu]; [GetWindowProtocol() showWindowMenuWithAppMenu];
} }
} }
OnInitialiseNSWindow();
} }
} }

3
native/Avalonia.Native/src/OSX/WindowImpl.h

@ -93,8 +93,6 @@ BEGIN_INTERFACE_MAP()
virtual bool IsDialog() override; virtual bool IsDialog() override;
virtual void OnInitialiseNSWindow() override;
virtual void BringToFront () override; virtual void BringToFront () override;
bool CanBecomeKeyWindow (); bool CanBecomeKeyWindow ();
@ -103,6 +101,7 @@ protected:
virtual NSWindowStyleMask GetStyle() override; virtual NSWindowStyleMask GetStyle() override;
private: private:
void OnInitialiseNSWindow();
NSString *_lastTitle; NSString *_lastTitle;
}; };

3
native/Avalonia.Native/src/OSX/WindowImpl.mm

@ -23,6 +23,8 @@ WindowImpl::WindowImpl(IAvnWindowEvents *events, IAvnGlContext *gl) : WindowBase
_lastTitle = @""; _lastTitle = @"";
_parent = nullptr; _parent = nullptr;
WindowEvents = events; WindowEvents = events;
OnInitialiseNSWindow();
} }
void WindowImpl::HideOrShowTrafficLights() { void WindowImpl::HideOrShowTrafficLights() {
@ -40,6 +42,7 @@ void WindowImpl::HideOrShowTrafficLights() {
void WindowImpl::OnInitialiseNSWindow(){ void WindowImpl::OnInitialiseNSWindow(){
[GetWindowProtocol() setCanBecomeKeyWindow:true]; [GetWindowProtocol() setCanBecomeKeyWindow:true];
[Window disableCursorRects]; [Window disableCursorRects];
[Window setTabbingMode:NSWindowTabbingModeDisallowed]; [Window setTabbingMode:NSWindowTabbingModeDisallowed];
[Window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; [Window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];

Loading…
Cancel
Save