提交 1302e65e 编写于 作者: J jp9000

create a sizing callback for the preview panel specifically, apparently on...

create a sizing callback for the preview panel specifically, apparently on macos the window size isn't guaranteed to be the size it's set to in the main window size handler
上级 c71eb041
......@@ -425,7 +425,7 @@ bool obs_enum_output_types(size_t idx, const char **id)
graphics_t obs_graphics(void)
{
return obs->video.graphics;
return (obs != NULL) ? obs->video.graphics : NULL;
}
media_t obs_media(void)
......
......@@ -240,6 +240,7 @@ OBSBasicBase::OBSBasicBase( wxWindow* parent, wxWindowID id, const wxString& tit
this->Connect( fileOpenMenu->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileOpenClicked ) );
this->Connect( fileSaveMenu->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileSaveClicked ) );
this->Connect( fileExitMenu->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileExitClicked ) );
previewPanel->Connect( wxEVT_SIZE, wxSizeEventHandler( OBSBasicBase::OnResizePreview ), NULL, this );
scenes->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( OBSBasicBase::scenesClicked ), NULL, this );
scenes->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::scenesRDown ), NULL, this );
this->Connect( ID_SCENE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneAddClicked ) );
......@@ -271,6 +272,7 @@ OBSBasicBase::~OBSBasicBase()
this->Disconnect( IF_FILE_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileOpenClicked ) );
this->Disconnect( IF_FILE_SAVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileSaveClicked ) );
this->Disconnect( ID_FILE_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( OBSBasicBase::fileExitClicked ) );
previewPanel->Disconnect( wxEVT_SIZE, wxSizeEventHandler( OBSBasicBase::OnResizePreview ), NULL, this );
scenes->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( OBSBasicBase::scenesClicked ), NULL, this );
scenes->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( OBSBasicBase::scenesRDown ), NULL, this );
this->Disconnect( ID_SCENE_ADD, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( OBSBasicBase::sceneAddClicked ) );
......
......@@ -394,7 +394,7 @@
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnSize">OnResizePreview</event>
<event name="OnUpdateUI"></event>
</object>
</object>
......
......@@ -139,6 +139,7 @@ class OBSBasicBase : public WindowSubclass
virtual void fileOpenClicked( wxCommandEvent& event ) { event.Skip(); }
virtual void fileSaveClicked( wxCommandEvent& event ) { event.Skip(); }
virtual void fileExitClicked( wxCommandEvent& event ) { event.Skip(); }
virtual void OnResizePreview( wxSizeEvent& event ) { event.Skip(); }
virtual void scenesClicked( wxCommandEvent& event ) { event.Skip(); }
virtual void scenesRDown( wxMouseEvent& event ) { event.Skip(); }
virtual void sceneAddClicked( wxCommandEvent& event ) { event.Skip(); }
......
......@@ -185,11 +185,20 @@ void OBSBasic::OnSize(wxSizeEvent &event)
return;
ResizePreview(ovi.base_width, ovi.base_height);
}
void OBSBasic::OnResizePreview(wxSizeEvent &event)
{
event.Skip();
wxSize newSize = previewPanel->GetMinSize();
gs_entercontext(obs_graphics());
gs_resize(newSize.x, newSize.y);
gs_leavecontext();
graphics_t graphics = obs_graphics();
if (graphics) {
gs_entercontext(graphics);
gs_resize(newSize.x, newSize.y);
gs_leavecontext();
}
}
void OBSBasic::fileNewClicked(wxCommandEvent &event)
......
......@@ -43,6 +43,7 @@ protected:
virtual void OnClose(wxCloseEvent &event);
virtual void OnMinimize(wxIconizeEvent &event);
virtual void OnSize(wxSizeEvent &event);
virtual void OnResizePreview(wxSizeEvent &event);
virtual void fileNewClicked(wxCommandEvent &event);
virtual void fileOpenClicked(wxCommandEvent &event);
virtual void fileSaveClicked(wxCommandEvent &event);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册