diff options
Diffstat (limited to 'opensuse/tdebase/3_5_BRANCH.diff')
-rw-r--r-- | opensuse/tdebase/3_5_BRANCH.diff | 1176 |
1 files changed, 1176 insertions, 0 deletions
diff --git a/opensuse/tdebase/3_5_BRANCH.diff b/opensuse/tdebase/3_5_BRANCH.diff new file mode 100644 index 000000000..bff4be17d --- /dev/null +++ b/opensuse/tdebase/3_5_BRANCH.diff @@ -0,0 +1,1176 @@ +package: kdebase-3.5.10.tar.bz2 +kdemod: kdebase +Index: BRANCH_STATUS +=================================================================== +--- /dev/null ++++ BRANCH_STATUS +@@ -0,0 +1,2 @@ ++current HEAD: 865247 ++svn di between //tags/KDE/3.5.10/kdebase and //branches/KDE/3.5/kdebase +Index: kcontrol/background/bgrender.cpp +=================================================================== +--- kcontrol/background/bgrender.cpp.orig ++++ kcontrol/background/bgrender.cpp +@@ -1163,9 +1163,8 @@ void KVirtualBGRenderer::desktopResized( + m_pPixmap = new QPixmap(m_size); + m_pPixmap->fill(Qt::black); + } +- +- for (unsigned i=0; i<m_numRenderers; ++i) +- m_renderer[i]->desktopResized(); ++ ++ initRenderers(); + } + + +Index: kcontrol/info/opengl.cpp +=================================================================== +--- kcontrol/info/opengl.cpp.orig ++++ kcontrol/info/opengl.cpp +@@ -608,7 +608,6 @@ static QListViewItem *get_gl_info(Displa + } + else { + kdDebug() << "Error: glXMakeCurrent failed\n"; +- glXDestroyContext(dpy, ctx); + } + + glXDestroyContext(dpy, ctx); +Index: kicker/taskbar/taskbar.cpp +=================================================================== +--- kicker/taskbar/taskbar.cpp.orig ++++ kicker/taskbar/taskbar.cpp +@@ -61,8 +61,6 @@ TaskBar::TaskBar( QWidget *parent, const + m_textShadowEngine(0), + m_ignoreUpdates(false) + { +- setFrameStyle( NoFrame ); +- + arrowType = LeftArrow; + blocklayout = true; + +@@ -81,6 +79,8 @@ TaskBar::TaskBar( QWidget *parent, const + connect(&m_relayoutTimer, SIGNAL(timeout()), + this, SLOT(reLayout())); + ++ connect(this, SIGNAL(contentsMoving(int, int)), SLOT(setBackground())); ++ + // connect manager + connect(TaskManager::the(), SIGNAL(taskAdded(Task::Ptr)), + this, SLOT(add(Task::Ptr))); +@@ -647,7 +647,7 @@ void TaskBar::reLayoutEventually() + + if (!blocklayout && !m_ignoreUpdates) + { +- m_relayoutTimer.start(100, true); ++ m_relayoutTimer.start(25, true); + } + } + +@@ -814,24 +814,16 @@ void TaskBar::reLayout() + QTimer::singleShot(100, this, SLOT(publishIconGeometry())); + } + +-void TaskBar::viewportResizeEvent( QResizeEvent* e ) +-{ +- Panner::viewportResizeEvent(e); +- setViewportBackground(); +-} +- + void TaskBar::setViewportBackground() + { + const QPixmap *bg = parentWidget()->backgroundPixmap(); + +- viewport()->unsetPalette(); +- + if (bg) + { + QPixmap pm(parentWidget()->size()); + pm.fill(parentWidget(), pos() + viewport()->pos()); + viewport()->setPaletteBackgroundPixmap(pm); +- viewport()->setBackgroundOrigin( WidgetOrigin ); ++ viewport()->setBackgroundOrigin(WidgetOrigin); + } + else + viewport()->setPaletteBackgroundColor(paletteBackgroundColor()); +Index: kicker/taskbar/taskbar.h +=================================================================== +--- kicker/taskbar/taskbar.h.orig ++++ kicker/taskbar/taskbar.h +@@ -63,12 +63,11 @@ public: + + QImage* blendGradient(const QSize& size); + +- void setBackground(); +- + KTextShadowEngine *textShadowEngine(); + + public slots: + void configure(); ++ void setBackground(); + + signals: + void containerCountChanged(); +@@ -98,7 +97,6 @@ protected: + void viewportMouseReleaseEvent( QMouseEvent* ); + void viewportMouseDoubleClickEvent( QMouseEvent* ); + void viewportMouseMoveEvent( QMouseEvent* ); +- void viewportResizeEvent( QResizeEvent * ); + void wheelEvent(QWheelEvent*); + void propagateMouseEvent( QMouseEvent* ); + void resizeEvent( QResizeEvent* ); +Index: kicker/libkicker/panner.cpp +=================================================================== +--- kicker/libkicker/panner.cpp.orig ++++ kicker/libkicker/panner.cpp +@@ -35,28 +35,28 @@ CONNECTION WITH THE SOFTWARE OR THE USE + #include "panner.h" + #include "panner.moc" + +- + Panner::Panner( QWidget* parent, const char* name ) +- : QScrollView( parent, name ), ++ : QWidget( parent, name ), + _luSB(0), +- _rdSB(0) ++ _rdSB(0), ++ _cwidth(0), _cheight(0), ++ _cx(0), _cy(0) + { + KGlobal::locale()->insertCatalogue("libkicker"); + setBackgroundOrigin( AncestorOrigin ); + + _updateScrollButtonsTimer = new QTimer(this); + connect(_updateScrollButtonsTimer, SIGNAL(timeout()), this, SLOT(reallyUpdateScrollButtons())); +- +- setResizePolicy(Manual); +- setVScrollBarMode( QScrollView::AlwaysOff ); +- setHScrollBarMode( QScrollView::AlwaysOff ); +- +- viewport()->setBackgroundMode( PaletteBackground ); +- viewport()->setBackgroundOrigin( AncestorOrigin ); + ++ _clipper = new QWidget(this); ++ _clipper->setBackgroundOrigin(AncestorOrigin); ++ _clipper->installEventFilter( this ); ++ _viewport = new QWidget(_clipper); ++ _viewport->setBackgroundOrigin(AncestorOrigin); ++ + // layout + _layout = new QBoxLayout(this, QBoxLayout::LeftToRight); +- _layout->addWidget(viewport(), 1); ++ _layout->addWidget(_clipper, 1); + setOrientation(Horizontal); + } + +@@ -64,6 +64,37 @@ Panner::~Panner() + { + } + ++void Panner::createScrollButtons() ++{ ++ if (_luSB) ++ { ++ return; ++ } ++ ++ // left/up scroll button ++ _luSB = new SimpleArrowButton(this); ++ _luSB->installEventFilter(this); ++ //_luSB->setAutoRepeat(true); ++ _luSB->setMinimumSize(12, 12); ++ _luSB->hide(); ++ _layout->addWidget(_luSB); ++ connect(_luSB, SIGNAL(pressed()), SLOT(startScrollLeftUp())); ++ connect(_luSB, SIGNAL(released()), SLOT(stopScroll())); ++ ++ // right/down scroll button ++ _rdSB = new SimpleArrowButton(this); ++ _rdSB->installEventFilter(this); ++ //_rdSB->setAutoRepeat(true); ++ _rdSB->setMinimumSize(12, 12); ++ _rdSB->hide(); ++ _layout->addWidget(_rdSB); ++ connect(_rdSB, SIGNAL(pressed()), SLOT(startScrollRightDown())); ++ connect(_rdSB, SIGNAL(released()), SLOT(stopScroll())); ++ ++ // set up the buttons ++ setupButtons(); ++} ++ + void Panner::setupButtons() + { + if (orientation() == Horizontal) +@@ -110,55 +141,54 @@ void Panner::setOrientation(Orientation + reallyUpdateScrollButtons(); + } + +-void Panner::resizeEvent( QResizeEvent* e ) ++void Panner::resizeEvent( QResizeEvent* ) + { +- QScrollView::resizeEvent( e ); +- updateScrollButtons(); ++ //QScrollView::resizeEvent( e ); ++ //updateScrollButtons(); + } + + void Panner::scrollRightDown() + { + if(orientation() == Horizontal) // scroll right +- scrollBy( 40, 0 ); ++ scrollBy( _step, 0 ); + else // scroll down +- scrollBy( 0, 40 ); ++ scrollBy( 0, _step ); ++ if (_step < 64) ++ _step++; + } + + void Panner::scrollLeftUp() + { + if(orientation() == Horizontal) // scroll left +- scrollBy( -40, 0 ); ++ scrollBy( -_step, 0 ); + else // scroll up +- scrollBy( 0, -40 ); ++ scrollBy( 0, -_step ); ++ if (_step < 64) ++ _step++; + } + +-void Panner::createScrollButtons() ++void Panner::startScrollRightDown() + { +- if (_luSB) +- { +- return; +- } +- +- // left/up scroll button +- _luSB = new SimpleArrowButton(this); +- _luSB->installEventFilter(this); +- _luSB->setAutoRepeat(true); +- _luSB->setMinimumSize(12, 12); +- _luSB->hide(); +- _layout->addWidget(_luSB); +- connect(_luSB, SIGNAL(clicked()), SLOT(scrollLeftUp())); ++ _scrollTimer = new QTimer(this); ++ connect(_scrollTimer, SIGNAL(timeout()), SLOT(scrollRightDown())); ++ _scrollTimer->start(50); ++ _step = 8; ++ scrollRightDown(); ++} + +- // right/down scroll button +- _rdSB = new SimpleArrowButton(this); +- _rdSB->installEventFilter(this); +- _rdSB->setAutoRepeat(true); +- _rdSB->setMinimumSize(12, 12); +- _rdSB->hide(); +- _layout->addWidget(_rdSB); +- connect(_rdSB, SIGNAL(clicked()), SLOT(scrollRightDown())); ++void Panner::startScrollLeftUp() ++{ ++ _scrollTimer = new QTimer(this); ++ connect(_scrollTimer, SIGNAL(timeout()), SLOT(scrollLeftUp())); ++ _scrollTimer->start(50); ++ _step = 8; ++ scrollLeftUp(); ++} + +- // set up the buttons +- setupButtons(); ++void Panner::stopScroll() ++{ ++ delete _scrollTimer; ++ _scrollTimer = 0; + } + + void Panner::reallyUpdateScrollButtons() +@@ -176,7 +206,7 @@ void Panner::reallyUpdateScrollButtons() + delta = contentsHeight() - height(); + } + +- if (delta > 1) ++ if (delta >= 1) + { + createScrollButtons(); + +@@ -184,21 +214,11 @@ void Panner::reallyUpdateScrollButtons() + // we need to do this every single time + _luSB->show(); + _rdSB->show(); +- +- if (orientation() == Horizontal) +- { +- setMargins(0, 0, _luSB->width() + _rdSB->width(), 0); +- } +- else +- { +- setMargins(0, 0, 0, _luSB->height() + _rdSB->height()); +- } + } + else if (_luSB && _luSB->isVisibleTo(this)) + { + _luSB->hide(); + _rdSB->hide(); +- setMargins(0, 0, 0, 0); + } + } + +@@ -207,8 +227,170 @@ void Panner::updateScrollButtons() + _updateScrollButtonsTimer->start(200, true); + } + ++void Panner::setContentsPos(int x, int y) ++{ ++ if (x < 0) ++ x = 0; ++ else if (x > (contentsWidth() - visibleWidth())) ++ x = contentsWidth() - visibleWidth(); ++ ++ if (y < 0) ++ y = 0; ++ else if (y > (contentsHeight() - visibleHeight())) ++ y = contentsHeight() - visibleHeight(); ++ ++ if (x == contentsX() && y == contentsY()) ++ return; ++ ++ _viewport->move(-x, -y); ++ emit contentsMoving(x, y); ++} ++ ++void Panner::scrollBy(int dx, int dy) ++{ ++ setContentsPos(contentsX() + dx, contentsY() + dy); ++} ++ + void Panner::resizeContents( int w, int h ) + { +- QScrollView::resizeContents( w, h ); ++ _viewport->resize(w, h); ++ setContentsPos(contentsX(), contentsY()); + updateScrollButtons(); + } ++ ++QPoint Panner::contentsToViewport( const QPoint& p ) const ++{ ++ return QPoint(p.x() - contentsX() - _clipper->x(), p.y() - contentsY() - _clipper->y()); ++} ++ ++QPoint Panner::viewportToContents( const QPoint& vp ) const ++{ ++ return QPoint(vp.x() + contentsX() + _clipper->x(), vp.y() + contentsY() + _clipper->y()); ++} ++ ++void Panner::contentsToViewport( int x, int y, int& vx, int& vy ) const ++{ ++ const QPoint v = contentsToViewport(QPoint(x,y)); ++ vx = v.x(); ++ vy = v.y(); ++} ++ ++void Panner::viewportToContents( int vx, int vy, int& x, int& y ) const ++{ ++ const QPoint c = viewportToContents(QPoint(vx,vy)); ++ x = c.x(); ++ y = c.y(); ++} ++ ++void Panner::ensureVisible( int x, int y ) ++{ ++ ensureVisible(x, y, 50, 50); ++} ++ ++void Panner::ensureVisible( int x, int y, int xmargin, int ymargin ) ++{ ++ int pw=visibleWidth(); ++ int ph=visibleHeight(); ++ ++ int cx=-contentsX(); ++ int cy=-contentsY(); ++ int cw=contentsWidth(); ++ int ch=contentsHeight(); ++ ++ if ( pw < xmargin*2 ) ++ xmargin=pw/2; ++ if ( ph < ymargin*2 ) ++ ymargin=ph/2; ++ ++ if ( cw <= pw ) { ++ xmargin=0; ++ cx=0; ++ } ++ if ( ch <= ph ) { ++ ymargin=0; ++ cy=0; ++ } ++ ++ if ( x < -cx+xmargin ) ++ cx = -x+xmargin; ++ else if ( x >= -cx+pw-xmargin ) ++ cx = -x+pw-xmargin; ++ ++ if ( y < -cy+ymargin ) ++ cy = -y+ymargin; ++ else if ( y >= -cy+ph-ymargin ) ++ cy = -y+ph-ymargin; ++ ++ if ( cx > 0 ) ++ cx=0; ++ else if ( cx < pw-cw && cw>pw ) ++ cx=pw-cw; ++ ++ if ( cy > 0 ) ++ cy=0; ++ else if ( cy < ph-ch && ch>ph ) ++ cy=ph-ch; ++ ++ setContentsPos( -cx, -cy ); ++} ++ ++bool Panner::eventFilter( QObject *obj, QEvent *e ) ++{ ++ if ( obj == _viewport || obj == _clipper ) ++ { ++ switch ( e->type() ) ++ { ++ case QEvent::Resize: ++ viewportResizeEvent((QResizeEvent *)e); ++ break; ++ case QEvent::MouseButtonPress: ++ viewportMousePressEvent( (QMouseEvent*)e ); ++ if ( ((QMouseEvent*)e)->isAccepted() ) ++ return true; ++ break; ++ case QEvent::MouseButtonRelease: ++ viewportMouseReleaseEvent( (QMouseEvent*)e ); ++ if ( ((QMouseEvent*)e)->isAccepted() ) ++ return true; ++ break; ++ case QEvent::MouseButtonDblClick: ++ viewportMouseDoubleClickEvent( (QMouseEvent*)e ); ++ if ( ((QMouseEvent*)e)->isAccepted() ) ++ return true; ++ break; ++ case QEvent::MouseMove: ++ viewportMouseMoveEvent( (QMouseEvent*)e ); ++ if ( ((QMouseEvent*)e)->isAccepted() ) ++ return true; ++ break; ++ default: ++ break; ++ } ++ } ++ ++ return QWidget::eventFilter( obj, e ); // always continue with standard event processing ++} ++ ++void Panner::viewportResizeEvent( QResizeEvent* ) ++{ ++} ++ ++void Panner::viewportMousePressEvent( QMouseEvent* e) ++{ ++ e->ignore(); ++} ++ ++void Panner::viewportMouseReleaseEvent( QMouseEvent* e ) ++{ ++ e->ignore(); ++} ++ ++void Panner::viewportMouseDoubleClickEvent( QMouseEvent* e ) ++{ ++ e->ignore(); ++} ++ ++void Panner::viewportMouseMoveEvent( QMouseEvent* e ) ++{ ++ e->ignore(); ++} +Index: kicker/libkicker/panner.h +=================================================================== +--- kicker/libkicker/panner.h.orig ++++ kicker/libkicker/panner.h +@@ -24,14 +24,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE + #ifndef __panner_h__ + #define __panner_h__ + +-#include <qscrollview.h> ++#include <qwidget.h> + + #include "simplebutton.h" + + class QBoxLayout; + class QTimer; + +-class KDE_EXPORT Panner : public QScrollView ++class KDE_EXPORT Panner : public QWidget + { + Q_OBJECT + +@@ -43,17 +43,55 @@ public: + + Qt::Orientation orientation() const { return _orient; } + virtual void setOrientation(Orientation orientation); ++ ++ QWidget *viewport() const { return _viewport; } ++ ++ QRect contentsRect() const { return QRect(0, 0, width(), height()); } ++ ++ int contentsX() const { return _viewport ? -_viewport->x() : 0; } ++ int contentsY() const { return _viewport ? -_viewport->y() : 0; } ++ int contentsWidth() const { return _viewport ? _viewport->width() : 0; } ++ int contentsHeight() const { return _viewport ? _viewport->height() : 0; } ++ void setContentsPos(int x, int y); ++ ++ int visibleWidth() const { return _clipper->width(); } ++ int visibleHeight() const { return _clipper->height(); } ++ ++ void contentsToViewport( int x, int y, int& vx, int& vy ) const; ++ void viewportToContents( int vx, int vy, int& x, int& y ) const; ++ QPoint contentsToViewport( const QPoint& ) const; ++ QPoint viewportToContents( const QPoint& ) const; ++ ++ void addChild(QWidget *child) { child->show(); } ++ void removeChild(QWidget *child) { child->hide(); } ++ int childX(QWidget *child) const { return child->x(); } ++ int childY(QWidget *child) const { return child->y(); } ++ void moveChild(QWidget *child, int x, int y) { child->move(x, y); } ++ ++ void ensureVisible( int x, int y ); ++ void ensureVisible( int x, int y, int xmargin, int ymargin ); + + public slots: + virtual void resizeContents( int w, int h ); ++ void startScrollRightDown(); ++ void startScrollLeftUp(); ++ void stopScroll(); + void scrollRightDown(); + void scrollLeftUp(); + void reallyUpdateScrollButtons(); ++ void scrollBy(int dx, int dy); ++ ++signals: ++ void contentsMoving(int x, int y); + + protected: +- void resizeEvent(QResizeEvent *ev); +- void contentsWheelEvent(QWheelEvent *){;} +- void viewportWheelEvent(QWheelEvent *){;} ++ virtual bool eventFilter( QObject *obj, QEvent *e ); ++ virtual void resizeEvent(QResizeEvent *ev); ++ virtual void viewportResizeEvent( QResizeEvent* ); ++ virtual void viewportMousePressEvent( QMouseEvent* ); ++ virtual void viewportMouseReleaseEvent( QMouseEvent* ); ++ virtual void viewportMouseDoubleClickEvent( QMouseEvent* ); ++ virtual void viewportMouseMoveEvent( QMouseEvent* ); + + private: + void setupButtons(); +@@ -65,6 +103,13 @@ private: + SimpleArrowButton *_luSB; // Left Scroll Button + SimpleArrowButton *_rdSB; // Right Scroll Button + QTimer *_updateScrollButtonsTimer; ++ QTimer *_scrollTimer; ++ ++ QWidget *_clipper; ++ QWidget *_viewport; ++ int _cwidth, _cheight; ++ int _cx, _cy; ++ int _step; + }; + + #endif +Index: kicker/extensions/taskbar/taskbarextension.cpp +=================================================================== +--- kicker/extensions/taskbar/taskbarextension.cpp.orig ++++ kicker/extensions/taskbar/taskbarextension.cpp +@@ -170,7 +170,6 @@ void TaskBarExtension::setBackgroundThem + } + + unsetPalette(); +- m_container->unsetPalette(); + + if (KickerSettings::useBackgroundTheme()) + { +@@ -215,17 +214,17 @@ void TaskBarExtension::setBackgroundThem + KickerLib::colorize(bgImage); + } + setPaletteBackgroundPixmap(bgImage); +- m_container->setPaletteBackgroundPixmap(bgImage); + } + } ++ ++ m_container->setBackground(); + } + + void TaskBarExtension::updateBackground(const QPixmap& bgImage) + { + unsetPalette(); + setPaletteBackgroundPixmap(bgImage); +- m_container->unsetPalette(); +- m_container->setPaletteBackgroundPixmap(bgImage); ++ m_container->setBackground(); + } + + void TaskBarExtension::resizeEvent(QResizeEvent *e) +Index: kicker/kicker/core/container_extension.cpp +=================================================================== +--- kicker/kicker/core/container_extension.cpp.orig ++++ kicker/kicker/core/container_extension.cpp +@@ -126,6 +126,7 @@ void ExtensionContainer::init() + connect(Kicker::the()->kwinModule(), SIGNAL(currentDesktopChanged(int)), + this, SLOT( currentDesktopChanged(int))); + ++ setBackgroundOrigin(AncestorOrigin); + setFrameStyle(NoFrame); + setLineWidth(0); + setMargin(0); +@@ -163,7 +164,7 @@ void ExtensionContainer::init() + { + _userHidden = static_cast<UserHidden>(tmp); + } +- ++ + if (m_extension) + { + // if we have an extension, we need to grab the extension-specific +Index: kicker/kicker/core/containerarea.cpp +=================================================================== +--- kicker/kicker/core/containerarea.cpp.orig ++++ kicker/kicker/core/containerarea.cpp +@@ -90,15 +90,12 @@ ContainerArea::ContainerArea(KConfig* _c + m_addAppletDialog(0) + { + setBackgroundOrigin( WidgetOrigin ); +- viewport()->setBackgroundOrigin( AncestorOrigin ); + +- m_contents = new QWidget(viewport()); +- m_contents->setBackgroundOrigin(AncestorOrigin); ++ m_contents = viewport(); + + m_layout = new ContainerAreaLayout(m_contents); + +- // Install an event filter to propagate layout hints coming from +- // m_contents. ++ // Install an event filter to propagate layout hints coming from m_contents. + m_contents->installEventFilter(this); + + setBackground(); +Index: kicker/kicker/core/panelextension.cpp +=================================================================== +--- kicker/kicker/core/panelextension.cpp.orig ++++ kicker/kicker/core/panelextension.cpp +@@ -74,7 +74,6 @@ PanelExtension::PanelExtension(const QSt + connect(_containerArea, SIGNAL(maintainFocus(bool)), this, SIGNAL(maintainFocus(bool))); + _layout->addWidget(_containerArea); + +- _containerArea->setFrameStyle(QFrame::NoFrame); + _containerArea->viewport()->installEventFilter(this); + _containerArea->configure(); + +Index: kicker/applets/systemtray/systemtrayapplet.h +=================================================================== +--- kicker/applets/systemtray/systemtrayapplet.h.orig ++++ kicker/applets/systemtray/systemtrayapplet.h +@@ -118,6 +118,7 @@ public: + TrayEmbed( bool kdeTray, QWidget* parent = NULL ); + bool kdeTray() const { return kde_tray; } + void setBackground(); ++ void getIconSize(int defaultIconSize); + private: + bool kde_tray; + }; +Index: kicker/applets/systemtray/systemtrayapplet.cpp +=================================================================== +--- kicker/applets/systemtray/systemtrayapplet.cpp.orig ++++ kicker/applets/systemtray/systemtrayapplet.cpp +@@ -54,6 +54,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE + + #include <X11/Xlib.h> + ++#define ICON_MARGIN 1 ++ + extern "C" + { + KDE_EXPORT KPanelApplet* init(QWidget *parent, const QString& configFile) +@@ -459,9 +461,9 @@ void SystemTrayApplet::embedWindow( WId + delete emb; + return; + } +- ++ + connect(emb, SIGNAL(embeddedWindowDestroyed()), SLOT(updateTrayWindows())); +- emb->setMinimumSize(m_iconSize, m_iconSize); ++ emb->getIconSize(m_iconSize); + + if (shouldHide(w)) + { +@@ -471,7 +473,7 @@ void SystemTrayApplet::embedWindow( WId + } + else + { +- emb->hide(); ++ //emb->hide(); + emb->setBackground(); + emb->show(); + m_shownWins.append(emb); +@@ -515,7 +517,7 @@ void SystemTrayApplet::updateVisibleWins + { + for (; emb != lastEmb; ++emb) + { +- (*emb)->hide(); ++ //(*emb)->hide(); + (*emb)->setBackground(); + (*emb)->show(); + } +@@ -744,8 +746,7 @@ int SystemTrayApplet::widthForHeight(int + } + + int currentHeight = height(); +- int minHeight = m_iconSize + 4; +- if (currentHeight != h && currentHeight != minHeight) ++ if (currentHeight != h) + { + SystemTrayApplet* me = const_cast<SystemTrayApplet*>(this); + me->setMinimumSize(0, 0); +@@ -764,8 +765,7 @@ int SystemTrayApplet::heightForWidth(int + } + + int currentWidth = width(); +- int minSize = m_iconSize + 4; +- if (currentWidth != w && currentWidth != minSize) ++ if (currentWidth != w) + { + SystemTrayApplet* me = const_cast<SystemTrayApplet*>(this); + me->setMinimumSize(0, 0); +@@ -782,10 +782,8 @@ void SystemTrayApplet::moveEvent( QMoveE + } + + +-void SystemTrayApplet::resizeEvent( QResizeEvent* e ) ++void SystemTrayApplet::resizeEvent( QResizeEvent* ) + { +- KPanelApplet::resizeEvent(e); +- + layoutTray(); + // we need to give ourselves a chance to adjust our size before calling this + QTimer::singleShot(0, this, SIGNAL(updateLayout())); +@@ -808,7 +806,7 @@ void SystemTrayApplet::layoutTray() + int i = 0, line, nbrOfLines, heightWidth; + bool showExpandButton = m_expandButton && m_expandButton->isVisibleTo(this); + delete m_layout; +- m_layout = new QGridLayout(this, 1, 1, 2, 2); ++ m_layout = new QGridLayout(this, 1, 1, ICON_MARGIN, ICON_MARGIN); + + if (m_expandButton) + { +@@ -828,18 +826,18 @@ void SystemTrayApplet::layoutTray() + + // + // The margin and spacing specified in the layout implies that: +- // [-- 2 pixels --] [-- first icon --] [-- 2 pixels --] ... [-- 2 pixels --] [-- last icon --] [-- 2 pixels --] ++ // [-- ICON_MARGIN pixels --] [-- first icon --] [-- ICON_MARGIN pixels --] ... [-- ICON_MARGIN pixels --] [-- last icon --] [-- ICON_MARGIN pixels --] + // +- // So, if we say that iconWidth is the icon width plus the 2 pixels spacing, then the available width for the icons +- // is the widget width minus 2 pixels margin. Forgetting these 2 pixels broke the layout algorithm in KDE <= 3.5.9. ++ // So, if we say that iconWidth is the icon width plus the ICON_MARGIN pixels spacing, then the available width for the icons ++ // is the widget width minus ICON_MARGIN pixels margin. Forgetting these ICON_MARGIN pixels broke the layout algorithm in KDE <= 3.5.9. + // +- // This fix makes the workaround in the heightForWidth() and widthForHeight() methods unneeded. ++ // This fix makes the workarounds in the heightForWidth() and widthForHeight() methods unneeded. + // + + if (orientation() == Vertical) + { +- int iconWidth = maxIconWidth() + 2; // +2 for the margins that implied by the layout +- heightWidth = width() - 2; ++ int iconWidth = maxIconWidth() + ICON_MARGIN; // +2 for the margins that implied by the layout ++ heightWidth = width() - ICON_MARGIN; + // to avoid nbrOfLines=0 we ensure heightWidth >= iconWidth! + heightWidth = heightWidth < iconWidth ? iconWidth : heightWidth; + nbrOfLines = heightWidth / iconWidth; +@@ -860,12 +858,12 @@ void SystemTrayApplet::layoutTray() + emb != lastEmb; ++emb) + { + line = i % nbrOfLines; +- (*emb)->hide(); ++ //(*emb)->hide(); + (*emb)->show(); + m_layout->addWidget(*emb, col, line, + Qt::AlignHCenter | Qt::AlignVCenter); + +- if (line + 1 == nbrOfLines) ++ if ((line + 1) == nbrOfLines) + { + ++col; + } +@@ -879,12 +877,12 @@ void SystemTrayApplet::layoutTray() + emb != lastEmb; ++emb) + { + line = i % nbrOfLines; +- (*emb)->hide(); ++ //(*emb)->hide(); + (*emb)->show(); + m_layout->addWidget(*emb, col, line, + Qt::AlignHCenter | Qt::AlignVCenter); + +- if (line + 1 == nbrOfLines) ++ if ((line + 1) == nbrOfLines) + { + ++col; + } +@@ -894,8 +892,8 @@ void SystemTrayApplet::layoutTray() + } + else // horizontal + { +- int iconHeight = maxIconHeight() + 2; // +2 for the margins that implied by the layout +- heightWidth = height() - 2; ++ int iconHeight = maxIconHeight() + ICON_MARGIN; // +2 for the margins that implied by the layout ++ heightWidth = height() - ICON_MARGIN; + heightWidth = heightWidth < iconHeight ? iconHeight : heightWidth; // to avoid nbrOfLines=0 + nbrOfLines = heightWidth / iconHeight; + +@@ -914,12 +912,12 @@ void SystemTrayApplet::layoutTray() + for (TrayEmbedList::const_iterator emb = m_hiddenWins.begin(); emb != lastEmb; ++emb) + { + line = i % nbrOfLines; +- (*emb)->hide(); ++ //(*emb)->hide(); + (*emb)->show(); + m_layout->addWidget(*emb, line, col, + Qt::AlignHCenter | Qt::AlignVCenter); + +- if (line + 1 == nbrOfLines) ++ if ((line + 1) == nbrOfLines) + { + ++col; + } +@@ -933,12 +931,12 @@ void SystemTrayApplet::layoutTray() + emb != lastEmb; ++emb) + { + line = i % nbrOfLines; +- (*emb)->hide(); ++ //(*emb)->hide(); + (*emb)->show(); + m_layout->addWidget(*emb, line, col, + Qt::AlignHCenter | Qt::AlignVCenter); + +- if (line + 1 == nbrOfLines) ++ if ((line + 1) == nbrOfLines) + { + ++col; + } +@@ -975,6 +973,21 @@ TrayEmbed::TrayEmbed( bool kdeTray, QWid + : QXEmbed( parent ), kde_tray( kdeTray ) + { + hide(); ++} ++ ++void TrayEmbed::getIconSize(int defaultIconSize) ++{ ++ QSize minSize = minimumSizeHint(); ++ ++ int width = minSize.width(); ++ int height = minSize.height(); ++ ++ if (width < 1 || width > defaultIconSize) ++ width = defaultIconSize; ++ if (height < 1 || height > defaultIconSize) ++ height = defaultIconSize; ++ ++ setFixedSize(width, height); + setBackground(); + } + +@@ -994,9 +1007,7 @@ void TrayEmbed::setBackground() + + if (!isHidden()) + { +- hide(); +- show(); ++ XClearArea(x11Display(), embeddedWinId(), 0, 0, 0, 0, True); + } +- //XClearArea(x11Display(), embeddedWinId(), 0, 0, 0, 0, True); + } + +Index: kicker/applets/clock/clock.h +=================================================================== +--- kicker/applets/clock/clock.h.orig ++++ kicker/applets/clock/clock.h +@@ -41,6 +41,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE + + #include <kickertip.h> + #include "settings.h" ++#include "kshadowengine.h" + + class QTimer; + class QBoxLayout; +@@ -152,6 +153,9 @@ class PlainClock : public QLabel, public + bool showDayOfWeek(); + + protected: ++ void paintEvent(QPaintEvent *e); ++ void drawContents(QPainter *p); ++ + QString _timeStr; + }; + +@@ -279,6 +283,8 @@ class ClockApplet : public KPanelApplet, + QDate clockGetDate(); + + virtual void updateKickerTip(KickerTip::Data&); ++ ++ KTextShadowEngine *shadowEngine(); + + k_dcop: + void reconfigure(); +@@ -335,6 +341,7 @@ class ClockApplet : public KPanelApplet, + QStringList _remotezonelist; + KPopupMenu* menu; + ClockAppletToolTip m_tooltip; ++ KTextShadowEngine *m_shadowEngine; + }; + + +Index: kicker/applets/clock/Makefile.am +=================================================================== +--- kicker/applets/clock/Makefile.am.orig ++++ kicker/applets/clock/Makefile.am +@@ -1,7 +1,7 @@ + pic_DATA = lcd.png + picdir = $(kde_datadir)/clockapplet/pics + +-INCLUDES = -I$(top_srcdir)/kicker/libkicker $(all_includes) ++INCLUDES = -I$(top_srcdir)/kicker/libkicker -I../../libkicker $(all_includes) + + kde_module_LTLIBRARIES = clock_panelapplet.la + +Index: kicker/applets/clock/clock.cpp +=================================================================== +--- kicker/applets/clock/clock.cpp.orig ++++ kicker/applets/clock/clock.cpp +@@ -57,6 +57,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE + + #include <global.h> // libkickermain + ++#include "kickerSettings.h" + #include "clock.h" + #include "datepicker.h" + #include "zone.h" +@@ -219,6 +220,7 @@ ClockWidget::~ClockWidget() + PlainClock::PlainClock(ClockApplet *applet, Prefs *prefs, QWidget *parent, const char *name) + : QLabel(parent, name), ClockWidget(applet, prefs) + { ++ setWFlags(WNoAutoErase); + setBackgroundOrigin(AncestorOrigin); + loadSettings(); + updateClock(); +@@ -228,7 +230,7 @@ PlainClock::PlainClock(ClockApplet *appl + int PlainClock::preferedWidthForHeight(int ) const + { + QString maxLengthTime = KGlobal::locale()->formatTime( QTime( 23, 59 ), _prefs->plainShowSeconds()); +- return fontMetrics().width( maxLengthTime+2 ); ++ return fontMetrics().width( maxLengthTime ) + 8; + } + + +@@ -244,7 +246,7 @@ void PlainClock::updateClock() + + if (_force || newStr != _timeStr) { + _timeStr = newStr; +- setText(_timeStr); ++ update(); + } + } + +@@ -266,6 +268,32 @@ bool PlainClock::showDayOfWeek() + return _prefs->plainShowDayOfWeek(); + } + ++void PlainClock::paintEvent(QPaintEvent *) ++{ ++ QPainter p; ++ QPixmap buf(size()); ++ buf.fill(this, 0, 0); ++ p.begin(&buf); ++ p.setFont(font()); ++ p.setPen(paletteForegroundColor()); ++ drawContents(&p); ++ drawFrame(&p); ++ p.end(); ++ p.begin(this); ++ p.drawPixmap(0, 0, buf); ++ p.end(); ++} ++ ++void PlainClock::drawContents(QPainter *p) ++{ ++ QRect tr(0, 0, width(), height()); ++ ++ if (!KickerSettings::transparent()) ++ p->drawText(tr, AlignCenter, _timeStr); ++ else ++ _applet->shadowEngine()->drawText(*p, tr, AlignCenter, _timeStr, size()); ++} ++ + //************************************************************ + + +@@ -834,12 +862,22 @@ void FuzzyClock::drawContents(QPainter * + + p->setFont(_prefs->fuzzyFont()); + p->setPen(_prefs->fuzzyForegroundColor()); +- if (_applet->getOrientation() == Vertical) { ++ ++ QRect tr; ++ ++ if (_applet->getOrientation() == Vertical) ++ { + p->rotate(90); +- p->drawText(4, -2, height() - 8, -(width()) + 2, AlignCenter, _timeStr); +- } else { +- p->drawText(4, 2, width() - 8, height() - 4, AlignCenter, _timeStr); ++ tr = QRect(4, -2, height() - 8, -(width()) + 2); + } ++ else ++ tr = QRect(4, 2, width() - 8, height() - 4); ++ ++ if (!KickerSettings::transparent()) ++ p->drawText(tr, AlignCenter, _timeStr); ++ else ++ _applet->shadowEngine()->drawText(*p, tr, AlignCenter, _timeStr, size()); ++ + alreadyDrawing = false; + } + +@@ -872,7 +910,8 @@ ClockApplet::ClockApplet(const QString& + _prefs(new Prefs(sharedConfig())), + zone(new Zone(config())), + menu(0), +- m_tooltip(this) ++ m_tooltip(this), ++ m_shadowEngine(0) + { + DCOPObject::setObjId("ClockApplet"); + _prefs->readConfig(); +@@ -910,6 +949,7 @@ ClockApplet::ClockApplet(const QString& + + ClockApplet::~ClockApplet() + { ++ delete m_shadowEngine; + //reverse for the moment + KGlobal::locale()->removeCatalogue("clockapplet"); + KGlobal::locale()->removeCatalogue("timezones"); // For time zone translations +@@ -929,6 +969,16 @@ ClockApplet::~ClockApplet() + config()->sync(); + } + ++ ++KTextShadowEngine *ClockApplet::shadowEngine() ++{ ++ if (!m_shadowEngine) ++ m_shadowEngine = new KTextShadowEngine(); ++ ++ return m_shadowEngine; ++} ++ ++ + int ClockApplet::widthForHeight(int h) const + { + if (orientation() == Qt::Vertical) +Index: kioslave/media/mediamanager/halbackend.cpp +=================================================================== +--- kioslave/media/mediamanager/halbackend.cpp.orig ++++ kioslave/media/mediamanager/halbackend.cpp +@@ -851,13 +851,6 @@ QStringList HALBackend::mountoptions(con + result << tmp; + } + +- if ( valids.contains("locale") ) +- { +- value = config.readBoolEntry( "locale", true ); +- tmp = QString( "locale=%1" ).arg( value ? "true" : "false" ); +- result << tmp; +- } +- + if (valids.contains("utf8")) + { + value = config.readBoolEntry("utf8", true); +@@ -878,6 +871,17 @@ QStringList HALBackend::mountoptions(con + result << "shortname=lower"; + } + ++ // pass our locale to the ntfs-3g driver so it can translate local characters ++ if (valids.contains("locale") && fstype == "ntfs-3g") ++ { ++ // have to obtain LC_CTYPE as returned by the `locale` command ++ // check in the same order as `locale` does ++ char *cType; ++ if ( (cType = getenv("LC_ALL")) || (cType = getenv("LC_CTYPE")) || (cType = getenv("LANG")) ) { ++ result << QString("locale=%1").arg(cType); ++ } ++ } ++ + if (valids.contains("sync")) + { + value = config.readBoolEntry("sync", ( valids.contains("flush") && !fstype.endsWith("fat") ) && removable); +@@ -931,7 +935,7 @@ bool HALBackend::setMountoptions(const Q + + QMap<QString,QString> valids = MediaManagerUtils::splitOptions(options); + +- const char *names[] = { "ro", "quiet", "atime", "uid", "utf8", "flush", "sync", "locale", 0 }; ++ const char *names[] = { "ro", "quiet", "atime", "uid", "utf8", "flush", "sync", 0 }; + for (int index = 0; names[index]; ++index) + if (valids.contains(names[index])) + config.writeEntry(names[index], valids[names[index]] == "true"); +@@ -951,10 +955,6 @@ bool HALBackend::setMountoptions(const Q + config.writeEntry("automount", valids["automount"]); + } + +- if (valids.contains("locale") ) { +- config.writeEntry("locale", valids["locale"]); +- } +- + return true; + } + +@@ -1153,11 +1153,6 @@ QString HALBackend::mount(const Medium * + soptions << QString("uid=%1").arg(getuid()); + } + +- if (valids["locale"] == "true") +- { +- soptions << QString("locale=%1").arg( KGlobal::locale()->language() ); +- } +- + if (valids["ro"] == "true") + soptions << "ro"; + +@@ -1182,6 +1177,11 @@ QString HALBackend::mount(const Medium * + soptions << QString("shortname=%1").arg(valids["shortname"]); + } + ++ if (valids.contains("locale")) ++ { ++ soptions << QString("locale=%1").arg(valids["locale"]); ++ } ++ + if (valids.contains("journaling")) + { + QString option = valids["journaling"]; +Index: knetattach/knetattach.ui +=================================================================== +--- knetattach/knetattach.ui.orig ++++ knetattach/knetattach.ui +@@ -236,7 +236,7 @@ + </sizepolicy> + </property> + <property name="maxValue"> +- <number>32768</number> ++ <number>65535</number> + </property> + <property name="minValue"> + <number>1</number> |