diff --git a/src/Makefile.am b/src/Makefile.am index 65fe23dc..c149b029 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -354,6 +354,7 @@ EXTRA_DIST = \ $(srcdir)/../data/fldigi.xpm \ $(srcdir)/../data/fldigi.desktop \ $(srcdir)/../data/mac/Info.plist.in \ + $(srcdir)/../data/mac/fldigi.icns \ $(srcdir)/../data/win32/fldigi.ico \ dialogs/confdialog.fl \ rigcontrol/rigdialog.fl diff --git a/src/dialogs/fl_digi.cxx b/src/dialogs/fl_digi.cxx index 8e5f4d1c..e1cb3206 100644 --- a/src/dialogs/fl_digi.cxx +++ b/src/dialogs/fl_digi.cxx @@ -683,6 +683,7 @@ void restoreFocus() void macro_cb(Fl_Widget *w, void *v) { + stopMacroTimer(); int b = (int)(reinterpret_cast (v)); b += altMacros * NUMMACKEYS; int mouse = Fl::event_button(); @@ -1249,8 +1250,10 @@ void cb_btnSideband(Fl_Widget *w, void *d) FL_UNLOCK_D(); } -void cbMacroTimerButton(Fl_Widget *w, void *d) +void stopMacroTimer() { + if (progdefaults.useTimer == false) return; + progdefaults.useTimer = false; FL_LOCK_D(); btnMacroTimer->hide(); @@ -1259,6 +1262,11 @@ void cbMacroTimerButton(Fl_Widget *w, void *d) restoreFocus(); } +void cbMacroTimerButton(Fl_Widget *w, void *d) +{ + stopMacroTimer(); +} + void cb_RcvMixer(Fl_Widget *w, void *d) { progStatus.RcvMixer = valRcvMixer->value(); diff --git a/src/include/fl_digi.h b/src/include/fl_digi.h index a9ae533f..f51cce97 100644 --- a/src/include/fl_digi.h +++ b/src/include/fl_digi.h @@ -166,4 +166,6 @@ extern void colorize_macros(); extern void set_rtty_tab_widgets(); extern void set_olivia_tab_widgets(); +extern void stopMacroTimer(); + #endif diff --git a/src/misc/arq_io.cxx b/src/misc/arq_io.cxx index 1299b103..d6c9cfe6 100644 --- a/src/misc/arq_io.cxx +++ b/src/misc/arq_io.cxx @@ -56,6 +56,8 @@ string::iterator pText; bool arq_text_available = false; +extern void send0x06(); + static void popup_msg(void* msg) { fl_message((const char*)msg); @@ -410,6 +412,14 @@ bool Socket_arqRx() } } + if (progdefaults.rsid == true) { + send0x06(); + arqtext.clear(); + txstring.clear(); + cmdstring.clear(); + return true; + } + if (arqtext.empty()) { arqtext = txstring; pText = arqtext.begin(); diff --git a/src/misc/configuration.cxx b/src/misc/configuration.cxx index 6fa51840..116bdcf8 100644 --- a/src/misc/configuration.cxx +++ b/src/misc/configuration.cxx @@ -1519,14 +1519,6 @@ void configuration::initOperator() { UseLeadingZeros = btnUseLeadingZeros->value(); ContestStart = (int)nbrContestStart->value(); ContestDigits = (int)nbrContestDigits->value(); - if (THORsecText.empty()) { - THORsecText = myCall; - txtTHORSecondary->value(THORsecText.c_str()); - } - if (secText.empty()) { - secText = myCall; - txtSecondary->value(secText.c_str()); - } FL_UNLOCK(); } diff --git a/src/waterfall/waterfall.cxx b/src/waterfall/waterfall.cxx index 6e0523c6..9da46a5d 100644 --- a/src/waterfall/waterfall.cxx +++ b/src/waterfall/waterfall.cxx @@ -991,6 +991,7 @@ void xmtrcv_cb(Fl_Widget *w, void *vi) int v = b->value(); FL_UNLOCK_D(); if (v == 1) { + stopMacroTimer(); active_modem->set_stopflag(false); trx_transmit(); } else { diff --git a/src/widgets/FTextView.cxx b/src/widgets/FTextView.cxx index a7b19207..09fc59c2 100644 --- a/src/widgets/FTextView.cxx +++ b/src/widgets/FTextView.cxx @@ -422,27 +422,25 @@ int FTextView::handle(int event) case FL_PUSH: if (!Fl::event_inside(this)) break; - - switch (Fl::event_button()) { - case FL_LEFT_MOUSE: - { - if (!Fl::event_shift()) - goto out; - char* s = get_word(Fl::event_x() - x(), Fl::event_y() - y()); - inpCall->value(s); - free(s); - } - // fall through - case FL_MIDDLE_MOUSE: - // stop mouse2 text paste events from reaching Fl_Text_Editor_mod - return 1; - case FL_RIGHT_MOUSE: - break; - default: - goto out; - } - - // enable/disable menu items + switch (Fl::event_button()) { + case FL_LEFT_MOUSE: { + if (!Fl::event_shift()) + goto out; + char* s = get_word(Fl::event_x() - x(), Fl::event_y() - y()); + inpCall->value(s); + free(s); + stopMacroTimer(); + } +// fall through + case FL_MIDDLE_MOUSE: +// stop mouse2 text paste events from reaching Fl_Text_Editor_mod + return 1; + case FL_RIGHT_MOUSE: + break; + default: + goto out; + } +// enable/disable menu items if (tbuf->length()) view_menu[RX_MENU_CLEAR].flags &= ~FL_MENU_INACTIVE; else @@ -546,6 +544,7 @@ void FTextView::menu_cb(int val) CALLSIGNquery(); break; case RX_MENU_CALL: + stopMacroTimer(); s = get_word(popx, popy); inpCall->value(s); free(s); @@ -891,6 +890,7 @@ int FTextEdit::handle_key(int key) } clear(); active_modem->set_stopflag(true); + stopMacroTimer(); return 1; case 't': // transmit for C-t if (trx_state == STATE_RX && Fl::event_state() & FL_CTRL) { @@ -1113,27 +1113,26 @@ int FTextEdit::handle_dnd_drop(void) /// void FTextEdit::menu_cb(int val) { - switch (val) { - case TX_MENU_TX: - if (trx_state == STATE_RX) { - active_modem->set_stopflag(false); - start_tx(); - } - else - abort_tx(); + switch (val) { + case TX_MENU_TX: + if (trx_state == STATE_RX) { + active_modem->set_stopflag(false); + start_tx(); + } + else + abort_tx(); + break; + case TX_MENU_RX: + if (trx_state == STATE_TX) { + insert_position(tbuf->length()); + add("^r", CTRL); + } + else + abort_tx(); + break; + case TX_MENU_MFSK16_IMG: + showTxViewer(0, 0); break; - case TX_MENU_RX: - if (trx_state == STATE_TX) { - insert_position(tbuf->length()); - add("^r", CTRL); - } - else - abort_tx(); - break; - case TX_MENU_MFSK16_IMG: - showTxViewer(0, 0); - break; - case TX_MENU_CLEAR: clear(); break; @@ -1146,11 +1145,9 @@ void FTextEdit::menu_cb(int val) case TX_MENU_PASTE: kf_paste(0, this); break; - case TX_MENU_READ: readFile(); break; - case TX_MENU_WRAP: edit_menu[TX_MENU_WRAP].flags ^= FL_MENU_VALUE; wrap_mode((wrap = !wrap), wrap_col);