diff options
Diffstat (limited to 'libmate-panel-applet/mate-panel-applet.c')
| -rw-r--r-- | libmate-panel-applet/mate-panel-applet.c | 20 |
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); } |
