Disable checkboxes for primary selection when relevant
diff --git a/vncviewer/OptionsDialog.cxx b/vncviewer/OptionsDialog.cxx
index 2f9df9c..b018c95 100644
--- a/vncviewer/OptionsDialog.cxx
+++ b/vncviewer/OptionsDialog.cxx
@@ -700,6 +700,7 @@
CHECK_MIN_WIDTH,
CHECK_HEIGHT,
_("Accept clipboard from server")));
+ acceptClipboardCheckbox->callback(handleClipboard, this);
ty += CHECK_HEIGHT + TIGHT_MARGIN;
#if !defined(WIN32) && !defined(__APPLE__)
@@ -714,10 +715,11 @@
CHECK_MIN_WIDTH,
CHECK_HEIGHT,
_("Send clipboard to server")));
+ sendClipboardCheckbox->callback(handleClipboard, this);
ty += CHECK_HEIGHT + TIGHT_MARGIN;
#if !defined(WIN32) && !defined(__APPLE__)
- sendPrimaryCheckbox = new Fl_Check_Button(LBLRIGHT(tx, ty,
+ sendPrimaryCheckbox = new Fl_Check_Button(LBLRIGHT(tx + INDENT, ty,
CHECK_MIN_WIDTH,
CHECK_HEIGHT,
_("Send primary selection as clipboard")));
@@ -876,6 +878,22 @@
}
}
+void OptionsDialog::handleClipboard(Fl_Widget *widget, void *data)
+{
+#if !defined(WIN32) && !defined(__APPLE__)
+ OptionsDialog *dialog = (OptionsDialog*)data;
+
+ if (dialog->acceptClipboardCheckbox->value())
+ dialog->setPrimaryCheckbox->activate();
+ else
+ dialog->setPrimaryCheckbox->deactivate();
+ if (dialog->sendClipboardCheckbox->value())
+ dialog->sendPrimaryCheckbox->activate();
+ else
+ dialog->sendPrimaryCheckbox->deactivate();
+#endif
+}
+
void OptionsDialog::handleCancel(Fl_Widget *widget, void *data)
{
OptionsDialog *dialog = (OptionsDialog*)data;
diff --git a/vncviewer/OptionsDialog.h b/vncviewer/OptionsDialog.h
index 6984c72..c177560 100644
--- a/vncviewer/OptionsDialog.h
+++ b/vncviewer/OptionsDialog.h
@@ -64,6 +64,8 @@
static void handleDesktopSize(Fl_Widget *widget, void *data);
+ static void handleClipboard(Fl_Widget *widget, void *data);
+
static void handleCancel(Fl_Widget *widget, void *data);
static void handleOK(Fl_Widget *widget, void *data);