Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 272375 Details for
Bug 364555
kde-base/plasma-workspace-4.6.2 panel misplacement, regression from 4.6.1, libkdeinit4_plasma-desktop.so
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Corrected: Patch reverting upstream commit b239193e10195b13943686f39a186cd29fbf7e24
rehide-revert.patch (text/plain), 13.38 KB, created by
Duncan
on 2011-05-07 13:01:24 UTC
(
hide
)
Description:
Corrected: Patch reverting upstream commit b239193e10195b13943686f39a186cd29fbf7e24
Filename:
MIME Type:
Creator:
Duncan
Created:
2011-05-07 13:01:24 UTC
Size:
13.38 KB
patch
obsolete
>--- b/plasma/desktop/shell/panelview.h 2011-04-01 03:52:43.000000000 -0700 >+++ a/plasma/desktop/shell/panelview.h 2011-05-07 05:15:11.613316554 -0700 >@@ -141,7 +141,7 @@ public Q_SLOTS: > /** > * Decides whether give focus to the panel > */ >- void statusUpdated(Plasma::ItemStatus newStatus); >+ void setStatus(Plasma::ItemStatus newStatus); > > /** > * Pinches the min/max sizes of the containment to the current screen resolution >@@ -240,7 +240,6 @@ private Q_SLOTS: > void overlayMoved(PanelAppletOverlay *overlay); > void panelDeleted(); > void startAutoHide(); >- void checkAutounhide(); > > /** > * update the appearance of the unhide hinter >@@ -270,7 +269,6 @@ private: > GlowBar *m_glowBar; > QTimer *m_mousePollTimer; > QTimer *m_strutsTimer; >- QTimer *m_rehideAfterAutounhideTimer; > QTimeLine *m_timeLine; > QGraphicsWidget *m_spacer; > int m_spacerIndex; >@@ -292,10 +290,7 @@ private: > > bool m_editing : 1; > bool m_triggerEntered : 1; >- bool m_respectStatus : 1; >- > static const int STRUTSTIMERDELAY = 200; >- static const int AUTOUNHIDE_CHECK_DELAY = 3000; > }; > > #endif >--- a/plasma/desktop/shell/panelview.cpp 2011-04-01 03:52:43.000000000 -0700 >+++ b/plasma/desktop/shell/panelview.cpp 2011-05-07 05:15:06.949943711 -0700 >@@ -20,6 +20,7 @@ > #include "panelview.h" > > #include <QApplication> >+#include <QDesktopWidget> > #include <QGraphicsLinearLayout> > #include <QPropertyAnimation> > #include <QTimer> >@@ -29,9 +30,8 @@ > #include <X11/extensions/shape.h> > #endif > >-#include <KDebug> >-#include <KIdleTime> > #include <KWindowSystem> >+#include <KDebug> > > #include <Plasma/Containment> > #include <Plasma/Corona> >@@ -309,7 +309,6 @@ PanelView::PanelView(Plasma::Containment > m_glowBar(0), > m_mousePollTimer(0), > m_strutsTimer(new QTimer(this)), >- m_rehideAfterAutounhideTimer(new QTimer(this)), > m_spacer(0), > m_spacerIndex(-1), > m_shadowWindow(0), >@@ -319,8 +318,7 @@ PanelView::PanelView(Plasma::Containment > m_visibilityMode(NormalPanel), > m_lastHorizontal(true), > m_editing(false), >- m_triggerEntered(false), >- m_respectStatus(true) >+ m_triggerEntered(false) > { > // KWin setup > KWindowSystem::setOnAllDesktops(winId(), true); >@@ -330,13 +328,11 @@ PanelView::PanelView(Plasma::Containment > m_strutsTimer->setSingleShot(true); > connect(m_strutsTimer, SIGNAL(timeout()), this, SLOT(updateStruts())); > >- // this timer controls checks to re-hide a panel after it's been unhidden >- // for the user because, e.g., something is demanding attention >- m_rehideAfterAutounhideTimer->setSingleShot(true); >- connect(m_rehideAfterAutounhideTimer, SIGNAL(timeout()), this, SLOT(checkAutounhide())); >- > // Graphics view setup > setFrameStyle(QFrame::NoFrame); >+ //setAutoFillBackground(true); >+ //setDragMode(QGraphicsView::RubberBandDrag); >+ //setCacheMode(QGraphicsView::CacheBackground); > setInteractive(true); > setAcceptDrops(true); > setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); >@@ -356,20 +352,10 @@ PanelView::PanelView(Plasma::Containment > > const bool onScreen = panel->screen() < PlasmaApp::self()->corona()->numScreens(); > const QRect screenRect = onScreen ? PlasmaApp::self()->corona()->screenGeometry(panel->screen()) : QRect(); >- const int sw = screenRect.width(); >- const int sh = screenRect.height(); >- m_lastSeenSize = sizes.readEntry("lastsize", m_lastHorizontal ? sw : sh); >- >- if (onScreen) { >- const QString last = m_lastHorizontal ? "Horizontal" + QString::number(sw) : >- "Vertical" + QString::number(sh); >- if (sizes.hasGroup(last)) { >- KConfigGroup thisSize(&sizes, last); >- resize(thisSize.readEntry("size", m_lastHorizontal ? QSize(sw, 27) : QSize(27, sh))); >- } >- } else { >+ if (!onScreen) { > resize(panel->size().toSize()); > } >+ m_lastSeenSize = sizes.readEntry("lastsize", m_lastHorizontal ? screenRect.width() : screenRect.height()); > > m_alignment = alignmentFilter((Qt::Alignment)viewConfig.readEntry("Alignment", (int)Qt::AlignLeft)); > KConfigGroup sizeConfig(&viewConfig, (m_lastHorizontal ? "Horizontal" : "Vertical") + >@@ -413,7 +399,7 @@ void PanelView::setContainment(Plasma::C > disconnect(oldContainment); > } > >- connect(containment, SIGNAL(newStatus(Plasma::ItemStatus)), this, SLOT(statusUpdated(Plasma::ItemStatus))); >+ connect(containment, SIGNAL(newStatus(Plasma::ItemStatus)), this, SLOT(setStatus(Plasma::ItemStatus))); > connect(containment, SIGNAL(destroyed(QObject*)), this, SLOT(panelDeleted())); > connect(containment, SIGNAL(toolBoxToggled()), this, SLOT(togglePanelController())); > connect(containment, SIGNAL(appletAdded(Plasma::Applet *, const QPointF &)), this, SLOT(appletAdded(Plasma::Applet *))); >@@ -436,6 +422,10 @@ void PanelView::setContainment(Plasma::C > > // ensure we aren't overlapping other panels > const QRect screenRect = PlasmaApp::self()->corona()->screenGeometry(containment->screen()); >+ const QRegion availGeom = PlasmaApp::self()->corona()->availableScreenRegion(containment->screen()); >+ const int w = containment->size().width(); >+ const int h = containment->size().height(); >+ const int length = containment->formFactor() == Plasma::Horizontal ? w : h; > > View::setContainment(containment); > >@@ -448,11 +438,6 @@ void PanelView::setContainment(Plasma::C > > updateStruts(); > checkShadow(); >- >- // if we are an autohiding panel, then see if the status mandates we do something about it >- if (m_visibilityMode != NormalPanel && m_visibilityMode != WindowsGoBelow) { >- checkUnhide(containment->status()); >- } > } > > void PanelView::themeChanged() >@@ -463,7 +448,6 @@ void PanelView::themeChanged() > > void PanelView::checkShadow() > { >-#ifndef Q_WS_WIN > if (KWindowSystem::compositingActive() && containment()->property("shadowPath").isValid()) { > if (!m_shadowWindow) { > m_shadowWindow = new ShadowWindow(this); >@@ -478,11 +462,12 @@ void PanelView::checkShadow() > if (m_shadowWindow->isValid() && isVisible()) { > m_shadowWindow->show(); > } >- } else if (m_shadowWindow) { >- m_shadowWindow->deleteLater(); >- m_shadowWindow = 0; >+ } else { >+ if (m_shadowWindow) { >+ m_shadowWindow->deleteLater(); >+ m_shadowWindow = 0; >+ } > } >-#endif > } > > void PanelView::setPanelDragPosition(const QPoint &point) >@@ -709,6 +694,8 @@ void PanelView::updatePanelGeometry() > geom.moveTopLeft(QPoint(screenGeom.center().x() - geom.width()/2 + 1 - geom.width()%2 + m_offset, screenGeom.top())); > } > >+ //enable borders if needed >+ //c->setGeometry(QRect(geom.left(), c->geometry().top(), geom.width(), geom.height())); > break; > > case Plasma::LeftEdge: >@@ -720,6 +707,8 @@ void PanelView::updatePanelGeometry() > geom.moveTopLeft(QPoint(screenGeom.left(), screenGeom.center().y() - geom.height()/2 + 1 - geom.height()%2 + m_offset)); > } > >+ //enable borders if needed >+ //c->setGeometry(QRect(c->geometry().left(), geom.top(), geom.width(), geom.height())); > break; > > case Plasma::RightEdge: >@@ -731,6 +720,8 @@ void PanelView::updatePanelGeometry() > geom.moveTopRight(QPoint(screenGeom.right(), screenGeom.center().y() - geom.height()/2 + 1 - geom.height()%2 + m_offset)); > } > >+ //enable borders if needed >+ //c->setGeometry(QRect(c->geometry().left(), geom.top(), geom.width(), geom.height())); > break; > > case Plasma::BottomEdge: >@@ -743,6 +734,8 @@ void PanelView::updatePanelGeometry() > geom.moveBottomLeft(QPoint(screenGeom.center().x() - geom.width()/2 + 1 - geom.width()%2 + m_offset, screenGeom.bottom())); > } > >+ //enable borders if needed >+ //c->setGeometry(QRect(geom.left(), c->geometry().top(), geom.width(), geom.height())); > break; > } > >@@ -818,7 +811,8 @@ void PanelView::pinchContainment(const Q > KConfigGroup sizes = config(); > sizes = KConfigGroup(&sizes, "Sizes"); > >- if (m_lastHorizontal != horizontal || m_lastSeenSize != (horizontal ? sw : sh)) { >+ if (m_lastHorizontal != horizontal || >+ m_lastSeenSize != (horizontal ? sw : sh)) { > // we're adjusting size. store the current size now > KConfigGroup lastSize(&sizes, (m_lastHorizontal ? "Horizontal" : "Vertical") + > QString::number(m_lastSeenSize)); >@@ -1032,23 +1026,17 @@ void PanelView::togglePanelController() > } > } > >- if (m_panelController->isVisible()) { >- if (m_panelController->showingWidgetExplorer() || >- m_panelController->showingActivityManager()) { >- m_panelController->switchToController(); >- m_panelController->move(m_panelController->positionForPanelGeometry(geometry())); >- } else { >- Plasma::WindowEffects::slideWindow(m_panelController, location()); >- m_panelController->close(); >- updateStruts(); >- } >- } else { >+ if (!m_panelController->isVisible()) { > m_editing = true; > m_panelController->resize(m_panelController->sizeHint()); > m_panelController->move(m_panelController->positionForPanelGeometry(geometry())); > Plasma::WindowEffects::slideWindow(m_panelController, location()); > kDebug() << "showing panel controller!" << m_panelController->geometry(); > m_panelController->show(); >+ } else { >+ Plasma::WindowEffects::slideWindow(m_panelController, location()); >+ m_panelController->close(); >+ updateStruts(); > } > } > >@@ -1438,7 +1426,7 @@ void PanelView::unhide(bool destroyTrigg > } > } > >-void PanelView::statusUpdated(Plasma::ItemStatus newStatus) >+void PanelView::setStatus(Plasma::ItemStatus newStatus) > { > if (newStatus == Plasma::AcceptingInputStatus) { > KWindowSystem::forceActiveWindow(winId()); >@@ -1447,50 +1435,14 @@ void PanelView::statusUpdated(Plasma::It > > void PanelView::checkUnhide(Plasma::ItemStatus newStatus) > { >- //kDebug() << "================= got a status: " << newStatus << Plasma::ActiveStatus; >- m_respectStatus = true; >- >+ //kDebug() << "================= got a new status: " << newStatus << Plasma::ActiveStatus; > if (newStatus > Plasma::ActiveStatus) { > unhide(); >- if (newStatus == Plasma::NeedsAttentionStatus) { >- //kDebug() << "starting the timer!"; >- // start our rehide timer, so that the panel doesn't stay up and stuck forever and a day >- m_rehideAfterAutounhideTimer->start(AUTOUNHIDE_CHECK_DELAY); >- } > } else { >- //kDebug() << "new status, just autohiding"; > startAutoHide(); > } > } > >-void PanelView::checkAutounhide() >-{ >- //kDebug() << "***************************" << KIdleTime::instance()->idleTime(); >- if (KIdleTime::instance()->idleTime() >= AUTOUNHIDE_CHECK_DELAY) { >- // the user is idle .. let's not hige the panel on them quite yet, but rather given them a >- // chance to see this thing! >- connect(KIdleTime::instance(), SIGNAL(resumingFromIdle()), this, SLOT(checkAutounhide()), >- Qt::UniqueConnection); >- KIdleTime::instance()->catchNextResumeEvent(); >- //kDebug() << "exit 1 ***************************"; >- return; >- } >- >- m_respectStatus = false; >- //kDebug() << "in to check ... who's resonsible?" << sender() << KIdleTime::instance(); >- if (sender() == KIdleTime::instance()) { >- //kDebug() << "doing a 2s wait"; >- QTimer::singleShot(2000, this, SLOT(startAutoHide())); >- } else { >- //kDebug() << "just starting autohide!"; >- startAutoHide(); >- } >- >- // this line must come after the check on sender() as it *clears* that value! >- disconnect(KIdleTime::instance(), SIGNAL(resumingFromIdle()), this, SLOT(checkAutounhide())); >- //kDebug() << "exit 0 ***************************"; >-} >- > void PanelView::unhide() > { > unhide(true); >@@ -1503,31 +1455,10 @@ void PanelView::resetTriggerEnteredSuppr > > void PanelView::startAutoHide() > { >- /* >- kDebug() << m_editing << (containment() ? containment()->status() : 0) << Plasma::ActiveStatus >- << geometry().adjusted(-10, -10, 10, 10).contains(QCursor::pos()) << hasPopup(); >- if (containment() && containment()->status() > Plasma::ActiveStatus) { >- foreach (Plasma::Applet *applet, containment()->applets()) { >- kDebug() << " " << applet->name() << applet->status(); >- } >- } >- */ >- >- >- if (m_editing || (m_respectStatus && (containment() && containment()->status() > Plasma::ActiveStatus))) { >- if (m_mousePollTimer) { >- m_mousePollTimer->stop(); >- disconnect(m_mousePollTimer, SIGNAL(timeout()), this, SLOT(startAutoHide())); >- } >- >- return; >- } >- >- // since we've gotten this far, we don't need to worry about rehiding-after-auto-unhide, so just >- // stop the timer >- m_rehideAfterAutounhideTimer->stop(); >- >- if (geometry().adjusted(-10, -10, 10, 10).contains(QCursor::pos()) || hasPopup()) { >+ //TODO: is 5s too long? not long enough? >+ if (m_editing || (containment() && containment()->status() > Plasma::ActiveStatus) || >+ geometry().adjusted(-10, -10, 10, 10).contains(QCursor::pos()) || >+ hasPopup()) { > if (!m_mousePollTimer) { > leaveEvent(0); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 364555
:
270943
|
272361
|
272375