Hello community,
here is the log from the commit of package kdebase3
checked in at Tue Nov 14 19:52:00 CET 2006.
--------
--- KDE/kdebase3/kdebase3.changes 2006-11-14 11:39:20.000000000 +0100
+++ /mounts/work_src_done/STABLE/kdebase3/kdebase3.changes 2006-11-14 19:39:37.000000000 +0100
@@ -4,0 +5,2 @@
+- fix more minipager issues with compiz
+- fix more shell insertion issues with khelpcenter
New:
----
3_5_BRANCH_604894.diff
3_5_BRANCH_604930.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdebase3.spec ++++++
--- /var/tmp/diff_new_pack.X5PBkb/_old 2006-11-14 19:50:47.000000000 +0100
+++ /var/tmp/diff_new_pack.X5PBkb/_new 2006-11-14 19:50:47.000000000 +0100
@@ -52,7 +52,7 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Url: http://www.kde.org/
Version: 3.5.5
-Release: 51
+Release: 52
%define kde_version 3.5.5
Source0: kdebase-%{kde_version}.tar.bz2
Source3: startkde.suse.sh
@@ -190,6 +190,8 @@
Patch184: 3_5_BRANCH_kwin_open_in_bg.diff
Patch185: 3_5_BRANCH_197990.diff
Patch186: khelpcenter_shellquote.diff
+Patch187: 3_5_BRANCH_604894.diff
+Patch188: 3_5_BRANCH_604930.diff
%description
This package contains kdebase, one of the basic packages of the K
@@ -375,7 +377,7 @@
Summary: Set and list fileshares
Group: System/Management
Version: 2.0
-Release: 180
+Release: 181
%description -n fileshareset
This package contains the the fileshareset utility to allow users to
@@ -539,6 +541,8 @@
%patch184
%patch185
%patch186
+%patch187
+%patch188
cp %SOURCE17 l10n/tw/flag.png
. /etc/opt/kde3/common_options
cd ../fileshareset2
@@ -1498,6 +1502,8 @@
%changelog -n kdebase3
* Tue Nov 14 2006 - dmueller@suse.de
- update to current optional-kwin.diff (#219020)
+- fix more minipager issues with compiz
+- fix more shell insertion issues with khelpcenter
* Tue Nov 14 2006 - ltinkl@suse.cz
- fixed #218764 - shell insertion vulnerability in khelpcenter
* Mon Nov 13 2006 - dmueller@suse.de
++++++ 3_5_BRANCH_604894.diff ++++++
------------------------------------------------------------------------
r604894 | mueller | 2006-11-14 14:48:43 +0100 (Tue, 14 Nov 2006) | 3 lines
fix various shell insertion, richtext insertion and javascript insertion
issues
------------------------------------------------------------------------
Index: khelpcenter/searchengine.cpp
===================================================================
--- khelpcenter/searchengine.cpp (revision 604893)
+++ khelpcenter/searchengine.cpp (revision 604894)
@@ -1,5 +1,6 @@
#include "stdlib.h"
+#include
#include
#include
#include
@@ -303,7 +304,7 @@ bool SearchEngine::search( QString words
return false;
}
- QString txt = i18n("Search Results for '%1':").arg( words );
+ QString txt = i18n("Search Results for '%1':").arg( QStyleSheet::escape(words) );
mStderr = "<b>" + txt + "</b>\n";
Index: khelpcenter/view.cpp
===================================================================
--- khelpcenter/view.cpp (revision 604893)
+++ khelpcenter/view.cpp (revision 604894)
@@ -24,6 +24,10 @@ View::View( QWidget *parentWidget, const
QObject *parent, const char *name, KHTMLPart::GUIProfile prof, KActionCollection *col )
: KHTMLPart( parentWidget, widgetName, parent, name, prof ), mState( Docu ), mActionCollection(col)
{
+ setJScriptEnabled(false);
+ setJavaEnabled(false);
+ setPluginsEnabled(false);
+
mFormatter = new Formatter;
if ( !mFormatter->readTemplates() ) {
kdDebug() << "Unable to read Formatter templates." << endl;
Index: khelpcenter/searchhandlers/khc_htsearch.pl
===================================================================
--- khelpcenter/searchhandlers/khc_htsearch.pl (revision 604893)
+++ khelpcenter/searchhandlers/khc_htsearch.pl (revision 604894)
@@ -41,12 +41,9 @@ my $charset = langCharset( $lang );
$words = encode( $charset, $words );
-my $htsearchcmd = "$htsearchpath -c $indexdir/$config.conf ";
-$htsearchcmd .= "\"format=$format&method=$method&words=$words\"";
-
-print STDERR "HTSEARCHCMD: $htsearchcmd\n";
-
-if ( !open( HTSEARCH, "$htsearchcmd|" ) ) {
+if ( !open( HTSEARCH, "-|", "$htsearchpath", "-c", "$indexdir/$config.conf",
+ "format=$format&method=$method&words=$words" ) )
+{
print "Can't execute htsearch at '$htsearchpath'.\n";
exit 1;
}
Index: khelpcenter/searchhandlers/khc_mansearch.pl
===================================================================
--- khelpcenter/searchhandlers/khc_mansearch.pl (revision 604893)
+++ khelpcenter/searchhandlers/khc_mansearch.pl (revision 604894)
@@ -47,7 +47,7 @@ if ( !$words ) {
}
# Perform search
-if ( !open( MAN, "apropos $words|" ) ) {
+if ( !open( MAN, "-|", "apropos", $words ) ) {
print "Can't open apropos.\n";
exit 1;
}
Index: khelpcenter/searchhandlers/khc_htdig.pl.in
===================================================================
--- khelpcenter/searchhandlers/khc_htdig.pl.in (revision 604893)
+++ khelpcenter/searchhandlers/khc_htdig.pl.in (revision 604894)
@@ -112,11 +112,11 @@ $ENV{ PATH } = '';
$ENV{ CDPATH } = '';
$ENV{ ENV } = '';
-my $ret = system( "$htdigbin/htdig -s -i -c $conffile" );
+my $ret = system( "$htdigbin/htdig", "-s", "-i", "-c", $conffile );
if ( $ret != 0 ) {
print STDERR "htdig failed\n";
} else {
- $ret = system( "$htdigbin/htmerge -c $conffile" );
+ $ret = system( "$htdigbin/htmerge", "-c", $conffile );
if ( $ret != 0 ) { print STDERR "htmerge failed\n"; }
}
Index: khelpcenter/searchhandlers/khc_docbookdig.pl.in
===================================================================
--- khelpcenter/searchhandlers/khc_docbookdig.pl.in (revision 604893)
+++ khelpcenter/searchhandlers/khc_docbookdig.pl.in (revision 604894)
@@ -185,11 +185,11 @@ mime_types: $mimetypefile
EOT
close CONF;
-my $ret = system( "$htdigbin/htdig -v -s -i -c $conffile" );
+my $ret = system( "$htdigbin/htdig", "-v", "-s", "-i", "-c", $conffile );
if ( $ret != 0 ) {
print STDERR "htdig failed\n";
} else {
- $ret = system( "$htdigbin/htmerge -c $conffile" );
+ $ret = system( "$htdigbin/htmerge", "-c", $conffile );
if ( $ret != 0 ) { print STDERR "htmerge failed\n"; }
}
++++++ 3_5_BRANCH_604930.diff ++++++
------------------------------------------------------------------------
r604930 | mueller | 2006-11-14 18:02:34 +0100 (Tue, 14 Nov 2006) | 2 lines
more minipager fixes if running under compiz
------------------------------------------------------------------------
Index: kicker/applets/minipager/pagerbutton.h
===================================================================
--- kicker/applets/minipager/pagerbutton.h (revision 604929)
+++ kicker/applets/minipager/pagerbutton.h (revision 604930)
@@ -53,7 +53,7 @@ public:
void backgroundChanged();
void windowsChanged();
- bool shouldPaintWindow( KWin::WindowInfo *info );
+ bool shouldPaintWindow( KWin::WindowInfo *info ) const;
signals:
void buttonSelected( int desk );
@@ -82,6 +82,8 @@ private slots:
private:
void loadBgPixmap();
+ QRect mapGeometryToViewport(const KWin::WindowInfo&) const;
+ QPoint mapPointToViewport(const QPoint&) const;
KMiniPager* m_pager;
int m_desktop;
Index: kicker/applets/minipager/pagerapplet.cpp
===================================================================
--- kicker/applets/minipager/pagerapplet.cpp (revision 604929)
+++ kicker/applets/minipager/pagerapplet.cpp (revision 604930)
@@ -456,7 +456,8 @@ void KMiniPager::drawButtons()
KMiniPagerButton *desk;
int count = 1;
- for ( int i = 1; i <= deskNum; ++i )
+ int i = 1;
+ do
{
QSize viewportNum = m_kwin->numberOfViewports(i);
for (int j = 1; j <= viewportNum.width() * viewportNum.height(); ++j)
@@ -481,6 +482,7 @@ void KMiniPager::drawButtons()
++count;
}
}
+ while ( ++i <= deskNum );
}
void KMiniPager::slotSetDesktopCount( int )
@@ -517,8 +519,8 @@ void KMiniPager::slotActiveWindowChanged
QValueList::ConstIterator itEnd = m_desktops.end();
for ( it = m_desktops.begin(); it != itEnd; ++it)
{
- if ( ( inf1 && ( inf1->onAllDesktops() || (inf1->desktop() == (*it)->desktop()) ) ) ||
- ( inf2 && ( inf2->onAllDesktops() || (inf2->desktop() == (*it)->desktop()) ) ) )
+ if ( ( inf1 && (*it)->shouldPaintWindow(inf1)) ||
+ ( inf2 && (*it)->shouldPaintWindow(inf2)) )
{
(*it)->windowsChanged();
}
@@ -555,6 +557,7 @@ void KMiniPager::slotWindowRemoved(WId w
{
KWin::WindowInfo* inf = info(win);
bool onAllDesktops = inf->onAllDesktops();
+ bool onAllViewports = inf->hasState(NET::Sticky);
bool skipPager = inf->state() & NET::SkipPager;
int desktop = inf->desktop();
@@ -572,7 +575,7 @@ void KMiniPager::slotWindowRemoved(WId w
QValueList::ConstIterator itEnd = m_desktops.end();
for (it = m_desktops.begin(); it != itEnd; ++it)
{
- if (onAllDesktops || desktop == (*it)->desktop())
+ if (onAllDesktops || onAllViewports || desktop == (*it)->desktop())
{
(*it)->windowsChanged();
}
@@ -599,22 +602,27 @@ void KMiniPager::slotWindowChanged( WId
if (desktopPreview())
{
KWin::WindowInfo* inf = m_windows[win];
- bool onAllDesktops = inf ? inf->onAllDesktops() : false;
- bool skipPager = inf ? inf->state() & NET::SkipPager : false;
- unsigned int desktop = inf ? inf->desktop() : 0;
+ bool skipPager = inf->hasState(NET::SkipPager);
+ QMemArray<bool> old_shouldPaintWindow(m_desktops.size());
+ QValueList::ConstIterator it;
+ QValueList::ConstIterator itEnd = m_desktops.end();
+ int i = 0;
+ for ( it = m_desktops.begin(); it != itEnd; ++it)
+ {
+ old_shouldPaintWindow[i++] = (*it)->shouldPaintWindow(inf);
+ }
+
m_windows.remove(win);
inf = info(win);
- if (inf->state() & NET::SkipPager || skipPager)
+ if (inf->hasState(NET::SkipPager) || skipPager)
{
return;
}
- QValueList::ConstIterator it;
- QValueList::ConstIterator itEnd = m_desktops.end();
- for ( it = m_desktops.begin(); it != itEnd; ++it)
+ for ( i = 0, it = m_desktops.begin(); it != itEnd; ++it)
{
- if ( inf->onAllDesktops() || inf->desktop() == (*it)->desktop() || onAllDesktops || desktop == (*it)->desktop() )
+ if ( old_shouldPaintWindow[i++] || (*it)->shouldPaintWindow(inf))
{
(*it)->windowsChanged();
}
Index: kicker/applets/minipager/pagerbutton.cpp
===================================================================
--- kicker/applets/minipager/pagerbutton.cpp (revision 604929)
+++ kicker/applets/minipager/pagerbutton.cpp (revision 604930)
@@ -97,7 +97,41 @@ KMiniPagerButton::~KMiniPagerButton()
delete m_bgPixmap;
}
-bool KMiniPagerButton::shouldPaintWindow( KWin::WindowInfo *info )
+QRect KMiniPagerButton::mapGeometryToViewport(const KWin::WindowInfo& info) const
+{
+ if (!m_useViewports)
+ return info.frameGeometry();
+
+ // ### fix vertically layouted viewports
+ QRect _r(info.frameGeometry());
+ QPoint vx(m_pager->kwin()->currentViewport(m_pager->kwin()->currentDesktop()));
+
+ _r.moveBy( - (m_desktop - vx.x()) * QApplication::desktop()->width(),
+ 0);
+
+ if ((info.state() & NET::Sticky))
+ {
+ _r.moveTopLeft(QPoint(_r.x() % QApplication::desktop()->width(),
+ _r.y() % QApplication::desktop()->height()));
+
+ }
+
+ return _r;
+}
+
+QPoint KMiniPagerButton::mapPointToViewport(const QPoint& _p) const
+{
+ if (!m_useViewports) return _p;
+
+ QPoint vx(m_pager->kwin()->currentViewport(m_pager->kwin()->currentDesktop()));
+
+ // ### fix vertically layouted viewports
+ QPoint p(_p);
+ p.setX(p.x() + (m_desktop - vx.x()) * QApplication::desktop()->width());
+ return p;
+}
+
+bool KMiniPagerButton::shouldPaintWindow( KWin::WindowInfo *info ) const
{
if (!info)
return false;
@@ -116,17 +150,11 @@ bool KMiniPagerButton::shouldPaintWindow
return false;
if (m_useViewports) {
- QPoint windowTopLeft = info->frameGeometry().topLeft();
- QPoint windowBottomRight = info->frameGeometry().bottomRight();
+ QRect r = mapGeometryToViewport(*info);
- windowTopLeft += QPoint((m_desktop - m_pager->kwin()->currentViewport(0).x()) *
- QApplication::desktop()->width(), 0);
- windowBottomRight += QPoint((m_desktop - m_pager->kwin()->currentViewport(0).x()) *
- QApplication::desktop()->width(), 0);
-
- if (!(info->state() & NET::Sticky) &&
- !QApplication::desktop()->geometry().contains(windowTopLeft) &&
- !QApplication::desktop()->geometry().contains(windowBottomRight))
+ if (!info->hasState(NET::Sticky) &&
+ !QApplication::desktop()->geometry().contains(r.topLeft()) &&
+ !QApplication::desktop()->geometry().contains(r.topRight()))
return false;
}
@@ -394,7 +422,7 @@ void KMiniPagerButton::paintEvent(QPaint
if (shouldPaintWindow(info))
{
- QRect r = info->frameGeometry();
+ QRect r = mapGeometryToViewport(*info);
r = QRect(r.x() * width() / dw, 2 + r.y() * height() / dh,
r.width() * width() / dw, r.height() * height() / dh);
@@ -519,9 +547,10 @@ void KMiniPagerButton::mouseMoveEvent(QM
int h = height();
QPoint pos(m_pager->clickPos.isNull() ? mapFromGlobal(QCursor::pos()) : m_pager->clickPos);
- QPoint p(pos.x() * dw / w, pos.y() * dh / h);
+ QPoint p = mapPointToViewport(QPoint(pos.x() * dw / w, pos.y() * dh / h));
+
Task::Ptr wasWindow = m_currentWindow;
- m_currentWindow = TaskManager::the()->findTask(m_desktop, p);
+ m_currentWindow = TaskManager::the()->findTask(m_useViewports ? 1 : m_desktop, p);
if (wasWindow != m_currentWindow)
{
@@ -589,16 +618,17 @@ void KMiniPagerButton::dropEvent(QDropEv
e->accept();
Task::List tasks(TaskDrag::decode(e));
- if (e->source() == this && tasks.count() == 1)
+ if ((m_useViewports || e->source() == this) && tasks.count() == 1)
{
Task::Ptr task = tasks[0];
int dw = QApplication::desktop()->width();
int dh = QApplication::desktop()->height();
int w = width();
int h = height();
- QRect location = task->frameGeometry();
- int deltaX = e->pos().x() - m_pager->clickPos.x();
- int deltaY = e->pos().y() - m_pager->clickPos.y();
+ QRect location = mapGeometryToViewport(task->info());
+ QPoint pos = mapPointToViewport(e->pos());
+ int deltaX = pos.x() - m_pager->clickPos.x();
+ int deltaY = pos.y() - m_pager->clickPos.y();
if (abs(deltaX) < 3)
{
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org