Bug 169962 - Makros zur Umschaltung der Rechenleiste (Formula Bar) funktionieren unter Linux Mint / Ubuntu Jammy mit VCL GTK3 nicht (weder API noch Dispatcher).
Summary: Makros zur Umschaltung der Rechenleiste (Formula Bar) funktionieren unter Lin...
Status: UNCONFIRMED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
25.2.7.2 release
Hardware: Other Linux (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-12-13 14:51 UTC by Karsten
Modified: 2025-12-14 13:23 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Karsten 2025-12-13 14:51:39 UTC
Description:
Unter der unten angegebenen LibreOffice-Version auf Linux Mint 21 (basierend auf Ubuntu 22.04 Jammy) schlagen alle bekannten Makro-Methoden zum programmgesteuerten Ein- und Ausblenden der Rechenleiste (Input Line) fehl. Die Makros laufen ohne Fehler durch, haben jedoch keinen visuellen Effekt auf die Benutzeroberfläche.
Environment (gemäß "Über LibreOffice"):

    Version: 24.2.7.2 (X86_64) / LibreOffice Community
    Build ID: Ubuntu package version: 4:24.2.7-0ubuntu0.24.04.4 (Hinweis: Der Benutzer meldete, dass das System auf Ubuntu 22.04 LTS basiert, die Versionsnummer deutet auf 24.04 hin, was der Benutzer klären müsste, aber das Problem bleibt bestehen).
    OS: Linux 6.8 (Linux Mint / Ubuntu)
    UI Render: Standard
    VCL: gtk3 (Dies scheint der Kern des Problems zu sein) 

Steps to Reproduce:
  Öffnen Sie LibreOffice Calc.
    Öffnen Sie den Makro-Editor (Extras > Makros > Makros bearbeiten...).
    Fügen Sie einen der folgenden Codeschnipsel in ein Modul ein.

Makro-Codes, die getestet wurden und fehlschlagen:

    API-Methode mit IsElementVisible und SetElementVisible (korrekte Syntax):
    basic

    Sub ToggleFormulaBar_API
        Dim LayoutManager As Object
        Dim BarID As String
        LayoutManager = ThisComponent.CurrentController.Frame.LayoutManager
        BarID = "private:resource/toolbar/formula-bar"
        LayoutManager.SetElementVisible(BarID, Not LayoutManager.IsElementVisible(BarID))
    End Sub



Dispatcher-Methode mit Umschalt-Befehl:
basic

Sub ToggleFormulaBar_Dispatcher
    Dim Doc As Object, Dispatcher As Object
    Doc = ThisComponent.CurrentController.Frame
    Dispatcher = CreateUnoService("com.sun.star.frame.DispatchHelper")
    Dispatcher.executeDispatch(Doc, ".uno:FormulaBarVisible", "", 0, Array())
End Sub


Dispatcher-Methode mit explizitem Value-Argument (aus Makro-Aufzeichnung):
basic

Sub ToggleFormulaBar_Recorded
    Dim document as object, dispatcher as object
    document = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    Dim args(0) as new com.sun.star.beans.PropertyValue
    args(0).Name = "InputLineVisible"
    args(0).Value = true ' oder false
    dispatcher.executeDispatch(document, ".uno:InputLineVisible", "", 0, args())
End Sub

Actual Results:
Die Rechenleiste sollte bei Ausführung des Makros ihren Sichtbarkeitsstatus umschalten (sichtbar <-> unsichtbar). 

Expected Results:
Die Makros werden erfolgreich ausgeführt, aber die Rechenleiste wird nicht ein- oder ausgeblendet. Es findet keine Änderung an der GUI statt. Dies deutet auf ein mögliches Problem mit der VCL GTK3-Integration in dieser spezifischen Paketversion hin. 


Reproducible: Always


User Profile Reset: Yes

Additional Info:
No other information
Comment 1 Werner Tietz 2025-12-13 15:45:35 UTC
Hast du ein Problem mit dem Tastaturkürzel: »[ALT A] c«?
Comment 2 Werner Tietz 2025-12-13 16:08:22 UTC
works here

```
global inlinevisible as boolean

sub toggle_input

dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "InputLineVisible"
args1(0).Value = inlinevisible

dispatcher.executeDispatch(document, ".uno:InputLineVisible", "", 0, args1())
inlinevisible = not inlinevisible

end sub