--- a/doc/reference/pidgin/pidgin-docs.xml Sun Nov 01 04:47:52 2020 -0600
+++ b/doc/reference/pidgin/pidgin-docs.xml Sun Nov 01 04:48:35 2020 -0600
@@ -65,6 +65,7 @@
<xi:include href="xml/pidginbuddylistmenu.xml" />
<xi:include href="xml/pidginclosebutton.xml" />
<xi:include href="xml/pidgincontactcompletion.xml" />
+ <xi:include href="xml/pidginconversationwindow.xml" /> <xi:include href="xml/pidgindebug.xml" />
<xi:include href="xml/pidgindialog.xml" />
<xi:include href="xml/pidgingdkpixbuf.xml" />
--- a/pidgin/glade/pidgin3.xml.in Sun Nov 01 04:47:52 2020 -0600
+++ b/pidgin/glade/pidgin3.xml.in Sun Nov 01 04:48:35 2020 -0600
@@ -7,6 +7,7 @@
<glade-widget-class name="PidginAccountFilterConnected" generic-name="account_filter_connected" title="FilterConnected"/>
<glade-widget-class name="PidginAccountFilterProtocol" generic-name="account_filter_protocol" title="FilterProtocol"/>
<glade-widget-class name="PidginCloseButton" generic-name="close-button" title="CloseButton"/>
+ <glade-widget-class name="PidginConversationWindow" generic-name="conversation_window" title="ConversationWindow"/> <glade-widget-class name="PidginDialog" generic-name="dialog" title="Dialog"/>
<glade-widget-class name="PidginInviteDialog" generic-name="invite_dialog" title="InviteDialog"/>
<glade-widget-class name="PidginMenuTray" generic-name="menu_tray" title="MenuTray"/>
@@ -21,6 +22,7 @@
<glade-widget-class-ref name="PidginAccountFilterConnected"/>
<glade-widget-class-ref name="PidginAccountFilterProtocol"/>
<glade-widget-class-ref name="PidginCloseButton"/>
+ <glade-widget-class-ref name="PidginConversationWindow"/> <glade-widget-class-ref name="PidginDialog"/>
<glade-widget-class-ref name="PidginInviteDialog"/>
<glade-widget-class-ref name="PidginMenuTray"/>
--- a/pidgin/gtkconv.c Sun Nov 01 04:47:52 2020 -0600
+++ b/pidgin/gtkconv.c Sun Nov 01 04:48:35 2020 -0600
@@ -52,6 +52,7 @@
#include "pidginclosebutton.h"
+#include "pidginconversationwindow.h" #include "pidgingdkpixbuf.h"
#include "pidgininvitedialog.h"
@@ -7621,10 +7622,11 @@
window_list = g_list_append(window_list, win);
- win->window = pidgin_window_new(NULL, 0, "conversation", TRUE);
+ win->window = pidgin_conversation_window_new(); /*_pidgin_widget_set_accessible_name(win->window, "Conversations");*/
- if (!gtk_get_current_event_state(&state))
+ if(!gtk_get_current_event_state(&state)) { gtk_window_set_focus_on_map(GTK_WINDOW(win->window), FALSE);
/* Etan: I really think this entire function call should happen only
* when we are on Windows but I was informed that back before we used
@@ -7713,7 +7715,8 @@
g_signal_connect(G_OBJECT(win->notebook), "button_release_event",
G_CALLBACK(notebook_release_cb), win);
- testidea = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ testidea = pidgin_conversation_window_get_vbox(PIDGIN_CONVERSATION_WINDOW(win->window)); + gtk_container_add(GTK_CONTAINER(win->window), testidea); menubar = setup_menubar(win);
@@ -7721,10 +7724,6 @@
gtk_box_pack_start(GTK_BOX(testidea), win->notebook, TRUE, TRUE, 0);
- gtk_container_add(GTK_CONTAINER(win->window), testidea);
- gtk_widget_show(testidea);
/* Update the plugin actions when plugins are (un)loaded */
purple_signal_connect(purple_plugins_get_handle(), "plugin-load",
win, PURPLE_CALLBACK(plugin_changed_cb), win);
--- a/pidgin/meson.build Sun Nov 01 04:47:52 2020 -0600
+++ b/pidgin/meson.build Sun Nov 01 04:48:35 2020 -0600
@@ -45,6 +45,7 @@
'pidgincontactcompletion.c',
+ 'pidginconversationwindow.c', @@ -111,6 +112,7 @@
'pidgincontactcompletion.h',
+ 'pidginconversationwindow.h', --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin/pidginconversationwindow.c Sun Nov 01 04:48:35 2020 -0600
@@ -0,0 +1,71 @@
+ * Pidgin - Internet Messenger + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * Pidgin is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#include "pidginconversationwindow.h" +struct _PidginConversationWindow { + GtkApplicationWindow parent; +G_DEFINE_TYPE(PidginConversationWindow, pidgin_conversation_window, + GTK_TYPE_APPLICATION_WINDOW) +/****************************************************************************** + * GObjectImplementation + *****************************************************************************/ +pidgin_conversation_window_init(PidginConversationWindow *window) { + gtk_widget_init_template(GTK_WIDGET(window)); + gtk_window_set_application(GTK_WINDOW(window), + GTK_APPLICATION(g_application_get_default())); +pidgin_conversation_window_class_init(PidginConversationWindowClass *klass) { + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); + gtk_widget_class_set_template_from_resource( + "/im/pidgin/Pidgin/Conversations/window.ui" + gtk_widget_class_bind_template_child(widget_class, PidginConversationWindow, +/****************************************************************************** + *****************************************************************************/ +pidgin_conversation_window_new(void) { + return GTK_WIDGET(g_object_new(PIDGIN_TYPE_CONVERSATION_WINDOW, NULL)); +pidgin_conversation_window_get_vbox(PidginConversationWindow *window) { + g_return_val_if_fail(PIDGIN_IS_CONVERSATION_WINDOW(window), NULL); --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin/pidginconversationwindow.h Sun Nov 01 04:48:35 2020 -0600
@@ -0,0 +1,73 @@
+ * Pidgin - Internet Messenger + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * Pidgin is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#if !defined(PIDGIN_GLOBAL_HEADER_INSIDE) && !defined(PIDGIN_COMPILATION) +# error "only <pidgin.h> may be included directly" +#ifndef PIDGIN_CONVERSATION_WINDOW_H +#define PIDGIN_CONVERSATION_WINDOW_H + * SECTION:pidginconversationwindow + * @section_id: pidgin-pidginconversationwindow + * @short_description: The main conversation window widget. + * @title: Conversation window widget + * #PidginConversationWindow is a widget that contains #PidginConversations. +#define PIDGIN_TYPE_CONVERSATION_WINDOW (pidgin_conversation_window_get_type()) +G_DECLARE_FINAL_TYPE(PidginConversationWindow, pidgin_conversation_window, + PIDGIN, CONVERSATION_WINDOW, GtkApplicationWindow) + * pidgin_conversation_window_new: + * Creates a new #PidginConversationWindow instance. + * Returns: (transfer full): The new #PidginConversationWindow instance. +GtkWidget *pidgin_conversation_window_new(void); + * pidgin_conversation_window_get_vbox: + * @window: The #PidginConversationWindow instance. + * Gets the main vertical box of @window. + * Returns: (transfer none): The main vertical box of @window. +GtkWidget *pidgin_conversation_window_get_vbox(PidginConversationWindow *window); +#endif /* PIDGIN_CONVERSATION_WINDOW_H */ --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin/resources/Conversations/window.ui Sun Nov 01 04:48:35 2020 -0600
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.2 +Pidgin - Internet Messenger +Copyright (C) Pidgin Developers <devel@pidgin.im> +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, see <https://www.gnu.org/licenses/>. + <requires lib="gtk+" version="3.20"/> + <!-- interface-license-type gplv2 --> + <!-- interface-name Pidgin --> + <!-- interface-description Internet Messenger --> + <!-- interface-copyright Pidgin Developers <devel@pidgin.im> --> + <template class="PidginConversationWindow" parent="GtkApplicationWindow"> + <property name="can_focus">False</property> + <property name="role">conversation</property> + <child type="titlebar"> + <object class="GtkBox" id="vbox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> --- a/pidgin/resources/pidgin.gresource.xml Sun Nov 01 04:47:52 2020 -0600
+++ b/pidgin/resources/pidgin.gresource.xml Sun Nov 01 04:48:35 2020 -0600
@@ -12,6 +12,7 @@
<file compressed="true">BuddyList/menu.ui</file>
<file compressed="true">Conversations/invite_dialog.ui</file>
<file compressed="true">Conversations/tab-label.css</file>
+ <file compressed="true">Conversations/window.ui</file> <file compressed="true">Debug/debug.ui</file>
<file compressed="true">Debug/filter.css</file>
<file compressed="true">Debug/plugininfo.ui</file>
--- a/po/POTFILES.in Sun Nov 01 04:47:52 2020 -0600
+++ b/po/POTFILES.in Sun Nov 01 04:48:35 2020 -0600
@@ -351,6 +351,7 @@
pidgin/pidginattachment.c
pidgin/pidginclosebutton.c
pidgin/pidgincontactcompletion.c
+pidgin/pidginconversationwindow.c