[Goodies-dev] [PATCH] -screenshooter-plugin bugfixes

Emanuele Rocca ema at debian.org
Tue Jun 5 17:41:23 CEST 2007


Hello,

xfce4-screenshooter-plugin is affected by a couple of problems for what
concerns selecting screenshot files location.

1) The code that generates the suggested filename (Screenshot-1,
   Screenshot-2...) doesn't work properly.
2) Screenshots are created even if user chooses not to do so:
   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=420242

Please consider applying the following patches.

Thanks.
ciao,
    ema

--- panel-plugin/screenshooter.c.old    2007-06-03 23:16:08.000000000 +0200
+++ panel-plugin/screenshooter.c    2007-06-04 00:14:53.000000000 +0200
@@ -199,7 +199,7 @@
     if(uri == NULL)
         return NULL;
     file_name = g_strdup ("Screenshot.png");
-    if((test=open(file_name,O_RDWR,MODE))==-1)
+    if((test=open(g_build_filename(uri, file_name, NULL),O_RDWR,MODE))==-1)
     {
         return file_name;
     }
@@ -208,7 +208,7 @@
         g_free (file_name);
         file_name = g_strdup_printf ("Screenshot-%d.png",i);
     }
-    while((test=open(file_name,O_RDWR,MODE))!=-1);
+    while((test=open(g_build_filename(uri, file_name, NULL),O_RDWR,MODE))!=-1);
 
     return file_name;

--- panel-plugin/screenshooter.c.old    2007-06-03 23:16:08.000000000 +0200
+++ panel-plugin/screenshooter.c    2007-06-04 00:14:53.000000000 +0200
@@ -227,6 +227,7 @@
 
     gint width;
     gint height;
+    gint dialog_response;
 
     gchar * filename = NULL;
     gchar * basename = NULL;
@@ -266,12 +267,14 @@
     
     gtk_image_set_from_pixbuf (GTK_IMAGE (sd->preview), thumbnail);
     g_object_unref (thumbnail);
-            filename = generate_filename_for_uri (xfce_file_chooser_get_current_folder(XFCE_FILE_CHOOSER (sd->chooser)));
+    filename = generate_filename_for_uri (xfce_file_chooser_get_current_folder(XFCE_FILE_CHOOSER (sd->chooser)));
     
     if (sd->ask_for_file && filename)
     {    
         gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (sd->chooser), filename);
-        if (gtk_dialog_run (GTK_DIALOG (sd->chooser)) == GTK_RESPONSE_ACCEPT)
+        
+        dialog_response = gtk_dialog_run (GTK_DIALOG (sd->chooser));
+        if (dialog_response == GTK_RESPONSE_ACCEPT)
         {    
         filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(sd->chooser));
         }
@@ -289,7 +292,8 @@
     }
     
     if (filename) {
-        gdk_pixbuf_save (screenshot, filename, "png", NULL, NULL);
+        if (!(sd->ask_for_file) || dialog_response == GTK_RESPONSE_ACCEPT) 
+            gdk_pixbuf_save (screenshot, filename, "png", NULL, NULL);
         g_free (filename);
     }
 }



More information about the Goodies-dev mailing list