parent
f231ffc0f6
commit
ebc520ef52
@ -1,78 +0,0 @@
|
||||
Description: Add Move and Resize items in the task-button context menu
|
||||
Author: Tsu Jan <tsujan2000@gmail.com>
|
||||
Origin: backport
|
||||
Bug: https://github.com/lxde/lxqt/issues/1434
|
||||
Applied-Upstream: commit:b69fe72
|
||||
Last-Update: 2018-02-05
|
||||
--- a/plugin-taskbar/lxqttaskbutton.cpp
|
||||
+++ b/plugin-taskbar/lxqttaskbutton.cpp
|
||||
@@ -464,6 +464,42 @@ void LXQtTaskButton::moveApplicationToDe
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
+void LXQtTaskButton::moveApplication()
|
||||
+{
|
||||
+ KWindowInfo info(mWindow, NET::WMDesktop);
|
||||
+ if (!info.isOnCurrentDesktop())
|
||||
+ KWindowSystem::setCurrentDesktop(info.desktop());
|
||||
+ if (isMinimized())
|
||||
+ KWindowSystem::unminimizeWindow(mWindow);
|
||||
+ KWindowSystem::forceActiveWindow(mWindow);
|
||||
+ const QRect& g = KWindowInfo(mWindow, NET::WMGeometry).geometry();
|
||||
+ int X = g.center().x();
|
||||
+ int Y = g.center().y();
|
||||
+ QCursor::setPos(X, Y);
|
||||
+ NETRootInfo(QX11Info::connection(), NET::WMMoveResize).moveResizeRequest(mWindow, X, Y, NET::Move);
|
||||
+}
|
||||
+
|
||||
+/************************************************
|
||||
+
|
||||
+ ************************************************/
|
||||
+void LXQtTaskButton::resizeApplication()
|
||||
+{
|
||||
+ KWindowInfo info(mWindow, NET::WMDesktop);
|
||||
+ if (!info.isOnCurrentDesktop())
|
||||
+ KWindowSystem::setCurrentDesktop(info.desktop());
|
||||
+ if (isMinimized())
|
||||
+ KWindowSystem::unminimizeWindow(mWindow);
|
||||
+ KWindowSystem::forceActiveWindow(mWindow);
|
||||
+ const QRect& g = KWindowInfo(mWindow, NET::WMGeometry).geometry();
|
||||
+ int X = g.bottomRight().x();
|
||||
+ int Y = g.bottomRight().y();
|
||||
+ QCursor::setPos(X, Y);
|
||||
+ NETRootInfo(QX11Info::connection(), NET::WMMoveResize).moveResizeRequest(mWindow, X, Y, NET::BottomRight);
|
||||
+}
|
||||
+
|
||||
+/************************************************
|
||||
+
|
||||
+ ************************************************/
|
||||
void LXQtTaskButton::contextMenuEvent(QContextMenuEvent* event)
|
||||
{
|
||||
if (event->modifiers().testFlag(Qt::ControlModifier))
|
||||
@@ -532,6 +568,15 @@ void LXQtTaskButton::contextMenuEvent(QC
|
||||
connect(a, SIGNAL(triggered(bool)), this, SLOT(moveApplicationToDesktop()));
|
||||
}
|
||||
|
||||
+ /********** Move/Resize **********/
|
||||
+ menu->addSeparator();
|
||||
+ a = menu->addAction(tr("&Move"));
|
||||
+ a->setEnabled(info.actionSupported(NET::ActionMove) && !(state & NET::Max) && !(state & NET::FullScreen));
|
||||
+ connect(a, &QAction::triggered, this, &LXQtTaskButton::moveApplication);
|
||||
+ a = menu->addAction(tr("Resi&ze"));
|
||||
+ a->setEnabled(info.actionSupported(NET::ActionResize) && !(state & NET::Max) && !(state & NET::FullScreen));
|
||||
+ connect(a, &QAction::triggered, this, &LXQtTaskButton::resizeApplication);
|
||||
+
|
||||
/********** State menu **********/
|
||||
menu->addSeparator();
|
||||
|
||||
--- a/plugin-taskbar/lxqttaskbutton.h
|
||||
+++ b/plugin-taskbar/lxqttaskbutton.h
|
||||
@@ -95,6 +95,8 @@ public slots:
|
||||
void unShadeApplication();
|
||||
void closeApplication();
|
||||
void moveApplicationToDesktop();
|
||||
+ void moveApplication();
|
||||
+ void resizeApplication();
|
||||
void setApplicationLayer();
|
||||
|
||||
void setOrigin(Qt::Corner);
|
@ -1,19 +0,0 @@
|
||||
Description: Avoid infinite recursion when no icon is available
|
||||
Author: comicfans <comicfans44@gmail.com>
|
||||
Origin: backport
|
||||
Bug: https://github.com/lxde/lxqt/issues/1431
|
||||
Applied-Upstream: b9b4133
|
||||
Last-Update: 2018-02-05
|
||||
--- a/plugin-mainmenu/xdgcachedmenu.cpp
|
||||
+++ b/plugin-mainmenu/xdgcachedmenu.cpp
|
||||
@@ -60,6 +60,10 @@ void XdgCachedMenuAction::updateIcon()
|
||||
if(icon().isNull())
|
||||
{
|
||||
QIcon icon = XdgIcon::fromTheme(iconName_, QIcon::fromTheme("unknown"));
|
||||
+ // Some themes may lack the "unknown" icon; checking null prevents
|
||||
+ // infinite recursion (setIcon->dataChanged->updateIcon->setIcon)
|
||||
+ if (icon.isNull())
|
||||
+ return;
|
||||
setIcon(icon);
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
Description: some cosmetics backported
|
||||
- display volume percent
|
||||
- fix worldclock size
|
||||
|
||||
Author: Alf Gaida <agaida@siduction.org>
|
||||
Last-Update: 2017-11-05
|
||||
|
||||
--- lxqt-panel-0.12.0.orig/plugin-volume/lxqtvolume.cpp
|
||||
+++ lxqt-panel-0.12.0/plugin-volume/lxqtvolume.cpp
|
||||
@@ -286,7 +286,7 @@ void LXQtVolume::showNotification(bool f
|
||||
if (m_defaultSink->mute())
|
||||
m_notification->setSummary(tr("Volume: muted"));
|
||||
else
|
||||
- m_notification->setSummary(tr("Volume: %1").arg(QString::number(m_defaultSink->volume())));
|
||||
+ m_notification->setSummary(tr("Volume: %1%").arg(QString::number(m_defaultSink->volume())));
|
||||
m_notification->update();
|
||||
}
|
||||
}
|
||||
--- lxqt-panel-0.12.0.orig/plugin-worldclock/lxqtworldclock.cpp
|
||||
+++ lxqt-panel-0.12.0/plugin-worldclock/lxqtworldclock.cpp
|
||||
@@ -132,7 +132,10 @@ void LXQtWorldClock::updateTimeText()
|
||||
|
||||
if (!isUpToDate)
|
||||
{
|
||||
+ const QSize old_size = mContent->sizeHint();
|
||||
mContent->setText(tzNow.toString(preformat(mFormat, timeZone, tzNow)));
|
||||
+ if (old_size != mContent->sizeHint())
|
||||
+ mRotatedWidget->adjustContentSize();
|
||||
mRotatedWidget->update();
|
||||
updatePopupContent();
|
||||
}
|
@ -1,86 +0,0 @@
|
||||
Description: Fix various memory leaks
|
||||
This commit contains three patches that was done in one upstream pull request
|
||||
but the commits weren't squashed. The commit descriptions are as follows:
|
||||
- mainmenu: Fix possible leaks in menu-cache usage
|
||||
- mount: Fix leak by correctly assigning the QObject parent
|
||||
- taskbar: Avoid conditionals on uninitialized values by proper initialization
|
||||
of data members
|
||||
Author: Palo Kisa <palo.kisa@gmail.com>
|
||||
Origin: backport
|
||||
Bug: https://github.com/lxde/lxqt/issues/1415
|
||||
Applied-Upstream: commit:04630d4, commit:d1bd23f, commit:1cb5778
|
||||
Last-Update: 2018-02-05
|
||||
--- a/plugin-mainmenu/xdgcachedmenu.cpp
|
||||
+++ b/plugin-mainmenu/xdgcachedmenu.cpp
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <QHelpEvent>
|
||||
#include <QMimeData>
|
||||
#include <QDebug>
|
||||
+#include <memory>
|
||||
|
||||
XdgCachedMenuAction::XdgCachedMenuAction(MenuCacheItem* item, QObject* parent):
|
||||
QAction{parent}
|
||||
@@ -92,7 +93,10 @@ void XdgCachedMenu::addMenuItems(QMenu*
|
||||
GSList* list = menu_cache_dir_list_children(dir);
|
||||
for(GSList * l = list; l; l = l->next)
|
||||
{
|
||||
- MenuCacheItem* item = (MenuCacheItem*)l->data;
|
||||
+ // Note: C++14 is needed for usage of the std::make_unique
|
||||
+ //auto guard = std::make_unique(static_cast<MenuCacheItem *>(l->data), menu_cache_item_unref);
|
||||
+ std::unique_ptr<MenuCacheItem, gboolean (*)(MenuCacheItem* item)> guard{static_cast<MenuCacheItem *>(l->data), menu_cache_item_unref};
|
||||
+ MenuCacheItem* item = guard.get();
|
||||
MenuCacheType type = menu_cache_item_get_type(item);
|
||||
|
||||
if(type == MENU_CACHE_TYPE_SEP)
|
||||
@@ -123,7 +127,6 @@ void XdgCachedMenu::addMenuItems(QMenu*
|
||||
addMenuItems(submenu, MENU_CACHE_DIR(item));
|
||||
}
|
||||
}
|
||||
- menu_cache_item_unref(item);
|
||||
}
|
||||
if (list)
|
||||
g_slist_free(list);
|
||||
--- a/plugin-mount/actions/deviceaction.cpp
|
||||
+++ b/plugin-mount/actions/deviceaction.cpp
|
||||
@@ -42,8 +42,9 @@
|
||||
#define ACT_INFO_UPPER QString(ACT_INFO).toUpper()
|
||||
#define ACT_MENU_UPPER QString(ACT_MENU).toUpper()
|
||||
|
||||
-DeviceAction::DeviceAction(LXQtMountPlugin *plugin, QObject *parent):
|
||||
- mPlugin(plugin)
|
||||
+DeviceAction::DeviceAction(LXQtMountPlugin *plugin, QObject *parent)
|
||||
+ : QObject(parent)
|
||||
+ , mPlugin(plugin)
|
||||
{
|
||||
}
|
||||
|
||||
--- a/plugin-mount/lxqtmountplugin.cpp
|
||||
+++ b/plugin-mount/lxqtmountplugin.cpp
|
||||
@@ -74,7 +74,7 @@ void LXQtMountPlugin::settingsChanged()
|
||||
if (mDeviceAction == nullptr || mDeviceAction->Type() != actionId)
|
||||
{
|
||||
delete mDeviceAction;
|
||||
- mDeviceAction = DeviceAction::create(actionId, this);
|
||||
+ mDeviceAction = DeviceAction::create(actionId, this, this);
|
||||
|
||||
connect(mPopup, &Popup::deviceAdded, mDeviceAction, &DeviceAction::onDeviceAdded);
|
||||
connect(mPopup, &Popup::deviceRemoved, mDeviceAction, &DeviceAction::onDeviceRemoved);
|
||||
--- a/plugin-taskbar/lxqttaskbar.cpp
|
||||
+++ b/plugin-taskbar/lxqttaskbar.cpp
|
||||
@@ -58,6 +58,8 @@ LXQtTaskBar::LXQtTaskBar(ILXQtPanelPlugi
|
||||
QFrame(parent),
|
||||
mSignalMapper(new QSignalMapper(this)),
|
||||
mButtonStyle(Qt::ToolButtonTextBesideIcon),
|
||||
+ mButtonWidth(400),
|
||||
+ mButtonHeight(100),
|
||||
mCloseOnMiddleClick(true),
|
||||
mRaiseOnCurrentDesktop(true),
|
||||
mShowOnlyOneDesktopTasks(false),
|
||||
@@ -65,6 +67,7 @@ LXQtTaskBar::LXQtTaskBar(ILXQtPanelPlugi
|
||||
mShowOnlyCurrentScreenTasks(false),
|
||||
mShowOnlyMinimizedTasks(false),
|
||||
mAutoRotate(true),
|
||||
+ mGroupingEnabled(true),
|
||||
mShowGroupOnHover(true),
|
||||
mIconByClass(false),
|
||||
mCycleOnWheelScroll(true),
|
@ -1,30 +0,0 @@
|
||||
Description: lxqtpanel: Fix wrongly positioned popups
|
||||
Avoid the usage the QWidget::mapToGlobal(), which is unreliable sometimes.
|
||||
Author: Palo Kisa <palo.kisa@gmail.com>
|
||||
Origin: backport
|
||||
Bug: https://github.com/lxde/lxqt/issues/1076
|
||||
Bug-Ubuntu: https://pad.lv/1527013
|
||||
Applied-Upstream: commit:7391172
|
||||
Last-Update: 2018-02-05
|
||||
--- a/panel/lxqtpanel.cpp
|
||||
+++ b/panel/lxqtpanel.cpp
|
||||
@@ -987,7 +987,8 @@ void LXQtPanel::setReserveSpace(bool res
|
||||
************************************************/
|
||||
QRect LXQtPanel::globalGometry() const
|
||||
{
|
||||
- return QRect(mapToGlobal(QPoint(0, 0)), this->size());
|
||||
+ // panel is the the top-most widget/window, no calculation needed
|
||||
+ return geometry();
|
||||
}
|
||||
|
||||
|
||||
@@ -1204,7 +1205,8 @@ QRect LXQtPanel::calculatePopupWindowPos
|
||||
return QRect();
|
||||
}
|
||||
|
||||
- return calculatePopupWindowPos(panel_plugin->mapToGlobal(QPoint(0, 0)), windowSize);
|
||||
+ // Note: assuming there are not contentMargins around the "BackgroundWidget" (LXQtPanelWidget)
|
||||
+ return calculatePopupWindowPos(globalGometry().topLeft() + panel_plugin->geometry().topLeft(), windowSize);
|
||||
}
|
||||
|
||||
|
@ -1,22 +0,0 @@
|
||||
From 9d857d1871b1c9e3b988412d691e9dfba4a14f6d Mon Sep 17 00:00:00 2001
|
||||
From: Alf Gaida <agaida@siduction.org>
|
||||
Date: Wed, 29 Nov 2017 01:00:07 +0100
|
||||
Subject: [PATCH] move panel config to /usr/share/lxqt
|
||||
|
||||
---
|
||||
panel/CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/panel/CMakeLists.txt b/panel/CMakeLists.txt
|
||||
index 5a322a3e..522c1ffc 100644
|
||||
--- a/panel/CMakeLists.txt
|
||||
+++ b/panel/CMakeLists.txt
|
||||
@@ -114,7 +114,7 @@ target_link_libraries(${PROJECT}
|
||||
)
|
||||
|
||||
install(TARGETS ${PROJECT} RUNTIME DESTINATION bin)
|
||||
-install(FILES ${CONFIG_FILES} DESTINATION ${LXQT_ETC_XDG_DIR}/lxqt)
|
||||
+install(FILES ${CONFIG_FILES} DESTINATION ${CMAKE_INSTALL_DATADIR}/lxqt)
|
||||
install(FILES ${PUB_HEADERS} DESTINATION include/lxqt)
|
||||
install(FILES
|
||||
man/lxqt-panel.1
|
@ -1,16 +0,0 @@
|
||||
Description: Use pavucontrol-qt instead pavucontrol
|
||||
backported from upstream, can disappear with the next release
|
||||
Author: Alf Gaida <agaida@siduction.org>
|
||||
Last-Update: 2017-12-16
|
||||
|
||||
--- lxqt-panel-0.12.0.orig/plugin-volume/lxqtvolumeconfiguration.h
|
||||
+++ lxqt-panel-0.12.0/plugin-volume/lxqtvolumeconfiguration.h
|
||||
@@ -47,7 +47,7 @@
|
||||
#define SETTINGS_DEFAULT_DEVICE 0
|
||||
#define SETTINGS_DEFAULT_STEP 3
|
||||
#ifdef USE_PULSEAUDIO
|
||||
- #define SETTINGS_DEFAULT_MIXER_COMMAND "pavucontrol"
|
||||
+ #define SETTINGS_DEFAULT_MIXER_COMMAND "pavucontrol-qt"
|
||||
#define SETTINGS_DEFAULT_AUDIO_ENGINE "PulseAudio"
|
||||
#elif defined(USE_ALSA)
|
||||
#define SETTINGS_DEFAULT_MIXER_COMMAND "qasmixer"
|
@ -1,12 +0,0 @@
|
||||
clock-and-volume.patch
|
||||
move-configs.patch
|
||||
plugin-volume-mixer.patch
|
||||
use-menu-cache.patch
|
||||
|
||||
# Ubuntu-specific patches
|
||||
fix-wrongly-positioned-popups.patch
|
||||
use-specific-panel-icon.patch
|
||||
fix-memory-leaks.patch
|
||||
avoid-infinite-recursion-icons.patch
|
||||
add-move-resize-items.patch
|
||||
set-initial-task-button-correctly.patch
|
@ -1,27 +0,0 @@
|
||||
Description: Set the initial task button text (and icon) correctly
|
||||
Detailed explanation:
|
||||
.
|
||||
When a window shows up, the signal `KWindowSystem::stackingOrderChanged` is emitted *before* `KWindowSystem::windowAdded`. The former signal is connected to the function `LXQtTaskBar::refreshTaskList()`, which calls the functions `LXQtTaskBar::addWindow()` and `LXQtTaskBar::removeWindow()` to add and remove monitored windows.
|
||||
.
|
||||
Connecting `LXQtTaskBar::refreshTaskList()` to the signal `KWindowSystem::stackingOrderChanged` not only is redundant but also causes a problem:
|
||||
.
|
||||
(1) It's redundant because the job of adding *new* windows should be done by `LXQtTaskBar::onWindowAdded()` connected to the signal `KWindowSystem::windowAdded`. However, with the current code, `LXQtTaskBar::addWindow()` is never called by that function because the new window is already added through `KWindowSystem::stackingOrderChanged`. Similarly, `LXQtTaskBar::onWindowRemoved()` should be responsible for removing windows by being connected to the signal `KWindowSystem::windowRemoved`.
|
||||
.
|
||||
(2) More importantly, as the window name can change in the short interval between the emissions of `KWindowSystem::stackingOrderChanged` and `KWindowSystem::windowAdded`, the corresponding taskbar button may get a wrong text. The reason is that the signal `WindowSystem::windowChanged` announces changes only starting from the emission of `KWindowSystem::windowAdded`. (Theoretically, the initial icon might also be wrong but that's rarer).
|
||||
.
|
||||
Here, the connection to `KWindowSystem::stackingOrderChanged` is removed, so that the initial task button text/icon is set correctly. In this way, several useless calls to `LXQtTaskBar::refreshTaskList()` are also prevented when a window is shown/closed or focused/unfocused.
|
||||
Author: Tsu Jan <tsujan2000@gmail.com>
|
||||
Origin: backport
|
||||
Bug: https://github.com/lxde/lxqt/issues/1303
|
||||
Applied-Upstream: commit:563d6bf
|
||||
Last-Update: 2018-02-05
|
||||
--- a/plugin-taskbar/lxqttaskbar.cpp
|
||||
+++ b/plugin-taskbar/lxqttaskbar.cpp
|
||||
@@ -93,7 +93,6 @@ LXQtTaskBar::LXQtTaskBar(ILXQtPanelPlugi
|
||||
connect(mSignalMapper, static_cast<void (QSignalMapper::*)(int)>(&QSignalMapper::mapped), this, &LXQtTaskBar::activateTask);
|
||||
QTimer::singleShot(0, this, &LXQtTaskBar::registerShortcuts);
|
||||
|
||||
- connect(KWindowSystem::self(), SIGNAL(stackingOrderChanged()), SLOT(refreshTaskList()));
|
||||
connect(KWindowSystem::self(), static_cast<void (KWindowSystem::*)(WId, NET::Properties, NET::Properties2)>(&KWindowSystem::windowChanged)
|
||||
, this, &LXQtTaskBar::onWindowChanged);
|
||||
connect(KWindowSystem::self(), &KWindowSystem::windowAdded, this, &LXQtTaskBar::onWindowAdded);
|
@ -1,28 +0,0 @@
|
||||
Description: Make menu-cache optional
|
||||
Backport from upstream
|
||||
|
||||
Last-Update: 2018-04-23
|
||||
|
||||
--- lxqt-panel-0.12.0.orig/CMakeLists.txt
|
||||
+++ lxqt-panel-0.12.0/CMakeLists.txt
|
||||
@@ -4,6 +4,9 @@ project(lxqt-panel)
|
||||
option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF)
|
||||
option(PULL_TRANSLATIONS "Pull translations" ON)
|
||||
option(WITH_SCREENSAVER_FALLBACK "Include support for converting the deprecated 'screensaver' plugin to 'quicklaunch'. This requires the lxqt-leave (lxqt-session) to be installed in runtime." ON)
|
||||
+# plugin-mainmenu
|
||||
+option(USE_MENU_CACHE "Use menu-cached (no noticable penalty even on a 2004 single core pentium if not used)" OFF)
|
||||
+
|
||||
|
||||
# additional cmake files
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
||||
--- lxqt-panel-0.12.0.orig/plugin-mainmenu/CMakeLists.txt
|
||||
+++ lxqt-panel-0.12.0/plugin-mainmenu/CMakeLists.txt
|
||||
@@ -20,7 +20,7 @@ set(UIS
|
||||
|
||||
|
||||
# optionally use libmenu-cache to generate the application menu
|
||||
-if(NOT WITHOUT_MENU_CACHE)
|
||||
+if(USE_MENU_CACHE)
|
||||
find_package(MenuCache "0.3.3")
|
||||
endif()
|
||||
|
@ -1,32 +0,0 @@
|
||||
Description: plugin-volume: Use a specific icon for the panel
|
||||
Some "modern" icon themes have a specific panel icon for volumes.
|
||||
Arc, deepin, Faenza, Faience, Flattr, matefaenza, Menda-Circle, Numix,
|
||||
Numix-Light, Numix-uTouch, Paper, Papirus and it's derivatives are examples
|
||||
of that.
|
||||
Author: Luís Pereira <luis.artur.pereira@gmail.com>
|
||||
Origin: backport
|
||||
Bug: https://github.com/lxde/lxqt-panel/pull/441
|
||||
Applied-Upstream: commit:eaa65e5
|
||||
Reviewed-by: <name and email of a reviewer, optional>
|
||||
Last-Update: 2018-02-05 <YYYY-MM-DD, last update of the meta-information, optional>
|
||||
---
|
||||
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
||||
--- a/plugin-volume/volumepopup.cpp
|
||||
+++ b/plugin-volume/volumepopup.cpp
|
||||
@@ -64,7 +64,7 @@ VolumePopup::VolumePopup(QWidget* parent
|
||||
m_volumeSlider->installEventFilter(this);
|
||||
|
||||
m_muteToggleButton = new QPushButton(this);
|
||||
- m_muteToggleButton->setIcon(XdgIcon::fromTheme(QStringList() << "audio-volume-muted"));
|
||||
+ m_muteToggleButton->setIcon(XdgIcon::fromTheme(QLatin1String("audio-volume-muted-panel")));
|
||||
m_muteToggleButton->setCheckable(true);
|
||||
m_muteToggleButton->setAutoDefault(false);
|
||||
|
||||
@@ -171,6 +171,7 @@ void VolumePopup::updateStockIcon()
|
||||
else
|
||||
iconName = "audio-volume-high";
|
||||
|
||||
+ iconName.append(QLatin1String("-panel"));
|
||||
m_muteToggleButton->setIcon(XdgIcon::fromTheme(iconName));
|
||||
emit stockIconChanged(iconName);
|
||||
}
|
Loading…
Reference in new issue