projects
/
dana
/
openbox.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f55ae9e
)
Add complementing ShrinkToEdge action.
author
Mikael Magnusson
<mikachu@comhem.se>
Wed, 3 Oct 2007 12:05:15 +0000
(14:05 +0200)
committer
Mikael Magnusson
<mikachu@comhem.se>
Wed, 3 Oct 2007 12:07:45 +0000
(14:07 +0200)
openbox/actions/growtoedge.c
patch
|
blob
|
history
diff --git
a/openbox/actions/growtoedge.c
b/openbox/actions/growtoedge.c
index
2e2b701
..
44e5287
100644
(file)
--- a/
openbox/actions/growtoedge.c
+++ b/
openbox/actions/growtoedge.c
@@
-7,9
+7,11
@@
typedef struct {
ObDirection dir;
typedef struct {
ObDirection dir;
+ gboolean shrink;
} Options;
static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node);
} Options;
static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node);
+static gpointer setup_shrink_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node);
static void free_func(gpointer options);
static gboolean run_func(ObActionsData *data, gpointer options);
static void free_func(gpointer options);
static gboolean run_func(ObActionsData *data, gpointer options);
@@
-20,6
+22,12
@@
void action_growtoedge_startup()
free_func,
run_func,
NULL, NULL);
free_func,
run_func,
NULL, NULL);
+
+ actions_register("ShrinkToEdge",
+ setup_shrink_func,
+ free_func,
+ run_func,
+ NULL, NULL);
}
static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
}
static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
@@
-29,6
+37,7
@@
static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
o = g_new0(Options, 1);
o->dir = OB_DIRECTION_NORTH;
o = g_new0(Options, 1);
o->dir = OB_DIRECTION_NORTH;
+ o->shrink = FALSE;
if ((n = parse_find_node("direction", node))) {
gchar *s = parse_string(doc, n);
if ((n = parse_find_node("direction", node))) {
gchar *s = parse_string(doc, n);
@@
-50,6
+59,16
@@
static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
return o;
}
return o;
}
+static gpointer setup_shrink_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
+{
+ Options *o;
+
+ o = setup_func(i, doc, node);
+ o->shrink = TRUE;
+
+ return o;
+}
+
static void free_func(gpointer options)
{
Options *o = options;
static void free_func(gpointer options)
{
Options *o = options;
@@
-98,11
+117,13
@@
static gboolean run_func(ObActionsData *data, gpointer options)
return FALSE;
}
return FALSE;
}
- /* try grow */
- client_find_resize_directional(data->client, o->dir, TRUE,
- &x, &y, &w, &h);
- if (do_grow(data, x, y, w, h))
- return FALSE;
+ if (!o->shrink) {
+ /* try grow */
+ client_find_resize_directional(data->client, o->dir, TRUE,
+ &x, &y, &w, &h);
+ if (do_grow(data, x, y, w, h))
+ return FALSE;
+ }
/* we couldn't grow, so try shrink! */
opp = (o->dir == OB_DIRECTION_NORTH ? OB_DIRECTION_SOUTH :
/* we couldn't grow, so try shrink! */
opp = (o->dir == OB_DIRECTION_NORTH ? OB_DIRECTION_SOUTH :