Как изменить размер шрифта в выпадающем списке автозаполнения

Скриншот:

Скриншот

Мне наверное нужно что то менять в теме gtkrc файл, но я не могу найти то, что нужно изменить, чтобы уменьшить размер шрифта на одну единицу

Просто для справки, я нашел похожий вопрос по SO (хотя это касается Ubuntu 11.10): Как изменить цвет подсветки в окне автозаполнения в Eclipse, что показывает, что даже Eclipse использует это из системных настроек, но для более запутанного шрифта есть меньше (как я хочу, чтобы это было)

1 ответ

Решение

Я не верю, что это возможно с модификацией gtkrc.

Даже если вы добавите этот код в конец вашего gtkrc:

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

class "GtkWidget" style "fontchangetest"

Перезапустите Geany (или любое другое приложение GTK2), и многие виджеты пользовательского интерфейса получат это свойство, однако редактор фактического кода и список автозаполнения сохранят шрифт, указанный Geany.

Однако давайте проверим исходный код:

apt-get source geany
cd geany-0.20

Шрифт для поля автозаполнения определяется в scintilla/ScintillaBase.cxx, строка 264:

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

SetFont Функция используется только для списка автозаполнения (проверяется с помощью ' ack SetFont'), поэтому изменение его без вреда.

Откройте файл scintilla/PlatGTK.cxx, перейдите к строке 2029. Вы увидите этот код:

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);
    }
}

Заменить его на:

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);
    }
}

Очевидно, вы можете изменить "Sans 6" на любой шрифт и размер. Это очень хакерское решение, однако я не знаю C/C++, так что, возможно, есть более элегантный способ сделать это.

Тогда вы можете либо:

./configure && make && sudo make install

Быстрая компиляция и установка (хотя бы советую сначала удалить существующий пакет geany)

Или более правильный путь:

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

Чтобы создать новый пакет, включая изменения, а затем установить его.

Другие вопросы по тегам