projects
/
mikachu
/
openbox.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
2b0dfb8
)
obxprop: Add ability to limit listing to given properties
author
Mikael Magnusson
<mikachu@gmail.com>
Fri, 8 Jan 2010 20:51:04 +0000
(21:51 +0100)
committer
Mikael Magnusson
<mikachu@gmail.com>
Fri, 8 Jan 2010 20:51:04 +0000
(21:51 +0100)
tools/obxprop/obxprop.c
patch
|
blob
|
history
diff --git
a/tools/obxprop/obxprop.c
b/tools/obxprop/obxprop.c
index
6ea8a4d
..
b28b77a
100644
(file)
--- a/
tools/obxprop/obxprop.c
+++ b/
tools/obxprop/obxprop.c
@@
-12,7
+12,7
@@
gint fail(const gchar *s) {
else
fprintf
(stderr,
else
fprintf
(stderr,
- "Usage: obxprop [OPTIONS]\n\n"
+ "Usage: obxprop [OPTIONS]
[--] [PROPERTIES ...]
\n\n"
"Options:\n"
" --help Display this help and exit\n"
" --display DISPLAY Connect to this X display\n"
"Options:\n"
" --help Display this help and exit\n"
" --display DISPLAY Connect to this X display\n"
@@
-227,7
+227,7
@@
gboolean read_prop(Display *d, Window w, Atom prop, const gchar **type, gchar **
return FALSE;
}
return FALSE;
}
-void show_properties(Display *d, Window w)
+void show_properties(Display *d, Window w
, int argc, char **argv
)
{
Atom* props;
int i, n;
{
Atom* props;
int i, n;
@@
-241,7
+241,19
@@
void show_properties(Display *d, Window w)
name = XGetAtomName(d, props[i]);
if (read_prop(d, w, props[i], &type, &val)) {
name = XGetAtomName(d, props[i]);
if (read_prop(d, w, props[i], &type, &val)) {
- g_print("%s(%s) = %s\n", name, type, val);
+ int found = 1;
+ if (argc) {
+ int i;
+
+ found = 0;
+ for (i = 0; i < argc; i++)
+ if (!strcmp(name, argv[i])) {
+ found = 1;
+ break;
+ }
+ }
+ if (found)
+ g_print("%s(%s) = %s\n", name, type, val);
g_free(val);
}
g_free(val);
}
@@
-283,6
+295,14
@@
int main(int argc, char **argv)
return fail(0);
dname = argv[i];
}
return fail(0);
dname = argv[i];
}
+ else if (*argv[i] != '-')
+ break;
+ else if (!strcmp(argv[i], "--")) {
+ i++;
+ break;
+ }
+ else
+ return fail(NULL);
}
d = XOpenDisplay(dname);
}
d = XOpenDisplay(dname);
@@
-295,12
+315,13
@@
int main(int argc, char **argv)
userid = RootWindow(d, DefaultScreen(d));
if (userid == None) {
userid = RootWindow(d, DefaultScreen(d));
if (userid == None) {
- i = XGrabPointer(d, RootWindow(d, DefaultScreen(d)),
+ int j;
+ j = XGrabPointer(d, RootWindow(d, DefaultScreen(d)),
False, ButtonPressMask,
GrabModeAsync, GrabModeAsync,
None, XCreateFontCursor(d, XC_crosshair),
CurrentTime);
False, ButtonPressMask,
GrabModeAsync, GrabModeAsync,
None, XCreateFontCursor(d, XC_crosshair),
CurrentTime);
- if (
i
!= GrabSuccess)
+ if (
j
!= GrabSuccess)
return fail("Unable to grab the pointer device");
while (1) {
XEvent ev;
return fail("Unable to grab the pointer device");
while (1) {
XEvent ev;
@@
-319,7
+340,7
@@
int main(int argc, char **argv)
if (id == None)
return fail("Unable to find window with the requested ID");
if (id == None)
return fail("Unable to find window with the requested ID");
- show_properties(d, id);
+ show_properties(d, id
, argc - i, &argv[i]
);
XCloseDisplay(d);
XCloseDisplay(d);