mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-08-22 02:22:48 +02:00
Update to v094r42 release.
byuu says: I imagine you guys will like this WIP very much. Changelog: - ListView check boxes on Windows - ListView removal of columns on reset (changing input dropdowns) - DirectSound audio duplication on latency change - DirectSound crash on 20ms latency - Fullscreen window sizing in multi-monitor setups - Allow joypad bindings of hotkeys - Allow triggers to be mapped (Xbox 360 / XInput / Windows only) - Support joypad rumble for Game Boy Player - Video scale settings modified from {1x,2x,3x} to {2x,3x,4x} - System menu now renames to active emulation core - Added fast forward hotkey Not changing for v095: - not adding input focus settings yet - not adding shaders yet Not changing at all: - not implementing maximize
This commit is contained in:
@@ -89,13 +89,6 @@ auto pWindow::remove(sMenuBar menuBar) -> void {
|
||||
auto pWindow::remove(sStatusBar statusBar) -> void {
|
||||
}
|
||||
|
||||
/*
|
||||
//orphan() destroys and recreates widgets (to disassociate them from their parent);
|
||||
//attempting to create widget again after QApplication::quit() crashes libQtGui
|
||||
if(qtApplication) widget.p.orphan();
|
||||
}
|
||||
*/
|
||||
|
||||
auto pWindow::setBackgroundColor(Color color) -> void {
|
||||
if(color) {
|
||||
QPalette palette;
|
||||
@@ -120,15 +113,20 @@ auto pWindow::setFocused() -> void {
|
||||
}
|
||||
|
||||
auto pWindow::setFullScreen(bool fullScreen) -> void {
|
||||
if(!fullScreen) {
|
||||
setResizable(state().resizable);
|
||||
qtWindow->showNormal();
|
||||
qtWindow->adjustSize();
|
||||
} else {
|
||||
lock();
|
||||
if(fullScreen) {
|
||||
windowedGeometry = state().geometry;
|
||||
qtLayout->setSizeConstraint(QLayout::SetDefaultConstraint);
|
||||
qtContainer->setFixedSize(Desktop::size().width() - frameMargin().width(), Desktop::size().height() - frameMargin().height());
|
||||
qtWindow->showFullScreen();
|
||||
state().geometry = Monitor::geometry(Monitor::primary());
|
||||
} else {
|
||||
setResizable(state().resizable);
|
||||
qtWindow->showNormal();
|
||||
qtWindow->adjustSize();
|
||||
self().setGeometry(windowedGeometry);
|
||||
}
|
||||
unlock();
|
||||
}
|
||||
|
||||
auto pWindow::setGeometry(Geometry geometry) -> void {
|
||||
@@ -256,8 +254,10 @@ auto QtWindow::closeEvent(QCloseEvent* event) -> void {
|
||||
|
||||
auto QtWindow::moveEvent(QMoveEvent* event) -> void {
|
||||
if(!p.locked() && !p.state().fullScreen && p.qtWindow->isVisible()) {
|
||||
p.state().geometry.setX(p.state().geometry.x() + event->pos().x() - event->oldPos().x());
|
||||
p.state().geometry.setY(p.state().geometry.y() + event->pos().y() - event->oldPos().y());
|
||||
p.state().geometry.setPosition({
|
||||
p.state().geometry.x() + event->pos().x() - event->oldPos().x(),
|
||||
p.state().geometry.y() + event->pos().y() - event->oldPos().y()
|
||||
});
|
||||
}
|
||||
|
||||
if(!p.locked()) {
|
||||
@@ -287,8 +287,10 @@ auto QtWindow::keyReleaseEvent(QKeyEvent* event) -> void {
|
||||
|
||||
auto QtWindow::resizeEvent(QResizeEvent*) -> void {
|
||||
if(!p.locked() && !p.state().fullScreen && p.qtWindow->isVisible()) {
|
||||
p.state().geometry.setWidth(p.qtContainer->geometry().width());
|
||||
p.state().geometry.setHeight(p.qtContainer->geometry().height());
|
||||
p.state().geometry.setSize({
|
||||
p.qtContainer->geometry().width(),
|
||||
p.qtContainer->geometry().height()
|
||||
});
|
||||
}
|
||||
|
||||
if(auto& layout = p.state().layout) {
|
||||
|
@@ -34,6 +34,7 @@ struct pWindow : pObject {
|
||||
QMenuBar* qtMenuBar = nullptr;
|
||||
QStatusBar* qtStatusBar = nullptr;
|
||||
QWidget* qtContainer = nullptr;
|
||||
Geometry windowedGeometry{128, 128, 256, 256};
|
||||
};
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user