window: work around mouse release commands not working on X11

This doesn't make MouseActivateRaiseOnReleaseAndPassClick work on it, but it at least preserves
the old default behavior of raising on click
wilder/Plasma/6.3
Xaver Hugl 1 year ago
parent ee3d2320af
commit c65b354a7a
  1. 63
      src/kcms/options/actions.ui
  2. 2
      src/kcms/options/mouse.cpp
  3. 12
      src/window.cpp

@ -37,36 +37,47 @@
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="kcfg_CommandWindow1">
<property name="whatsThis">
<string>In this row you can customize left click behavior when clicking into an inactive inner window ('inner' means: not titlebar, not frame).</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_0">
<item>
<property name="text">
<string>Activate, pass click and raise on release</string>
</property>
</item>
<item>
<property name="text">
<string>Activate, raise and pass click</string>
</property>
</item>
<item>
<property name="text">
<string>Activate and pass click</string>
</property>
</item>
<item>
<property name="text">
<string>Activate</string>
</property>
<widget class="QComboBox" name="kcfg_CommandWindow1">
<property name="whatsThis">
<string>In this row you can customize left click behavior when clicking into an inactive inner window ('inner' means: not titlebar, not frame).</string>
</property>
<item>
<property name="text">
<string>Activate, pass click and raise on release</string>
</property>
</item>
<item>
<property name="text">
<string>Activate, raise and pass click</string>
</property>
</item>
<item>
<property name="text">
<string>Activate and pass click</string>
</property>
</item>
<item>
<property name="text">
<string>Activate</string>
</property>
</item>
<item>
<property name="text">
<string>Activate and raise</string>
</property>
</item>
</widget>
</item>
<item>
<property name="text">
<string>Activate and raise</string>
</property>
<widget class="KContextualHelpButton" name="info_1">
<property name="contextualHelpText">
<string>Note that "Activate, pass click and raise on release" doesn't work on X11, and falls back to "Activate, raise and pass click" instead</string>
</property>
</widget>
</item>
</widget>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">

@ -7,6 +7,7 @@
#include "mouse.h"
#include "kwinoptions_settings.h"
#include <KWindowSystem>
#include <QDBusConnection>
#include <QDBusMessage>
@ -64,6 +65,7 @@ void KWindowActionsConfig::initialize(KWinOptionsSettings *settings)
{
m_settings = settings;
addConfig(m_settings, widget());
m_ui->info_1->setVisible(KWindowSystem::isPlatformX11());
}
void KWindowActionsConfig::save()

@ -2005,6 +2005,12 @@ std::optional<Options::MouseCommand> Window::getWheelCommand(Qt::Orientation ori
bool Window::performMousePressCommand(Options::MouseCommand cmd, const QPointF &globalPos)
{
if (kwinApp()->operationMode() == Application::OperationModeX11) {
// MouseActivateRaiseOnReleaseAndPassClick can't work on X11
if (cmd == Options::MouseActivateRaiseOnReleaseAndPassClick) {
cmd = Options::MouseActivateRaiseAndPassClick;
}
}
bool replay = false;
switch (cmd) {
case Options::MouseRaise:
@ -2207,6 +2213,12 @@ bool Window::performMousePressCommand(Options::MouseCommand cmd, const QPointF &
bool Window::performMouseReleaseCommand(Options::MouseCommand command, const QPointF &globalPos)
{
if (kwinApp()->operationMode() == Application::OperationModeX11) {
// MouseActivateRaiseOnReleaseAndPassClick can't work on X11
if (command == Options::MouseActivateRaiseOnReleaseAndPassClick) {
command = Options::MouseActivateRaiseAndPassClick;
}
}
switch (command) {
case Options::MouseActivateRaiseOnReleaseAndPassClick:
if (isActive()) {

Loading…
Cancel
Save