emfio/source/reader/emfreader.cxx | 2 sd/qa/uitest/impress_tests2/tdf130586.py | 54 +++++++++++ sd/source/ui/slidesorter/controller/SlsSelectionObserver.cxx | 1 3 files changed, 56 insertions(+), 1 deletion(-)
New commits: commit 3dfbc9df7d18ad9a90564d5bc3481121514a1b0e Author: Caolán McNamara <[email protected]> AuthorDate: Sun Feb 22 17:56:39 2026 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Sun Feb 22 20:42:22 2026 +0100 ofz: Use-of-uninitialized-value there's a switch off this value before the mpInputStream->good() guard Change-Id: I8ac7ce45336d9edbfae2308af39632c9322b2526 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199992 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/emfio/source/reader/emfreader.cxx b/emfio/source/reader/emfreader.cxx index cbcbd9efb508..d382d9b8138a 100644 --- a/emfio/source/reader/emfreader.cxx +++ b/emfio/source/reader/emfreader.cxx @@ -1883,7 +1883,7 @@ namespace emfio case EMR_SMALLTEXTOUT : { sal_Int32 ptlReferenceX, ptlReferenceY; - sal_uInt32 nLen, nOptions, nGfxMode; + sal_uInt32 nLen, nOptions(0), nGfxMode; float fXScale, fYScale; mpInputStream->ReadInt32( ptlReferenceX ).ReadInt32( ptlReferenceY ) commit c963b8a01715f3b190d9ad38499b76fe48c4e3b1 Author: Caolán McNamara <[email protected]> AuthorDate: Sun Feb 22 17:38:20 2026 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Sun Feb 22 20:42:15 2026 +0100 Resolves: tdf#130586 reset mbPageEventOccurred in observation start mbPageEventOccurred was never reset between observations, so after a undo/redo involving page insertion/deletion, another undo/redo operation (e.g. layout changes) would assume it needed to do a fresh page selection. seen as a regression at: commit 13dfaa3c3704a5a963f9e1e5d45796472f43c80e Date: Fri Dec 13 12:47:54 2019 +0000 Resolves: tdf#129346 if nothing currently selected, select something in the slidesorter but really a problem since: commit a05fe3a8cfd4ec420eb6969d98f64e4308f14230 Date: Tue Nov 21 12:38:21 2017 +0000 Resolves: tdf#100950 only update page selection if pages changed Change-Id: I86169faa9f0b2b2972dfe7065b29f94f6c6bcb85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199990 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/sd/qa/uitest/impress_tests2/tdf130586.py b/sd/qa/uitest/impress_tests2/tdf130586.py new file mode 100644 index 000000000000..0a8bf5e89205 --- /dev/null +++ b/sd/qa/uitest/impress_tests2/tdf130586.py @@ -0,0 +1,54 @@ +# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +from uitest.framework import UITestCase +from libreoffice.uno.propertyvalue import mkPropertyValues + +class tdf130586(UITestCase): + + def test_run(self): + with self.ui_test.create_doc_in_start_center("impress") as document: + xTemplateDlg = self.xUITest.getTopFocusWindow() + xCancelBtn = xTemplateDlg.getChild("close") + self.ui_test.close_dialog_through_button(xCancelBtn) + + xToolkit = self.xContext.ServiceManager.createInstance('com.sun.star.awt.Toolkit') + + self.assertEqual(document.CurrentController.getCurrentPage().Number, 1) + + # Insert a new slide + self.xUITest.executeCommand(".uno:InsertPage") + xToolkit.processEventsToIdle() + self.assertEqual(document.CurrentController.getCurrentPage().Number, 2) + + # Change layout on slide 2 + self.xUITest.executeCommand(".uno:AssignLayout?WhatLayout:long=1") + xToolkit.processEventsToIdle() + self.assertEqual(document.CurrentController.getCurrentPage().Number, 2) + + # Undo x2 (undo layout change, then undo insert slide) + self.xUITest.executeCommand(".uno:Undo") + xToolkit.processEventsToIdle() + self.assertEqual(document.CurrentController.getCurrentPage().Number, 2) + + self.xUITest.executeCommand(".uno:Undo") + xToolkit.processEventsToIdle() + self.assertEqual(document.CurrentController.getCurrentPage().Number, 1) + + # Redo x2 (redo insert slide, then redo layout change) + self.xUITest.executeCommand(".uno:Redo") + xToolkit.processEventsToIdle() + self.assertEqual(document.CurrentController.getCurrentPage().Number, 2) + + self.xUITest.executeCommand(".uno:Redo") + xToolkit.processEventsToIdle() + # Without the fix, this would fail with AssertionError: 2 != 1 + self.assertEqual(document.CurrentController.getCurrentPage().Number, 2) + +# vim: set shiftwidth=4 softtabstop=4 expandtab: diff --git a/sd/source/ui/slidesorter/controller/SlsSelectionObserver.cxx b/sd/source/ui/slidesorter/controller/SlsSelectionObserver.cxx index ba835c23b003..e5bc5ada632f 100644 --- a/sd/source/ui/slidesorter/controller/SlsSelectionObserver.cxx +++ b/sd/source/ui/slidesorter/controller/SlsSelectionObserver.cxx @@ -90,6 +90,7 @@ void SelectionObserver::StartObservation() OSL_ASSERT(!mbIsObservationActive); maInsertedPages.clear(); mbIsObservationActive = true; + mbPageEventOccurred = false; } void SelectionObserver::AbortObservation()
