]> Pileus Git - ~andy/gtk/commitdiff
win32: Hack to make statusbar menus show up visible:
authorAlexander Larsson <alexl@redhat.com>
Wed, 2 Nov 2011 15:11:54 +0000 (16:11 +0100)
committerAlexander Larsson <alexl@redhat.com>
Thu, 10 Nov 2011 16:41:11 +0000 (17:41 +0100)
gtk/gtkstatusicon.c

index 4f4dfb86aaaacc9a7947142c81107e90152befe4..d8705604724e79460279a176c4263a023e65c775 100644 (file)
@@ -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
 }