Cosa controlla le dimensioni e le posizioni della finestra salvate / predefinite in OS X?


4

Sto eseguendo sia Chrome e Chromium sul mio Mac. Non ho mai notato un problema con Chrome ma con Chromium sembra sempre iniziare in una dimensione e posizione molto strana e troppo piccola sullo schermo.

So che ce ne sono alcuni buone utilità per la gestione delle finestre , ma cosa controlla la dimensione / posizione di default di Windows in OS X?

image


FYI - Chrome ha commutazioni della riga di comando puoi usare per impostare le dimensioni e la posizione della finestra: --window-position = x, y e --window-size = w, h
cwd

Risposte:


3

Dipende dal programma. La maggior parte di queste impostazioni della finestra "principale" (o, più precisamente, le impostazioni della finestra "documento") sono in ordine di sorta. Credo che utilizzino ciò che Apple fornisce nei propri framework di gestione delle finestre, come ad esempio Preview.app.

Per la maggior parte delle app, solo il NSWindow le proprietà delle finestre ausiliarie sono memorizzate nel programma Elenchi di proprietà , mentre le impostazioni della finestra del documento possono essere memorizzate da qualche altra parte. Questo è ciò che fa Chrome, dal momento che è multipiattaforma e utilizza un formato di preferenze condivise su più computer.


Per esempio, com.macromates.textmate.plist ha la seguente voce:

NSWindow Frame New File Sheet
568 932 386 209 0 0 1920 1178

Puoi cambiarli e credo che utilizzino le coordinate rettangolari e le origini per la rappresentazione, i primi quattro valori sono i NSRect:

  • coordinata X in alto a sinistra
  • coordinata Y in alto a sinistra
  • larghezza
  • altezza

TextMate fa memorizzare la posizione della finestra principale sotto OakDocumentWindowFrame, ma come ho già detto, questo non è il caso per tutte le applicazioni basate su documenti.


Google Chrome utilizza il proprio modo di gestire questo, in particolare in un file JSON. Ha un window_placement impostazione, e puoi trovarlo in:

~/Library/Application Support/Google/Chrome/Default/Preferences

Ecco come appare:

"window_placement": {
         "always_on_top": false,
         "bottom": 1046,
         "left": 0,
         "maximized": false,
         "right": 1680,
         "top": 22,
         "work_area_bottom": 1046,
         "work_area_left": 0,
         "work_area_right": 1680,
         "work_area_top": 22
      },

Guardando ~/Library/Preferences/com.google.Chrome.plist e non vedo troppe informazioni utili. Post aggiornato con screenshot ...
cwd

@ cwd Leggi di nuovo questa risposta, menziona solo finestre ausiliarie , come gli ispettori.
Daniel Beck

@ DanielBeck Così ho ragione che la maggior parte delle applicazioni lo farà non utilizzare le liste delle preferenze per memorizzare le proprietà della finestra del documento, ma ricorrere alle proprie impostazioni (come fa Chrome)? Impossibile trovare un riferimento per questo.
slhck

1
@slhck Hai quasi ragione, da quello che posso dire. Ecco cosa penso: gli ispettori (come la finestra di dialogo dei caratteri, le finestre di dialogo di apertura / salvataggio, ecc.) Sono gestiti dai framework di sistema e aggiungono semplicemente le loro preferenze alle .plist. Gli autori delle applicazioni sono liberi di archiviarli da qualche altra parte (come la piattaforma multipiattaforma Chrome con il file JSON che hai trovato), o anche nel .plist, ad es. Safari (grep per NSWindow Frame BrowserWindowFrame ) o Terminal (grep per NSWindow Frame $ProfileName, per esempio. NSWindow Frame TTWindow Basic ) fare. I programmi senza valori predefiniti (ad esempio Anteprima) possono semplicemente saltare questo.
Daniel Beck

1
AFAIK, nessuna dimensione / posizione della finestra utilizzata per essere salvata come impostazione predefinita. Lo sviluppatore deve aggiungere un unico autosaveName valore per il NSWindow (o NSPanel ) nel file di pennini o in modo programmatico in fase di runtime. Questo valore stringa è ciò che viene utilizzato dopo il NSWindow Frame parte: mi piace BrowserWindowFrame. Se non è impostato nessun autosaveName, nessuna informazione viene salvata per quella finestra. Non è esattamente sicuro di come vengono gestite le finestre basate su NSDocument WRT autosaveName. Si noti che la nuova funzionalità di ripristino di Lion potrebbe consentire il salvataggio di Windows anche se non ci sono nomi di autosalvataggio impostati per le finestre in questione (non sono sicuro).
NSGod
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.