Remove the gtk-dnd-hints stuff that should have been removed when we removed dnd from the conversation window.
Testing Done:
Compiled.
Reviewed at https://reviews.imfreedom.org/r/1098/
--- a/pidgin/gtkconv.c Sat Oct 23 02:18:02 2021 -0500
+++ b/pidgin/gtkconv.c Mon Oct 25 03:10:05 2021 -0500
@@ -43,7 +43,6 @@
-#include "gtkdnd-hints.h"
@@ -4120,7 +4119,6 @@
-#include "gtkdnd-hints.h"
--- a/pidgin/gtkdnd-hints.c Sat Oct 23 02:18:02 2021 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,227 +0,0 @@
- * 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, or(at your option)
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA.
-#include "gtkdnd-hints.h"
-#include <gdk-pixbuf/gdk-pixbuf.h>
- * Info about each hint widget. See PidginDndHintWindowId enum.
-static HintWindowInfo hint_windows[] = {
- { NULL, "arrow-up.xpm", -13/2, 0 },
- { NULL, "arrow-down.xpm", -13/2, -16 },
- { NULL, "arrow-left.xpm", 0, -13/2 },
- { NULL, "arrow-right.xpm", -16, -13/2 },
-dnd_hints_realized_cb(GtkWidget *window, GtkWidget *pix)
- cairo_surface_t *surface;
- cairo_region_t *region;
- pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(pix));
- surface = cairo_image_surface_create(CAIRO_FORMAT_A1,
- gdk_pixbuf_get_width(pixbuf),
- gdk_pixbuf_get_height(pixbuf));
- cr = cairo_create(surface);
- gdk_cairo_set_source_pixbuf(cr, pixbuf, 0, 0);
- region = gdk_cairo_region_create_from_surface(surface);
- gtk_widget_shape_combine_region(window, region);
- cairo_region_destroy(region);
- cairo_surface_destroy(surface);
-dnd_hints_init_window(const gchar *fname)
- pixbuf = gdk_pixbuf_new_from_file(fname, NULL);
- g_return_val_if_fail(pixbuf, NULL);
- win = gtk_window_new(GTK_WINDOW_POPUP);
- pix = gtk_image_new_from_pixbuf(pixbuf);
- gtk_container_add(GTK_CONTAINER(win), pix);
- gtk_widget_show_all(pix);
- g_object_unref(G_OBJECT(pixbuf));
- g_signal_connect(G_OBJECT(win), "realize",
- G_CALLBACK(dnd_hints_realized_cb), pix);
-get_widget_coords(GtkWidget *w, gint *x1, gint *y1, gint *x2, gint *y2)
- gint ox, oy, width, height;
- GtkWidget *parent = gtk_widget_get_parent(w);
- if (parent && gtk_widget_get_window(parent) == gtk_widget_get_window(w))
- GtkAllocation allocation;
- gtk_widget_get_allocation(w, &allocation);
- get_widget_coords(parent, &ox, &oy, NULL, NULL);
- height = allocation.height;
- width = allocation.width;
- GdkWindow *win = gtk_widget_get_window(w);
- gdk_window_get_origin(win, &ox, &oy);
- width = gdk_window_get_width(win);
- height = gdk_window_get_height(win);
- if (x2) *x2 = ox + width;
- if (y2) *y2 = oy + height;
- static gboolean done = FALSE;
- for (i = 0; hint_windows[i].filename != NULL; i++) {
- fname = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin",
- hint_windows[i].filename, NULL);
- hint_windows[i].widget = dnd_hints_init_window(fname);
-pidgin_dnd_hints_hide_all(void)
- for (i = 0; hint_windows[i].filename != NULL; i++)
- pidgin_dnd_hints_hide(i);
-pidgin_dnd_hints_hide(PidginDndHintWindowId i)
- GtkWidget *w = hint_windows[i].widget;
- if (w && GTK_IS_WIDGET(w))
-pidgin_dnd_hints_show(PidginDndHintWindowId id, gint x, gint y)
- w = hint_windows[id].widget;
- if (w && GTK_IS_WIDGET(w))
- gtk_window_move(GTK_WINDOW(w), hint_windows[id].ox + x,
- hint_windows[id].oy + y);
-pidgin_dnd_hints_show_relative(PidginDndHintWindowId id, GtkWidget *widget,
- PidginDndHintPosition horiz, PidginDndHintPosition vert)
- GtkAllocation allocation;
- gtk_widget_get_allocation(widget, &allocation);
- get_widget_coords(widget, &x1, &y1, &x2, &y2);
- x1 += allocation.x; x2 += allocation.x;
- y1 += allocation.y; y2 += allocation.y;
- case HINT_POSITION_RIGHT: x = x2; break;
- case HINT_POSITION_LEFT: x = x1; break;
- case HINT_POSITION_CENTER: x = (x1 + x2) / 2; break;
- /* should not happen */
- g_warning("Invalid parameter to pidgin_dnd_hints_show_relative");
- case HINT_POSITION_TOP: y = y1; break;
- case HINT_POSITION_BOTTOM: y = y2; break;
- case HINT_POSITION_CENTER: y = (y1 + y2) / 2; break;
- /* should not happen */
- g_warning("Invalid parameter to pidgin_dnd_hints_show_relative");
- pidgin_dnd_hints_show(id, x, y);
--- a/pidgin/gtkdnd-hints.h Sat Oct 23 02:18:02 2021 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/* 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, or (at your option)
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA.
-#if !defined(PIDGIN_GLOBAL_HEADER_INSIDE) && !defined(PIDGIN_COMPILATION)
-# error "only <pidgin.h> may be included directly"
-#ifndef _PIDGIN_DND_HINTS_H_
-#define _PIDGIN_DND_HINTS_H_
- * PidginDndHintWindowId:
- * @HINT_ARROW_UP: Up arrow.
- * @HINT_ARROW_DOWN: Down arrow.
- * @HINT_ARROW_LEFT: Left arrow.
- * @HINT_ARROW_RIGHT: Right arrow.
- * Conversation drag-and-drop arrow types.
-} PidginDndHintWindowId;
- * PidginDndHintPosition:
- * @HINT_POSITION_RIGHT: Position to the right of a tab.
- * @HINT_POSITION_LEFT: Position to the left of a tab.
- * @HINT_POSITION_TOP: Position above a tab.
- * @HINT_POSITION_BOTTOM: Position below a tab.
- * @HINT_POSITION_CENTER: Position in the center of a tab.
- * Conversation drag-and-drop arrow positions.
-} PidginDndHintPosition;
- * pidgin_dnd_hints_show:
- * @id: The ID of the hint to show.
- * @x: The X location to show it at.
- * @y: The Y location to show it at.
- * Shows a drag-and-drop hint at the specified location.
-void pidgin_dnd_hints_show(PidginDndHintWindowId id, gint x, gint y);
- * pidgin_dnd_hints_hide:
- * @id: The ID of the hint to hide.
- * Hides the specified drag-and-drop hint.
-void pidgin_dnd_hints_hide(PidginDndHintWindowId id);
- * pidgin_dnd_hints_hide_all:
- * Hides all drag-and-drop hints.
-void pidgin_dnd_hints_hide_all(void);
- * pidgin_dnd_hints_show_relative:
- * @id: The ID of the hint.
- * @widget: The widget that the hint is relative to.
- * @horiz: The horizontal relative position.
- * @vert: The vertical relative position.
- * Shows a drag-and-drop hint relative to a widget.
-void pidgin_dnd_hints_show_relative(PidginDndHintWindowId id, GtkWidget *widget,
- PidginDndHintPosition horiz, PidginDndHintPosition vert);
-#endif /* _PIDGIN_DND_HINTS_H_ */
--- a/pidgin/meson.build Sat Oct 23 02:18:02 2021 -0500
+++ b/pidgin/meson.build Mon Oct 25 03:10:05 2021 -0500
@@ -5,7 +5,6 @@
'gtkicon-theme-loader.c',
@@ -71,7 +70,6 @@
'gtkicon-theme-loader.h',
@@ -137,7 +135,6 @@
--- a/pidgin/pixmaps/arrow-down.xpm Sat Oct 23 02:18:02 2021 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-static char * arrow_down_xpm[] = {
--- a/pidgin/pixmaps/arrow-left.xpm Sat Oct 23 02:18:02 2021 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-static char * arrow_left_xpm[] = {
--- a/pidgin/pixmaps/arrow-right.xpm Sat Oct 23 02:18:02 2021 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-static char * arrow_right_xpm[] = {
--- a/pidgin/pixmaps/arrow-up.xpm Sat Oct 23 02:18:02 2021 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-static char * arrow_up_xpm[] = {
--- a/pidgin/pixmaps/meson.build Sat Oct 23 02:18:02 2021 -0500
+++ b/pidgin/pixmaps/meson.build Mon Oct 25 03:10:05 2021 -0500
@@ -3,8 +3,7 @@
- install_data('logo.png', 'arrow-down.xpm', 'arrow-left.xpm', 'arrow-right.xpm', 'arrow-up.xpm',
- install_dir : pidginpixmapdir)
+ install_data('logo.png', install_dir : pidginpixmapdir) # Some of these don't use install_subdir because it deletes the target,
# and some target directories probably have something in them, for those