2017-08-14 2 views
0

So Aufgabe ist einfach, aber nicht für mich - grüne Gnome Erweiterungen Entwicklung noob. Natürlich habe ich das gegoogelt, aber nichts gefunden, was hier hilfreich sein könnte.Gnome-Erweiterung: St.Icon Bild bei Hover ändern?

extension.js:

https://pastebin.com/TqDVp8Yz - weil 'Ihre Post meist Code'.

stylesheet.css:

.poppy-button { 
    background-size: 20px; 
    width: 20px; 
    height: 20px; 
    background-image: url("Resources/poppy.svg"); 
} 

.poppy-button:active, 
.poppy-button:focus, 
.poppy-button:checked, 
.poppy-button:hover { 
    background-image: url("Resources/poppy-active.svg"); 
} 

Antwort

2

Ich würde die CSS vermeiden und auf die "enter-event" und "leave-event" Signale verbinden, da alle Elemente StWidget auch ClutterActors sind.

myIcon = new St.Icon({ icon_name: "normal-icon-name"; }); 

myIcon.connect("enter-event", (widget) => { 
    widget.icon_name = "hover-icon-name"; 
}); 

myIcon.connect("leave-event", (widget) => { 
    widget.icon_name = "normal-icon-name"; 
}); 

Auf der anderen Seite könnte Ihre CSS arbeiten, wenn Sie „track-hover“ auf true StIcon gesetzt.

Pro-Amateur-Tipp: Fügen Sie den "gjs" -Tag zu Ihren Fragen hinzu, um mehr Hilfe für Gnome Shell-Erweiterungen zu erhalten.

+0

Verbinden Ereignis nicht funktionieren aus irgendeinem Grund, versuchte ich viele Male und es alles auf "Erweiterung wurde überhaupt nicht aktiviert" und "Ereignisse werden ignoriert". Es bleibt nichts anderes übrig, als 'track_hover' zu benutzen und was ich nicht weiß, brauche ich vor 'reaktiv'. Gibt es auch eine 'track_active' Sache? Wenn Sie meinen Code jetzt sehen möchten (es hat sich kaum geändert) - https://pastebin.com/m0adRq2w – DIES

+0

Ihre Erweiterung scheint in Ordnung zu funktionieren (von dem, was ich sagen kann), aber Sie haben kein 'icon_name' definiert für 'this.icon' in Zeile 74. Sie sollten hinzufügen, etwas wie' icon_name: "gnome-applications" 'zum Hash für diese Definition. –

+0

Darüber hinaus wird die Ausführung von 'journalctl/usr/bin/gnome-shell -f -o cat' in einem offenen Terminal Ihnen nützliche Ergebnisse liefern und Ihnen helfen, Fehler zu debuggen. –