diff --git a/src/kpowersave.cpp b/src/kpowersave.cpp index 18b50f2..9449663 100644 --- a/src/kpowersave.cpp +++ b/src/kpowersave.cpp @@ -236,6 +236,13 @@ void kpowersave::initMenu() { kdDebugFuncOut(trace); } +void kpowersave::resizeEvent ( QResizeEvent * ) +{ + // Honor Free Desktop specifications that allow for arbitrary system tray icon sizes + loadIcon(); + drawIcon(); +} + /*! * This funtion load and manipulate the icons for the kickerapplet-section. * The redraw interval depends on \ref icon_set_colored and \ref BAT_icon_BG_intervall. @@ -354,10 +361,10 @@ void kpowersave::loadIcon(){ if(pixmap_name_tmp != pixmap_name) { pixmap_name = pixmap_name_tmp; if (pixmap_name.startsWith("ERROR")) { - pixmap = SmallIcon("laptoppower", 22, KIcon::DisabledState); + pixmap = SmallIcon("laptoppower", width(), KIcon::DisabledState); } else - pixmap = SmallIcon(pixmap_name, 22); + pixmap = SmallIcon(pixmap_name, width()); } kdDebugFuncOut(trace); @@ -427,6 +434,7 @@ void kpowersave::drawIcon(){ } } quit: + image = image.smoothScale(width(), height()); fullIcon.convertFromImage(image); setPixmap(fullIcon); diff --git a/src/kpowersave.h b/src/kpowersave.h index bd588cd..e739344 100644 --- a/src/kpowersave.h +++ b/src/kpowersave.h @@ -481,6 +481,9 @@ k_dcop: QStringList listSchemes(); //! dcop function to return the supported CPU QStringList listCPUFreqPolicies(); + +protected: + void resizeEvent ( QResizeEvent * ); }; #endif // _KPOWERSAVE_H_