Make Toplevel::isClient() return true for internal and wayland windows

It's needed to merge Toplevel and AbstractClient. Previously, we
couldn't do it because Toplevel::isClient() was somewhat widely used.
This commit is contained in:
Vlad Zahorodnii 2021-05-25 19:06:17 +03:00
parent 93d95ffbc4
commit fa66c3d238
9 changed files with 17 additions and 5 deletions

View file

@ -47,7 +47,7 @@ var dimScreenEffect = {
if (window.popupWindow) { if (window.popupWindow) {
return; return;
} }
if (window.x11Client && !window.managed) { if (!window.managed) {
return; return;
} }
if (window.dimAnimation) { if (window.dimAnimation) {

View file

@ -41,7 +41,7 @@ class FadeEffect {
if (w.popupWindow) { if (w.popupWindow) {
return false; return false;
} }
if (w.x11Client && !w.managed) { if (!w.managed) {
return false; return false;
} }
if (!w.visible) { if (!w.visible) {

View file

@ -37,7 +37,7 @@ function isPopupWindow(window) {
// Override-redirect windows are usually used for user interface // Override-redirect windows are usually used for user interface
// concepts that are expected to be animated by this effect, e.g. // concepts that are expected to be animated by this effect, e.g.
// popups that contain window thumbnails on X11, etc. // popups that contain window thumbnails on X11, etc.
if (window.x11Client && !window.managed) { if (!window.managed) {
// Some utility windows can look like popup windows (e.g. the // Some utility windows can look like popup windows (e.g. the
// address bar dropdown in Firefox), but we don't want to fade // address bar dropdown in Firefox), but we don't want to fade
// them because the fade effect didn't do that. // them because the fade effect didn't do that.

View file

@ -71,7 +71,7 @@ class ScaleEffect {
// Override-redirect windows are usually used for user interface // Override-redirect windows are usually used for user interface
// concepts that are not expected to be animated by this effect. // concepts that are not expected to be animated by this effect.
if (window.x11Client && !window.managed) { if (!window.managed) {
return false; return false;
} }

View file

@ -171,7 +171,7 @@ var translucencyEffect = {
} }
if (window === effects.activeWindow || if (window === effects.activeWindow ||
window.popup === true || window.popup === true ||
(window.x11Client === true && window.managed === false) || window.managed === false ||
window.desktopWindow === true || window.desktopWindow === true ||
window.dock === true || window.dock === true ||
window.visible === false || window.visible === false ||

View file

@ -68,6 +68,11 @@ InternalClient::~InternalClient()
{ {
} }
bool InternalClient::isClient() const
{
return true;
}
bool InternalClient::hitTest(const QPoint &point) const bool InternalClient::hitTest(const QPoint &point) const
{ {
if (!AbstractClient::hitTest(point)) { if (!AbstractClient::hitTest(point)) {

View file

@ -32,6 +32,7 @@ public:
QRect transparentRect() const override; QRect transparentRect() const override;
NET::WindowType windowType(bool direct = false, int supported_types = 0) const override; NET::WindowType windowType(bool direct = false, int supported_types = 0) const override;
void killWindow() override; void killWindow() override;
bool isClient() const override;
bool isPopupWindow() const override; bool isPopupWindow() const override;
QByteArray windowRole() const override; QByteArray windowRole() const override;
void closeWindow() override; void closeWindow() override;

View file

@ -75,6 +75,11 @@ pid_t WaylandClient::pid() const
return surface()->client()->processId(); return surface()->client()->processId();
} }
bool WaylandClient::isClient() const
{
return true;
}
bool WaylandClient::isLockScreen() const bool WaylandClient::isLockScreen() const
{ {
return surface()->client() == waylandServer()->screenLockerClientConnection(); return surface()->client() == waylandServer()->screenLockerClientConnection();

View file

@ -22,6 +22,7 @@ public:
QString captionSuffix() const override; QString captionSuffix() const override;
QRect transparentRect() const override; QRect transparentRect() const override;
pid_t pid() const override; pid_t pid() const override;
bool isClient() const override;
bool isLockScreen() const override; bool isLockScreen() const override;
bool isLocalhost() const override; bool isLocalhost() const override;
AbstractClient *findModal(bool allow_itself = false) override; AbstractClient *findModal(bool allow_itself = false) override;