Browse Source

Make 'Add Items' dialog insert new items after the plugin that was clicked

(Old svn revision: 19166)
upstream/xfce4-panel-4.10.1
Jasper Huijsmans 18 years ago
parent
commit
cd77f1247b
  1. 2
      panel/panel-app-messages.c
  2. 4
      panel/panel-app.c
  3. 2
      panel/panel-app.h
  4. 20
      panel/panel-dialogs.c
  5. 2
      panel/panel-dialogs.h
  6. 11
      panel/panel.c
  7. 3
      panel/panel.h

2
panel/panel-app-messages.c

@ -65,7 +65,7 @@ client_event_received (GtkWidget *win, GdkEventClient *ev)
panel_app_quit_noconfirm ();
break;
case PANEL_APP_ADD:
panel_app_customize_items ();
panel_app_customize_items (NULL);
break;
case PANEL_APP_ABOUT:
panel_app_about ();

4
panel/panel-app.c

@ -563,9 +563,9 @@ panel_app_customize (void)
}
void
panel_app_customize_items (void)
panel_app_customize_items (GtkWidget *active_item)
{
add_items_dialog (panel_app.panel_list);
add_items_dialog (panel_app.panel_list, active_item);
}
void

2
panel/panel-app.h

@ -49,7 +49,7 @@ void panel_app_queue_save (void);
void panel_app_customize (void);
void panel_app_customize_items (void);
void panel_app_customize_items (GtkWidget *active_item);
void panel_app_save (void);

20
panel/panel-dialogs.c

@ -49,6 +49,8 @@ struct _PanelItemsDialog
GPtrArray *panels;
Panel *panel;
int current;
GtkWidget *active;
GtkTooltips *tips;
@ -195,7 +197,20 @@ add_selected_item (PanelItemsDialog *pid)
if (!xfce_panel_item_manager_is_available (info->name))
return FALSE;
panel_add_item (pid->panel, info->name);
if (pid->active)
{
PanelPrivate *priv = PANEL_GET_PRIVATE (pid->panel);
int n;
n = xfce_itembar_get_item_index (XFCE_ITEMBAR (priv->itembar),
pid->active);
panel_insert_item (pid->panel, info->name, n + 1);
}
else
{
panel_add_item (pid->panel, info->name);
}
return TRUE;
}
@ -532,7 +547,7 @@ items_dialog_panel_destroyed (PanelItemsDialog *pid)
}
void
add_items_dialog (GPtrArray *panels)
add_items_dialog (GPtrArray *panels, GtkWidget *active_item)
{
PanelItemsDialog *pid;
Panel *panel;
@ -552,6 +567,7 @@ add_items_dialog (GPtrArray *panels)
pid->current = panel_app_get_current_panel();
panel = pid->panel =
g_ptr_array_index (panels, pid->current);
pid->active = active_item;
/* available items */
pid->items = xfce_panel_item_manager_get_item_info_list ();

2
panel/panel-dialogs.h

@ -22,7 +22,7 @@
#ifndef _PANEL_DIALOGS_H
#define _PANEL_DIALOGS_H
void add_items_dialog (GPtrArray *panels);
void add_items_dialog (GPtrArray *panels, GtkWidget *active_item);
void panel_manager_dialog (GPtrArray *panels);

11
panel/panel.c

@ -86,11 +86,6 @@ static void panel_menu_deactivated (Panel *panel);
static void panel_menu_opened (Panel *panel);
/* add items */
static void panel_insert_item (Panel *panel,
const char *name,
int position);
/* DND dest */
static void _panel_drag_data_received (GtkWidget *widget,
GdkDragContext *context,
@ -649,8 +644,8 @@ _panel_create_menu (Panel *panel)
gtk_widget_show (img);
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), img);
g_signal_connect (mi, "activate", G_CALLBACK (panel_app_customize_items),
NULL);
g_signal_connect_swapped (mi, "activate",
G_CALLBACK (panel_app_customize_items), NULL);
mi = gtk_separator_menu_item_new ();
gtk_widget_show (mi);
@ -867,7 +862,7 @@ panel_add_item (Panel * panel, const char *name)
panel_add_item_with_id (panel, name, _panel_get_new_id ());
}
static void
void
panel_insert_item (Panel *panel, const char *name, int position)
{
GtkWidget *item;

3
panel/panel.h

@ -69,8 +69,9 @@ void panel_free_data (Panel *panel);
/* adding items */
void panel_add_item (Panel *panel, const char *name);
void panel_add_item_with_id (Panel *panel, const char *name, const char *id);
void panel_insert_item (Panel *panel, const char *name, int position);
void panel_add_item_with_id (Panel *panel, const char *name, const char *id);
/* configuration */
XfcePanelItemConfig *panel_get_item_config_list (Panel *panel);

Loading…
Cancel
Save