Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xviewer-plugins for openSUSE:Factory
checked in at 2026-10-07 19:32:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xviewer-plugins (Old)
and /work/SRC/openSUSE:Factory/.xviewer-plugins.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xviewer-plugins"
Wed Oct 7 19:32:32 2026 rev:9 rq:1383022 version:3.4.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/xviewer-plugins/xviewer-plugins.changes
2026-04-18 21:35:17.490914162 +0200
+++
/work/SRC/openSUSE:Factory/.xviewer-plugins.new.3698736/xviewer-plugins.changes
2026-10-07 19:33:06.987921558 +0200
@@ -1,0 +2,8 @@
+Tue Oct 6 20:36:34 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 3.4.4:
+ * map plugin: Replace libchamplain with osm-gps-map.
+- remove empty light-theme plugin subpackage
+- fix suggests and buildrequires
+
+-------------------------------------------------------------------
@@ -17 +25 @@
-- udate to 3.4.0:
+- update to 3.4.0:
Old:
----
xviewer-plugins-3.4.3.tar.gz
New:
----
xviewer-plugins-3.4.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xviewer-plugins.spec ++++++
--- /var/tmp/diff_new_pack.HRYTfz/_old 2026-10-07 19:33:07.715951963 +0200
+++ /var/tmp/diff_new_pack.HRYTfz/_new 2026-10-07 19:33:07.716952005 +0200
@@ -17,7 +17,7 @@
Name: xviewer-plugins
-Version: 3.4.3
+Version: 3.4.4
Release: 0
Summary: A collection of plugins for xviewer
License: GPL-2.0-or-later
@@ -27,23 +27,20 @@
BuildRequires: fdupes
BuildRequires: meson
BuildRequires: pkgconfig
-BuildRequires: pkgconfig(champlain-gtk-0.12)
-BuildRequires: pkgconfig(clutter-1.0) >= 1.9.4
-BuildRequires: pkgconfig(clutter-gtk-1.0) >= 1.1.2
BuildRequires: pkgconfig(glib-2.0) >= 2.32.0
BuildRequires: pkgconfig(gtk+-3.0) >= 3.10.0
BuildRequires: pkgconfig(libexif) >= 0.6.16
BuildRequires: pkgconfig(libpeas-1.0) >= 0.7.4
BuildRequires: pkgconfig(libpeas-gtk-1.0) >= 1.12.0
+BuildRequires: pkgconfig(osmgpsmap-1.0)
BuildRequires: pkgconfig(xviewer) >= 3.2.1
Requires: xviewer
Suggests: xviewer-plugin-exif-display
-Suggests: xviewer-plugin-exif-export-to-folder
-Suggests: xviewer-plugin-exif-light-theme
-Suggests: xviewer-plugin-exif-map
-Suggests: xviewer-plugin-exif-pythonconsole
-Suggests: xviewer-plugin-exif-send-by-mail
-Suggests: xviewer-plugin-exif-slideshowshuffle
+Suggests: xviewer-plugin-export-to-folder
+Suggests: xviewer-plugin-map
+Suggests: xviewer-plugin-pythonconsole
+Suggests: xviewer-plugin-send-by-mail
+Suggests: xviewer-plugin-slideshowshuffle
Enhances: xviewer
%description
@@ -71,13 +68,6 @@
%description -n xviewer-plugin-export-to-folder
xviewer export to directory plugin
-%package -n xviewer-plugin-light-theme
-Summary: Xviewer light-theme plugin
-Requires: %{name}-data = %{version}
-
-%description -n xviewer-plugin-light-theme
-xviewer Light Theme plugin
-
%package -n xviewer-plugin-map
Summary: Xviewer map plugin
Requires: %{name}-data = %{version}
@@ -122,8 +112,8 @@
%fdupes %{buildroot}
%files
-%license COPYING README.md
-%doc NEWS xviewer-plugins.SUSE
+%license COPYING
+%doc README.md NEWS xviewer-plugins.SUSE
%files -n %{name}-data
%license COPYING
@@ -143,8 +133,6 @@
%{_datadir}/glib-2.0/schemas/org.x.viewer.plugins.export-to-folder.gschema.xml
%{_prefix}/lib/xviewer/plugins/export-to-folder.{py,plugin}
-%files -n xviewer-plugin-light-theme
-
%files -n xviewer-plugin-map
%{_datadir}/metainfo/xviewer-map.metainfo.xml
%{_prefix}/lib/xviewer/plugins/{map.plugin,libmap.so}
++++++ xviewer-plugins-3.4.3.tar.gz -> xviewer-plugins-3.4.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xviewer-plugins-3.4.3/debian/changelog
new/xviewer-plugins-3.4.4/debian/changelog
--- old/xviewer-plugins-3.4.3/debian/changelog 2025-11-21 15:21:27.000000000
+0100
+++ new/xviewer-plugins-3.4.4/debian/changelog 2026-07-02 13:33:11.000000000
+0200
@@ -1,3 +1,10 @@
+xviewer-plugins (3.4.4) alfa; urgency=medium
+
+ [ Michael Webster ]
+ * map plugin: Replace libchamplain with osm-gps-map.
+
+ -- Clement Lefebvre <[email protected]> Thu, 02 Jul 2026 13:33:03 +0200
+
xviewer-plugins (3.4.3) zena; urgency=medium
* Switch to XApp symbolic icons
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xviewer-plugins-3.4.3/debian/control
new/xviewer-plugins-3.4.4/debian/control
--- old/xviewer-plugins-3.4.3/debian/control 2025-11-21 15:21:27.000000000
+0100
+++ new/xviewer-plugins-3.4.4/debian/control 2026-07-02 13:33:11.000000000
+0200
@@ -7,10 +7,7 @@
gettext,
gsettings-desktop-schemas-dev,
libcinnamon-desktop-dev (>=3.2.0),
- libchamplain-0.12-dev,
- libchamplain-gtk-0.12-dev,
- libclutter-1.0-dev (>= 1.9.4),
- libclutter-gtk-1.0-dev (>= 1.1.2),
+ libosmgpsmap-1.0-dev,
liblcms2-dev,
libexempi-dev,
libexif-dev (>= 0.6.16),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xviewer-plugins-3.4.3/meson.build
new/xviewer-plugins-3.4.4/meson.build
--- old/xviewer-plugins-3.4.3/meson.build 2025-11-21 15:21:27.000000000
+0100
+++ new/xviewer-plugins-3.4.4/meson.build 2026-07-02 13:33:11.000000000
+0200
@@ -1,4 +1,4 @@
-project('xviewer-plugins', 'c', version : '3.4.3')
+project('xviewer-plugins', 'c', version : '3.4.4')
gnome = import('gnome')
i18n = import('i18n')
@@ -24,10 +24,7 @@
plugin_libdir = prefix / 'lib' / 'xviewer' / 'plugins'
plugin_datadir = prefix / datadir / 'xviewer' / 'plugins'
-champlain = dependency('champlain-0.12')
-champlain_gtk = dependency('champlain-gtk-0.12')
-clutter = dependency('clutter-1.0', version: '>=1.9.4')
-clutter_gtk = dependency('clutter-gtk-1.0', version: '>=1.1.2')
+osmgpsmap = dependency('osmgpsmap-1.0', version: '>=1.1.0')
exif = dependency('libexif', version: '>=0.6.16')
glib = dependency('glib-2.0', version: '>=2.32.0')
gtk = dependency('gtk+-3.0', version: '>=3.3.8')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xviewer-plugins-3.4.3/plugins/map/meson.build
new/xviewer-plugins-3.4.4/plugins/map/meson.build
--- old/xviewer-plugins-3.4.3/plugins/map/meson.build 2025-11-21
15:21:27.000000000 +0100
+++ new/xviewer-plugins-3.4.4/plugins/map/meson.build 2026-07-02
13:33:11.000000000 +0200
@@ -24,7 +24,7 @@
shared_library(
plugin_name,
'xviewer-map-plugin.c',
- dependencies: [config_h, champlain_gtk, clutter_gtk, exif, glib, gtk,
libpeas, xviewer],
+ dependencies: [config_h, osmgpsmap, exif, glib, gtk, libpeas, xviewer],
install: true,
install_dir: plugin_libdir,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xviewer-plugins-3.4.3/plugins/map/xviewer-map-plugin.c
new/xviewer-plugins-3.4.4/plugins/map/xviewer-map-plugin.c
--- old/xviewer-plugins-3.4.3/plugins/map/xviewer-map-plugin.c 2025-11-21
15:21:27.000000000 +0100
+++ new/xviewer-plugins-3.4.4/plugins/map/xviewer-map-plugin.c 2026-07-02
13:33:11.000000000 +0200
@@ -20,9 +20,7 @@
#include <math.h>
#include <string.h>
-#include <champlain/champlain.h>
-#include <champlain-gtk/champlain-gtk.h>
-#include <clutter-gtk/clutter-gtk.h>
+#include <osm-gps-map.h>
#include <libexif/exif-data.h>
#include <libexif/exif-tag.h>
@@ -39,16 +37,14 @@
G_IMPLEMENT_INTERFACE_DYNAMIC (XVIEWER_TYPE_WINDOW_ACTIVATABLE,
xviewer_window_activatable_iface_init))
-#define FACTOR 2.0
+#define MARKER_ICON_SMALL 16
+#define MARKER_ICON_LARGE 24
+#define MARKER_HIT_RADIUS_PX 16
static void
xviewer_map_plugin_init (XviewerMapPlugin *plugin)
{
xviewer_debug_message (DEBUG_PLUGINS, "XviewerMapPlugin initializing");
- if (gtk_clutter_init (NULL, NULL) != CLUTTER_INIT_SUCCESS)
- {
- g_warning ("XviewerMapPlugin: gtk_clutter_init failed!");
- }
}
static void
@@ -59,36 +55,27 @@
G_OBJECT_CLASS (xviewer_map_plugin_parent_class)->finalize (object);
}
-static void
-update_marker_image (ChamplainLabel *marker,
- GtkIconSize size)
+static GdkPixbuf *
+load_marker_pixbuf (gint size)
{
- GtkWidget *widget;
- ClutterActor *thumb;
+ GtkIconTheme *theme = gtk_icon_theme_get_default ();
+ GdkPixbuf *pixbuf = NULL;
- widget = gtk_button_new ();
- thumb = gtk_clutter_texture_new ();
- if (G_UNLIKELY (!gtk_clutter_texture_set_from_icon_name
(GTK_CLUTTER_TEXTURE (thumb),
- widget,
-
"mark-location",
- size, NULL)))
- {
- /* mark-location doesn't appear to be a "standard" icon yet,
- * so try falling back to image-x-generic as before if
- * it is not available */
- if (G_UNLIKELY (!gtk_clutter_texture_set_from_icon_name
(GTK_CLUTTER_TEXTURE (thumb),
- widget,
-
"image-x-generic",
- size,
NULL)))
- {
- g_warning ("Could not load icon for map marker. "
- "Please install a suitable icon theme!");
- }
+ pixbuf = gtk_icon_theme_load_icon (theme, "mark-location", size,
+ GTK_ICON_LOOKUP_FORCE_SIZE, NULL);
+ if (pixbuf == NULL) {
+ pixbuf = gtk_icon_theme_load_icon (theme, "image-x-generic",
+ size,
+ GTK_ICON_LOOKUP_FORCE_SIZE,
+ NULL);
}
- /* don't need to unref widget because it is floating */
+ if (pixbuf == NULL) {
+ g_warning ("Could not load icon for map marker. "
+ "Please install a suitable icon theme!");
+ }
- champlain_label_set_image (marker, thumb);
+ return pixbuf;
}
#define MAP_EXIF_ENTRY_IS_GPS_RATIONAL(e) ( e && \
@@ -190,22 +177,118 @@
return FALSE;
}
-static gboolean
-change_image (ChamplainLabel *marker,
- ClutterEvent *event,
- XviewerMapPlugin *plugin)
+static void
+get_marker_coords (OsmGpsMapImage *marker,
+ gdouble *lat,
+ gdouble *lon)
+{
+ const OsmGpsMapPoint *pt;
+ float flat = 0.0f, flon = 0.0f;
+
+ pt = osm_gps_map_image_get_point (marker);
+ if (pt) {
+ osm_gps_map_point_get_degrees ((OsmGpsMapPoint *) pt,
+ &flat, &flon);
+ }
+ *lat = (gdouble) flat;
+ *lon = (gdouble) flon;
+}
+
+static OsmGpsMapImage *
+replace_marker_pixbuf (XviewerMapPlugin *plugin,
+ OsmGpsMapImage *marker,
+ GdkPixbuf *pixbuf)
{
XviewerImage *image;
+ OsmGpsMapImage *new_marker;
+ gdouble lat, lon;
+
+ if (!marker || !pixbuf)
+ return marker;
image = g_object_get_data (G_OBJECT (marker), "image");
+ get_marker_coords (marker, &lat, &lon);
+
+ plugin->markers = g_list_remove (plugin->markers, marker);
+ if (image)
+ g_object_set_data (G_OBJECT (image), "marker", NULL);
+ osm_gps_map_image_remove (plugin->map, marker);
+
+ new_marker = osm_gps_map_image_add_with_alignment (plugin->map,
+ (float) lat,
+ (float) lon,
+ pixbuf,
+ 0.5f, 1.0f);
+ if (image) {
+ g_object_set_data (G_OBJECT (new_marker), "image", image);
+ g_object_set_data_full (G_OBJECT (image), "marker",
+ new_marker, NULL);
+ }
+ plugin->markers = g_list_prepend (plugin->markers, new_marker);
+
+ return new_marker;
+}
+
+static OsmGpsMapImage *
+find_marker_at_event (XviewerMapPlugin *plugin,
+ GdkEventButton *event)
+{
+ GList *l;
+ gint best_dist2 = MARKER_HIT_RADIUS_PX * MARKER_HIT_RADIUS_PX;
+ OsmGpsMapImage *best = NULL;
+
+ for (l = plugin->markers; l != NULL; l = l->next) {
+ OsmGpsMapImage *m = l->data;
+ const OsmGpsMapPoint *pt;
+ OsmGpsMapPoint tmp;
+ gint x = 0, y = 0, dx, dy, d2;
+ float flat = 0.0f, flon = 0.0f;
+
+ pt = osm_gps_map_image_get_point (m);
+ if (!pt)
+ continue;
+
+ osm_gps_map_point_get_degrees ((OsmGpsMapPoint *) pt,
+ &flat, &flon);
+ osm_gps_map_point_set_degrees (&tmp, flat, flon);
+ osm_gps_map_convert_geographic_to_screen (plugin->map,
+ &tmp, &x, &y);
+
+ dx = (gint) event->x - x;
+ dy = (gint) event->y - y;
+ d2 = dx * dx + dy * dy;
+ if (d2 < best_dist2) {
+ best_dist2 = d2;
+ best = m;
+ }
+ }
+ return best;
+}
+
+static gboolean
+map_button_press_cb (GtkWidget *widget,
+ GdkEventButton *event,
+ XviewerMapPlugin *plugin)
+{
+ OsmGpsMapImage *marker;
+ XviewerImage *image;
+
+ if (event->button != GDK_BUTTON_PRIMARY ||
+ event->type != GDK_BUTTON_PRESS)
+ return FALSE;
+
+ marker = find_marker_at_event (plugin, event);
+ if (!marker)
+ return FALSE;
+
+ image = g_object_get_data (G_OBJECT (marker), "image");
if (!image)
return FALSE;
xviewer_thumb_view_set_current_image (XVIEWER_THUMB_VIEW
(plugin->thumbview),
- image, TRUE);
-
- return FALSE;
+ image, TRUE);
+ return TRUE;
}
static void
@@ -222,24 +305,21 @@
return;
if (get_coordinates (image, &lat, &lon)) {
- ChamplainLabel *marker;
+ OsmGpsMapImage *marker;
- marker = CHAMPLAIN_LABEL (champlain_label_new ());
- champlain_label_set_draw_background (CHAMPLAIN_LABEL (marker),
FALSE);
- update_marker_image (marker, GTK_ICON_SIZE_MENU);
+ if (!plugin->icon_small)
+ return;
- g_object_set_data_full (G_OBJECT (image), "marker", marker,
(GDestroyNotify) clutter_actor_destroy);
- g_object_set_data (G_OBJECT (marker), "image", image);
+ marker = osm_gps_map_image_add_with_alignment (plugin->map,
+ (float) lat,
+ (float) lon,
+
plugin->icon_small,
+ 0.5f, 1.0f);
- champlain_location_set_location (CHAMPLAIN_LOCATION (marker),
- lat,
- lon);
- champlain_marker_layer_add_marker (plugin->layer,
CHAMPLAIN_MARKER (marker));
-
- g_signal_connect (marker,
- "button-release-event",
- G_CALLBACK (change_image),
- plugin);
+ g_object_set_data (G_OBJECT (marker), "image", image);
+ g_object_set_data_full (G_OBJECT (image), "marker",
+ marker, NULL);
+ plugin->markers = g_list_prepend (plugin->markers, marker);
}
}
@@ -249,7 +329,7 @@
XviewerMapPlugin *plugin)
{
XviewerImage *image;
- ChamplainLabel *marker;
+ OsmGpsMapImage *marker;
if (!xviewer_thumb_view_get_n_selected (view))
return;
@@ -263,29 +343,29 @@
if (marker) {
gdouble lat, lon;
- g_object_get (marker,
- "latitude", &lat,
- "longitude", &lon,
- NULL);
-
- champlain_view_go_to (CHAMPLAIN_VIEW (plugin->map),
- lat,
- lon);
+ get_marker_coords (marker, &lat, &lon);
+ osm_gps_map_set_center (plugin->map,
+ (float) lat, (float) lon);
/* Reset the previous selection */
- if (plugin->marker)
- update_marker_image (plugin->marker,
GTK_ICON_SIZE_MENU);
+ if (plugin->marker && plugin->marker != marker) {
+ replace_marker_pixbuf (plugin, plugin->marker,
+ plugin->icon_small);
+ }
- plugin->marker = marker;
- update_marker_image (plugin->marker,
GTK_ICON_SIZE_LARGE_TOOLBAR);
+ /* Highlight new selection */
+ plugin->marker = replace_marker_pixbuf (plugin, marker,
+ plugin->icon_large);
gtk_widget_set_sensitive (plugin->jump_to_button, TRUE);
}
else {
gtk_widget_set_sensitive (plugin->jump_to_button, FALSE);
/* Reset the previous selection */
- if (plugin->marker)
- update_marker_image (plugin->marker,
GTK_ICON_SIZE_MENU);
+ if (plugin->marker) {
+ replace_marker_pixbuf (plugin, plugin->marker,
+ plugin->icon_small);
+ }
plugin->marker = NULL;
}
@@ -297,33 +377,27 @@
jump_to (GtkWidget *widget,
XviewerMapPlugin *plugin)
{
+ gdouble lat, lon;
+
if (!plugin->marker)
return;
- gdouble lat, lon;
-
- g_object_get (plugin->marker,
- "latitude", &lat,
- "longitude", &lon,
- NULL);
-
- champlain_view_go_to (CHAMPLAIN_VIEW (plugin->map),
- lat,
- lon);
+ get_marker_coords (plugin->marker, &lat, &lon);
+ osm_gps_map_set_center (plugin->map, (float) lat, (float) lon);
}
static void
zoom_in (GtkWidget *widget,
- ChamplainView *view)
+ XviewerMapPlugin *plugin)
{
- champlain_view_zoom_in (view);
+ osm_gps_map_zoom_in (plugin->map);
}
static void
zoom_out (GtkWidget *widget,
- ChamplainView *view)
+ XviewerMapPlugin *plugin)
{
- champlain_view_zoom_out (view);
+ osm_gps_map_zoom_out (plugin->map);
}
static gboolean
@@ -349,11 +423,41 @@
}
static void
+fit_all_markers (XviewerMapPlugin *plugin)
+{
+ GList *l;
+ gdouble min_lat = 90.0, max_lat = -90.0;
+ gdouble min_lon = 180.0, max_lon = -180.0;
+ gboolean any = FALSE;
+
+ for (l = plugin->markers; l != NULL; l = l->next) {
+ gdouble lat, lon;
+ get_marker_coords (l->data, &lat, &lon);
+ if (lat < min_lat) min_lat = lat;
+ if (lat > max_lat) max_lat = lat;
+ if (lon < min_lon) min_lon = lon;
+ if (lon > max_lon) max_lon = lon;
+ any = TRUE;
+ }
+
+ if (!any)
+ return;
+
+ if (min_lat == max_lat && min_lon == max_lon) {
+ osm_gps_map_set_center_and_zoom (plugin->map,
+ (float) min_lat,
+ (float) min_lon, 15);
+ } else {
+ osm_gps_map_zoom_fit_bbox (plugin->map,
+ (float) min_lat, (float) max_lat,
+ (float) min_lon, (float) max_lon);
+ }
+}
+
+static void
prepared_cb (XviewerWindow *window,
XviewerMapPlugin *plugin)
{
- GList *markers;
-
plugin->store = xviewer_window_get_store (plugin->window);
if (!plugin->store)
@@ -380,17 +484,7 @@
*/
selection_changed_cb (XVIEWER_THUMB_VIEW (plugin->thumbview), plugin);
- /* zoom in and the be sure that all markers are visible.
- * This is useful to have a good starting zoom level where
- * you can see a available markers on the map
- */
- markers = champlain_marker_layer_get_markers (plugin->layer);
- if(markers != NULL)
- {
- champlain_view_set_zoom_level (plugin->map, 15);
- champlain_view_ensure_layers_visible (plugin->map, FALSE);
- g_list_free (markers);
- }
+ fit_all_markers (plugin);
}
static void
@@ -398,33 +492,27 @@
{
XviewerMapPlugin *plugin = XVIEWER_MAP_PLUGIN (activatable);
GtkWidget *sidebar, *vbox, *bbox, *button, *viewport;
- GtkWidget *embed;
- ClutterActor *scale;
xviewer_debug (DEBUG_PLUGINS);
- /* This is a workaround until bug 590692 is fixed. */
+ plugin->icon_small = load_marker_pixbuf (MARKER_ICON_SMALL);
+ plugin->icon_large = load_marker_pixbuf (MARKER_ICON_LARGE);
+
viewport = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (viewport), GTK_SHADOW_ETCHED_IN);
- /*viewport = gtk_viewport_new (NULL, NULL);
- gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport),
- GTK_SHADOW_ETCHED_IN);*/
- embed = gtk_champlain_embed_new ();
- plugin->map = gtk_champlain_embed_get_view (GTK_CHAMPLAIN_EMBED
(embed));
+ plugin->map = OSM_GPS_MAP (osm_gps_map_new ());
g_object_set (G_OBJECT (plugin->map),
- "zoom-level", 3,
- "kinetic-mode", TRUE,
- "goto-animation-duration", 1000,
- NULL);
- scale = champlain_scale_new ();
- champlain_scale_connect_view (CHAMPLAIN_SCALE (scale), plugin->map);
- /* align to the bottom left */
- champlain_view_bin_layout_add (plugin->map, scale,
- CLUTTER_BIN_ALIGNMENT_START,
- CLUTTER_BIN_ALIGNMENT_END);
+ "map-source", OSM_GPS_MAP_SOURCE_OPENSTREETMAP,
+ NULL);
+ osm_gps_map_set_zoom (plugin->map, 3);
+
+ plugin->button_press_id = g_signal_connect (plugin->map,
+ "button-press-event",
+ G_CALLBACK
(map_button_press_cb),
+ plugin);
- gtk_container_add (GTK_CONTAINER (viewport), embed);
+ gtk_container_add (GTK_CONTAINER (viewport), GTK_WIDGET (plugin->map));
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
bbox = gtk_toolbar_new ();
@@ -448,7 +536,7 @@
g_signal_connect (button,
"clicked",
G_CALLBACK (zoom_in),
- plugin->map);
+ plugin);
gtk_container_add (GTK_CONTAINER (bbox), button);
button = GTK_WIDGET (gtk_tool_button_new (NULL, NULL));
@@ -457,12 +545,9 @@
g_signal_connect (button,
"clicked",
G_CALLBACK (zoom_out),
- plugin->map);
+ plugin);
gtk_container_add (GTK_CONTAINER (bbox), button);
- plugin->layer = champlain_marker_layer_new_full
(CHAMPLAIN_SELECTION_SINGLE);
- champlain_view_add_layer (CHAMPLAIN_VIEW (plugin->map), CHAMPLAIN_LAYER
(plugin->layer));
-
sidebar = xviewer_window_get_sidebar (plugin->window);
plugin->viewport = vbox;
gtk_box_pack_start (GTK_BOX (vbox), bbox, FALSE, FALSE, 0);
@@ -503,6 +588,12 @@
plugin->win_prepared_id = 0;
}
+ g_list_free (plugin->markers);
+ plugin->markers = NULL;
+ plugin->marker = NULL;
+
+ g_clear_object (&plugin->icon_small);
+ g_clear_object (&plugin->icon_large);
}
static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xviewer-plugins-3.4.3/plugins/map/xviewer-map-plugin.h
new/xviewer-plugins-3.4.4/plugins/map/xviewer-map-plugin.h
--- old/xviewer-plugins-3.4.3/plugins/map/xviewer-map-plugin.h 2025-11-21
15:21:27.000000000 +0100
+++ new/xviewer-plugins-3.4.4/plugins/map/xviewer-map-plugin.h 2026-07-02
13:33:11.000000000 +0200
@@ -4,7 +4,7 @@
#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
-#include <champlain/champlain.h>
+#include <osm-gps-map.h>
#include <xviewer/xviewer-list-store.h>
#include <xviewer/xviewer-window.h>
#include <libpeas/peas-extension-base.h>
@@ -41,19 +41,25 @@
/* Handlers ids */
gulong selection_changed_id;
gulong win_prepared_id;
+ gulong button_press_id;
GtkWidget *thumbview;
GtkWidget *viewport;
- ChamplainView *map;
+ OsmGpsMap *map;
GtkWidget *jump_to_button;
- ChamplainMarkerLayer *layer;
+ /* Marker pixbufs */
+ GdkPixbuf *icon_small;
+ GdkPixbuf *icon_large;
+
+ /* All markers (OsmGpsMapImage*) so we can hit-test them */
+ GList *markers;
XviewerListStore *store;
- /* The current selected position */
- ChamplainLabel *marker;
+ /* The current selected marker */
+ OsmGpsMapImage *marker;
};
/*