Das konkrete Problem ist, dass in LibreOffice ein Makro läuft, das irgendwann eine Benutzerinteraktion erfordert, im einfachsten Fall mit dem Befehl MsgBox einen Dialog anzeigt. Immer wenn das der Fall ist tritt das LibreOfficefenster in den Vordergrund und wenn man gerade etwas schreibt, landen die Tastendrücke dann dort. Ich habe in der Fensterverwaltung nichts Vielversprechendes dazu gefunden. Kann man das irgendwie unterbinden?
Verhindern, dass ein Fenster in den Vordergrund tritt
Anmeldungsdatum: Beiträge: 1011 |
|
||
Anmeldungsdatum: Beiträge: 17574 Wohnort: Berlin |
Was ist das denn für ein Makro (nicht, dass ich mich mit LO auskennen würde). Kommt das so oft? |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1011 |
So oft das Makro gebraucht wird. Geschätzt 50mal in der Woche. Die beiliegende Demo funktioniert wie folgt
Nach 8 Sekunden drängt sich LibreOffice in den Vordergrund und fragt, ob man die Demo nochmal laufen lassen will. |
||
Anmeldungsdatum: Beiträge: 1014 |
Leider hängt keine Datei an ... oder zum Glück ... wie auch immer ... muss es eine MessageBox sein? Wenn es nur eine Nachricht sein kann, dann probiere folgenden Code: x = Shell("notify-send 'Soll die Demo nochmal laufen?'") Hier wird mittels notify-send der interne Benachrichtigungsdienst bemüht um eine Nachricht auf dem Desktop anzuzeigen. Ansonsten müsstest du mal probieren, was passiert wenn man via Code ein Neues Formular erstellt und anzeigt, ob dann auch das Hauptfenster wieder mit nach vorne springt oder nicht. |
||
Anmeldungsdatum: Beiträge: 1014 |
|||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1011 |
Das ist mir schon einmal passiert, dass ich eine Datei nicht hochladen konnte. Auf ein Neues
Mal sehen, ob es diesmal funktioniert |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1011 |
Das wäre ein nettes zusätzliches Feature, das ich vielleicht einmal ausprobiere. Im Moment will ich nur, das nichts erscheint. Weder eine Abfrage soll mich stören, noch das LibreOfficefenster. Das Makro soll einfach ablaufen und die beiden Fenster sollen im Hintergrund bleiben, bis ich Sie per Taskswitcher selbst in den Vordergrund hole. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1011 |
Das wäre einen Versuch wert. Hier der BASIC-Code, falls ihn jemand lieber selbst ein ein Modul einfügt.
|
||
Anmeldungsdatum: Beiträge: 1181 |
notify-send ist nicht störend. Du brauchst ja auch nur einen kurzen Text ausgeben und einen Timeout von ein paar Sekunden mitgeben, dann bist du wenigstens informiert worden. Die Nachricht verschwindet dann von selber wieder und nimmt dir auch nicht den Tastaturfokus weg. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1011 |
Danke für die Erläuterung, aber das ist nicht mein Problem. Ich muss nicht informiert werden. Ich bin völlig zufrieden, wenn ich ungestört arbeiten kann. Mein Programm, also das das auf mir läuft, soll so aussehen
Derzeit bin ich aber durch LibreOffice zwangsweise interrupt driven. Das will ich abstellen. |
||
Anmeldungsdatum: Beiträge: 4100 |
Irgendwie schon lustig, da macht sich jemand etwas, um sich selbst zu stören, und beschwert sich dann darüber, gestört zu werden. ☺ |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1011 |
Die MsgBox ist eine Notwendigkeit, weil eine Benutzerinteraktion erforderlich ist. Die soll selbstverständlich erscheinen, wenn das Makro Fragen an den Benutzer hat, wie es weitergehen soll. Sie soll zusammen mit dem Hauptfenster dann erscheinen, wenn ich zu diesem Hauptfenster wechsle. Sie soll nicht erscheinen, wenn ich gerade in einem ganz anderen Programm etwas schreibe und mir dann die Tastendrücke klauen und die sonstwie interpretieren und irgendwelchen Blödsinn machen. |
||
Anmeldungsdatum: Beiträge: 533 |
Zwar kann man ein Fenster in den "immer im Hintergrund" schicken, also das Gegenteil von Rechtsklick über dem Programmsymbol in der „Fensterknöpfe“-Symbolleiste und dann „Immer im Vordergrund“: wmctrl -r Libreoffice -b add,below Doch wenn das Programm dieses Fensters, hier Libreoffice, ein neues Unterfenster aufmacht – ich nehme an „MsgBox“ macht sowas? –, dann hält sich dieses Unterfenster nicht an die Einstellungen des Hauptfensters und erscheint im Vordergrund und stiehlt den Fokus… Also nix gewonnen, fürchte ich. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1011 |
Keine Ahnung. Ich habe es gerade probiert und das MsgBox-Fenster erscheint nach wie vor und klaut die Tastatur. Der Unterschied ist, dass es jetzt nicht mehr das LibreOfficefenster mit in den Vordergrund zieht; also leider wie Du vorhergesagt hast. Zusatzfrage: Das Hauptfenster kommt jetzt hartnäckig nicht mehr in den Vordergrund. Ein Klick auf das Symbol in der Taskleiste ist wirkungslos. Mit
hat sich das gebessert. Ist das ausreichend oder muss ich da noch irgendwelche Neben-und Spätwirkungen befürchten. |
||
Anmeldungsdatum: Beiträge: 533 |
Schade, wie befürchtet. Ja, das Entfernen des below-Attributes genügt (mittels |