[x11] Implement _GTK_SHOW_WINDOW_MENU.
BUG: 454756
This commit is contained in:
parent
fefd730273
commit
7e1617c280
4 changed files with 19 additions and 1 deletions
|
@ -100,7 +100,8 @@ RootInfo *RootInfo::create()
|
|||
| NET::WM2FullscreenMonitors
|
||||
| NET::WM2KDEShadow
|
||||
| NET::WM2OpaqueRegion
|
||||
| NET::WM2GTKFrameExtents;
|
||||
| NET::WM2GTKFrameExtents
|
||||
| NET::WM2GTKShowWindowMenu;
|
||||
#if KWIN_BUILD_ACTIVITIES
|
||||
properties2 |= NET::WM2Activities;
|
||||
#endif
|
||||
|
@ -216,6 +217,14 @@ void RootInfo::moveResizeWindow(xcb_window_t w, int flags, int x, int y, int wid
|
|||
}
|
||||
}
|
||||
|
||||
void RootInfo::showWindowMenu(xcb_window_t w, int device_id, int x_root, int y_root)
|
||||
{
|
||||
Q_UNUSED(device_id);
|
||||
if (X11Window *c = Workspace::self()->findClient(Predicate::WindowMatch, w)) {
|
||||
c->GTKShowWindowMenu(x_root, y_root);
|
||||
}
|
||||
}
|
||||
|
||||
void RootInfo::gotPing(xcb_window_t w, xcb_timestamp_t timestamp)
|
||||
{
|
||||
if (X11Window *c = Workspace::self()->findClient(Predicate::WindowMatch, w)) {
|
||||
|
|
|
@ -42,6 +42,7 @@ protected:
|
|||
void closeWindow(xcb_window_t w) override;
|
||||
void moveResize(xcb_window_t w, int x_root, int y_root, unsigned long direction) override;
|
||||
void moveResizeWindow(xcb_window_t w, int flags, int x, int y, int width, int height) override;
|
||||
void showWindowMenu(xcb_window_t w, int device_id, int x_root, int y_root) override;
|
||||
void gotPing(xcb_window_t w, xcb_timestamp_t timestamp) override;
|
||||
void restackWindow(xcb_window_t w, RequestSource source, xcb_window_t above, int detail, xcb_timestamp_t timestamp) override;
|
||||
void changeShowingDesktop(bool showing) override;
|
||||
|
|
|
@ -4077,6 +4077,13 @@ void X11Window::NETMoveResizeWindow(int flags, int x, int y, int width, int heig
|
|||
configureRequest(value_mask, x, y, width, height, gravity, true);
|
||||
}
|
||||
|
||||
// _GTK_SHOW_WINDOW_MENU
|
||||
void X11Window::GTKShowWindowMenu(int x_root, int y_root)
|
||||
{
|
||||
QPoint globalPos(x_root, y_root);
|
||||
workspace()->showWindowMenu(QRect(globalPos, globalPos), this);
|
||||
}
|
||||
|
||||
bool X11Window::isMovable() const
|
||||
{
|
||||
if (!hasNETSupport() && !m_motif.move()) {
|
||||
|
|
|
@ -236,6 +236,7 @@ public:
|
|||
|
||||
void NETMoveResize(int x_root, int y_root, NET::Direction direction);
|
||||
void NETMoveResizeWindow(int flags, int x, int y, int width, int height);
|
||||
void GTKShowWindowMenu(int x_root, int y_root);
|
||||
void restackWindow(xcb_window_t above, int detail, NET::RequestSource source, xcb_timestamp_t timestamp,
|
||||
bool send_event = false);
|
||||
|
||||
|
|
Loading…
Reference in a new issue