[med-svn] [Git][med-team/gdpc][master] 2 commits: gtk3.patch: New; port to GTK 3 (#967379).

Yavor Doganov (@yavor-guest) gitlab at salsa.debian.org
Sun Jan 25 10:54:46 GMT 2026



Yavor Doganov pushed to branch master at Debian Med / gdpc


Commits:
b56f509f by Yavor Doganov at 2026-01-25T12:51:01+02:00
gtk3.patch: New; port to GTK 3 (#967379).

- - - - -
51073a77 by Yavor Doganov at 2026-01-25T12:53:23+02:00
(Suggests): Remove gqview, no longer in Debian (#1118130).

- - - - -


4 changed files:

- debian/changelog
- debian/control
- + debian/patches/gtk3.patch
- debian/patches/series


Changes:

=====================================
debian/changelog
=====================================
@@ -1,3 +1,13 @@
+gdpc (2.2.5-17) UNRELEASED; urgency=medium
+
+  * Team upload.
+  * debian/patches/gtk3.patch: New; port to GTK 3 (Closes: #967379).
+  * debian/control (Build-Depends): Replace libgtk2.0-dev with
+    libgtk-3-dev.
+    (Suggests): Remove gqview, no longer in Debian (Closes: #1118130).
+
+ -- Yavor Doganov <yavor at gnu.org>  Sun, 25 Jan 2026 12:48:29 +0200
+
 gdpc (2.2.5-16) unstable; urgency=medium
 
   * Add build support for loongarch64


=====================================
debian/control
=====================================
@@ -5,7 +5,7 @@ Uploaders: Andreas Tille <tille at debian.org>,
 Section: science
 Priority: optional
 Build-Depends: debhelper-compat (= 13),
-               libgtk2.0-dev
+               libgtk-3-dev
 Standards-Version: 4.6.2
 Vcs-Browser: https://salsa.debian.org/med-team/gdpc
 Vcs-Git: https://salsa.debian.org/med-team/gdpc.git
@@ -17,7 +17,6 @@ Architecture: any-amd64 arm64 loong64 mips64el ppc64el riscv64
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Suggests: gdpc-examples (>= ${source:Version}),
-          gqview
 Description: visualiser of molecular dynamic simulations
  gpdc is a graphical program for visualising output data from
  molecular dynamics simulations. It reads input in the standard xyz


=====================================
debian/patches/gtk3.patch
=====================================
@@ -0,0 +1,743 @@
+Description: Port to GTK 3.
+ Drawing is much slower, I couldn't figure out a way to speed it up.
+ This patch also makes the "Reset Orientation" button work.
+ Unfortunately, many other bugs remain unfixed.
+Author: Yavor Doganov <yavor at gnu.org>
+Forwarded: no
+Last-Update: 2026-01-25
+---
+
+--- gdpc.orig/Makefile
++++ gdpc/Makefile
+@@ -1,7 +1,7 @@
+ CC = gcc
+ PKG_CONFIG ?= pkg-config
+-FLAGS=$(CFLAGS) -g -Wall `$(PKG_CONFIG) --cflags gtk+-2.0 gthread-2.0` -DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED
+-LIBS=`$(PKG_CONFIG) --libs gtk+-2.0 gthread-2.0` -lm
++FLAGS=$(CFLAGS) -g -Wall `$(PKG_CONFIG) --cflags gtk+-3.0 gthread-2.0`
++LIBS=`$(PKG_CONFIG) --libs gtk+-3.0 gthread-2.0` -lm
+ bindir ?= /usr/bin
+ 
+ .c.o:
+--- gdpc.orig/colors.c
++++ gdpc/colors.c
+@@ -142,19 +142,16 @@
+ /****************************************************************/
+ gint allocatecolors (GdkColor **colors,gint colorset,gint mode)
+ {
+-gboolean *success;
+ gint i, ncolors=19;
+ gint colcomp;
+ double rcomp, gcomp, bcomp;
+ 
+     if (mode!=2){
+ 	*colors = (GdkColor *) calloc (ncolors, sizeof(GdkColor));
+-	success = (gboolean *) calloc (ncolors, sizeof(gboolean));
+     }
+     else {
+ 	ncolors = 8*17+2;
+ 	*colors = (GdkColor *) calloc (ncolors, sizeof(GdkColor));
+-	success = (gboolean *) calloc (ncolors, sizeof(gboolean));
+     }
+ 
+     if (colorset==1) {
+@@ -348,11 +345,5 @@
+ 	}
+     }
+ 
+-/* When we're done setting the colors we allocate them. */
+-    if (gdk_colormap_alloc_colors(gdk_colormap_get_system(),
+-				  *colors, ncolors, FALSE, 
+-				  FALSE, success))
+-        g_error("Can't allocate colors\n");
+-
+     return ncolors;
+ }
+--- gdpc.orig/drawatoms.c
++++ gdpc/drawatoms.c
+@@ -33,6 +33,13 @@
+ 
+ double FrameTime=0;
+ 
++void color_to_rgba(GdkColor color, GdkRGBA *rgba)
++{
++    rgba->red = color.red / 65535.;
++    rgba->green = color.green / 65535.;
++    rgba->blue = color.blue / 65535.;
++    rgba->alpha = 1.0;
++}
+ 
+ /************************************************************************/
+ /* Transforms relative coordinates in input file to absolute coordinates*/
+@@ -51,16 +58,17 @@
+ /* This function does the actual drawing of the circles accordingly to	*/
+ /* mode.								*/
+ /************************************************************************/
+-void drawcircles(GdkPixmap *pixmap, GdkColor *colors, double xmin, double xmax,
++void drawcircles(cairo_surface_t *pixmap, GdkColor *colors, double xmin, double xmax,
+ 		 double ymin, double ymax, double zmin, double zmax, gint absxsize,
+ 		 gint absysize, gint mode, gint radius, gint vary,
+ 		 struct xyzstruc *coords,gboolean usetypes, gint numtypes,
+ 		 gint numatoms) 
+ {
+ gint x, y, c, i, rtmp;
+-GdkGC *gc;
++GdkRGBA rgba;
++cairo_t *cr;
+ 
+-    gc = gdk_gc_new (pixmap);
++    cr = cairo_create (pixmap);
+ 
+     for(i=0;i<numatoms;i++) {
+ 	x = transf_abs(coords[i].xcoord,xmin,xmax,absxsize);
+@@ -78,54 +86,65 @@
+ 	    }
+ 	    else rtmp = radius;
+ 
+-	    gdk_gc_set_foreground (gc, &colors[c+2]);
++	    color_to_rgba (colors[c+2], &rgba);
++	    gdk_cairo_set_source_rgba (cr, &rgba);
+ 	    if(x>0 && y>0 && x<(absxsize-radius/2) && y<(absysize-radius/2)) {
+ 		if (mode==0) {
+-		    gdk_draw_rectangle(pixmap,gc,TRUE,x-rtmp/2+xborder,
++		    cairo_rectangle (cr, x-rtmp/2+xborder,
+ 					(absysize-y)-rtmp/2+yborder,rtmp,rtmp);
++		    cairo_fill (cr);
+ 		}
+ 		else if (mode==1) {
+-		    gdk_draw_arc(pixmap,gc,TRUE,x-rtmp/2+xborder,
+-				(absysize-y)-rtmp/2+yborder,rtmp,rtmp,0,360*64);
++		    cairo_arc (cr, x + xborder, absysize - y + yborder,
++		               rtmp / 2., 0, 2 * M_PI);
++		    cairo_fill (cr);
+ 		}
+ 		else if (mode==2) {
+-		    gdk_gc_set_foreground (gc, &colors[c*8+2]);
+-		    gdk_draw_arc(pixmap,gc,TRUE,x-rtmp/2+xborder,
+-				 (absysize-y)-rtmp/2+yborder,
+-				 rtmp,rtmp,0,360*64);
+-		    gdk_gc_set_foreground (gc, &colors[c*8+3]);
+-		    gdk_draw_arc(pixmap,gc,TRUE,x-0.453125*rtmp+xborder,
+-				 (absysize-y)-0.453125*rtmp+yborder,
+-				 rtmp*0.875,rtmp*0.875,0,360*64);
+-		    gdk_gc_set_foreground (gc, &colors[c*8+4]);
+-		    gdk_draw_arc(pixmap,gc,TRUE,x-0.40625*rtmp+xborder,
+-				 (absysize-y)-0.40625*rtmp+yborder,
+-				 rtmp*0.75,rtmp*0.75,0,360*64);
+-		    gdk_gc_set_foreground (gc, &colors[c*8+5]);
+-		    gdk_draw_arc(pixmap,gc,TRUE,x-0.359375*rtmp+xborder,
+-				 (absysize-y)-0.359375*rtmp+yborder,
+-				 rtmp*0.625,rtmp*0.625,0,360*64);
+-		    gdk_gc_set_foreground (gc, &colors[c*8+6]);
+-		    gdk_draw_arc(pixmap,gc,TRUE,x-0.3125*rtmp+xborder,
+-				 (absysize-y)-0.3125*rtmp+yborder,
+-				 rtmp*0.5,rtmp*0.5,0,360*64);
+-		    gdk_gc_set_foreground (gc, &colors[c*8+7]);
+-		    gdk_draw_arc(pixmap,gc,TRUE,x-0.265625*rtmp+xborder,
+-				 (absysize-y)-0.265625*rtmp+yborder,
+-				 rtmp*0.375,rtmp*0.375,0,360*64);
+-		    gdk_gc_set_foreground (gc, &colors[c*8+8]);
+-		    gdk_draw_arc(pixmap,gc,TRUE,x-0.2175*rtmp+xborder,
+-				 (absysize-y)-0.2175*rtmp+yborder,
+-				 rtmp*0.25,rtmp*0.25,0,360*64);
+-		    gdk_gc_set_foreground (gc, &colors[c*8+9]);
+-		    gdk_draw_arc(pixmap,gc,TRUE,x-0.155*rtmp+xborder,
+-				 (absysize-y)-0.155*rtmp+yborder,
+-				 rtmp*0.125,rtmp*0.125,0,360*64);
++		    color_to_rgba (colors[c*8+2], &rgba);
++		    gdk_cairo_set_source_rgba (cr, &rgba);
++		    cairo_arc (cr, x + xborder, absysize - y + yborder,
++		               rtmp / 2., 0, 2 * M_PI);
++		    cairo_fill (cr);
++		    color_to_rgba (colors[c*8+3], &rgba);
++		    gdk_cairo_set_source_rgba (cr, &rgba);
++		    cairo_arc (cr, x + xborder, absysize - y + yborder,
++		               rtmp * 0.4375, 0, 2 * M_PI);
++		    cairo_fill (cr);
++		    color_to_rgba (colors[c*8+4], &rgba);
++		    gdk_cairo_set_source_rgba (cr, &rgba);
++		    cairo_arc (cr, x + xborder, absysize - y + yborder,
++		               rtmp * 0.375, 0, 2 * M_PI);
++		    cairo_fill (cr);
++		    color_to_rgba (colors[c*8+5], &rgba);
++		    gdk_cairo_set_source_rgba (cr, &rgba);
++		    cairo_arc (cr, x + xborder, absysize - y + yborder,
++		               rtmp * 0.3125, 0, 2 * M_PI);
++		    cairo_fill (cr);
++		    color_to_rgba (colors[c*8+6], &rgba);
++		    gdk_cairo_set_source_rgba (cr, &rgba);
++		    cairo_arc (cr, x + xborder, absysize - y + yborder,
++		               rtmp * 0.25, 0, 2 * M_PI);
++		    cairo_fill (cr);
++		    color_to_rgba (colors[c*8+7], &rgba);
++		    gdk_cairo_set_source_rgba (cr, &rgba);
++		    cairo_arc (cr, x + xborder, absysize - y + yborder,
++		               rtmp * 0.1875, 0, 2 * M_PI);
++		    cairo_fill (cr);
++		    color_to_rgba (colors[c*8+8], &rgba);
++		    gdk_cairo_set_source_rgba (cr, &rgba);
++		    cairo_arc (cr, x + xborder, absysize - y + yborder,
++		               rtmp * 0.125, 0, 2 * M_PI);
++		    cairo_fill (cr);
++		    color_to_rgba (colors[c*8+9], &rgba);
++		    gdk_cairo_set_source_rgba (cr, &rgba);
++		    cairo_arc (cr, x + xborder, absysize - y + yborder,
++		               rtmp * 0.0625, 0, 2 * M_PI);
++		    cairo_fill (cr);
+ 		}
+ 	    }
+ 	}
+     }
+-    g_object_unref(gc);
++    cairo_destroy (cr);
+ }
+ 
+ 									
+@@ -147,7 +166,7 @@
+ struct xyzstruc *coords;
+ struct GlobalParams *params;
+ 
+-GdkPixmap *pixmap;
++cairo_surface_t *pixmap;
+ GdkColor *colors;
+ 
+     pixmap = DrawData.pixmap;
+@@ -297,7 +316,8 @@
+ /************************************************************************/
+ void cleardrawable(struct DrawStruct DrawData) 
+ {
+-GdkGC *gc;
++GdkRGBA rgba;
++cairo_t *cr;
+ gint bgcol, fgcol;
+ 
+     if (DrawData.params->whitebg) {
+@@ -308,20 +328,24 @@
+ 	fgcol = 1;
+     }
+ 
+-    gc = gdk_gc_new (DrawData.pixmap);
+-    gdk_gc_set_foreground (gc, &DrawData.colors[bgcol]);
+-    gdk_draw_rectangle (DrawData.pixmap, gc, TRUE, 0, 0,
+-			DrawData.params->absxsize+2*xborder,
+-			DrawData.params->absysize+2*yborder);
+-    gdk_gc_set_foreground (gc, &DrawData.colors[fgcol]);
+-    gdk_draw_rectangle (DrawData.pixmap, gc, TRUE, xborder-2, yborder-2,
+-			DrawData.params->absxsize+4,
+-			DrawData.params->absysize+4);
+-    gdk_gc_set_foreground (gc, &DrawData.colors[bgcol]);
+-    gdk_draw_rectangle (DrawData.pixmap, gc, TRUE, xborder, yborder,
+-			DrawData.params->absxsize,
+-			DrawData.params->absysize);
+-    g_object_unref(gc);
++    cr = cairo_create (DrawData.pixmap);
++    color_to_rgba (DrawData.colors[bgcol], &rgba);
++    gdk_cairo_set_source_rgba (cr, &rgba);
++    cairo_rectangle (cr, 0, 0, DrawData.params->absxsize + 2 * xborder,
++                     DrawData.params->absysize + 2 * yborder);
++    cairo_fill (cr);
++    color_to_rgba (DrawData.colors[fgcol], &rgba);
++    gdk_cairo_set_source_rgba (cr, &rgba);
++    cairo_rectangle (cr, xborder - 2, yborder - 2,
++                     DrawData.params->absxsize + 4,
++                     DrawData.params->absysize + 4);
++    cairo_fill (cr);
++    color_to_rgba (DrawData.colors[bgcol], &rgba);
++    gdk_cairo_set_source_rgba (cr, &rgba);
++    cairo_rectangle (cr, xborder, yborder, DrawData.params->absxsize,
++                     DrawData.params->absysize);
++    cairo_fill (cr);
++    cairo_destroy (cr);
+ }
+ 
+ 
+--- gdpc.orig/main.c
++++ gdpc/main.c
+@@ -71,15 +71,15 @@
+ /************************************************************************/
+ /* This function is called when the pause button is pressed.		*/
+ /************************************************************************/
+-void pauseb (GtkWidget *widget, struct GlobalParams *params)
++void pauseb (GtkToggleButton *button, struct GlobalParams *params)
+ {
+ #if Debug 
+-if (GTK_TOGGLE_BUTTON (widget)->active)
++if (gtk_toggle_button_get_active (button))
+     printf("Setting animation on pause.\n");
+ else printf("Unpausing animation.\n");
+ #endif
+ 
+-    params->pausecheck = GTK_TOGGLE_BUTTON (widget)->active;
++    params->pausecheck = gtk_toggle_button_get_active (button);
+ }
+ 
+ 
+@@ -157,18 +157,15 @@
+ /* This function is called when the window is moved, resized etc. 	*/
+ /* It redraws the drawingboard.						*/
+ /************************************************************************/
+-static gint expose_event(GtkWidget *widget, GdkEventExpose *event,
++static gint expose_event(GtkWidget *widget, cairo_t *cr,
+ 			 struct GlobalParams *params)
+ {
+ #if Debug
+ printf("Expose: Drawing window.\n"); 
+ #endif
+ 
+-  gdk_draw_drawable(widget->window,widget->style->white_gc,
+-		  DrawData.pixmap,
+-		  event->area.x, event->area.y,
+-		  event->area.x, event->area.y,
+-		  event->area.width, event->area.height);
++  cairo_set_source_surface (cr, DrawData.pixmap, 0, 0);
++  cairo_paint (cr);
+ 
+   return FALSE;
+ }
+@@ -181,18 +178,23 @@
+ gint configure_event (GtkWidget *widget, GdkEventConfigure *event,
+ 		      struct GlobalParams *params)
+ {
++gint width, height;
++
+ #if Debug
+ printf("Configuring window.\n"); 
+ #endif
+ 
+-    if (DrawData.pixmap) g_object_unref(DrawData.pixmap);
++    if (DrawData.pixmap) cairo_surface_destroy (DrawData.pixmap);
+ 
+-    DrawData.pixmap = gdk_pixmap_new(widget->window,
+-				     widget->allocation.width,
+-				     widget->allocation.height, -1);
++    width = gtk_widget_get_allocated_width( widget);
++    height = gtk_widget_get_allocated_height (widget);
++    DrawData.pixmap
++        = gdk_window_create_similar_surface (gtk_widget_get_window (widget),
++                                             CAIRO_CONTENT_COLOR,
++                                             width, height);
+ 
+-    params->absxsize = widget->allocation.width-2*xborder;
+-    params->absysize = widget->allocation.height-2*yborder;
++    params->absxsize = width - 2 * xborder;
++    params->absysize = height - 2 * yborder;
+ 
+     if (!params->redrawcheck) {
+ 	cleardrawable(DrawData);
+@@ -216,11 +218,11 @@
+ 			  gpointer data)
+ {
+     switch (event->keyval) {
+-	case GDK_Escape:
++	case GDK_KEY_Escape:
+ 	    gtk_main_quit();
+ 	    break;
+ 
+-	case GDK_space:
++	case GDK_KEY_space:
+ 	    MB_pressed = TRUE;
+ 	    return FALSE;
+ 	    break;
+@@ -296,27 +298,21 @@
+ gint motion_notify_event (GtkWidget *widget, GdkEventMotion *event,
+ 			  struct GlobalParams *params)
+ {
+-gint x,y;
+ char xstr[64];
+-GdkModifierType state;
+ gint NumFrame;
+ 
+-#if Debug
+-printf("Fetching coordinates of pointer.\n"); 
+-#endif
+-
+-    gdk_window_get_pointer (event->window, &x, &y, &state);
+-
+     if (params->pressed) {
+-	if (params->xpress-x > ROTATETRESHOLD || params->ypress-y > ROTATETRESHOLD
+-	    || params->xpress-x < -ROTATETRESHOLD || params->ypress-y < -ROTATETRESHOLD) {
++	if (params->xpress-event->x > ROTATETRESHOLD
++	    || params->ypress-event->y > ROTATETRESHOLD
++	    || params->xpress-event->x < - ROTATETRESHOLD
++	    || params->ypress-event->y < - ROTATETRESHOLD) {
+ #if Debug
+ printf("Starting rotating of scene.\n"); 
+ #endif
+-	    mouserotate(widget,(params->xpress-x),
+-			(params->ypress-y),params);
+-	    params->xpress = x;
+-	    params->ypress = y;
++	    mouserotate (widget, (params->xpress - event->x),
++			 (params->ypress-event->y), params);
++	    params->xpress = event->x;
++	    params->ypress = event->y;
+ 	}
+     }
+ 
+@@ -329,9 +325,9 @@
+ #endif
+         sprintf(xstr, "X: %5.3f   Y: %5.3f",
+ 		(((params->xmax2[NumFrame]-params->xmin2[NumFrame])
+-		*(x-xborder)/(double) params->absxsize)+
++		*(event->x-xborder)/(double) params->absxsize)+
+ 		params->xmin2[NumFrame]),(((params->ymax2[NumFrame]
+-		-params->ymin2[NumFrame])*(params->absysize-(y-yborder))/
++		-params->ymin2[NumFrame])*(params->absysize-(event->y-yborder))/
+ 		(double) params->absysize))+params->ymin2[NumFrame]);
+         gtk_entry_set_text ((GtkEntry *) coord_entry, xstr);
+       
+@@ -467,9 +463,7 @@
+ printf("Writing out pixmap to window.\n");
+ #endif
+ 
+-		gdk_draw_drawable(drawing_area->window,
+-				drawing_area->style->white_gc,
+-				DrawData.pixmap, 0, 0, 0, 0,
++		gtk_widget_queue_draw_area (drawing_area, 0, 0,
+ 				params->absxsize+2*xborder,
+ 				params->absysize+2*yborder);
+ #if Debug
+@@ -522,8 +516,7 @@
+ 			else sprintf(picname,"%s-%5.3f.jpg",
+ 				     params->dumpname,FrameTime);
+ 		    }
+-		    pixbuf = gdk_pixbuf_get_from_drawable(NULL,DrawData.pixmap,
+-				gdk_colormap_get_system(),0,0,0,0,
++		    pixbuf = gdk_pixbuf_get_from_surface (DrawData.pixmap, 0, 0,
+ 				params->absxsize+2*xborder,params->absysize+2*yborder);
+                     if (pixbuf == NULL)
+                       printf("Error making pixbuf!\n");
+@@ -558,9 +551,7 @@
+ #if Debug
+ printf("Writing out rotated frame pixmap to window.\n");
+ #endif
+-	gdk_draw_drawable(drawing_area->window,
+-			drawing_area->style->white_gc,
+-			DrawData.pixmap, 0, 0, 0, 0,
++	gtk_widget_queue_draw_area (drawing_area, 0, 0,
+ 			params->absxsize+2*xborder,
+ 			params->absysize+2*yborder);
+ 	params->rotated = FALSE;
+@@ -647,17 +638,17 @@
+ 			      G_CALLBACK (key_press_event), NULL);
+ 
+ /* Create boxes for outlay. */
+-    vbox = gtk_vbox_new (FALSE, 0);
+-    hbox = gtk_hbox_new (FALSE, 5);
+-    vboxleft = gtk_vbox_new (FALSE, 3);
+-    vboxmiddle = gtk_vbox_new (FALSE, 3);
+-    vboxright = gtk_vbox_new (FALSE, 3);
+-    hboxsetup = gtk_hbox_new (FALSE, 3);
+-    vboxrb = gtk_vbox_new (FALSE, 3);
+-    vboxcoord = gtk_vbox_new (FALSE, 3);
+-    hboxx = gtk_hbox_new (FALSE, 3);
+-    hboxy = gtk_hbox_new (FALSE, 3);
+-    hboxz = gtk_hbox_new (FALSE, 3);
++    vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
++    hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
++    vboxleft = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++    vboxmiddle = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++    vboxright = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++    hboxsetup = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++    vboxrb = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++    vboxcoord = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++    hboxx = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++    hboxy = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++    hboxz = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+     gtk_container_add (GTK_CONTAINER (window), vbox);
+ 
+     xlabel = gtk_label_new(" X ");
+@@ -675,7 +666,7 @@
+ 			TRUE, TRUE, 0);
+ 
+ /* Connect the events to their procedures. */
+-    g_signal_connect (G_OBJECT (drawing_area), "expose_event",
++    g_signal_connect (G_OBJECT (drawing_area), "draw",
+ 		      G_CALLBACK (expose_event), params);
+ 
+     g_signal_connect (G_OBJECT (drawing_area), "configure_event",
+@@ -729,7 +720,7 @@
+     reseto_button = gtk_button_new_with_mnemonic ("Reset _Orientation");
+     gtk_box_pack_start (GTK_BOX (vboxright), reseto_button, TRUE, TRUE, 0);
+     g_signal_connect (G_OBJECT (reseto_button), "clicked",  
+-                    G_CALLBACK (resetob),GTK_OBJECT (window)); 
++                    G_CALLBACK (resetob), params);
+ 
+ /* Create restart button. */
+     restart_button = gtk_button_new_with_mnemonic ("_Restart");
+@@ -746,14 +737,18 @@
+ /* Create pause button. */
+     pause_button = gtk_toggle_button_new_with_mnemonic ("_Pause");
+     gtk_box_pack_start (GTK_BOX (vboxmiddle), pause_button, TRUE, TRUE, 0);
+-    g_signal_connect (G_OBJECT (pause_button), "clicked",
++    g_signal_connect (G_OBJECT (pause_button), "toggled",
+ 		      G_CALLBACK (pauseb),(gpointer) params);
+ 
+ /* Create quit button. */
+-    quit_button = gtk_button_new_from_stock (GTK_STOCK_QUIT);
++    quit_button = gtk_button_new_with_mnemonic ("_Quit");
++    gtk_button_set_image (GTK_BUTTON (quit_button),
++                          gtk_image_new_from_icon_name ("application-exit",
++                                                        GTK_ICON_SIZE_BUTTON));
++    gtk_button_set_always_show_image (GTK_BUTTON (quit_button), TRUE);
+     gtk_box_pack_start (GTK_BOX (vboxright), quit_button, TRUE, TRUE, 0);
+     g_signal_connect (G_OBJECT (quit_button), "clicked",
+-		      G_CALLBACK (quit),GTK_OBJECT (window));
++		      G_CALLBACK (quit), NULL);
+ 
+     xminus10_button = gtk_button_new_with_label ("<<");
+     gtk_box_pack_start (GTK_BOX (hboxx), xminus10_button, TRUE, TRUE, 0);
+@@ -810,7 +805,7 @@
+ 		      G_CALLBACK (zplus10b),(gpointer) params);
+ 
+     g_signal_connect (G_OBJECT (window), "destroy",
+-		      G_CALLBACK (quit),GTK_OBJECT (window));
++		      G_CALLBACK (quit), NULL);
+ 
+ /* Put the hbox into the vbox. */
+     gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+--- gdpc.orig/parameters.h
++++ gdpc/parameters.h
+@@ -190,7 +190,7 @@
+ /* Declaration of structure used for passing information to drawing functions */
+ 
+ struct DrawStruct {
+-GdkPixmap *pixmap;
++cairo_surface_t *pixmap;
+ GdkColor *colors;
+ struct GlobalParams *params;
+ gint NumFrame;
+--- gdpc.orig/setup.c
++++ gdpc/setup.c
+@@ -72,8 +72,8 @@
+     dialog = gtk_file_chooser_dialog_new ("Open File",
+ 				          GTK_WINDOW (setupwin),
+ 				          GTK_FILE_CHOOSER_ACTION_OPEN,
+-				          GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+-				          GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
++				          "_Cancel", GTK_RESPONSE_CANCEL,
++				          "_Open", GTK_RESPONSE_ACCEPT,
+ 				          NULL);
+ 				          
+     if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
+@@ -465,13 +465,13 @@
+ /************************************************************************/
+ void toggle_erase(GtkWidget *widget, gpointer data)
+ {
+-    newparams.erase=(GTK_TOGGLE_BUTTON (widget)->active);
++    newparams.erase=gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+ }
+ 
+ 
+ void toggle_usetypes(GtkWidget *widget, gpointer data)
+ {
+-    newparams.usetypes=(GTK_TOGGLE_BUTTON (widget)->active);
++    newparams.usetypes=gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+ }
+ 
+ 
+@@ -517,7 +517,7 @@
+ /************************************************************************/
+ void toggle_white (GtkWidget *widget, gpointer data)
+ {
+-    newparams.whitebg=(GTK_TOGGLE_BUTTON (widget)->active);
++    newparams.whitebg=gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+ }
+ 
+ 
+@@ -526,7 +526,7 @@
+ /************************************************************************/
+ void toggle_sortr (GtkWidget *widget, gpointer data)
+ {
+-    if (GTK_TOGGLE_BUTTON (widget)->active) {
++    if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) {
+ 	newparams.sort=2;
+     }
+     else {
+@@ -542,10 +542,10 @@
+ /************************************************************************/
+ void toggle_scol (GtkWidget *widget, gpointer data)
+ {
+-    usescol=GTK_TOGGLE_BUTTON(widget)->active;
+-    gtk_widget_set_sensitive (scol_label,GTK_TOGGLE_BUTTON(widget)->active);
+-    gtk_widget_set_sensitive (scol_entry,GTK_TOGGLE_BUTTON(widget)->active);
+-    gtk_widget_set_sensitive (scolspinner,GTK_TOGGLE_BUTTON(widget)->active);
++    usescol = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
++    gtk_widget_set_sensitive (scol_label, usescol);
++    gtk_widget_set_sensitive (scol_entry, usescol);
++    gtk_widget_set_sensitive (scolspinner, usescol);
+     filechange(widget,data);
+ }
+ 
+@@ -634,29 +634,29 @@
+     g_signal_connect (G_OBJECT (setupwin),"destroy", G_CALLBACK (destroy), &setupwin);
+     
+ /* Create boxes for layout. */
+-    vbox_main = gtk_vbox_new (FALSE, 10);
+-    vbox_header = gtk_vbox_new (FALSE, 10);
+-    hbox_main = gtk_hbox_new (FALSE, 30);
+-    vbox = gtk_vbox_new (FALSE, 3);
+-    hbox1 = gtk_hbox_new (FALSE, 3);
+-    hbox2 = gtk_hbox_new (FALSE, 30);
+-    hbox3 = gtk_hbox_new (FALSE, 30);
+-    hboxssize = gtk_hbox_new (FALSE, 0);
+-    hboxd = gtk_hbox_new (FALSE, 0);
+-    hboxsc = gtk_hbox_new (FALSE, 0);
+-    hbox_cube = gtk_hbox_new (FALSE, 3);
+-    hboxcube = gtk_hbox_new (FALSE, 3);
+-    vboxcubel = gtk_vbox_new (FALSE, 3);
+-    vboxcuber = gtk_vbox_new (FALSE, 3);
+-    vboxcuberm = gtk_vbox_new (FALSE, 3);
+-    hboxxc = gtk_hbox_new (FALSE, 0);
+-    vboxxcl = gtk_vbox_new (FALSE, 0);
+-    vboxxcr = gtk_vbox_new (FALSE, 0);
+-    hboxsleep = gtk_hbox_new (FALSE, 0);
+-    hboxtd = gtk_hbox_new (FALSE, 0);
+-    vboxleft = gtk_vbox_new (FALSE, 3);
+-    vboxright = gtk_vbox_new (FALSE, 3);
+-    vboxmostright = gtk_vbox_new (FALSE, 3);
++    vbox_main = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
++    vbox_header = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
++    hbox_main = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 30);
++    vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++    hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++    hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 30);
++    hbox3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 30);
++    hboxssize = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++    hboxd = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++    hboxsc = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++    hbox_cube = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++    hboxcube = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++    vboxcubel = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++    vboxcuber = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++    vboxcuberm = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++    hboxxc = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++    vboxxcl = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
++    vboxxcr = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
++    hboxsleep = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++    hboxtd = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++    vboxleft = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++    vboxright = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++    vboxmostright = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
+     gtk_container_add (GTK_CONTAINER (setupwin), vbox_main);
+     
+     gtk_box_pack_start (GTK_BOX (vbox_main), vbox_header, FALSE, FALSE, 0);                      
+@@ -665,7 +665,7 @@
+     gtk_box_pack_start (GTK_BOX (hbox_main), vbox, FALSE, FALSE, 0);                          
+     gtk_box_pack_start (GTK_BOX (hbox_main), vboxmostright, FALSE, FALSE, 0);                          
+     gtk_box_pack_start (GTK_BOX (vbox), hbox1, FALSE, FALSE, 0);                          
+-    separator = gtk_hseparator_new ();
++    separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+     gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, TRUE, 3);
+     gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 0);
+     gtk_box_pack_start (GTK_BOX (hbox2), vboxleft, FALSE, FALSE, 0);                          
+@@ -673,7 +673,7 @@
+                           
+     header = gtk_label_new(" Setup ");
+     gtk_box_pack_start (GTK_BOX (vbox_header), header, FALSE, TRUE, 0);
+-    separator = gtk_hseparator_new ();
++    separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+     gtk_box_pack_start (GTK_BOX (vbox_header), separator, FALSE, TRUE, 3);
+ 
+     file_label = gtk_label_new("Input file : ");
+@@ -711,7 +711,7 @@
+     gtk_box_pack_start (GTK_BOX (vboxleft), hboxssize, TRUE, TRUE, 0);
+ 
+ 
+-    separator = gtk_hseparator_new ();
++    separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+     gtk_box_pack_start (GTK_BOX (vboxleft), separator, FALSE, TRUE, 3);
+ 
+     cxyz_label = gtk_label_new("Simulation box size");
+@@ -813,7 +813,7 @@
+     gtk_widget_set_tooltip_text(y2spinner,maxtt);
+     gtk_widget_set_tooltip_text(z2spinner,maxtt);
+ 
+-    separator = gtk_hseparator_new ();
++    separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+     gtk_box_pack_start (GTK_BOX (vboxleft), separator, FALSE, TRUE, 3);
+ 
+     column_label = gtk_label_new("Input data column representations");
+@@ -863,7 +863,7 @@
+     gtk_box_pack_start (GTK_BOX (vboxxcr), tcspinner, TRUE, TRUE, 0);
+     gtk_widget_set_tooltip_text(tcspinner,tcoltt);
+ 
+-    separator = gtk_hseparator_new ();
++    separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+     gtk_box_pack_start (GTK_BOX (vboxleft), separator, FALSE, TRUE, 3);
+ 
+     timedel_entry = gtk_entry_new();
+@@ -912,7 +912,7 @@
+     else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (usetypescheck), FALSE);
+     gtk_widget_set_tooltip_text(usetypescheck,coltypett);
+ 
+-    separator = gtk_hseparator_new ();
++    separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+     gtk_box_pack_start (GTK_BOX (vboxright), separator, FALSE, TRUE, 3);
+ 
+     draw_label = gtk_label_new(" Drawing options ");
+@@ -972,7 +972,7 @@
+     if (params->vary==2) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE);
+ 
+ 
+-    separator = gtk_hseparator_new ();
++    separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+     gtk_box_pack_start (GTK_BOX (vboxright), separator, FALSE, TRUE, 3);
+ 
+     scoltoggle=gtk_check_button_new_with_label("Only use inputlines with string :");
+@@ -1036,7 +1036,7 @@
+ 		      G_CALLBACK (toggle_checkc4),G_OBJECT (setupwin));
+     if (params->colorset==4) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE);
+ 
+-    separator = gtk_hseparator_new ();
++    separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+     gtk_box_pack_start (GTK_BOX (vboxmostright), separator, FALSE, TRUE, 3);
+ 
+     misc_label = gtk_label_new("Misc. settings");
+@@ -1070,7 +1070,7 @@
+     gtk_box_pack_start (GTK_BOX (hboxsleep), sleepspinner, TRUE, TRUE, 0);
+     gtk_box_pack_start (GTK_BOX (vboxmostright), hboxsleep, TRUE, TRUE, 0);
+ 
+-    separator = gtk_hseparator_new ();
++    separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+     gtk_box_pack_start (GTK_BOX (vboxmostright), separator, FALSE, TRUE, 3);
+ 
+     dump_label = gtk_label_new(" Dumped pictures name (no extension) : ");
+@@ -1086,7 +1086,7 @@
+     dncheck = gtk_radio_button_new_with_label(group, " Add frame number");
+     gtk_widget_set_sensitive (dncheck, FALSE);
+ 
+-    okeyb = gtk_button_new_from_stock (GTK_STOCK_OK);
++    okeyb = gtk_button_new_with_mnemonic ("_OK");
+ 
+     dumpcheck = gtk_radio_button_new_with_label(NULL, " Do not dump images");
+     gtk_box_pack_start (GTK_BOX (vboxmostright),dumpcheck, TRUE, TRUE, 0);
+@@ -1134,17 +1134,25 @@
+     gtk_box_pack_start (GTK_BOX (hbox3),okeyb, TRUE, TRUE, 0);
+     if (!params->StartedAlready) gtk_widget_set_sensitive (okeyb, FALSE);
+ 
+-    cancelb = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
++    cancelb = gtk_button_new_with_mnemonic ("_Cancel");
+     g_signal_connect (G_OBJECT (cancelb), "clicked", G_CALLBACK (cancelpressed),(gpointer) params);
+     gtk_box_pack_start (GTK_BOX (hbox3),cancelb, TRUE, TRUE, 0);
+     if (!params->StartedAlready) gtk_widget_set_sensitive (cancelb, FALSE);
+ 
+-    redrawb = gtk_button_new_from_stock (GTK_STOCK_REFRESH);
++    redrawb = gtk_button_new_with_mnemonic ("_Refresh");
++    gtk_button_set_image (GTK_BUTTON (redrawb),
++                          gtk_image_new_from_icon_name ("view-refresh",
++                                                        GTK_ICON_SIZE_BUTTON));
++    gtk_button_set_always_show_image (GTK_BUTTON (redrawb), TRUE);
+     g_signal_connect (G_OBJECT (redrawb), "clicked", G_CALLBACK (redrawpressed),(gpointer) params);
+     gtk_box_pack_start (GTK_BOX (hbox3),redrawb, TRUE, TRUE, 0);
+     if (!params->StartedAlready) gtk_widget_set_sensitive (redrawb, FALSE);
+ 
+-    quitb = gtk_button_new_from_stock (GTK_STOCK_QUIT);
++    quitb = gtk_button_new_with_mnemonic ("_Quit");
++    gtk_button_set_image (GTK_BUTTON (quitb),
++                          gtk_image_new_from_icon_name ("application-exit",
++                                                        GTK_ICON_SIZE_BUTTON));
++    gtk_button_set_always_show_image (GTK_BUTTON (quitb), TRUE);
+     g_signal_connect (G_OBJECT (quitb), "clicked", G_CALLBACK (quitpressed),(gpointer) params);
+     gtk_box_pack_start (GTK_BOX (hbox3),quitb, TRUE, TRUE, 0);
+ 


=====================================
debian/patches/series
=====================================
@@ -6,3 +6,4 @@ hardening.patch
 fix_segfault.patch
 spelling.patch
 cross.patch
+gtk3.patch



View it on GitLab: https://salsa.debian.org/med-team/gdpc/-/compare/15a0188c9c2c63eb1df2132316b00f55efcff404...51073a7720c0d6d58c42e5adda7f2ecbb9bb6381

-- 
View it on GitLab: https://salsa.debian.org/med-team/gdpc/-/compare/15a0188c9c2c63eb1df2132316b00f55efcff404...51073a7720c0d6d58c42e5adda7f2ecbb9bb6381
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20260125/c2b49aad/attachment-0001.htm>


More information about the debian-med-commit mailing list