--- a/pidgin/gtkroomlist.c Thu Aug 25 23:25:12 2022 -0500
+++ b/pidgin/gtkroomlist.c Fri Aug 26 00:13:48 2022 -0500
@@ -56,7 +56,7 @@
- GtkWidget *popover_menu;
PurpleRoomlist *roomlist;
@@ -297,6 +297,10 @@
pidgin_roomlist_join(dialog);
+ case GTK_RESPONSE_CLOSE: + case GTK_RESPONSE_DELETE_EVENT: + gtk_window_destroy(GTK_WINDOW(gtk_dialog)); @@ -362,29 +366,28 @@
-room_click_cb(GtkWidget *tv, GdkEvent *event, gpointer data) {
+room_click_cb(G_GNUC_UNUSED GtkGestureClick *self, gint n_press, gdouble x, + gdouble y, gpointer data) PidginRoomlistDialog *dialog = data;
- if (!gdk_event_triggers_context_menu((GdkEvent *)event))
- gdk_event_get_position(event, &x, &y);
- if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), x, y, NULL, NULL, NULL, NULL))
+ if(!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(dialog->tree), (gint)x, + (gint)y, NULL, NULL, NULL, NULL)) - gtk_popover_set_pointing_to(GTK_POPOVER(dialog->popover_menu),
+ gtk_popover_set_pointing_to(GTK_POPOVER(dialog->popover), &(const GdkRectangle){(int)x, (int)y, 0, 0});
- gtk_popover_popup(GTK_POPOVER(dialog->popover_menu));
+ gtk_popover_popup(GTK_POPOVER(dialog->popover));
pidgin_roomlist_query_tooltip(GtkWidget *widget, int x, int y,
gboolean keyboard_mode, GtkTooltip *tooltip,
@@ -492,7 +495,7 @@
gtk_widget_class_bind_template_child(widget_class, PidginRoomlistDialog,
gtk_widget_class_bind_template_child(widget_class, PidginRoomlistDialog,
gtk_widget_class_bind_template_callback(widget_class, close_request_cb);
gtk_widget_class_bind_template_callback(widget_class, row_activated_cb);
--- a/pidgin/resources/Roomlist/roomlist.ui Thu Aug 25 23:25:12 2022 -0500
+++ b/pidgin/resources/Roomlist/roomlist.ui Fri Aug 26 00:13:48 2022 -0500
@@ -16,179 +16,148 @@
You should have received a copy of the GNU General Public License
along with this library; if not, see <https://www.gnu.org/licenses/>.
<requires lib="gtk" version="4.0"/>
<requires lib="pidgin" version="3.0"/>
+ <!-- interface-license-type gplv2 --> + <!-- interface-name Pidgin --> + <!-- interface-description Internet Messenger --> + <!-- interface-copyright Pidgin Developers <devel@pidgin.im> --> <object class="PidginAccountStore" id="accounts"/>
<template class="PidginRoomlistDialog" parent="GtkDialog">
<property name="title" translatable="1">Room List</property>
- <property name="role">room list</property>
- <property name="type-hint">dialog</property>
<signal name="close-request" handler="close_request_cb" swapped="no"/>
<signal name="response" handler="pidgin_roomlist_response_cb" swapped="no"/>
<child internal-child="content_area">
<property name="orientation">vertical</property>
- <property name="spacing">2</property>
+ <property name="spacing">12</property> - <property name="orientation">vertical</property>
- <property name="spacing">12</property>
+ <property name="spacing">5</property> - <object class="GtkBox">
- <property name="spacing">5</property>
- <object class="GtkLabel" id="label1">
- <property name="halign">start</property>
- <property name="label" translatable="1">_Account:</property>
- <property name="use-underline">1</property>
- <property name="mnemonic-widget">account_widget</property>
- <relation type="label-for" target="account_widget"/>
- <object class="PidginAccountChooser" id="account_widget">
- <property name="hexpand">1</property>
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="model">accounts</property>
- <property name="active">0</property>
- <property name="halign">fill</property>
- <signal name="changed" handler="dialog_select_account_cb" object="PidginRoomlistDialog" swapped="no"/>
- <relation type="labelled-by" target="label1"/>
+ <object class="GtkLabel" id="label1"> + <property name="halign">start</property> + <property name="label" translatable="1">_Account:</property> + <property name="use-underline">1</property> + <property name="mnemonic-widget">account_widget</property> - <object class="GtkScrolledWindow" id="sw">
- <property name="vexpand">1</property>
+ <object class="PidginAccountChooser" id="account_widget"> + <property name="hexpand">1</property> + <property name="can-focus">1</property> + <property name="model">accounts</property> + <property name="active">0</property> + <property name="halign">fill</property> + <signal name="changed" handler="dialog_select_account_cb" object="PidginRoomlistDialog" swapped="no"/> + <relation name="labelled-by">label1</relation> + <object class="GtkScrolledWindow" id="sw"> + <property name="vexpand">1</property> + <property name="focusable">1</property> + <property name="min-content-height">250</property> + <property name="child"> + <object class="GtkTreeView" id="tree"> <property name="focusable">1</property>
- <property name="shadow-type">in</property>
- <property name="min-content-height">250</property>
- <property name="valign">fill</property>
- <property name="child">
- <object class="GtkTreeView" id="tree">
- <property name="focusable">1</property>
- <property name="search-column">1</property>
- <signal name="button-press-event" handler="room_click_cb" object="PidginRoomlistDialog" swapped="no"/>
- <signal name="query-tooltip" handler="pidgin_roomlist_query_tooltip" object="PidginRoomlistDialog" swapped="no"/>
- <signal name="row-activated" handler="row_activated_cb" object="PidginRoomlistDialog" swapped="no"/>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="tree_selection">
- <signal name="changed" handler="selection_changed_cb" object="PidginRoomlistDialog" swapped="no"/>
+ <property name="search-column">1</property> + <signal name="query-tooltip" handler="pidgin_roomlist_query_tooltip" object="PidginRoomlistDialog" swapped="no"/> + <signal name="row-activated" handler="row_activated_cb" object="PidginRoomlistDialog" swapped="no"/> + <object class="GtkGestureClick"> + <property name="button">3</property> + <signal name="pressed" handler="room_click_cb" object="PidginRoomlistDialog" swapped="no"/> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="tree_selection"> + <signal name="changed" handler="selection_changed_cb" object="PidginRoomlistDialog" swapped="no"/> + <object class="GtkPopoverMenu" id="popover"> + <property name="menu-model">popover_menu</property> + <object class="GtkTreeViewColumn"> + <property name="title" translatable="1">Name</property> - <object class="GtkTreeViewColumn">
- <property name="title" translatable="1">Name</property>
- <object class="GtkCellRendererText"/>
- <attribute name="markup">1</attribute>
- <object class="GtkTreeViewColumn">
- <property name="title" translatable="1">Description</property>
- <object class="GtkCellRendererText"/>
- <attribute name="markup">2</attribute>
+ <object class="GtkCellRendererText"/> + <attribute name="markup">1</attribute>
+ <object class="GtkTreeViewColumn"> + <property name="title" translatable="1">Description</property> + <object class="GtkCellRendererText"/> + <attribute name="markup">2</attribute>
- <object class="GtkProgressBar" id="progress" />
+ <object class="GtkProgressBar" id="progress">
- <object class="GtkBox">
- <property name="valign">center</property>
- <property name="can-focus">False</property>
- <object class="GtkButton" id="stop_button">
- <property name="label">_Stop</property>
- <property name="sensitive">0</property>
- <property name="focusable">1</property>
- <property name="receives-default">1</property>
- <property name="use-underline">1</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- <object class="GtkButton" id="list_button">
- <property name="label" translatable="1">_Get List</property>
- <property name="focusable">1</property>
- <property name="receives-default">1</property>
- <property name="use-underline">1</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <object class="GtkButton" id="add_button">
- <property name="label" translatable="1">_Add Chat</property>
- <property name="sensitive">0</property>
- <property name="focusable">1</property>
- <property name="receives-default">1</property>
- <property name="use-underline">1</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- <object class="GtkButton" id="join_button">
- <property name="label" translatable="1">_Join</property>
- <property name="sensitive">0</property>
- <property name="focusable">1</property>
- <property name="receives-default">1</property>
- <property name="use-underline">1</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- <object class="GtkButton" id="close_button">
- <property name="label">_Close</property>
- <property name="focusable">1</property>
- <property name="receives-default">1</property>
- <property name="use-underline">1</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">4</property>
+ <object class="GtkButton" id="stop_button"> + <property name="label">_Stop</property> + <property name="sensitive">0</property> + <property name="focusable">1</property> + <property name="receives-default">1</property> + <property name="use-underline">1</property> + <object class="GtkButton" id="list_button"> + <property name="label" translatable="1">_Get List</property> + <property name="focusable">1</property> + <property name="receives-default">1</property> + <property name="use-underline">1</property> + <object class="GtkButton" id="add_button"> + <property name="label" translatable="1">_Add Chat</property> + <property name="sensitive">0</property> + <property name="focusable">1</property> + <property name="receives-default">1</property> + <property name="use-underline">1</property> + <object class="GtkButton" id="join_button"> + <property name="label" translatable="1">_Join</property> + <property name="sensitive">0</property> + <property name="focusable">1</property> + <property name="receives-default">1</property> + <property name="use-underline">1</property> + <object class="GtkButton" id="close_button"> + <property name="label">_Close</property> + <property name="focusable">1</property> + <property name="receives-default">1</property> + <property name="use-underline">1</property> @@ -196,7 +165,7 @@
<action-widget response="1">list_button</action-widget>
<action-widget response="2">add_button</action-widget>
<action-widget response="3">join_button</action-widget>
- <action-widget response="-6">close_button</action-widget>
+ <action-widget response="-7">close_button</action-widget>