Author: jasper
Date: 2007-10-01 19:21:50 +0000 (Mon, 01 Oct 2007)
New Revision: 26124
Modified:
xfce4-panel/trunk/ChangeLog
xfce4-panel/trunk/libxfce4panel/xfce-panel-plugin-iface.c
xfce4-panel/trunk/panel/panel-properties.c
xfce4-panel/trunk/plugins/windowlist/windowlist.c
Log:
* libxfce4panel/xfce-panel-plugin-iface.c,
panel/panel-properties.c: To prevent panel items from increasing the
panel size, set the height of the XfceItembar instead of setting the
size specifically for all items.
* libxfce4panel/xfce-panel-plugin-iface.c: Allow attach_widget to be
NULL in call to xfce_panel_plugin_position_widget() and fix up the
API documentation. Patch by Diego Ongaro and a few bits from me.
* plugins/windowlist/windowlist.c: fix for popup menu at pointer
position. Another patch by Diego.
Modified: xfce4-panel/trunk/ChangeLog
===================================================================
--- xfce4-panel/trunk/ChangeLog 2007-10-01 19:05:51 UTC (rev 26123)
+++ xfce4-panel/trunk/ChangeLog 2007-10-01 19:21:50 UTC (rev 26124)
@@ -1,3 +1,15 @@
+2007-10-01 21:21 jasper
+
+ * libxfce4panel/xfce-panel-plugin-iface.c,
+ panel/panel-properties.c: To prevent panel items from increasing the
+ panel size, set the height of the XfceItembar instead of setting the
+ size specifically for all items.
+ * libxfce4panel/xfce-panel-plugin-iface.c: Allow attach_widget to be
+ NULL in call to xfce_panel_plugin_position_widget() and fix up the
+ API documentation. Patch by Diego Ongaro and a few bits from me.
+ * plugins/windowlist/windowlist.c: fix for popup menu at pointer
+ position. Another patch by Diego.
+
2007-09-30 20:14 jasper
* libxfce4panel/xfce-panel-plugin-iface.c,
Modified: xfce4-panel/trunk/libxfce4panel/xfce-panel-plugin-iface.c
===================================================================
--- xfce4-panel/trunk/libxfce4panel/xfce-panel-plugin-iface.c 2007-10-01
19:05:51 UTC (rev 26123)
+++ xfce4-panel/trunk/libxfce4panel/xfce-panel-plugin-iface.c 2007-10-01
19:21:50 UTC (rev 26124)
@@ -343,9 +343,7 @@
_xfce_panel_plugin_signal_size (XfcePanelPlugin *plugin,
gint size)
{
- gboolean handled = FALSE;
- GtkOrientation orientation;
- gint width, height;
+ gboolean handled = FALSE;
_panel_return_if_fail (XFCE_IS_PANEL_PLUGIN (plugin));
@@ -358,20 +356,6 @@
/* size was not handled by the plugin, so we set it */
gtk_widget_set_size_request (GTK_WIDGET (plugin), size, size);
}
- else
- {
- /* get the orientation of the panel */
- orientation = xfce_panel_plugin_get_orientation (plugin);
-
- /* get the requested plugin size */
- gtk_widget_get_size_request (GTK_WIDGET (plugin), &width, &height);
-
- /* force the plugin size */
- if (orientation == GTK_ORIENTATION_HORIZONTAL)
- gtk_widget_set_size_request (GTK_WIDGET (plugin), width, size);
- else
- gtk_widget_set_size_request (GTK_WIDGET (plugin), size, height);
- }
}
@@ -705,7 +689,7 @@
/**
- * _xfce_panel_plugin_move:
+ * xfce_panel_plugin_move:
* @plugin : a #XfcePanelPlugin
*
* Ask the panel to start a move operation.
@@ -724,7 +708,15 @@
* @menu : a #GtkMenu that will be opened
*
* Register an open menu. This will make sure the panel will properly handle
- * its autohide behaviour.
+ * its autohide behaviour. You have to call this function every time the menu
+ * is opened (e.g. using gtk_popup_menu()).
+ *
+ * If you want to open the menu aligned to the side of the panel (and the
+ * plugin), you should use xfce_panel_plugin_position_menu() as
+ * #GtkMenuPositionFunc. This callback function will take care of calling
+ * xfce_panel_plugin_register_menu() as well.
+ *
+ * See also: xfce_panel_plugin_position_menu().
**/
void
xfce_panel_plugin_register_menu (XfcePanelPlugin *plugin,
@@ -1336,11 +1328,13 @@
* @x : return location for the x coordinate
* @y : return location for the y coordinate
*
- * The menu widget is positioned relative to the plugin. This function is
- * intended for custom menu widgets.
+ * The menu widget is positioned relative to @attach_widget.
+ * If @attach_widget is NULL, the menu widget is instead positioned
+ * relative to @panel_plugin.
*
+ * This function is intended for custom menu widgets.
* For a regular #GtkMenu you should use xfce_panel_plugin_position_menu()
- * instead (as callback argument to gtk_menu_popup()).
+ * instead (as callback argument to gtk_menu_popup()).
*
* See also: xfce_panel_plugin_position_menu().
**/
@@ -1356,10 +1350,13 @@
GdkRectangle geom;
gint mon;
- g_return_if_fail (XFCE_IS_PANEL_PLUGIN (plugin));
- g_return_if_fail (GTK_IS_WIDGET (menu_widget));
- g_return_if_fail (GTK_IS_WIDGET (attach_widget));
+ _panel_return_if_fail (XFCE_IS_PANEL_PLUGIN (plugin));
+ _panel_return_if_fail (GTK_IS_WIDGET (menu_widget));
+ _panel_return_if_fail (attach_widget == NULL || GTK_IS_WIDGET
(attach_widget));
+ if (attach_widget == NULL)
+ attach_widget = GTK_WIDGET (plugin);
+
if (!GTK_WIDGET_REALIZED (menu_widget))
gtk_widget_realize (menu_widget);
@@ -1416,14 +1413,14 @@
* @panel_plugin : a pointer to an #XfcePanelPlugin
*
* Function to be used as #GtkMenuPositionFunc in a call to gtk_menu_popup().
- * As data argument it needs an #XfcePanelPlugin.
+ * As data argument it needs an #XfcePanelPlugin.
*
- * The menu is normally positioned relative to @attach_widget. If you want the
- * menu to be positioned relative to another widget, you can use
- * gtk_menu_attach_to_widget() to explicitly set a 'parent' widget.
+ * The menu is normally positioned relative to @panel_plugin. If you want the
+ * menu to be positioned relative to another widget, you can use
+ * gtk_menu_attach_to_widget() to explicitly set a 'parent' widget.
*
* As a convenience, xfce_panel_plugin_position_menu() calls
- * xfce_panel_plugin_register_menu() for the menu.
+ * xfce_panel_plugin_register_menu() for the menu.
*
* <example>
* void
@@ -1438,7 +1435,7 @@
* </example>
*
* For a custom widget that will be used as a popup menu, use
- * xfce_panel_plugin_position_widget() instead.
+ * xfce_panel_plugin_position_widget() instead.
*
* See also: gtk_menu_popup().
**/
@@ -1452,8 +1449,7 @@
XfcePanelPlugin *plugin = XFCE_PANEL_PLUGIN (panel_plugin);
GtkWidget *attach_widget;
- if ((attach_widget = gtk_menu_get_attach_widget (menu)) == NULL)
- attach_widget = GTK_WIDGET (plugin);
+ attach_widget = gtk_menu_get_attach_widget (menu);
xfce_panel_plugin_position_widget (plugin,
GTK_WIDGET (menu),
Modified: xfce4-panel/trunk/panel/panel-properties.c
===================================================================
--- xfce4-panel/trunk/panel/panel-properties.c 2007-10-01 19:05:51 UTC (rev
26123)
+++ xfce4-panel/trunk/panel/panel-properties.c 2007-10-01 19:21:50 UTC (rev
26124)
@@ -1297,6 +1297,15 @@
priv = panel->priv;
+ if (xfce_screen_position_is_horizontal (priv->screen_position))
+ {
+ gtk_widget_set_size_request (priv->itembar, -1, size);
+ }
+ else
+ {
+ gtk_widget_set_size_request (priv->itembar, size, -1);
+ }
+
if (size != priv->size)
{
priv->size = size;
Modified: xfce4-panel/trunk/plugins/windowlist/windowlist.c
===================================================================
--- xfce4-panel/trunk/plugins/windowlist/windowlist.c 2007-10-01 19:05:51 UTC
(rev 26123)
+++ xfce4-panel/trunk/plugins/windowlist/windowlist.c 2007-10-01 19:21:50 UTC
(rev 26124)
@@ -656,7 +656,8 @@
gtk_widget_show_all (menu);
gtk_menu_popup (GTK_MENU (menu), NULL, NULL,
- xfce_panel_plugin_position_menu, wl->plugin,
+ at_pointer ? NULL : xfce_panel_plugin_position_menu,
+ at_pointer ? NULL : wl->plugin,
ev ? ev->button : 0,
ev ? ev->time : gtk_get_current_event_time());
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits