Olen käyttänyt viime aikoina pääasiallisena käyttöjärjestelmänä
ihan perus Ubuntua, jonka työpöydällä komeilee GTK+ pohjainen GNOME 3.x. Olen
kuitenkin lähinnä KDE Plasman käyttäjäkuntaa, joten tämä on hieman erikoinen
tilanne.
Koska kuitenkin olen nykyisin Plasman käyttäjä, kiinnitän
muihin työpöytäympäristöihin ehkä kriittisemmin huomiota ja GNOME on erityisesti
yksi niistä rakkaista ”vihollisista”, jota käyn säännöllisesti tutkimassa.
Tänään löysin erittäin kummallisen ongelman GNOME shellistä
tai ehkäpä tarkemmin GTK+ kirjastosta. Ongelman, joka ilmenee ainakin Firefox selainta
käyttäessä. En ikävä kyllä pysty tarkasti kertomaan mikä ongelman aiheuttaa
mutta pystyn kertomaan, miten se esiintyy.
Syy & Seuraus:
Firefox ei toistaiseksi vielä tue kunnolla PWA -tilaa, jonka
avulla pystyisi avaamaan verkkosivuja tilaan, jossa ei sivun sisällön lisäksi
ole näkyvillä mitään selaimen käyttöliittymiä, kuten painikkeita, eikä
osoiteriviä. Lisäosien parissa työskentelevät käyttäjät ovat kuitenkin
kehittäneet tähän jonkinasteisen paikkauksen, jolla sisällön saa avattua tähän
käyttöliittymättömään ikkunaan myös Firefoxilla.
Muun muassa Popup Window,
on tämänkaltainen lisäosa. Se avaa verkkosivun erilliseen Firefox ikkunaan,
ikään kuin PWA -tilaan.
GNOME kuitenkin jostain käsittämättömästä syystä, kohtelee
näitä ikkunoita erikoisella tavalla, se jättää kyseiset ikkunat aina muiden
sovellusten ja ikkunoiden päälle. GNOMEn ikkunavalikon kautta, tätä
ominaisuutta ei voi estää, ikkunat vain yksinkertaisesti ovat ”aina päällimmäisenä”.
Ensiksi toki epäilin, että Firefoxissa on tapahtunut muutos,
jossa tämänlaiset ponnahdusikkunat käsitellään ”Stay on top” muodossa, koska normaalisti
niitä käytetään verkkosivujen toimintojen esittämiseen, lomakkeiden ulkoiseen
syöttämiseen ja muuhun siten tärkeisiin toimintoihin. Huom.! Tätä toimintoa ei
pidä sekoittaa 90-luvun pop-up mainoksiin.
Kun sitten kuitenkin aloin epäilemään Firefoxin osallisuutta,
loin muutaman virtuaalikoneen, Windows 10 sekä KDE Neonin, Linux Mint Cinnamonin
ja vielä täysin puhtaan (asetuksiltaan oletuksilla) Ubuntun.
Asensin käyttämäni Firefox Nightlyn sekä Popup Window
lisäosan jokaiseen virtuaalikoneeseen ja ajoin testit.
Avasin jokaiseen virtuaalikoneeseen Firefoxin ja Googlen Gmailin,
poppautin Gmailin omaksi ”PWA-ikkunakseen” ja avasin myös muutamia muita
sovelluksia. Olin äimänkäkenä lyöty, kun lopulta huomasin, että vain Ubuntussa
(jossa GNOME) Firefoxin popup ikkunat käyttäytyivät ongelmakuvaukseni tavoin.
Linux Mint Cinnamonissa, joka on GNOMEn tavoin GTK+ -pohjainen,
popupit käyttäytyvät lähes samalla tavalla mutta Cinnamonissa vain Firefox
selain jäi ikkunoiden alle. Muut sovellukset, kuten vaikkapa tiedostohallinnan
sai näiden ikkunoiden päälle.
KDE Plasmassa (Neon) sekä Windowsissa, popup ikkunat eivät
jääneet muiden päälle. KDE plasma työpöytä perustuu Kwin ikkunamanageriin, joka
huolehtii ikkunoiden hallinnasta, se muun muassa käsittelee kyseisiä popup
ikkunoita normaaleina sovellusikkunoina tarkoittaen sitä, että GTK+
pohjaisista järjestelmistä poiketen, popupit saavat myös pienennä sekä suurenna
painikkeet, joten ne voi asettaa paremmin paikalleen.
Kyse on siis GNOMEsta tai ehkäpä kuitenkin tarkalleen GTK+ alustasta
ja sen tavasta hallita sovelluksen omia ikkunoita (child window) mutta pahin
ongelma näyttää olevan kuitenkin GNOME shellissä, yllä mainitun käytöksen
vuoksi.
Voi olla, että shellin asetuksia voi tämän osalta jostain
säätää mutta en näitä lippuja ole vielä löytänyt, vaikka niitä dconfilla olen
kovasti koittanut etsiä.
Mikäli tiedät kuinka tämä pakotettu ”stay-on-top” saadaan
pois päältä, kerro ihmeessä alla olevaan kommenttiosioon.
Versiot:
Gnome Shell: 3.36.4 + GTK+ 3.2.4.20
Cinnamon: 4.6.7 + GTK+ 3.24.20
KDE Plasma: 5.19.5
Windows 10: 19041.508
Mozilla Firefox: 82.0a1 (2020-09-10)