diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3bb501299..feb74cea3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,6 +83,9 @@ jobs: # Create install tree cmake --install app --prefix appdir/usr + # Inject custom AppRun (linuxdeployqt won't replace if it already exists) + cp $GITHUB_WORKSPACE/app/packaging/linux/AppRun appdir + # Process AppDir /usr/local/linuxdeployqt-x86_64.AppImage \ appdir/usr/share/applications/org.olivevideoeditor.Olive.desktop \ diff --git a/app/packaging/linux/AppRun b/app/packaging/linux/AppRun new file mode 100755 index 000000000..22bb500b8 --- /dev/null +++ b/app/packaging/linux/AppRun @@ -0,0 +1,15 @@ +#!/bin/bash + +# Custom AppRun that ensures the AppImage doesn't dismount before olive-crashhandler exits + +# Run main program +$APPDIR/usr/bin/olive-editor + +# Wait arbitrary amount of time +sleep 5 + +# While olive-crashhandler exists, keep sleeping +while [[ $(ps -aux | grep olive-crashhandler | grep -v grep) ]] +do + sleep 5 +done diff --git a/app/widget/slider/sliderbase.cpp b/app/widget/slider/sliderbase.cpp index 9a174a565..25d36f10b 100644 --- a/app/widget/slider/sliderbase.cpp +++ b/app/widget/slider/sliderbase.cpp @@ -396,6 +396,8 @@ void SliderBase::RepositionLadder() drag_ladder_->move(ladder_x, ladder_y); } + + drag_ladder_->StartListeningToMouseInput(); } } diff --git a/app/widget/slider/sliderladder.cpp b/app/widget/slider/sliderladder.cpp index 47542765e..af630dedf 100644 --- a/app/widget/slider/sliderladder.cpp +++ b/app/widget/slider/sliderladder.cpp @@ -113,6 +113,11 @@ void SliderLadder::SetValue(const QString &s) } } +void SliderLadder::StartListeningToMouseInput() +{ + drag_timer_.start(); +} + void SliderLadder::mouseReleaseEvent(QMouseEvent *event) { Q_UNUSED(event) @@ -120,13 +125,6 @@ void SliderLadder::mouseReleaseEvent(QMouseEvent *event) this->close(); } -void SliderLadder::showEvent(QShowEvent *event) -{ - QWidget::showEvent(event); - - drag_timer_.start(); -} - void SliderLadder::closeEvent(QCloseEvent *event) { Q_UNUSED(event) @@ -134,6 +132,8 @@ void SliderLadder::closeEvent(QCloseEvent *event) drag_timer_.stop(); emit Released(); + + QFrame::closeEvent(event); } void SliderLadder::TimerUpdate() diff --git a/app/widget/slider/sliderladder.h b/app/widget/slider/sliderladder.h index a881cd75a..ca67c303d 100644 --- a/app/widget/slider/sliderladder.h +++ b/app/widget/slider/sliderladder.h @@ -70,11 +70,11 @@ public: void SetValue(const QString& s); + void StartListeningToMouseInput(); + protected: virtual void mouseReleaseEvent(QMouseEvent *event) override; - virtual void showEvent(QShowEvent *event) override; - virtual void closeEvent(QCloseEvent* event) override; signals: diff --git a/docker/scripts/build_olive.sh b/docker/scripts/build_olive.sh index 6f79a67ac..cb11f717a 100644 --- a/docker/scripts/build_olive.sh +++ b/docker/scripts/build_olive.sh @@ -22,7 +22,6 @@ libQt5Pdf.so,\ libQt5Qml.so,\ libQt5QmlModels.so,\ libQt5Quick.so,\ -libQt5Svg.so,\ libQt5VirtualKeyboard.so \ -bundle-non-qt-libs \ -executable=appdir/usr/bin/crashpad_handler \