author | yippi |
Mon, 27 Sep 2010 21:07:51 +0000 | |
changeset 20108 | 51df67ca9307 |
parent 20036 | 91e0e948a909 |
permissions | -rw-r--r-- |
16558
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
1 |
/jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/menu.c gnome-panel-2.27.92/gnome-panel/menu.c |
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
2 |
--- gnome-panel-2.27.92.old/gnome-panel/menu.c 2009-09-14 13:54:27.541171000 +0100 |
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
3 |
+++ gnome-panel-2.27.92/gnome-panel/menu.c 2009-09-14 13:55:13.776722000 +0100 |
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
4 |
@@ -1821,6 +1821,53 @@ main_menu_append (GtkWidget *main_menu, |
13275 | 5 |
panel_menu_items_append_lock_logout (main_menu); |
6 |
} |
|
7 |
||
8 |
+void |
|
9 |
+run_applications (GtkWidget *widget, gpointer user_data) |
|
10 |
+{ |
|
11 |
+ if (!panel_lockdown_get_restrict_application_launching() && |
|
12 |
+ !panel_lockdown_get_disable_command_line()) { |
|
13 |
+ panel_run_dialog_present (gtk_widget_get_screen (widget), |
|
14 |
+ gtk_get_current_event_time ()); |
|
15 |
+ } |
|
16 |
+} |
|
17 |
+ |
|
18 |
+void |
|
19 |
+applications_menu_append (GtkWidget *main_menu) |
|
20 |
+{ |
|
21 |
+ GtkWidget *item; |
|
22 |
+ GtkWidget *accel_label; |
|
23 |
+ GtkWidget *image; |
|
24 |
+ |
|
25 |
+ if (panel_lockdown_get_disable_command_line()) |
|
26 |
+ return; |
|
27 |
+ |
|
28 |
+ if (!g_object_get_data (G_OBJECT (main_menu), |
|
29 |
+ "panel-menu-needs-appending")) |
|
30 |
+ return; |
|
31 |
+ |
|
32 |
+ g_object_set_data (G_OBJECT (main_menu), |
|
33 |
+ "panel-menu-needs-appending", NULL); |
|
34 |
+ |
|
35 |
+ add_menu_separator (main_menu); |
|
36 |
+ |
|
37 |
+ item = gtk_image_menu_item_new (); |
|
38 |
+ |
|
39 |
+ accel_label = gtk_accel_label_new (_("Run Application...")); |
|
40 |
+ gtk_misc_set_alignment (GTK_MISC (accel_label), 0.0, 0.5); |
|
41 |
+ |
|
42 |
+ gtk_container_add (GTK_CONTAINER (item), accel_label); |
|
43 |
+ gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (accel_label), |
|
44 |
+ GTK_WIDGET (item)); |
|
45 |
+ gtk_widget_show (accel_label); |
|
46 |
+ |
|
47 |
+ image = gtk_image_new_from_icon_name (PANEL_ICON_RUN, panel_menu_icon_get_size ()); |
|
48 |
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); |
|
49 |
+ |
|
50 |
+ g_signal_connect (item, "activate", G_CALLBACK (run_applications), NULL); |
|
51 |
+ gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), item); |
|
52 |
+ gtk_widget_show (item); |
|
53 |
+} |
|
54 |
+ |
|
55 |
GtkWidget * |
|
56 |
create_main_menu (PanelWidget *panel) |
|
57 |
{ |
|
16558
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
58 |
/jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/menu.h gnome-panel-2.27.92/gnome-panel/menu.h |
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
59 |
--- gnome-panel-2.27.92.old/gnome-panel/menu.h 2009-09-14 13:54:27.545416000 +0100 |
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
60 |
+++ gnome-panel-2.27.92/gnome-panel/menu.h 2009-09-14 13:55:13.778639000 +0100 |
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
61 |
@@ -69,6 +69,8 @@ GtkWidget *add_menu_separator (Gt |
13275 | 62 |
|
63 |
gboolean menu_dummy_button_press_event (GtkWidget *menuitem, |
|
64 |
GdkEventButton *event); |
|
65 |
+void run_applications (GtkWidget *widget, gpointer user_data); |
|
66 |
+void applications_menu_append (GtkWidget *main_menu); |
|
67 |
||
68 |
||
69 |
G_END_DECLS |
|
16558
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
70 |
/jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/panel-menu-items.c gnome-panel-2.27.92/gnome-panel/panel-menu-items.c |
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
71 |
--- gnome-panel-2.27.92.old/gnome-panel/panel-menu-items.c 2009-09-14 13:54:27.547045000 +0100 |
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
72 |
+++ gnome-panel-2.27.92/gnome-panel/panel-menu-items.c 2009-09-14 13:55:13.788961000 +0100 |
dea910f9b31f
* patches/gnome-panel-08-launch-menu-indiana.diff : Re-Apply for 2.27.92
mattman
parents:
16497
diff
changeset
|
73 |
@@ -1173,6 +1173,7 @@ panel_desktop_menu_item_append_menu (Gtk |
16497 | 74 |
add_menu_separator (menu); |
75 |
||
76 |
panel_menu_items_append_from_desktop (menu, "yelp.desktop", NULL, FALSE); |
|
20036 | 77 |
+ panel_menu_items_append_from_desktop (menu, "os-about.desktop", NULL, FALSE); |
16497 | 78 |
panel_menu_items_append_from_desktop (menu, "gnome-about.desktop", NULL, FALSE); |
79 |
||
80 |
if (parent->priv->append_lock_logout) |
|
16609
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
81 |
/jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/panel-menu-bar.c gnome-panel-2.27.92/gnome-panel/panel-menu-bar.c |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
82 |
--- gnome-panel-2.27.92.old/gnome-panel/panel-menu-bar.c 2009-09-22 14:37:48.346822883 +0100 |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
83 |
+++ gnome-panel-2.27.92/gnome-panel/panel-menu-bar.c 2009-09-22 14:51:43.685055758 +0100 |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
84 |
@@ -154,13 +154,33 @@ panel_menubar_recreate_menus (PanelMenuB |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
85 |
(PanelDesktopMenuItem *)menubar->priv->desktop_item); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
86 |
|
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
87 |
panel_menu_bar_parent_set ((GtkWidget *)menubar, NULL); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
88 |
+ g_object_set_data (G_OBJECT (menubar->priv->applications_menu), |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
89 |
+ "panel-menu-needs-appending", TRUE); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
90 |
} |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
91 |
} |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
92 |
|
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
93 |
static void |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
94 |
+panel_menu_bar_handle_gmenu_change(GMenuTree *tree, |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
95 |
+ GtkWidget *menu) |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
96 |
+{ |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
97 |
+ g_object_set_data (G_OBJECT (menu), |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
98 |
+ "panel-menu-needs-appending", TRUE); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
99 |
+} |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
100 |
+ |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
101 |
+static void |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
102 |
+panel_menu_bar_remove_gmenu_monitor(GtkWidget *menu, |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
103 |
+ GMenuTree *tree) |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
104 |
+{ |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
105 |
+ gmenu_tree_remove_monitor (tree, |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
106 |
+ (GMenuTreeChangedFunc) panel_menu_bar_handle_gmenu_change, |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
107 |
+ menu); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
108 |
+} |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
109 |
+ |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
110 |
+static void |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
111 |
panel_menu_bar_init (PanelMenuBar *menubar) |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
112 |
{ |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
113 |
GtkWidget *image; |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
114 |
+ GMenuTree *tree; |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
115 |
|
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
116 |
menubar->priv = PANEL_MENU_BAR_GET_PRIVATE (menubar); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
117 |
|
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
118 |
@@ -168,6 +188,20 @@ panel_menu_bar_init (PanelMenuBar *menub |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
119 |
|
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
120 |
menubar->priv->applications_menu = create_applications_menu ("applications.menu", NULL, TRUE); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
121 |
|
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
122 |
+ tree = gmenu_tree_lookup ("applications.menu", GMENU_TREE_FLAGS_NONE); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
123 |
+ |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
124 |
+ gmenu_tree_add_monitor (tree, |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
125 |
+ (GMenuTreeChangedFunc) panel_menu_bar_handle_gmenu_change, |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
126 |
+ menubar->priv->applications_menu); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
127 |
+ g_signal_connect(menubar->priv->applications_menu, "destroy", |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
128 |
+ G_CALLBACK (panel_menu_bar_remove_gmenu_monitor), tree); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
129 |
+ gmenu_tree_unref (tree); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
130 |
+ |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
131 |
+ g_object_set_data (G_OBJECT (menubar->priv->applications_menu), |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
132 |
+ "panel-menu-needs-appending", TRUE); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
133 |
+ g_signal_connect (menubar->priv->applications_menu, "show", |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
134 |
+ G_CALLBACK(applications_menu_append), NULL); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
135 |
+ |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
136 |
menubar->priv->applications_item = panel_image_menu_item_new (); |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
137 |
gtk_menu_item_set_label (GTK_MENU_ITEM (menubar->priv->applications_item), |
69674d67ae95
* patches/gnome-panel-08-launch-menu-indiana.diff : Fix bug #11498,
mattman
parents:
16558
diff
changeset
|
138 |
_("Applications")); |