pidgin/pidgin

Parents 5ee47cc23b41
Children 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/
--- 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;