diff options
Diffstat (limited to 'kcontrol/randr/krandrtray.cpp')
-rw-r--r-- | kcontrol/randr/krandrtray.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/kcontrol/randr/krandrtray.cpp b/kcontrol/randr/krandrtray.cpp index adfe48e5f..8b230ba74 100644 --- a/kcontrol/randr/krandrtray.cpp +++ b/kcontrol/randr/krandrtray.cpp @@ -51,7 +51,7 @@ KRandRSystemTray::KRandRSystemTray(QWidget* parent, const char *name) , m_popupUp(false) , m_help(new KHelpMenu(this, KGlobal::instance()->aboutData(), false, actionCollection())) { - setPixmap(KSystemTray::loadIcon("randr")); + setPixmap(KSystemTray::loadSizedIcon("randr", width())); setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); connect(this, SIGNAL(quitSelected()), kapp, SLOT(quit())); QToolTip::add(this, i18n("Screen resize & rotate")); @@ -88,6 +88,19 @@ KRandRSystemTray::KRandRSystemTray(QWidget* parent, const char *name) } } +void KRandRSystemTray::resizeEvent ( QResizeEvent * ) +{ + // Honor Free Desktop specifications that allow for arbitrary system tray icon sizes + QPixmap origpixmap; + QPixmap scaledpixmap; + QImage newIcon; + origpixmap = KSystemTray::loadSizedIcon( "randr", width() ); + newIcon = origpixmap; + newIcon = newIcon.smoothScale(width(), height()); + scaledpixmap = newIcon; + setPixmap(scaledpixmap); +} + void KRandRSystemTray::mousePressEvent(QMouseEvent* e) { // Popup the context menu with left-click |