--Boundary-00=_k1w7EJWfhIaCA+P Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello, this is basically http://bugs.kde.org/show_bug.cgi?id=111754 for the 3.5.x branch. Or just google for things like 'kde gnome fonts dpi' to get more info about the issue, like http://process-of-elimination.net/wiki/Control_Font_DPI_in_X . In short, most fonts are designed only for 96DPI and 120DPI and look horribly with other DPIs. Since X by default computes real DPI and we just use it, while GNOME forces it to 96DPI, we get a lot of "KDE has ugly fonts", despite us doing things "properly". Go figure. The patch adds a combobox allowing to force DPI this way, but it still defaults to real DPI. > The requirements for a new feature to get in KDE3.5.x are: > > - it needs to be already in trunk - we already have lot of code that went > only into KDE3.5.x and not trunk, no need to make this even worse check > - it needs to be complete and ready - don't ask "I plan to develop this > feature for 3.5.x, will it get in?" check > - it needs to be well-tested - create a branch or a patch and have it > tested by other people, or even make independent public releases > (kde-apps.org, in some distribution packages, whatever) Well, this one is so simple that I don't think it really needs that much testing. Still, I'm posting this mainly just in case somebody sees some problem with messing with the DPI this way. > > - it needs to respect other freezes - if no new i18n messages are allowed, > no feature changing those is allowed either 3 small i18n strings > - it needs to be committed no later than a month before the next release is > tagged (right now there's no date for 3.5.3, but presumably all releases > will be announced at least a month in advance) > > - it must be mentioned in the changelog of the release (marked with "New:") > > - commit log must include "approved by ..." and don't forget the FEATURE: > tag where applicable > > - last and the most important: It must be posted to the mailing list for > the SVN module (kde-core-devel for those without) and must be approved by > the module's maintainer (TWG for those without) pending, pending, pending, pending PS: There's also still pending my other patch with caching of wallpapers (http://lists.kde.org/?l=kde-core-devel&m=114502950321763&w=2) that went without any reaction at all. Should I take that as a permanent no? The latest version of the patch is attached. -- Lubos Lunak KDE developer -------------------------------------------------------------- SUSE LINUX, s.r.o. e-mail: l.lunak@suse.cz , l.lunak@kde.org Lihovarska 1060/12 tel: +420 284 028 972 190 00 Prague 9 fax: +420 284 028 951 Czech Republic http//www.suse.cz --Boundary-00=_k1w7EJWfhIaCA+P Content-Type: text/x-diff; charset="us-ascii"; name="fonts_dpi.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="fonts_dpi.patch" --- kdebase/kcontrol/krdb/krdb.cpp.sav 2006-05-16 16:52:21.000000000 +0200 +++ kdebase/kcontrol/krdb/krdb.cpp 2006-05-19 14:21:08.000000000 +0200 @@ -34,7 +34,7 @@ #include #include #include -#include +#include #include #include #include @@ -533,6 +533,18 @@ void runRdb( uint flags ) } if(!subPixel.isEmpty()) contents += "Xft.rgba: " + subPixel + '\n'; + KConfig cfgfonts("kcmfonts", true); + cfgfonts.setGroup("General"); + if( cfgfonts.readNumEntry( "fontDPI", 0 ) != 0 ) + contents += "Xft.dpi: " + cfgfonts.readEntry( "fontDPI" ) + '\n'; + else + { + KProcIO proc; + proc << "xrdb" << "-quiet" << "-remove" << "-nocpp"; + proc.writeStdin( QCString( "Xft.dpi" ), true ); + proc.closeWhenDone(); + proc.start( KProcess::Block ); + } } if (contents.length() > 0) --- kdebase/kcontrol/fonts/fonts.cpp.sav 2006-05-19 11:27:11.000000000 +0200 +++ kdebase/kcontrol/fonts/fonts.cpp 2006-05-19 14:34:02.000000000 +0200 @@ -597,12 +597,25 @@ KFonts::KFonts(QWidget *parent, const ch cbAA = new QCheckBox( i18n( "Use a&nti-aliasing for fonts" ), this); QWhatsThis::add(cbAA, i18n("If this option is selected, KDE will smooth the edges of curves in " "fonts.")); - lay->addStretch(); QPushButton *aaSettingsButton = new QPushButton( i18n( "Configure..." ), this); connect(aaSettingsButton, SIGNAL(clicked()), SLOT(slotCfgAa())); connect(cbAA, SIGNAL(toggled(bool)), aaSettingsButton, SLOT(setEnabled(bool))); lay->addWidget( cbAA ); lay->addWidget( aaSettingsButton ); + lay->addStretch(); + + lay = new QHBoxLayout( layout, KDialog::spacingHint()); + cbDpi = new QCheckBox( i18n( "Force DPI" ), this ); + lay->addWidget( cbDpi ); + comboDpi = new QComboBox( this ); + comboDpi->insertItem( i18n( "Normal fonts (96 DPI)" )); + comboDpi->insertItem( i18n( "Huge fonts (120 DPI)" )); + comboDpi->setDisabled( true ); + connect( cbDpi, SIGNAL( toggled( bool )), comboDpi, SLOT( setEnabled( bool ))); + connect( cbDpi, SIGNAL( toggled( bool )), SLOT( changed())); + connect( comboDpi, SIGNAL( activated( int )), SLOT( changed())); + lay->addWidget( comboDpi ); + lay->addStretch(); layout->addStretch(1); @@ -632,6 +645,7 @@ void KFonts::defaults() useAA = true; cbAA->setChecked(useAA); aaSettings->defaults(); + cbDpi->setChecked(false); emit changed(true); } @@ -644,6 +658,13 @@ void KFonts::load() kdDebug(1208) << "AA:" << useAA << endl; cbAA->setChecked(useAA); + KConfig cfgfonts("kcmfonts", true); + cfgfonts.setGroup("General"); + int dpi = cfgfonts.readNumEntry( "fontDPI", 0 ); + cbDpi->setChecked( dpi == 96 || dpi == 120 ); + comboDpi->setCurrentItem( dpi == 120 ? 1 : 0 ); + dpi_original = dpi; + emit changed(false); } @@ -652,9 +673,18 @@ void KFonts::save() for ( FontUseItem* i = fontUseList.first(); i; i = fontUseList.next() ) i->writeFont(); - KGlobal::config()->sync(); + KConfig cfgfonts("kcmfonts"); + cfgfonts.setGroup("General"); + int dpi; + if( !cbDpi->isChecked()) + dpi = 0; + else + dpi = comboDpi->currentItem() == 0 ? 96 : 120; + cfgfonts.writeEntry( "fontDPI", dpi ); + cfgfonts.sync(); + // KDE-1.x support KSimpleConfig* config = new KSimpleConfig( QDir::homeDirPath() + "/.kderc" ); config->setGroup( "General" ); @@ -671,12 +701,13 @@ void KFonts::save() kapp->processEvents(); // Process font change ourselves - if(aaSettings->save( useAA ) || (useAA != useAA_original) ) { + if(aaSettings->save( useAA ) || (useAA != useAA_original) || dpi != dpi_original) { KMessageBox::information(this, i18n( - "

You have changed anti-aliasing related settings. This change will only affect newly started applications.

" - ), i18n("Anti-Aliasing Settings Changed"), "AAsettingsChanged", false); + "

Some changes such as anti-aliasing or DPI settings will only affect newly started applications.

" + ), i18n("Font Settings Changed"), "FontSettingsChanged", false); useAA_original = useAA; + dpi_original = dpi; } runRdb(KRdbExportXftSettings); --- kdebase/kcontrol/fonts/fonts.h.sav 2005-10-10 17:20:22.000000000 +0200 +++ kdebase/kcontrol/fonts/fonts.h 2006-05-19 14:29:14.000000000 +0200 @@ -108,7 +108,10 @@ protected slots: private: bool useAA, useAA_original; + int dpi_original; QCheckBox *cbAA; + QCheckBox *cbDpi; + QComboBox* comboDpi; QPtrList fontUseList; FontAASettings *aaSettings; }; --- kdebase/startkde.sav 2006-05-02 15:47:54.000000000 +0200 +++ kdebase/startkde 2006-05-19 14:21:32.000000000 +0200 @@ -68,6 +68,7 @@ kcmrandrrc [Screen0] kcmrandrrc [Screen1] kcmrandrrc [Screen2] kcmrandrrc [Screen3] +kcmfonts General fontDPI 0 EOF kstartupconfig if test $? -ne 0; then @@ -132,6 +133,16 @@ if test "$kcmrandrrc_display_applyonstar done fi +if test "$kcmfonts_general_fontdpi" -eq 120; then + xrdb -quiet -merge -nocpp </env/*.sh and /env/*.sh # (where is $KDEHOME or ~/.kde, and is where KDE is installed) # --Boundary-00=_k1w7EJWfhIaCA+P Content-Type: application/x-tgz; name="09_cache_wallpapers.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="09_cache_wallpapers.tar.gz" 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 --Boundary-00=_k1w7EJWfhIaCA+P--