mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	Merge pull request #7604 from ameerj/fullscreen-render-window
main: Make separate render window fullscreen toggle on the monitor it resides in
This commit is contained in:
		@@ -2546,39 +2546,30 @@ void GMainWindow::ToggleFullscreen() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void GMainWindow::ShowFullscreen() {
 | 
					void GMainWindow::ShowFullscreen() {
 | 
				
			||||||
 | 
					    const auto show_fullscreen = [](QWidget* window) {
 | 
				
			||||||
 | 
					        if (Settings::values.fullscreen_mode.GetValue() == Settings::FullscreenMode::Exclusive) {
 | 
				
			||||||
 | 
					            window->showFullScreen();
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        window->hide();
 | 
				
			||||||
 | 
					        window->setWindowFlags(window->windowFlags() | Qt::FramelessWindowHint);
 | 
				
			||||||
 | 
					        const auto screen_geometry = QApplication::desktop()->screenGeometry(window);
 | 
				
			||||||
 | 
					        window->setGeometry(screen_geometry.x(), screen_geometry.y(), screen_geometry.width(),
 | 
				
			||||||
 | 
					                            screen_geometry.height() + 1);
 | 
				
			||||||
 | 
					        window->raise();
 | 
				
			||||||
 | 
					        window->showNormal();
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (ui->action_Single_Window_Mode->isChecked()) {
 | 
					    if (ui->action_Single_Window_Mode->isChecked()) {
 | 
				
			||||||
        UISettings::values.geometry = saveGeometry();
 | 
					        UISettings::values.geometry = saveGeometry();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ui->menubar->hide();
 | 
					        ui->menubar->hide();
 | 
				
			||||||
        statusBar()->hide();
 | 
					        statusBar()->hide();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (Settings::values.fullscreen_mode.GetValue() == Settings::FullscreenMode::Exclusive) {
 | 
					        show_fullscreen(this);
 | 
				
			||||||
            showFullScreen();
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        hide();
 | 
					 | 
				
			||||||
        setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
 | 
					 | 
				
			||||||
        const auto screen_geometry = QApplication::desktop()->screenGeometry(this);
 | 
					 | 
				
			||||||
        setGeometry(screen_geometry.x(), screen_geometry.y(), screen_geometry.width(),
 | 
					 | 
				
			||||||
                    screen_geometry.height() + 1);
 | 
					 | 
				
			||||||
        raise();
 | 
					 | 
				
			||||||
        showNormal();
 | 
					 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        UISettings::values.renderwindow_geometry = render_window->saveGeometry();
 | 
					        UISettings::values.renderwindow_geometry = render_window->saveGeometry();
 | 
				
			||||||
 | 
					        show_fullscreen(render_window);
 | 
				
			||||||
        if (Settings::values.fullscreen_mode.GetValue() == Settings::FullscreenMode::Exclusive) {
 | 
					 | 
				
			||||||
            render_window->showFullScreen();
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        render_window->hide();
 | 
					 | 
				
			||||||
        render_window->setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
 | 
					 | 
				
			||||||
        const auto screen_geometry = QApplication::desktop()->screenGeometry(this);
 | 
					 | 
				
			||||||
        render_window->setGeometry(screen_geometry.x(), screen_geometry.y(),
 | 
					 | 
				
			||||||
                                   screen_geometry.width(), screen_geometry.height() + 1);
 | 
					 | 
				
			||||||
        render_window->raise();
 | 
					 | 
				
			||||||
        render_window->showNormal();
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user