aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--x11-wm/transset-df/Makefile2
-rw-r--r--x11-wm/transset-df/files/patch-transset.c63
2 files changed, 64 insertions, 1 deletions
diff --git a/x11-wm/transset-df/Makefile b/x11-wm/transset-df/Makefile
index b9398704b5ec..4f0761e3657a 100644
--- a/x11-wm/transset-df/Makefile
+++ b/x11-wm/transset-df/Makefile
@@ -7,7 +7,7 @@
PORTNAME= transset-df
PORTVERSION= 5
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= x11-wm
MASTER_SITES= http://forchheimer.se/transset-df/
diff --git a/x11-wm/transset-df/files/patch-transset.c b/x11-wm/transset-df/files/patch-transset.c
new file mode 100644
index 000000000000..ad99a7928cd6
--- /dev/null
+++ b/x11-wm/transset-df/files/patch-transset.c
@@ -0,0 +1,63 @@
+--- /transSet.c 2007-08-17 18:02:34.000000000 +0200
++++ transSet.c 2007-08-17 18:03:28.000000000 +0200
+@@ -39,6 +39,8 @@
+ fprintf(stderr,
+ " -p, --point select the window currently under the cursor\n");
+ fprintf(stderr,
++ " -a, --actual select the actual window\n");
++ fprintf(stderr,
+ " -n, --name NAME select by name, NAME is matched as regular expression\n");
+ fprintf(stderr,
+ " --no-regex don't use regular expression for matching name\n");
+@@ -85,6 +87,15 @@
+ return child;
+ }
+
++/* returns the actual window */
++Window get_actual_window(Display *dpy)
++{
++ int i;
++ Window w;
++
++ XGetInputFocus(dpy, &w, &i);
++ return get_top_window(dpy, w);
++}
+
+ /* nothing fancy */
+ int main(int argc, char **argv)
+@@ -109,6 +120,7 @@
+ {"toggle",0,NULL,'t'},
+ {"help",0,NULL,'h'},
+ {"point",0,NULL,'p'},
++ {"actual",0,NULL,'a'},
+ {"click",0,NULL,'c'},
+ {"id",1,NULL,'i'},
+ {"name",1,NULL,'n'},
+@@ -131,7 +143,7 @@
+ Setup_Display_And_Screen(&argc, argv);
+
+ /* parse arguments */
+- while ((o = getopt_long(argc, argv, "thpci:n:vVm:x:123",long_options,&options_index)) != -1)
++ while ((o = getopt_long(argc, argv, "thapci:n:vVm:x:123",long_options,&options_index)) != -1)
+ {
+ switch (o) {
+ case 't':
+@@ -156,6 +168,9 @@
+ namestr = optarg;
+ select_method=3;
+ break;
++ case 'a':
++ select_method=4;
++ break;
+ case '1':
+ flag_increase=1;
+ break;
+@@ -228,6 +243,8 @@
+ target_win = get_top_window(dpy,target_win);
+ if(flag_verbose) printf("found 0x%x\n",(unsigned int)target_win);
+
++ } else if(select_method==4) {
++ target_win = get_actual_window(dpy);
+ } else {
+ /* grab mouse and return window that is next clicked */
+ target_win = Select_Window(dpy);