[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/applets/pager
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2009-01-25 20:53:51
Message-ID: 1232916831.717791.4496.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 916726 by aseigo:

this fixes the pager from consta-painting ;) and chewing cpu; not resizing directly \
probably isn't always correct and may need a more involved fix, but at least now you \
can have your cpu back ;)


 M  +25 -13    pager.cpp  
 M  +1 -0      pager.h  


--- trunk/KDE/kdebase/workspace/plasma/applets/pager/pager.cpp #916725:916726
@@ -67,7 +67,8 @@
       m_dirtyDesktop(-1),
       m_dragStartDesktop(-1),
       m_dragHighlightedDesktop(-1),
-      m_dragSwitchDesktop(-1)
+      m_dragSwitchDesktop(-1),
+      m_ignoreNextSizeConstraint(false)
 {
     setAcceptsHoverEvents(true);
     setAcceptDrops(true);
@@ -141,13 +142,19 @@
 void Pager::constraintsEvent(Plasma::Constraints constraints)
 {
     if (constraints & Plasma::SizeConstraint) {
-        recalculateGeometry();
-        recalculateWindowRects();
-        if (m_background->hasElementPrefix(QString())) {
-            m_background->setElementPrefix(QString());
-            m_background->resizeFrame(size());
+        if (m_ignoreNextSizeConstraint) {
+            kDebug() << "ignoring size constraint";
+            m_ignoreNextSizeConstraint = false;
+        } else {
+            recalculateGeometry();
+            recalculateWindowRects();
+            if (m_background->hasElementPrefix(QString())) {
+                m_background->setElementPrefix(QString());
+                m_background->resizeFrame(size());
+            }
         }
     }
+
     if (constraints & Plasma::FormFactorConstraint) {
         if (formFactor() == Plasma::Horizontal) {
             setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
@@ -325,7 +332,7 @@
 
     //kDebug() << "new size set" << m_size << m_rows << m_columns << columns << \
itemWidth;  
-    resize(m_size);
+    //resize(m_size);
     setPreferredSize(m_size);
     if (m_desktopLayoutOwner && columns != m_columns) {
         // must own manager selection before setting global desktop layout
@@ -334,6 +341,8 @@
         NETRootInfo i( QX11Info::display(), 0 );
         i.setDesktopLayout( orient, columns, rows, NET::DesktopLayoutCornerTopLeft \
);  }
+
+    m_ignoreNextSizeConstraint = true;
 }
 
 void Pager::recalculateWindowRects()
@@ -343,10 +352,14 @@
     for (int i = 0; i < m_desktopCount; i++) {
         m_windowRects.append(QList<QPair<WId, QRect> >());
     }
+
     m_activeWindows.clear();
     m_windowInfo.clear();
-    foreach(WId window, windows) {
-        KWindowInfo info = KWindowSystem::windowInfo(window, NET::WMGeometry | \
NET::WMFrameExtents | NET::WMWindowType | NET::WMDesktop | NET::WMState | \
NET::XAWMState | NET::WMVisibleName); +
+    foreach (WId window, windows) {
+        KWindowInfo info = KWindowSystem::windowInfo(window, NET::WMGeometry | \
NET::WMFrameExtents | +                                                             \
NET::WMWindowType | NET::WMDesktop | +                                                \
                NET::WMState | NET::XAWMState | NET::WMVisibleName);
         NET::WindowType type = info.windowType(NET::NormalMask | NET::DialogMask | \
                NET::OverrideMask |
                                                NET::UtilityMask | NET::DesktopMask | \
                NET::DockMask |
                                                NET::TopMenuMask | NET::SplashMask | \
NET::ToolbarMask | @@ -395,13 +408,12 @@
 
     DisplayedText displayedText;
 
-    if (ui.desktopNumberRadioButton->isChecked()){
+    if (ui.desktopNumberRadioButton->isChecked()) {
         displayedText = Number;
 
-    }else if (ui.desktopNameRadioButton->isChecked()){
+    } else if (ui.desktopNameRadioButton->isChecked()) {
         displayedText = Name;
-
-    }else{
+    } else {
         displayedText = None;
     }
 
--- trunk/KDE/kdebase/workspace/plasma/applets/pager/pager.h #916725:916726
@@ -146,6 +146,7 @@
         // desktop switching on drop event
         int m_dragSwitchDesktop;
         QTimer* m_dragSwitchTimer;
+        bool m_ignoreNextSizeConstraint;
 
         static const int s_FadeInDuration = 50;
         static const int s_FadeOutDuration = 100;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic