diff --git a/applets/pager/package/contents/config/main.xml b/applets/pager/package/contents/config/main.xml
--- a/applets/pager/package/contents/config/main.xml
+++ b/applets/pager/package/contents/config/main.xml
@@ -23,6 +23,10 @@
false
+
+
+ false
+
diff --git a/applets/pager/package/contents/ui/configGeneral.qml b/applets/pager/package/contents/ui/configGeneral.qml
--- a/applets/pager/package/contents/ui/configGeneral.qml
+++ b/applets/pager/package/contents/ui/configGeneral.qml
@@ -40,6 +40,7 @@
property int cfg_currentDesktopSelected
property alias cfg_pagerLayout: pagerLayout.currentIndex
property alias cfg_showOnlyCurrentScreen: showOnlyCurrentScreen.checked
+ property alias cfg_wrapPage: wrapPage.checked
onCfg_displayedTextChanged: {
switch (cfg_displayedText) {
@@ -132,6 +133,16 @@
text: i18n("Only the current screen")
}
+ Item {
+ width: 2
+ height: 2
+ } //spacer
+
+ QtControls.CheckBox {
+ id: wrapPage
+ text: i18n("Page navigation wraps around")
+ }
+
QtControls.Label {
text: i18n("Layout:")
Layouts.Layout.alignment: Qt.AlignVCenter|Qt.AlignRight
diff --git a/applets/pager/package/contents/ui/main.qml b/applets/pager/package/contents/ui/main.qml
--- a/applets/pager/package/contents/ui/main.qml
+++ b/applets/pager/package/contents/ui/main.qml
@@ -125,9 +125,15 @@
while (increment != 0) {
if (increment < 0) {
- pagerModel.changePage((pagerModel.currentPage + 1) % repeater.count);
+ var nextPage = plasmoid.configuration.wrapPage?
+ (pagerModel.currentPage + 1) % repeater.count :
+ Math.max(pagerModel.currentPage + 1, repeater.count);
+ pagerModel.changePage(nextPage);
} else {
- pagerModel.changePage((repeater.count + pagerModel.currentPage - 1) % repeater.count);
+ var previousPage = plasmoid.configuration.wrapPage ?
+ (repeater.count + pagerModel.currentPage - 1) % repeater.count :
+ Math.min(pagerModel.currentPage - 1, 0);
+ pagerModel.changePage(previousPage);
}
increment += (increment < 0) ? 1 : -1;