mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-03-21 02:41:34 +00:00
Unity doesn't support _NET_WM_MOVERESIZE
This commit is contained in:
parent
5e8e654324
commit
0ede4bba72
@ -843,6 +843,7 @@ PRIVATE
|
|||||||
platform/linux/notifications_manager_linux.h
|
platform/linux/notifications_manager_linux.h
|
||||||
platform/linux/specific_linux.cpp
|
platform/linux/specific_linux.cpp
|
||||||
platform/linux/specific_linux.h
|
platform/linux/specific_linux.h
|
||||||
|
platform/linux/window_title_linux.h
|
||||||
platform/mac/file_utilities_mac.mm
|
platform/mac/file_utilities_mac.mm
|
||||||
platform/mac/file_utilities_mac.h
|
platform/mac/file_utilities_mac.h
|
||||||
platform/mac/launcher_mac.mm
|
platform/mac/launcher_mac.mm
|
||||||
|
43
Telegram/SourceFiles/platform/linux/window_title_linux.h
Normal file
43
Telegram/SourceFiles/platform/linux/window_title_linux.h
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
the official desktop application for the Telegram messaging service.
|
||||||
|
|
||||||
|
For license and copyright information please follow this link:
|
||||||
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "platform/platform_window_title.h"
|
||||||
|
#include "platform/linux/linux_desktop_environment.h"
|
||||||
|
#include "base/object_ptr.h"
|
||||||
|
|
||||||
|
namespace Window {
|
||||||
|
namespace Theme {
|
||||||
|
|
||||||
|
int DefaultPreviewTitleHeight();
|
||||||
|
void DefaultPreviewWindowFramePaint(QImage &preview, const style::palette &palette, QRect body, int outerWidth);
|
||||||
|
|
||||||
|
} // namespace Theme
|
||||||
|
} // namespace Window
|
||||||
|
|
||||||
|
namespace Platform {
|
||||||
|
|
||||||
|
inline object_ptr<Window::TitleWidget> CreateTitleWidget(QWidget *parent) {
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) || defined DESKTOP_APP_QT_PATCHED
|
||||||
|
if (!DesktopEnvironment::IsUnity()) {
|
||||||
|
return object_ptr<Window::TitleWidgetQt>(parent);
|
||||||
|
}
|
||||||
|
#endif // Qt >= 5.15 || DESKTOP_APP_QT_PATCHED
|
||||||
|
|
||||||
|
return { nullptr };
|
||||||
|
}
|
||||||
|
|
||||||
|
inline int PreviewTitleHeight() {
|
||||||
|
return Window::Theme::DefaultPreviewTitleHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void PreviewWindowFramePaint(QImage &preview, const style::palette &palette, QRect body, int outerWidth) {
|
||||||
|
return Window::Theme::DefaultPreviewWindowFramePaint(preview, palette, body, outerWidth);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Platform
|
@ -27,7 +27,9 @@ void PreviewWindowFramePaint(QImage &preview, const style::palette &palette, QRe
|
|||||||
#include "platform/mac/window_title_mac.h"
|
#include "platform/mac/window_title_mac.h"
|
||||||
#elif defined Q_OS_WIN // Q_OS_MAC
|
#elif defined Q_OS_WIN // Q_OS_MAC
|
||||||
#include "platform/win/window_title_win.h"
|
#include "platform/win/window_title_win.h"
|
||||||
#else // Q_OS_MAC || Q_OS_WIN
|
#elif defined Q_OS_UNIX // Q_OS_MAC || Q_OS_WIN
|
||||||
|
#include "platform/linux/window_title_linux.h"
|
||||||
|
#else // Q_OS_MAC || Q_OS_WIN || Q_OS_UNIX
|
||||||
|
|
||||||
namespace Platform {
|
namespace Platform {
|
||||||
|
|
||||||
@ -49,4 +51,4 @@ inline void PreviewWindowFramePaint(QImage &preview, const style::palette &palet
|
|||||||
|
|
||||||
} // namespace Platform
|
} // namespace Platform
|
||||||
|
|
||||||
#endif // Q_OS_MAC || Q_OS_WIN
|
#endif // Q_OS_MAC || Q_OS_WIN || Q_OS_UNIX
|
||||||
|
@ -555,12 +555,15 @@ void SeparatePanel::mousePressEvent(QMouseEvent *e) {
|
|||||||
if (e->button() == Qt::LeftButton) {
|
if (e->button() == Qt::LeftButton) {
|
||||||
if (dragArea.contains(e->pos())) {
|
if (dragArea.contains(e->pos())) {
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) || defined DESKTOP_APP_QT_PATCHED
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) || defined DESKTOP_APP_QT_PATCHED
|
||||||
windowHandle()->startSystemMove();
|
const auto dragViaSystem = windowHandle()->startSystemMove();
|
||||||
#else // Qt >= 5.15 || DESKTOP_APP_QT_PATCHED
|
#else // Qt >= 5.15 || DESKTOP_APP_QT_PATCHED
|
||||||
_dragging = true;
|
const auto dragViaSystem = false;
|
||||||
_dragStartMousePosition = e->globalPos();
|
|
||||||
_dragStartMyPosition = QPoint(x(), y());
|
|
||||||
#endif // Qt < 5.15 && !DESKTOP_APP_QT_PATCHED
|
#endif // Qt < 5.15 && !DESKTOP_APP_QT_PATCHED
|
||||||
|
if (!dragViaSystem) {
|
||||||
|
_dragging = true;
|
||||||
|
_dragStartMousePosition = e->globalPos();
|
||||||
|
_dragStartMyPosition = QPoint(x(), y());
|
||||||
|
}
|
||||||
} else if (!rect().contains(e->pos()) && _hideOnDeactivate) {
|
} else if (!rect().contains(e->pos()) && _hideOnDeactivate) {
|
||||||
LOG(("Export Info: Panel Hide On Click."));
|
LOG(("Export Info: Panel Hide On Click."));
|
||||||
hideGetDuration();
|
hideGetDuration();
|
||||||
@ -569,7 +572,6 @@ void SeparatePanel::mousePressEvent(QMouseEvent *e) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SeparatePanel::mouseMoveEvent(QMouseEvent *e) {
|
void SeparatePanel::mouseMoveEvent(QMouseEvent *e) {
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) && !defined DESKTOP_APP_QT_PATCHED
|
|
||||||
if (_dragging) {
|
if (_dragging) {
|
||||||
if (!(e->buttons() & Qt::LeftButton)) {
|
if (!(e->buttons() & Qt::LeftButton)) {
|
||||||
_dragging = false;
|
_dragging = false;
|
||||||
@ -578,15 +580,12 @@ void SeparatePanel::mouseMoveEvent(QMouseEvent *e) {
|
|||||||
+ (e->globalPos() - _dragStartMousePosition));
|
+ (e->globalPos() - _dragStartMousePosition));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // Qt < 5.15 && !DESKTOP_APP_QT_PATCHED
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SeparatePanel::mouseReleaseEvent(QMouseEvent *e) {
|
void SeparatePanel::mouseReleaseEvent(QMouseEvent *e) {
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) && !defined DESKTOP_APP_QT_PATCHED
|
if (e->button() == Qt::LeftButton && _dragging) {
|
||||||
if (e->button() == Qt::LeftButton) {
|
|
||||||
_dragging = false;
|
_dragging = false;
|
||||||
}
|
}
|
||||||
#endif // Qt < 5.15 && !DESKTOP_APP_QT_PATCHED
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SeparatePanel::leaveEventHook(QEvent *e) {
|
void SeparatePanel::leaveEventHook(QEvent *e) {
|
||||||
|
@ -93,11 +93,9 @@ private:
|
|||||||
bool _useTransparency = true;
|
bool _useTransparency = true;
|
||||||
style::margins _padding;
|
style::margins _padding;
|
||||||
|
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) && !defined DESKTOP_APP_QT_PATCHED
|
|
||||||
bool _dragging = false;
|
bool _dragging = false;
|
||||||
QPoint _dragStartMousePosition;
|
QPoint _dragStartMousePosition;
|
||||||
QPoint _dragStartMyPosition;
|
QPoint _dragStartMyPosition;
|
||||||
#endif // Qt < 5.15 && !DESKTOP_APP_QT_PATCHED
|
|
||||||
|
|
||||||
Ui::Animations::Simple _titleLeft;
|
Ui::Animations::Simple _titleLeft;
|
||||||
bool _visible = false;
|
bool _visible = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user