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()