From: John Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Date: Mon, 14 Nov 2016 21:21:42 +0000 (+0000)
Subject: fixed mouse release event getting through to Panadater/Waterfall from dialog. Fixed... 
X-Git-Url: https://git.rkrishnan.org/pf/components/htmlfontify-example.html?a=commitdiff_plain;h=e0158fc4a15759985b340442e5d0fa1e48f522fe;p=pihpsdr.git

fixed mouse release event getting through to Panadater/Waterfall from dialog. Fixed saving PA Calibration values.
---

diff --git a/ant_menu.c b/ant_menu.c
index 861b1c6..ad6488e 100644
--- a/ant_menu.c
+++ b/ant_menu.c
@@ -39,6 +39,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat
     dialog=NULL;
     sub_menu=NULL;
   }
+  return TRUE;
 }
 
 static void rx_ant_cb(GtkWidget *widget, gpointer data) {
diff --git a/audio_menu.c b/audio_menu.c
index 58cb6cf..c2e0971 100644
--- a/audio_menu.c
+++ b/audio_menu.c
@@ -39,6 +39,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat
     dialog=NULL;
     sub_menu=NULL;
   }
+  return TRUE;
 }
 
 static void linein_cb(GtkWidget *widget, gpointer data) {
diff --git a/band.c b/band.c
index 7d88c60..9f7b5fe 100644
--- a/band.c
+++ b/band.c
@@ -18,6 +18,7 @@
 */
 
 #include <stdio.h>
+#include <stdlib.h>
 
 #include "bandstack.h"
 #include "band.h"
@@ -391,7 +392,6 @@ void bandSaveState() {
 
 void bandRestoreState() {
     char* value;
-
     int b;
     int stack;
     char name[128];
@@ -429,9 +429,11 @@ void bandRestoreState() {
 
         sprintf(name,"band.%d.pa_calibration",b);
         value=getProperty(name);
-        if(value) bands[b].pa_calibration=atof(value);
-        if(bands[b].pa_calibration<38.8 || bands[b].pa_calibration>100.0) {
-          bands[b].pa_calibration=38.8;
+        if(value) {
+          bands[b].pa_calibration=strtod(value,NULL);
+          if(bands[b].pa_calibration<38.8 || bands[b].pa_calibration>100.0) {
+            bands[b].pa_calibration=38.8;
+          }
         }
 
         sprintf(name,"band.%d.OCrx",b);
diff --git a/cw_menu.c b/cw_menu.c
index e46a097..57be2e2 100644
--- a/cw_menu.c
+++ b/cw_menu.c
@@ -41,6 +41,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat
     dialog=NULL;
     sub_menu=NULL;
   }
+  return TRUE;
 }
 
 static void cw_keyer_internal_cb(GtkWidget *widget, gpointer data) {
diff --git a/display_menu.c b/display_menu.c
index fecb407..1030325 100644
--- a/display_menu.c
+++ b/display_menu.c
@@ -40,6 +40,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat
     dialog=NULL;
     sub_menu=NULL;
   }
+  return TRUE;
 }
 
 static void detector_mode_cb(GtkWidget *widget, gpointer data) {
diff --git a/dsp_menu.c b/dsp_menu.c
index e3b3840..1878d79 100644
--- a/dsp_menu.c
+++ b/dsp_menu.c
@@ -41,6 +41,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat
     dialog=NULL;
     sub_menu=NULL;
   }
+  return TRUE;
 }
 
 static void agc_hang_threshold_value_changed_cb(GtkWidget *widget, gpointer data) {
diff --git a/exit_menu.c b/exit_menu.c
index df2a4f9..4a97099 100644
--- a/exit_menu.c
+++ b/exit_menu.c
@@ -38,6 +38,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat
     dialog=NULL;
     sub_menu=NULL;
   }
+  return TRUE;
 }
 
 static gboolean exit_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) {
diff --git a/freedv_menu.c b/freedv_menu.c
index 22bae81..4ffbbdf 100644
--- a/freedv_menu.c
+++ b/freedv_menu.c
@@ -39,6 +39,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat
     dialog=NULL;
     sub_menu=NULL;
   }
+  return TRUE;
 }
 
 static void freedv_text_changed_cb(GtkWidget *widget, gpointer data) {
diff --git a/general_menu.c b/general_menu.c
index 8700800..7f9ee7f 100644
--- a/general_menu.c
+++ b/general_menu.c
@@ -40,6 +40,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat
     dialog=NULL;
     sub_menu=NULL;
   }
+  return TRUE;
 }
 
 static void vfo_divisor_value_changed_cb(GtkWidget *widget, gpointer data) {
@@ -187,7 +188,7 @@ void general_menu(GtkWidget *parent) {
   //gtk_grid_set_column_homogeneous(GTK_GRID(grid),TRUE);
 
   GtkWidget *close_b=gtk_button_new_with_label("Close General");
-  g_signal_connect (close_b, "pressed", G_CALLBACK(close_cb), NULL);
+  g_signal_connect (close_b, "button_press_event", G_CALLBACK(close_cb), NULL);
   gtk_grid_attach(GTK_GRID(grid),close_b,0,0,1,1);
 
   GtkWidget *vfo_divisor_label=gtk_label_new("VFO Encoder Divisor: ");
diff --git a/new_menu.c b/new_menu.c
index e810646..c308632 100644
--- a/new_menu.c
+++ b/new_menu.c
@@ -47,6 +47,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat
     gtk_widget_destroy(dialog);
     dialog=NULL;
   }
+  return TRUE;
 }
 
 static gboolean exit_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) {
@@ -153,47 +154,47 @@ static gboolean new_menu_pressed_event_cb (GtkWidget *widget,
     gtk_grid_set_column_homogeneous(GTK_GRID(grid),TRUE);
   
     GtkWidget *close_b=gtk_button_new_with_label("Close Menu");
-    g_signal_connect (close_b, "pressed", G_CALLBACK(close_cb), NULL);
+    g_signal_connect (close_b, "button-press-event", G_CALLBACK(close_cb), NULL);
     gtk_grid_attach(GTK_GRID(grid),close_b,0,0,2,1);
 
     GtkWidget *exit_b=gtk_button_new_with_label("Exit piHPSDR");
-    g_signal_connect (exit_b, "pressed", G_CALLBACK(exit_cb), NULL);
+    g_signal_connect (exit_b, "button-press-event", G_CALLBACK(exit_cb), NULL);
     gtk_grid_attach(GTK_GRID(grid),exit_b,3,0,2,1);
 
     GtkWidget *general_b=gtk_button_new_with_label("General");
-    g_signal_connect (general_b, "pressed", G_CALLBACK(general_cb), NULL);
+    g_signal_connect (general_b, "button-press-event", G_CALLBACK(general_cb), NULL);
     gtk_grid_attach(GTK_GRID(grid),general_b,0,1,1,1);
 
     GtkWidget *audio_b=gtk_button_new_with_label("Audio");
-    g_signal_connect (audio_b, "pressed", G_CALLBACK(audio_cb), NULL);
+    g_signal_connect (audio_b, "button-press-event", G_CALLBACK(audio_cb), NULL);
     gtk_grid_attach(GTK_GRID(grid),audio_b,1,1,1,1);
 
     GtkWidget *ant_b=gtk_button_new_with_label("Ant");
-    g_signal_connect (ant_b, "pressed", G_CALLBACK(ant_cb), NULL);
+    g_signal_connect (ant_b, "button-press-event", G_CALLBACK(ant_cb), NULL);
     gtk_grid_attach(GTK_GRID(grid),ant_b,2,1,1,1);
 
     GtkWidget *display_b=gtk_button_new_with_label("Display");
-    g_signal_connect (display_b, "pressed", G_CALLBACK(display_cb), NULL);
+    g_signal_connect (display_b, "button-press-event", G_CALLBACK(display_cb), NULL);
     gtk_grid_attach(GTK_GRID(grid),display_b,3,1,1,1);
 
     GtkWidget *dsp_b=gtk_button_new_with_label("DSP");
-    g_signal_connect (dsp_b, "pressed", G_CALLBACK(dsp_cb), NULL);
+    g_signal_connect (dsp_b, "button-press-event", G_CALLBACK(dsp_cb), NULL);
     gtk_grid_attach(GTK_GRID(grid),dsp_b,4,1,1,1);
 
     GtkWidget *pa_b=gtk_button_new_with_label("PA");
-    g_signal_connect (pa_b, "pressed", G_CALLBACK(pa_cb), NULL);
+    g_signal_connect (pa_b, "button-press-event", G_CALLBACK(pa_cb), NULL);
     gtk_grid_attach(GTK_GRID(grid),pa_b,0,2,1,1);
 
     GtkWidget *cw_b=gtk_button_new_with_label("CW");
-    g_signal_connect (cw_b, "pressed", G_CALLBACK(cw_cb), NULL);
+    g_signal_connect (cw_b, "button-press-event", G_CALLBACK(cw_cb), NULL);
     gtk_grid_attach(GTK_GRID(grid),cw_b,1,2,1,1);
 
     GtkWidget *oc_b=gtk_button_new_with_label("OC");
-    g_signal_connect (oc_b, "pressed", G_CALLBACK(oc_cb), NULL);
+    g_signal_connect (oc_b, "button-press-event", G_CALLBACK(oc_cb), NULL);
     gtk_grid_attach(GTK_GRID(grid),oc_b,2,2,1,1);
 
     GtkWidget *freedv_b=gtk_button_new_with_label("FreeDV");
-    g_signal_connect (freedv_b, "pressed", G_CALLBACK(freedv_cb), NULL);
+    g_signal_connect (freedv_b, "button-press-event", G_CALLBACK(freedv_cb), NULL);
     gtk_grid_attach(GTK_GRID(grid),freedv_b,3,2,1,1);
 
     gtk_container_add(GTK_CONTAINER(content),grid);
@@ -215,7 +216,7 @@ GtkWidget* new_menu_init(int width,int height,GtkWidget *parent) {
   menu_b=gtk_button_new_with_label("Menu");
   gtk_widget_override_font(menu_b, pango_font_description_from_string("FreeMono Bold 10"));
   gtk_widget_set_size_request (menu_b, width, height);
-  g_signal_connect (menu_b, "pressed", G_CALLBACK(new_menu_pressed_event_cb), NULL);
+  g_signal_connect (menu_b, "button-press-event", G_CALLBACK(new_menu_pressed_event_cb), NULL);
   gtk_widget_show(menu_b);
 
   return menu_b;
diff --git a/oc_menu.c b/oc_menu.c
index ddb1535..0db345a 100644
--- a/oc_menu.c
+++ b/oc_menu.c
@@ -41,6 +41,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat
     dialog=NULL;
     sub_menu=NULL;
   }
+  return TRUE;
 }
 
 static void oc_rx_cb(GtkWidget *widget, gpointer data) {
diff --git a/pa_menu.c b/pa_menu.c
index 86c1af9..d223655 100644
--- a/pa_menu.c
+++ b/pa_menu.c
@@ -39,6 +39,7 @@ static gboolean close_cb (GtkWidget *widget, GdkEventButton *event, gpointer dat
     dialog=NULL;
     sub_menu=NULL;
   }
+  return TRUE;
 }
 
 static void pa_value_changed_cb(GtkWidget *widget, gpointer data) {
diff --git a/panadapter.c b/panadapter.c
index 2ac9faa..c113182 100644
--- a/panadapter.c
+++ b/panadapter.c
@@ -115,17 +115,19 @@ panadapter_button_release_event_cb (GtkWidget      *widget,
                GdkEventButton *event,
                gpointer        data)
 {
-  int x=(int)event->x;
-  if (event->button == 1) {
-    if(has_moved) {
-      // drag
-      vfo_move((int)((float)(x-last_x)*hz_per_pixel));
-    } else {
-      // move to this frequency
-      vfo_move_to((int)((float)(x-(display_width/2))*hz_per_pixel));
+  if(pressed) {
+    int x=(int)event->x;
+    if (event->button == 1) {
+      if(has_moved) {
+        // drag
+        vfo_move((int)((float)(x-last_x)*hz_per_pixel));
+      } else {
+        // move to this frequency
+        vfo_move_to((int)((float)(x-(display_width/2))*hz_per_pixel));
+      }
+      last_x=x;
+      pressed=FALSE;
     }
-    last_x=x;
-    pressed=FALSE;
   }
   return TRUE;
 }
diff --git a/pihpsdr b/pihpsdr
index 29061d8..16c0ab8 100755
Binary files a/pihpsdr and b/pihpsdr differ
diff --git a/release/pihpsdr.tar b/release/pihpsdr.tar
index 03c493f..ec7ccaa 100644
Binary files a/release/pihpsdr.tar and b/release/pihpsdr.tar differ
diff --git a/release/pihpsdr/pihpsdr b/release/pihpsdr/pihpsdr
index 29061d8..16c0ab8 100755
Binary files a/release/pihpsdr/pihpsdr and b/release/pihpsdr/pihpsdr differ
diff --git a/waterfall.c b/waterfall.c
index 8523cf1..b127dc6 100644
--- a/waterfall.c
+++ b/waterfall.c
@@ -110,17 +110,19 @@ waterfall_button_release_event_cb (GtkWidget      *widget,
                GdkEventButton *event,
                gpointer        data)
 {
-  int x=(int)event->x;
-  if (event->button == 1) {
-    if(has_moved) {
-      // drag
-      vfo_move((int)((float)(x-last_x)*hz_per_pixel));
-    } else {
-      // move to this frequency
-      vfo_move_to((int)((float)(x-(display_width/2))*hz_per_pixel));
+  if(pressed) {
+    int x=(int)event->x;
+    if (event->button == 1) {
+      if(has_moved) {
+        // drag
+        vfo_move((int)((float)(x-last_x)*hz_per_pixel));
+      } else {
+        // move to this frequency
+        vfo_move_to((int)((float)(x-(display_width/2))*hz_per_pixel));
+      }
+      last_x=x;
+      pressed=FALSE;
     }
-    last_x=x;
-    pressed=FALSE;
   }
   return TRUE;
 }