Mercurial > pidgin.yaz
comparison pidgin/gtkimhtmltoolbar.c @ 18802:5a5ca6438308
show toolbar menu on button press, rather than button release. Fixes #2352
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Mon, 06 Aug 2007 01:36:57 +0000 |
parents | 2cb148647f8f |
children | 1744f915edb2 |
comparison
equal
deleted
inserted
replaced
18801:d9692b58ac2c | 18802:5a5ca6438308 |
---|---|
937 | 937 |
938 if (savy > *y + ythickness + 1) | 938 if (savy > *y + ythickness + 1) |
939 *y -= widget->allocation.height; | 939 *y -= widget->allocation.height; |
940 } | 940 } |
941 | 941 |
942 static void pidgin_menu_clicked(GtkWidget *button, GtkMenu *menu) | 942 static void pidgin_menu_clicked(GtkWidget *button, GdkEventButton *event, GtkMenu *menu) |
943 { | 943 { |
944 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) { | 944 gtk_widget_show_all(GTK_WIDGET(menu)); |
945 gtk_widget_show_all(GTK_WIDGET(menu)); | 945 gtk_menu_popup(menu, NULL, NULL, menu_position_func, button, 0, gtk_get_current_event_time()); |
946 gtk_menu_popup(menu, NULL, NULL, menu_position_func, button, 0, gtk_get_current_event_time()); | |
947 } | |
948 } | 946 } |
949 | 947 |
950 static void pidgin_menu_deactivate(GtkWidget *menu, GtkToggleButton *button) | 948 static void pidgin_menu_deactivate(GtkWidget *menu, GtkToggleButton *button) |
951 { | 949 { |
952 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE); | 950 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE); |
1177 gtk_menu_shell_append(GTK_MENU_SHELL(font_menu), menuitem); | 1175 gtk_menu_shell_append(GTK_MENU_SHELL(font_menu), menuitem); |
1178 g_signal_connect(G_OBJECT(old), "notify::sensitive", | 1176 g_signal_connect(G_OBJECT(old), "notify::sensitive", |
1179 G_CALLBACK(button_sensitiveness_changed), menuitem); | 1177 G_CALLBACK(button_sensitiveness_changed), menuitem); |
1180 } | 1178 } |
1181 | 1179 |
1182 g_signal_connect(G_OBJECT(font_button), "clicked", G_CALLBACK(pidgin_menu_clicked), font_menu); | 1180 g_signal_connect(G_OBJECT(font_button), "button-press-event", G_CALLBACK(pidgin_menu_clicked), font_menu); |
1183 g_signal_connect(G_OBJECT(font_menu), "deactivate", G_CALLBACK(pidgin_menu_deactivate), font_button); | 1181 g_signal_connect(G_OBJECT(font_menu), "deactivate", G_CALLBACK(pidgin_menu_deactivate), font_button); |
1184 | 1182 |
1185 /* Sep */ | 1183 /* Sep */ |
1186 sep = gtk_vseparator_new(); | 1184 sep = gtk_vseparator_new(); |
1187 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); | 1185 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); |
1218 g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(gtk_button_clicked), toolbar->link); | 1216 g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(gtk_button_clicked), toolbar->link); |
1219 gtk_menu_shell_append(GTK_MENU_SHELL(insert_menu), menuitem); | 1217 gtk_menu_shell_append(GTK_MENU_SHELL(insert_menu), menuitem); |
1220 g_signal_connect(G_OBJECT(toolbar->link), "notify::sensitive", | 1218 g_signal_connect(G_OBJECT(toolbar->link), "notify::sensitive", |
1221 G_CALLBACK(button_sensitiveness_changed), menuitem); | 1219 G_CALLBACK(button_sensitiveness_changed), menuitem); |
1222 | 1220 |
1223 g_signal_connect(G_OBJECT(insert_button), "clicked", G_CALLBACK(pidgin_menu_clicked), insert_menu); | 1221 g_signal_connect(G_OBJECT(insert_button), "button-press-event", G_CALLBACK(pidgin_menu_clicked), insert_menu); |
1224 g_signal_connect(G_OBJECT(insert_menu), "deactivate", G_CALLBACK(pidgin_menu_deactivate), insert_button); | 1222 g_signal_connect(G_OBJECT(insert_menu), "deactivate", G_CALLBACK(pidgin_menu_deactivate), insert_button); |
1225 toolbar->sml = NULL; | 1223 toolbar->sml = NULL; |
1226 } | 1224 } |
1227 | 1225 |
1228 GtkWidget *gtk_imhtmltoolbar_new() | 1226 GtkWidget *gtk_imhtmltoolbar_new() |