Remove the conversation tab context menu and force tabs to be on the left

Tue, 01 Dec 2020 00:13:47 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 01 Dec 2020 00:13:47 -0600
changeset 40630
4d28bd5054bb
parent 40629
5ee47cc23b41
child 40631
d16be1c48206

Remove the conversation tab context menu and force tabs to be on the left

Testing Done:
Compiled and ran locally.

Reviewed at https://reviews.imfreedom.org/r/256/

pidgin/gtkconv.c file | annotate | diff | comparison | revisions
pidgin/gtkconvwin.h file | annotate | diff | comparison | revisions
--- a/pidgin/gtkconv.c	Tue Dec 01 00:12:42 2020 -0600
+++ b/pidgin/gtkconv.c	Tue Dec 01 00:13:47 2020 -0600
@@ -7068,171 +7068,6 @@
 }
 
 static void
-close_window(GtkWidget *w, PidginConvWindow *win)
-{
-	close_win_cb(w, NULL, win);
-}
-
-static void
-detach_tab_cb(GtkWidget *w, PidginConvWindow *win)
-{
-	PidginConvWindow *new_window;
-	PidginConversation *gtkconv;
-
-	gtkconv = win->clicked_tab;
-
-	if (!gtkconv)
-		return;
-
-	/* Nothing to do if there's only one tab in the window */
-	if (pidgin_conv_window_get_gtkconv_count(win) == 1)
-		return;
-
-	pidgin_conv_window_remove_gtkconv(win, gtkconv);
-
-	new_window = pidgin_conv_window_new();
-	pidgin_conv_window_add_gtkconv(new_window, gtkconv);
-	pidgin_conv_window_show(new_window);
-}
-
-static void
-close_others_cb(GtkWidget *w, PidginConvWindow *win)
-{
-	GList *iter;
-	PidginConversation *gtkconv;
-
-	gtkconv = win->clicked_tab;
-
-	if (!gtkconv)
-		return;
-
-	for (iter = pidgin_conv_window_get_gtkconvs(win); iter; )
-	{
-		PidginConversation *gconv = iter->data;
-		iter = iter->next;
-
-		if (gconv != gtkconv)
-		{
-			close_conv_cb(NULL, gconv);
-		}
-	}
-}
-
-static void
-close_tab_cb(GtkWidget *w, PidginConvWindow *win)
-{
-	PidginConversation *gtkconv;
-
-	gtkconv = win->clicked_tab;
-
-	if (gtkconv)
-		close_conv_cb(NULL, gtkconv);
-}
-
-static void
-notebook_menu_switch_cb(GtkWidget *item, GtkWidget *child)
-{
-	GtkNotebook *notebook;
-	int index;
-
-	notebook = GTK_NOTEBOOK(gtk_widget_get_parent(child));
-	index = gtk_notebook_page_num(notebook, child);
-	gtk_notebook_set_current_page(notebook, index);
-}
-
-static void
-notebook_menu_update_label_cb(GtkWidget *child, GParamSpec *pspec,
-                              GtkNotebook *notebook)
-{
-	GtkWidget *item;
-	GtkWidget *label;
-
-	item = g_object_get_data(G_OBJECT(child), "popup-menu-item");
-	label = gtk_bin_get_child(GTK_BIN(item));
-	if (label)
-		gtk_container_remove(GTK_CONTAINER(item), label);
-
-	label = gtk_notebook_get_menu_label(notebook, child);
-	if (label) {
-		gtk_widget_show(label);
-		gtk_container_add(GTK_CONTAINER(item), label);
-		gtk_widget_show(item);
-	} else {
-		gtk_widget_hide(item);
-	}
-}
-
-static void
-notebook_add_tab_to_menu_cb(GtkNotebook *notebook, GtkWidget *child,
-                            guint page_num, PidginConvWindow *win)
-{
-	GtkWidget *item;
-	GtkWidget *label;
-
-	item = gtk_menu_item_new();
-	label = gtk_notebook_get_menu_label(notebook, child);
-	if (label) {
-		gtk_widget_show(label);
-		gtk_container_add(GTK_CONTAINER(item), label);
-		gtk_widget_show(item);
-	}
-
-	g_signal_connect(child, "child-notify::menu-label",
-	                 G_CALLBACK(notebook_menu_update_label_cb), notebook); 
-	g_signal_connect(item, "activate",
-	                 G_CALLBACK(notebook_menu_switch_cb), child);
-	g_object_set_data(G_OBJECT(child), "popup-menu-item", item);
-
-	gtk_menu_shell_insert(GTK_MENU_SHELL(win->notebook_menu), item, page_num);
-}
-
-static void
-notebook_remove_tab_from_menu_cb(GtkNotebook *notebook, GtkWidget *child,
-                                 guint page_num, PidginConvWindow *win)
-{
-	GtkWidget *item;
-
-	/* Disconnecting the "child-notify::menu-label" signal. */
-	g_signal_handlers_disconnect_by_data(child, notebook);
-
-	item = g_object_get_data(G_OBJECT(child), "popup-menu-item");
-	gtk_container_remove(GTK_CONTAINER(win->notebook_menu), item);
-}
-
-
-static void
-notebook_reorder_tab_in_menu_cb(GtkNotebook *notebook, GtkWidget *child,
-                                guint page_num, PidginConvWindow *win)
-{
-	GtkWidget *item;
-
-	item = g_object_get_data(G_OBJECT(child), "popup-menu-item");
-	gtk_menu_reorder_child(GTK_MENU(win->notebook_menu), item, page_num);
-}
-
-static gboolean
-notebook_right_click_menu_cb(GtkNotebook *notebook, GdkEventButton *event,
-                             PidginConvWindow *win)
-{
-	GtkWidget *menu;
-	PidginConversation *gtkconv;
-
-	if (!gdk_event_triggers_context_menu((GdkEvent *)event))
-		return FALSE;
-
-	gtkconv = pidgin_conv_window_get_gtkconv_at_index(win,
-			pidgin_conv_get_tab_at_xy(win, event->x_root, event->y_root, NULL));
-
-	win->clicked_tab = gtkconv;
-
-	menu = win->notebook_menu;
-
-	gtk_menu_popup_at_pointer(GTK_MENU(menu), (GdkEvent *)event);
-
-	return TRUE;
-}
-
-static void
 remove_edit_entry(PidginConversation *gtkconv, GtkWidget *entry)
 {
 	g_signal_handlers_disconnect_matched(G_OBJECT(entry), G_SIGNAL_MATCH_DATA,
@@ -7532,11 +7367,8 @@
 pidgin_conv_window_new()
 {
 	PidginConvWindow *win;
-	GtkPositionType pos;
 	GtkWidget *testidea;
 	GtkWidget *menubar;
-	GtkWidget *menu;
-	GtkWidget *item;
 	GdkModifierType state;
 
 	win = g_malloc0(sizeof(PidginConvWindow));
@@ -7576,53 +7408,11 @@
 	/* Create the notebook. */
 	win->notebook = gtk_notebook_new();
 
-	pos = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/tab_side");
-
-	gtk_notebook_set_tab_pos(GTK_NOTEBOOK(win->notebook), pos);
+	gtk_notebook_set_tab_pos(GTK_NOTEBOOK(win->notebook), GTK_POS_LEFT);
 	gtk_notebook_set_scrollable(GTK_NOTEBOOK(win->notebook), TRUE);
 	gtk_notebook_set_show_tabs(GTK_NOTEBOOK(win->notebook), FALSE);
 	gtk_notebook_set_show_border(GTK_NOTEBOOK(win->notebook), TRUE);
 
-	menu = win->notebook_menu = gtk_menu_new();
-
-	pidgin_separator(GTK_WIDGET(menu));
-
-	item = gtk_menu_item_new_with_label(_("Close other tabs"));
-	gtk_widget_show(item);
-	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
-	g_signal_connect(G_OBJECT(item), "activate",
-					G_CALLBACK(close_others_cb), win);
-
-	item = gtk_menu_item_new_with_label(_("Close all tabs"));
-	gtk_widget_show(item);
-	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
-	g_signal_connect(G_OBJECT(item), "activate",
-					G_CALLBACK(close_window), win);
-
-	pidgin_separator(menu);
-
-	item = gtk_menu_item_new_with_label(_("Detach this tab"));
-	gtk_widget_show(item);
-	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
-	g_signal_connect(G_OBJECT(item), "activate",
-					G_CALLBACK(detach_tab_cb), win);
-
-	item = gtk_menu_item_new_with_label(_("Close this tab"));
-	gtk_widget_show(item);
-	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
-	g_signal_connect(G_OBJECT(item), "activate",
-					G_CALLBACK(close_tab_cb), win);
-
-	g_signal_connect(G_OBJECT(win->notebook), "page-added",
-	                 G_CALLBACK(notebook_add_tab_to_menu_cb), win);
-	g_signal_connect(G_OBJECT(win->notebook), "page-removed",
-	                 G_CALLBACK(notebook_remove_tab_from_menu_cb), win);
-	g_signal_connect(G_OBJECT(win->notebook), "page-reordered",
-	                 G_CALLBACK(notebook_reorder_tab_in_menu_cb), win);
-
-	g_signal_connect(G_OBJECT(win->notebook), "button-press-event",
-					G_CALLBACK(notebook_right_click_menu_cb), win);
-
 	gtk_widget_show(win->notebook);
 
 	g_signal_connect(G_OBJECT(win->notebook), "switch_page",
@@ -7688,7 +7478,6 @@
 	purple_prefs_disconnect_by_handle(win);
 	window_list = g_list_remove(window_list, win);
 
-	gtk_widget_destroy(win->notebook_menu);
 	gtk_widget_destroy(win->window);
 
 	g_object_unref(G_OBJECT(win->menu->ui));
--- a/pidgin/gtkconvwin.h	Tue Dec 01 00:12:42 2020 -0600
+++ b/pidgin/gtkconvwin.h	Tue Dec 01 00:13:47 2020 -0600
@@ -98,7 +98,6 @@
 	/*< public >*/
 	GtkWidget *window;
 	GtkWidget *notebook;
-	GtkWidget *notebook_menu;
 	PidginConversation *clicked_tab;
 	GList *gtkconvs;
 

mercurial