[Pkg-wmaker-commits] [wmcliphist] 20/49: wmcliphist: Add -b command line option to select which clipboard to manage.
Doug Torrance
dtorrance-guest at moszumanska.debian.org
Tue Aug 18 01:51:35 UTC 2015
This is an automated email from the git hooks/post-receive script.
dtorrance-guest pushed a commit to branch master
in repository wmcliphist.
commit 55e4fdfeb60e740d8e1994d37459489921455b2a
Author: Doug Torrance <dtorrance at monmouthcollege.edu>
Date: Sat Nov 22 20:48:52 2014 -0600
wmcliphist: Add -b command line option to select which clipboard to manage.
---
clipboard.c | 10 +++++-----
gui.c | 4 ++++
history.c | 6 +++---
rcconfig.c | 8 ++++++++
wmcliphist.1 | 6 +++++-
wmcliphist.c | 36 +++++++++++++++++++++++++++++++++---
wmcliphist.h | 5 +++++
wmcliphistrc | 5 +++++
8 files changed, 68 insertions(+), 12 deletions(-)
diff --git a/clipboard.c b/clipboard.c
index 49d6ac3..dd5c49b 100644
--- a/clipboard.c
+++ b/clipboard.c
@@ -48,7 +48,7 @@ dump_history_list_fn(char *header)
}
void
-my_get_selection_text(GtkClipboard *clipboard, const gchar *text, gpointer
+my_get_selection_text(GtkClipboard *cb, const gchar *text, gpointer
data)
{
/* previous clipboard content */
@@ -86,7 +86,7 @@ my_get_selection_text(GtkClipboard *clipboard, const gchar *text, gpointer
if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu_app_clip_ignore)) ||
gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu_app_clip_lock))) {
if (gtk_selection_owner_set(dock_app,
- GDK_SELECTION_PRIMARY,
+ clipboard,
GDK_CURRENT_TIME) == 0)
selected = NULL;
}
@@ -113,7 +113,7 @@ my_get_xselection(GtkWidget *window, GdkEvent *event)
begin_func("my_get_xselection");
- gtk_clipboard_request_text(gtk_clipboard_get(GDK_SELECTION_PRIMARY),
+ gtk_clipboard_request_text(gtk_clipboard_get(clipboard),
my_get_selection_text, NULL);
return_val(TRUE);
@@ -143,7 +143,7 @@ my_get_xselection(GtkWidget *window, GdkEvent *event)
if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu_app_clip_ignore)) ||
gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu_app_clip_lock))) {
if (gtk_selection_owner_set(dock_app,
- GDK_SELECTION_PRIMARY,
+ clipboard,
GDK_CURRENT_TIME) == 0)
selected = NULL;
}
@@ -163,7 +163,7 @@ time_conv_select()
begin_func("time_conv_select");
gtk_selection_convert(main_window,
- GDK_SELECTION_PRIMARY,
+ clipboard,
GDK_TARGET_STRING,
GDK_CURRENT_TIME);
return_val(TRUE);
diff --git a/gui.c b/gui.c
index 76d84ba..1ba4eae 100644
--- a/gui.c
+++ b/gui.c
@@ -33,6 +33,10 @@ GtkWidget *button;
/* pixmap */
GtkWidget *pixmap;
+/* which clipboard to use */
+gchar clipboard_str[32] = DEF_CLIPBOARD_STR;
+GdkAtom clipboard;
+
/* ==========================================================================
* clipboard history menu
*/
diff --git a/history.c b/history.c
index 096f450..20d1036 100644
--- a/history.c
+++ b/history.c
@@ -51,7 +51,7 @@ process_item(char *content, gint locked, gboolean exec)
if (auto_take_up == 1) {
selected = hist_item;
if (gtk_selection_owner_set(dock_app,
- GDK_SELECTION_PRIMARY,
+ clipboard,
GDK_CURRENT_TIME) == 0) {
selected = NULL;
}
@@ -71,7 +71,7 @@ process_item(char *content, gint locked, gboolean exec)
if (auto_take_up == 1) {
selected = hist_item;
if (gtk_selection_owner_set(dock_app,
- GDK_SELECTION_PRIMARY,
+ clipboard,
GDK_CURRENT_TIME) == 0) {
selected = NULL;
}
@@ -99,7 +99,7 @@ move_item_to_begin(HISTORY_ITEM *item) {
history_items = g_list_concat(list_node, history_items);
selected = item;
if (gtk_selection_owner_set(dock_app,
- GDK_SELECTION_PRIMARY,
+ clipboard,
GDK_CURRENT_TIME) == 0)
selected = NULL;
}
diff --git a/rcconfig.c b/rcconfig.c
index 44dce9c..153295c 100644
--- a/rcconfig.c
+++ b/rcconfig.c
@@ -178,6 +178,9 @@ rcconfig_get(char *fname)
} else if (strcmp(direc_buf, "lcolor") == 0) {
state = STATE_VALUE;
buf_index = 0;
+ } else if (strcmp(direc_buf, "clipboard") == 0) {
+ state = STATE_VALUE;
+ buf_index = 0;
} else if (strcmp(direc_buf, "autosave") == 0) {
state = STATE_VALUE;
buf_index = 0;
@@ -229,6 +232,11 @@ rcconfig_get(char *fname)
memset(locked_color_str, 0, 32);
strncpy(locked_color_str,
expr_buf, 31);
+ } else if (strcmp(direc_buf, "clipboard")
+ == 0) {
+ memset(clipboard_str, 0, 32);
+ strncpy(clipboard_str,
+ expr_buf, 31);
} else if (strcmp(direc_buf, "autosave") == 0) {
autosave_period =
atoi(expr_buf);
diff --git a/wmcliphist.1 b/wmcliphist.1
index af68043..0b1e2cf 100644
--- a/wmcliphist.1
+++ b/wmcliphist.1
@@ -3,7 +3,7 @@
wmcliphist \(em provides a history to X11 selections
.SH "SYNOPSIS"
.PP
-\fBwmcliphist\fR [\fB-h\fP] [\fB-v\fP] [\fB-n \fInum\fR\fP] [\fB-c \fIcol\fR\fP] [\fB-i \fInum\fR\fP] [\fB-s \fIsize\fR\fP]
+\fBwmcliphist\fR [\fB-h\fP] [\fB-v\fP] [\fB-n \fInum\fR\fP] [\fB-c \fIcol\fR\fP] [\fB-i \fInum\fR\fP] [\fB-s \fIsize\fR\fP] [\fB-b \fIclipboard\fR\fP]
.SH "DESCRIPTION"
.PP
This manual page documents briefly the program
@@ -39,6 +39,10 @@ choose num=1 and for light backgrounds num=2.
.IP "\fB-s size\fP " 10
Choose wmcliphist icon size, must be one of 16, 30,
40 or 60 (default).
+.IP "\fB-b clipboard\fP " 10
+Choose clipboard to use, must be one of PRIMARY (select copies, middle click
+pastes, default), SECONDARY (not used), or CLIPBOARD (Ctrl+C copies,
+Ctrl+V pastes)
.SH "AUTHOR"
.PP
diff --git a/wmcliphist.c b/wmcliphist.c
index 98a9799..3f265c0 100644
--- a/wmcliphist.c
+++ b/wmcliphist.c
@@ -32,8 +32,11 @@ print_help()
" 1 = for dark background\n"
" 2 = for light background\n");
fprintf(stderr, "-d dumps clipboard history to stdout"
- " in pseudo XML format (no escaping etc.)\n\n");
-
+ " in pseudo XML format (no escaping etc.)\n");
+ fprintf(stderr, "-b <type> choose clipboard to manage\n"
+ " PRIMARY = select copies, middle click pastes (default)\n"
+ " SECONDARY = not used\n"
+ " CLIPBOARD = Ctrl+C copies, Ctrl+V pastes\n\n");
exit(1);
return_void();
}
@@ -169,6 +172,14 @@ main(int argc, char **argv)
} else if (*(arg + 1) == 'v') {
printf("wmcliphist "WMCLIPHIST_VERSION"\n");
exit(1);
+ } else if (*(arg + 1) == 'b') {
+ i++;
+ if (!argv[i]) {
+ fprintf(stderr, "Missing value of -b\n");
+ print_help();
+ }
+ memset(clipboard_str, 0, 32);
+ strncpy(clipboard_str, argv[i], 31);
} else {
fprintf(stderr, "Invalid option -%c\n", *(arg + 1));
print_help();
@@ -318,6 +329,25 @@ main(int argc, char **argv)
gdk_rgba_parse(&locked_color, locked_color_str);
}
+ /* set clipboard */
+ if (strcmp(clipboard_str, "PRIMARY") == 0) {
+ clipboard = GDK_SELECTION_PRIMARY;
+ } else if (strcmp(clipboard_str, "SECONDARY") == 0) {
+ clipboard = GDK_SELECTION_SECONDARY;
+ } else if (strcmp(clipboard_str, "CLIPBOARD") == 0) {
+ clipboard = GDK_SELECTION_CLIPBOARD;
+ } else {
+ char msg_str[128];
+
+ sprintf(msg_str, "Invalid clipboard string: '%s'.\n"
+ "Falling back to default ("
+ DEF_CLIPBOARD_STR
+ ").",
+ clipboard_str);
+ show_message(msg_str, "Warning", "OK", NULL, NULL);
+ clipboard = DEF_CLIPBOARD;
+ }
+
/* load previously saved history */
if (history_load(dump_only) != 0) {
if (errno == E_TOO_MUCH) {
@@ -377,7 +407,7 @@ main(int argc, char **argv)
/* setup everything for supplying selection to other apps */
gtk_selection_add_target(dock_app,
- GDK_SELECTION_PRIMARY,
+ clipboard,
GDK_SELECTION_TYPE_STRING,
1);
diff --git a/wmcliphist.h b/wmcliphist.h
index 09470be..be14a4b 100644
--- a/wmcliphist.h
+++ b/wmcliphist.h
@@ -28,6 +28,8 @@
#define DEF_MENUKEY "Control+Alt+V"
#define DEF_PREV_ITEM_KEY "Control+Alt+C"
#define DEF_EXEC_ITEM_KEY "Control+Alt+E"
+#define DEF_CLIPBOARD_STR "PRIMARY"
+#define DEF_CLIPBOARD GDK_SELECTION_PRIMARY
#define MAX_ITEM_LENGTH 40
@@ -63,6 +65,9 @@ extern HISTORY_ITEM *selected;
extern gint locked_count;
+/* which clipboard to use */
+extern gchar clipboard_str[32];
+extern GdkAtom clipboard;
#ifdef DEBUG
#define dump_history_list(header) dump_history_list_fn(header)
diff --git a/wmcliphistrc b/wmcliphistrc
index da3b7e6..e68455e 100644
--- a/wmcliphistrc
+++ b/wmcliphistrc
@@ -67,6 +67,11 @@ exec_middleclick yes
exec_hotkey yes
+# Which clipboard should wmcliphist manage? PRIMARY (select copies, middle click
+# pastes), SECONDARY (not used), or CLIPBOARD (Ctrl+C copies, Ctrl+V pastes)
+# Default: PRIMARY
+
+clipboard PRIMARY
# You can define regular expressions driven actions executed when new
# item is captured. Items can be silently ignored, inserted to submenus
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-wmaker/wmcliphist.git
More information about the Pkg-wmaker-commits
mailing list