summaryrefslogtreecommitdiffstats
path: root/opensuse/tdebase/systray_order.diff
diff options
context:
space:
mode:
Diffstat (limited to 'opensuse/tdebase/systray_order.diff')
-rw-r--r--opensuse/tdebase/systray_order.diff162
1 files changed, 0 insertions, 162 deletions
diff --git a/opensuse/tdebase/systray_order.diff b/opensuse/tdebase/systray_order.diff
deleted file mode 100644
index b864afc8e..000000000
--- a/opensuse/tdebase/systray_order.diff
+++ /dev/null
@@ -1,162 +0,0 @@
-Index: kicker/applets/systemtray/systemtrayapplet.cpp
-===================================================================
---- kicker/applets/systemtray/systemtrayapplet.cpp.orig
-+++ kicker/applets/systemtray/systemtrayapplet.cpp
-@@ -187,6 +187,7 @@ bool SystemTrayApplet::x11Event( XEvent
- if( isWinManaged( (WId)e->xclient.data.l[2] ) ) // we already manage it
- return true;
- embedWindow( e->xclient.data.l[2], false );
-+ updateVisibleWins();
- layoutTray();
- return true;
- }
-@@ -213,13 +214,12 @@ void SystemTrayApplet::preferences()
- connect(m_settingsDialog, SIGNAL(finished()), this, SLOT(settingsDialogFinished()));
-
- m_iconSelector = new KActionSelector(m_settingsDialog);
-- m_iconSelector->setAvailableLabel(i18n("Visible icons:"));
-- m_iconSelector->setSelectedLabel(i18n("Hidden icons:"));
-- m_iconSelector->setShowUpDownButtons(false);
-+ m_iconSelector->setAvailableLabel(i18n("Hidden icons:"));
-+ m_iconSelector->setSelectedLabel(i18n("Visible icons:"));
- m_settingsDialog->setMainWidget(m_iconSelector);
-
-- QListBox *shownListBox = m_iconSelector->availableListBox();
-- QListBox *hiddenListBox = m_iconSelector->selectedListBox();
-+ QListBox *hiddenListBox = m_iconSelector->availableListBox();
-+ QListBox *shownListBox = m_iconSelector->selectedListBox();
-
- TrayEmbedList::const_iterator it = m_shownWins.begin();
- TrayEmbedList::const_iterator itEnd = m_shownWins.end();
-@@ -261,26 +261,48 @@ void SystemTrayApplet::applySettings()
- }
-
- KConfig *conf = config();
-- conf->setGroup("HiddenTrayIcons");
-- QString name;
-
-- // use the following snippet of code someday to implement ordering
-- // of icons
-- /*
-- m_visibleIconList.clear();
-- QListBoxItem* item = m_iconSelector->availableListBox()->firstItem();
-- for (; item; item = item->next())
-+ // Save the sort order and hidden status using the window class (WM_CLASS) rather
-+ // than window name (caption) - window name is i18n-ed, so it's for example
-+ // not possible to create default settings.
-+ // For backwards compatibility, name is kept as it is, class is preceded by '!'.
-+ QMap< QString, QString > windowNameToClass;
-+ for( TrayEmbedList::ConstIterator it = m_shownWins.begin();
-+ it != m_shownWins.end();
-+ ++it ) {
-+ KWin::WindowInfo info = KWin::windowInfo( (*it)->embeddedWinId(), NET::WMName, NET::WM2WindowClass);
-+ windowNameToClass[ info.name() ] = '!' + info.windowClassClass();
-+ }
-+ for( TrayEmbedList::ConstIterator it = m_hiddenWins.begin();
-+ it != m_hiddenWins.end();
-+ ++it ) {
-+ KWin::WindowInfo info = KWin::windowInfo( (*it)->embeddedWinId(), NET::WMName, NET::WM2WindowClass);
-+ windowNameToClass[ info.name() ] = '!' + info.windowClassClass();
-+ }
-+
-+ conf->setGroup("SortedTrayIcons");
-+ m_sortOrderIconList.clear();
-+ for(QListBoxItem* item = m_iconSelector->selectedListBox()->firstItem();
-+ item;
-+ item = item->next())
- {
-- m_visibleIconList.append(item->text());
-+ if( windowNameToClass.contains(item->text()))
-+ m_sortOrderIconList.append(windowNameToClass[item->text()]);
-+ else
-+ m_sortOrderIconList.append(item->text());
- }
-- conf->writeEntry("Visible", m_visibleIconList);
-- selection.clear();*/
-+ conf->writeEntry("SortOrder", m_sortOrderIconList);
-
-+ conf->setGroup("HiddenTrayIcons");
- m_hiddenIconList.clear();
-- QListBoxItem* item = m_iconSelector->selectedListBox()->firstItem();
-- for (; item; item = item->next())
-+ for(QListBoxItem* item = m_iconSelector->availableListBox()->firstItem();
-+ item;
-+ item = item->next())
- {
-- m_hiddenIconList.append(item->text());
-+ if( windowNameToClass.contains(item->text()))
-+ m_hiddenIconList.append(windowNameToClass[item->text()]);
-+ else
-+ m_hiddenIconList.append(item->text());
- }
- conf->writeEntry("Hidden", m_hiddenIconList);
- conf->sync();
-@@ -416,6 +438,9 @@ void SystemTrayApplet::loadSettings()
- conf->setGroup("HiddenTrayIcons");
- m_hiddenIconList = conf->readListEntry("Hidden");
-
-+ conf->setGroup("SortedTrayIcons");
-+ m_sortOrderIconList = conf->readListEntry("SortOrder");
-+
- //Note This setting comes from kdeglobal.
- conf->setGroup("System Tray");
- m_iconSize = conf->readNumEntry("systrayIconWidth", 22);
-@@ -505,7 +530,9 @@ bool SystemTrayApplet::isWinManaged(WId
-
- bool SystemTrayApplet::shouldHide(WId w)
- {
-- return m_hiddenIconList.find(KWin::windowInfo(w).name()) != m_hiddenIconList.end();
-+ return m_hiddenIconList.find(KWin::windowInfo(w).name()) != m_hiddenIconList.end()
-+ || m_hiddenIconList.find('!'+KWin::windowInfo(w,0,NET::WM2WindowClass).windowClassClass())
-+ != m_hiddenIconList.end();
- }
-
- void SystemTrayApplet::updateVisibleWins()
-@@ -529,6 +556,35 @@ void SystemTrayApplet::updateVisibleWins
- (*emb)->hide();
- }
- }
-+
-+ QMap< QXEmbed*, QString > names; // cache window names and classes
-+ QMap< QXEmbed*, QString > classes;
-+ for( TrayEmbedList::const_iterator it = m_shownWins.begin();
-+ it != m_shownWins.end();
-+ ++it ) {
-+ KWin::WindowInfo info = KWin::windowInfo((*it)->embeddedWinId(),NET::WMName,NET::WM2WindowClass);
-+ names[ *it ] = info.name();
-+ classes[ *it ] = '!'+info.windowClassClass();
-+ }
-+ TrayEmbedList newList;
-+ for( QStringList::const_iterator it1 = m_sortOrderIconList.begin();
-+ it1 != m_sortOrderIconList.end();
-+ ++it1 ) {
-+ for( TrayEmbedList::iterator it2 = m_shownWins.begin();
-+ it2 != m_shownWins.end();
-+ ) {
-+ if( (*it1).startsWith("!") ? classes[ *it2 ] == *it1 : names[ *it2 ] == *it1 ) {
-+ newList.append( *it2 ); // don't bail out, there may be multiple ones
-+ it2 = m_shownWins.erase( it2 );
-+ } else
-+ ++it2;
-+ }
-+ }
-+ for( TrayEmbedList::const_iterator it = m_shownWins.begin();
-+ it != m_shownWins.end();
-+ ++it )
-+ newList.append( *it ); // append unsorted items
-+ m_shownWins = newList;
- }
-
- void SystemTrayApplet::toggleExpanded()
-Index: kicker/applets/systemtray/systemtrayapplet.h
-===================================================================
---- kicker/applets/systemtray/systemtrayapplet.h.orig
-+++ kicker/applets/systemtray/systemtrayapplet.h
-@@ -97,6 +97,7 @@ private:
- TrayEmbedList m_shownWins;
- TrayEmbedList m_hiddenWins;
- QStringList m_hiddenIconList;
-+ QStringList m_sortOrderIconList;
- KWinModule *kwin_module;
- Atom net_system_tray_selection;
- Atom net_system_tray_opcode;