summaryrefslogtreecommitdiff
path: root/gtk/gtkstatusicon.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2011-11-02 16:11:54 +0100
committerAlexander Larsson <alexl@redhat.com>2011-11-10 17:41:11 +0100
commit11e9c6f95fe301c2d5c8efa2b2dd2e6b7089618f (patch)
tree640546a02d1534267fbeebadeab9a81138f492d0 /gtk/gtkstatusicon.c
parent65002208b990bded0cdb0469f9422471e0b4de27 (diff)
downloadgtk+-11e9c6f95fe301c2d5c8efa2b2dd2e6b7089618f.tar.gz
win32: Hack to make statusbar menus show up visible:
Diffstat (limited to 'gtk/gtkstatusicon.c')
-rw-r--r--gtk/gtkstatusicon.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gtk/gtkstatusicon.c b/gtk/gtkstatusicon.c
index 4f4dfb86aa..d870560472 100644
--- a/gtk/gtkstatusicon.c
+++ b/gtk/gtkstatusicon.c
@@ -136,6 +136,7 @@ struct _GtkStatusIconPrivate
#ifdef GDK_WINDOWING_WIN32
GtkWidget *dummy_widget;
NOTIFYICONDATAW nid;
+ gint taskbar_top;
gint last_click_x, last_click_y;
GtkOrientation orientation;
gchar *tooltip_text;
@@ -919,6 +920,8 @@ gtk_status_icon_init (GtkStatusIcon *status_icon)
priv->orientation = GTK_ORIENTATION_VERTICAL;
else
priv->orientation = GTK_ORIENTATION_HORIZONTAL;
+
+ priv->taskbar_top = abd.rc.top;
}
priv->last_click_x = priv->last_click_y = 0;
@@ -2513,6 +2516,7 @@ gtk_status_icon_position_menu (GtkMenu *menu,
#ifdef GDK_WINDOWING_WIN32
GtkStatusIcon *status_icon;
GtkStatusIconPrivate *priv;
+ GtkRequisition menu_req;
g_return_if_fail (GTK_IS_MENU (menu));
g_return_if_fail (GTK_IS_STATUS_ICON (user_data));
@@ -2520,8 +2524,11 @@ gtk_status_icon_position_menu (GtkMenu *menu,
status_icon = GTK_STATUS_ICON (user_data);
priv = status_icon->priv;
+ gtk_widget_size_request (GTK_WIDGET (menu), &menu_req);
+
*x = priv->last_click_x;
- *y = priv->last_click_y;
+ *y = priv->taskbar_top - menu_req.height;
+
*push_in = TRUE;
#endif
}