web-dev-qa-db-fra.com

Comment changer la taille de la police dans la liste déroulante de saisie semi-automatique

Capture d'écran:

Screenshot

J'ai probablement besoin de changer quelque chose dans le fichier theme gtkrc, mais je ne trouve pas ce qui doit être changé pour que je réduise la taille de la police d'une unité

Juste pour référence, j'ai trouvé une question similaire sur SO (bien qu'il s'agisse d'Ubuntu 11.10)): Comment changer la couleur de surbrillance dans la zone de saisie semi-automatique dans Eclipse , ce qui montre que même Eclipse utilise cela à partir du paramètre système, mais pour être plus déroutant, la police est plus petite (comme je le veux)

2
zetah

Je ne pense pas que ce soit possible avec une modification de gtkrc.

Même si vous ajoutez ce code à la fin de votre gtkrc:

style "fontchangetest" {
    font_name = "Sans 20"
}

class "GtkWidget" style "fontchangetest"

Redémarrez Geany (ou toute application GTK2 d'ailleurs) et de nombreux widgets d'interface utilisateur prendront cette propriété, mais l'éditeur de code réel et la liste de saisie semi-automatique conserveront la police désignée par Geany.

Cependant, vérifions le code source:

apt-get source geany
cd geany-0.20

La police de la zone de saisie semi-automatique est définie dans scintilla/ScintillaBase.cxx, ligne 264:

ac.lb->SetFont(vs.styles[STYLE_DEFAULT].font);

La fonction SetFont n'est utilisée que pour la zone de liste de saisie semi-automatique (vérifiée avec ' ack SetFont'), donc pas de mal à la changer.

Ouvrez scintilla/PlatGTK.cxx, accédez à la ligne 2029. Vous verrez ce code:

void ListBoxX::SetFont(Font &scint_font) {
    // Only do for Pango font as there have been crashes for GDK fonts
    if (Created() && PFont(scint_font)->pfd) {
        // Current font is Pango font
        gtk_widget_modify_font(PWidget(list), PFont(scint_font)->pfd);
    }
}

Remplacez-le par:

void ListBoxX::SetFont(Font &scint_font) {
    // Only do for Pango font as there have been crashes for GDK fonts
    if (Created() && PFont(scint_font)->pfd) {
        // Current font is Pango font
        PangoFontDescription* pf = pango_font_description_from_string("Sans 6");
        gtk_widget_modify_font(PWidget(list), pf);
    }
}

Évidemment, vous pouvez changer le "Sans 6" pour qu'il soit de la police et de la taille que vous aimez. C'est une solution très hacky, mais je ne connais pas le C/C++ donc il y a peut-être une façon plus élégante de le faire.

Vous pouvez alors:

./configure && make && Sudo make install

Pour effectuer une compilation et une installation rapides (je vous conseille sérieusement de supprimer d'abord le paquet Geany existant)

Ou la manière la plus correcte:

Sudo aptitude install build-essential devscripts ubuntu-dev-tools \
debhelper dh-make diff patch cdbs quilt gnupg fakeroot lintian \
pbuilder piuparts intltool chrpath

debuild
cd ..
Sudo dpkg -i geany_0.20-1.1ubuntu1_AMD64.deb

Pour créer un nouveau package comprenant les modifications, puis l'installer.

6
benwh