summaryrefslogtreecommitdiff
path: root/libmate-panel-applet/mate-panel-applet.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmate-panel-applet/mate-panel-applet.c')
-rw-r--r--libmate-panel-applet/mate-panel-applet.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/libmate-panel-applet/mate-panel-applet.c b/libmate-panel-applet/mate-panel-applet.c
index 026ee941..897f1726 100644
--- a/libmate-panel-applet/mate-panel-applet.c
+++ b/libmate-panel-applet/mate-panel-applet.c
@@ -45,6 +45,10 @@
#include <X11/Xatom.h>
#include "panel-plug-private.h"
#endif
+#ifndef HAVE_X11
+#include <gdk/gdkwayland.h>
+#define GDK_IS_X11_DISPLAY(object) !(G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_DISPLAY))
+#endif
#include "mate-panel-applet.h"
#include "panel-applet-private.h"
@@ -603,7 +607,6 @@ mate_panel_applet_request_focus (MatePanelApplet *applet,
guint32 timestamp)
{
#ifdef HAVE_X11
- MatePanelAppletPrivate *priv;
GdkScreen *screen;
GdkWindow *root;
GdkDisplay *display;
@@ -617,8 +620,7 @@ mate_panel_applet_request_focus (MatePanelApplet *applet,
g_return_if_fail (MATE_PANEL_IS_APPLET (applet));
- priv = mate_panel_applet_get_instance_private (applet);
- screen = gtk_window_get_screen (GTK_WINDOW (priv->plug));
+ screen = gdk_screen_get_default(); /*There is only one screen since GTK 3.22*/
root = gdk_screen_get_root_window (screen);
display = gdk_screen_get_display (screen);
@@ -1044,12 +1046,22 @@ mate_panel_applet_button_press (GtkWidget *widget,
}
}
+#ifdef HAVE_WAYLAND
+ /*Limit the window list's applet menu to the handle area*/
+ if (!(GDK_IS_X11_DISPLAY (gdk_display_get_default ())))
+ {
+ MatePanelAppletFlags flags;
+ flags = mate_panel_applet_get_flags (applet);
+ if (flags & MATE_PANEL_APPLET_EXPAND_MAJOR)
+ return FALSE;
+ }
+#endif
+
if (event->button == 3) {
mate_panel_applet_menu_popup (applet, (GdkEvent *) event);
return TRUE;
}
-
return mate_panel_applet_button_event (applet, event);
}