const gchar* uri;
GtkAction* action;
GtkWidget* menuitem;
- gchar* stock_id;
- GtkStockItem stockitem;
- GtkWidget* image;
if (MIDORI_IS_WEB_VIEW (web_view)
&& midori_web_view_has_selection (MIDORI_WEB_VIEW (web_view)))
uri = midori_web_view_get_link_uri (MIDORI_WEB_VIEW (web_view));
if (uri)
{
- /* Create the menuitem manually instead of from the action
- because otherwise the menuitem has an accelerator label. */
action = _action_by_name (browser, "BookmarkAdd");
- g_object_get (action, "stock-id", &stock_id, NULL);
- gtk_stock_lookup (stock_id, &stockitem);
- menuitem = gtk_image_menu_item_new_with_mnemonic (stockitem.label);
- image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image);
- g_free (stock_id);
- gtk_widget_show (menuitem);
+ menuitem = sokoke_action_create_popup_menu_item (action);
g_signal_connect (menuitem, "activate",
G_CALLBACK (midori_web_view_bookmark_add_cb), web_view);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
if (!uri && !has_selection)
{
action = _action_by_name (browser, "UndoTabClose");
- menuitem = gtk_action_create_menu_item (action);
+ menuitem = sokoke_action_create_popup_menu_item (action);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
menuitem = gtk_separator_menu_item_new ();
gtk_widget_show (menuitem);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
action = _action_by_name (browser, "BookmarkAdd");
- menuitem = gtk_action_create_menu_item (action);
+ menuitem = sokoke_action_create_popup_menu_item (action);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
action = _action_by_name (browser, "SaveAs");
- menuitem = gtk_action_create_menu_item (action);
+ menuitem = sokoke_action_create_popup_menu_item (action);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
action = _action_by_name (browser, "SourceView");
- menuitem = gtk_action_create_menu_item (action);
+ menuitem = sokoke_action_create_popup_menu_item (action);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
action = _action_by_name (browser, "Print");
- menuitem = gtk_action_create_menu_item (action);
+ menuitem = sokoke_action_create_popup_menu_item (action);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
}
}
const gchar* title)
{
/* Create an xfce header with icon and title
- This returns NULL if the desktop is not xfce */
+ This returns NULL if the desktop is not Xfce */
if (sokoke_get_desktop () == SOKOKE_DESKTOP_XFCE)
{
GtkWidget* entry = gtk_entry_new ();
sokoke_object_get_int (gpointer object,
const gchar* property)
{
- gint value;
+ gint value = 0;
g_return_val_if_fail (object != NULL, FALSE);
g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
sokoke_object_get_boolean (gpointer object,
const gchar* property)
{
- gboolean value;
+ gboolean value = FALSE;
g_return_val_if_fail (object != NULL, FALSE);
g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
g_object_get (object, property, &value, NULL);
return value;
}
+
+/**
+ * sokoke_action_create_popup_menu_item:
+ * @action: a #GtkAction
+ *
+ * Creates a menu item from an action, much like
+ * gtk_action_create_menu_item() but it won't
+ * display an accelerator.
+ *
+ * Return value: a new #GtkMenuItem
+ **/
+GtkWidget*
+sokoke_action_create_popup_menu_item (GtkAction* action)
+{
+ gchar* label;
+ gchar* stock_id;
+ gboolean sensitive;
+ GtkStockItem stockitem;
+ GtkWidget* menuitem;
+ GtkWidget* image;
+
+ g_object_get (action, "label", &label,
+ "stock-id", &stock_id, "sensitive", &sensitive, NULL);
+ if (label)
+ {
+ menuitem = gtk_image_menu_item_new_with_mnemonic (label);
+ g_free (label);
+ }
+ else
+ {
+ gtk_stock_lookup (stock_id, &stockitem);
+ menuitem = gtk_image_menu_item_new_with_mnemonic (stockitem.label);
+ gtk_stock_item_free (&stockitem);
+ }
+ gtk_widget_set_sensitive (menuitem, sensitive);
+ image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image);
+ gtk_widget_show (menuitem);
+
+ g_free (stock_id);
+
+ return menuitem;
+}