mirror of
https://github.com/citra-emu/citra.git
synced 2024-11-24 18:51:05 +00:00
Take popout window into consideration
This commit is contained in:
parent
fe2563ed97
commit
cc850a2eae
@ -261,6 +261,7 @@ void GMainWindow::InitializeWidgets() {
|
|||||||
if (emulation_running) {
|
if (emulation_running) {
|
||||||
render_window->show();
|
render_window->show();
|
||||||
render_window->setFocus();
|
render_window->setFocus();
|
||||||
|
ChangeScreenSize();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1662,7 +1663,7 @@ void GMainWindow::ToggleWindowMode() {
|
|||||||
render_window->setFocus();
|
render_window->setFocus();
|
||||||
game_list->hide();
|
game_list->hide();
|
||||||
}
|
}
|
||||||
|
ChangeScreenSize();
|
||||||
} else {
|
} else {
|
||||||
// Render in a separate window...
|
// Render in a separate window...
|
||||||
ui->horizontalLayout->removeWidget(render_window);
|
ui->horizontalLayout->removeWidget(render_window);
|
||||||
@ -1677,16 +1678,28 @@ void GMainWindow::ToggleWindowMode() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::ResizeScreen(const int scale) {
|
void GMainWindow::ResizeScreen(const int scale) {
|
||||||
|
if(!scale || !emulation_running) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
const auto size = Layout::GetMinimumSizeFromLayout(Settings::values.layout_option,
|
const auto size = Layout::GetMinimumSizeFromLayout(Settings::values.layout_option,
|
||||||
Settings::values.upright_screen);
|
Settings::values.upright_screen);
|
||||||
|
|
||||||
auto_resized = true;
|
auto_resized = true;
|
||||||
|
|
||||||
render_window->setMinimumSize(scale * size.first, scale * size.second);
|
if(ui->action_Single_Window_Mode->isChecked()) {
|
||||||
|
render_window->setMinimumSize(scale * size.first, scale * size.second);
|
||||||
|
render_window->updateGeometry();
|
||||||
|
ui->centralwidget->resize(scale * size.first, scale * size.second);
|
||||||
|
ui->centralwidget->updateGeometry();
|
||||||
|
updateGeometry();
|
||||||
|
resize(minimumSizeHint());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
render_window->resize(scale * size.first, scale * size.second);
|
||||||
|
}
|
||||||
render_window->UpdateCurrentFramebufferLayout(scale * size.first, scale * size.second);
|
render_window->UpdateCurrentFramebufferLayout(scale * size.first, scale * size.second);
|
||||||
ui->centralwidget->resize(scale * size.first, scale * size.second);
|
|
||||||
resize(sizeHint());
|
|
||||||
render_window->setMinimumSize(size.first, size.second);
|
render_window->setMinimumSize(size.first, size.second);
|
||||||
|
UISettings::values.renderwindow_geometry = render_window->saveGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::ChangeScreenSize() {
|
void GMainWindow::ChangeScreenSize() {
|
||||||
@ -1722,6 +1735,7 @@ void GMainWindow::ChangeScreenLayout() {
|
|||||||
|
|
||||||
Settings::values.layout_option = new_layout;
|
Settings::values.layout_option = new_layout;
|
||||||
Settings::Apply();
|
Settings::Apply();
|
||||||
|
ChangeScreenSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::ToggleScreenLayout() {
|
void GMainWindow::ToggleScreenLayout() {
|
||||||
@ -1745,6 +1759,7 @@ void GMainWindow::ToggleScreenLayout() {
|
|||||||
Settings::values.layout_option = new_layout;
|
Settings::values.layout_option = new_layout;
|
||||||
SyncMenuUISettings();
|
SyncMenuUISettings();
|
||||||
Settings::Apply();
|
Settings::Apply();
|
||||||
|
ChangeScreenSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::OnSwapScreens() {
|
void GMainWindow::OnSwapScreens() {
|
||||||
@ -2170,7 +2185,7 @@ void GMainWindow::mouseReleaseEvent([[maybe_unused]] QMouseEvent* event) {
|
|||||||
|
|
||||||
void GMainWindow::resizeEvent(QResizeEvent* event) {
|
void GMainWindow::resizeEvent(QResizeEvent* event) {
|
||||||
// This resize event was not triggered by the user
|
// This resize event was not triggered by the user
|
||||||
if (auto_resized) {
|
if (auto_resized || !emulation_running || !ui->action_Single_Window_Mode->isChecked()) {
|
||||||
auto_resized = false;
|
auto_resized = false;
|
||||||
} else {
|
} else {
|
||||||
UncheckWindowSize();
|
UncheckWindowSize();
|
||||||
@ -2429,6 +2444,8 @@ void GMainWindow::UncheckWindowSize() {
|
|||||||
ui->action_Screen_Size_2x->setChecked(false);
|
ui->action_Screen_Size_2x->setChecked(false);
|
||||||
ui->action_Screen_Size_3x->setChecked(false);
|
ui->action_Screen_Size_3x->setChecked(false);
|
||||||
ui->action_Screen_Size_4x->setChecked(false);
|
ui->action_Screen_Size_4x->setChecked(false);
|
||||||
|
|
||||||
|
UISettings::values.fixed_screen_size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::UpdateUISettings() {
|
void GMainWindow::UpdateUISettings() {
|
||||||
|
Loading…
Reference in New Issue
Block a user