summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@comhem.se>2004-03-20 22:53:16 +0000
committerMikael Magnusson <mikachu@comhem.se>2004-03-20 22:53:16 +0000
commitbc0440851789c9626bc9f9d3a13a7164915bdcfa (patch)
tree99c49502e609a64cfedc72b677d2ba32bec49a8b /openbox
parentcd0204d6269634cad3085130dc78aed2dd9b1d55 (diff)
some nice options for the menus, warpPointer, xorStyle (better name wanted for this :), hilightFirst and hideDelay (this was hardcoded to .25 secs earlier)
Diffstat (limited to 'openbox')
-rw-r--r--openbox/config.c17
-rw-r--r--openbox/config.h8
-rw-r--r--openbox/event.c2
-rw-r--r--openbox/menuframe.c8
4 files changed, 32 insertions, 3 deletions
diff --git a/openbox/config.c b/openbox/config.c
index 293174df..49105411 100644
--- a/openbox/config.c
+++ b/openbox/config.c
@@ -59,6 +59,11 @@ guint config_keyboard_reset_state;
gint config_mouse_threshold;
gint config_mouse_dclicktime;
+gboolean config_menu_warppointer;
+gboolean config_menu_xorstyle;
+gboolean config_menu_hilightfirst;
+guint config_menu_hide_delay;
+
GSList *config_menu_files;
gint config_resist_win;
@@ -373,6 +378,14 @@ static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
parse_expand_tilde(c));
g_free(c);
}
+ if ((n = parse_find_node("warpPointer", node)))
+ config_menu_warppointer = parse_bool(doc, n);
+ if ((n = parse_find_node("xorStyle", node)))
+ config_menu_xorstyle = parse_bool(doc, n);
+ if ((n = parse_find_node("hilightFirst", node)))
+ config_menu_hilightfirst = parse_bool(doc, n);
+ if ((n = parse_find_node("hideDelay", node)))
+ config_menu_hide_delay = parse_int(doc, n);
}
}
@@ -553,6 +566,10 @@ void config_startup(ObParseInst *i)
parse_register(i, "resistance", parse_resistance, NULL);
+ config_menu_warppointer = TRUE;
+ config_menu_xorstyle = TRUE;
+ config_menu_hilightfirst = TRUE;
+ config_menu_hide_delay = 250;
config_menu_files = NULL;
parse_register(i, "menu", parse_menu, NULL);
diff --git a/openbox/config.h b/openbox/config.h
index 63ea5a6d..59ac5542 100644
--- a/openbox/config.h
+++ b/openbox/config.h
@@ -97,6 +97,14 @@ extern gint config_resist_win;
/*! Number of pixels to resist while crossing a screen's edge */
extern gint config_resist_edge;
+/*! Warp near edge on menu? */
+extern gboolean config_menu_warppointer;
+/*! make menus jump around a lot */
+extern gboolean config_menu_xorstyle;
+/*! hilight first entry in menu */
+extern gboolean config_menu_hilightfirst;
+/*! delay for hiding menu when opening */
+extern guint config_menu_hide_delay;
/*! User-specified menu files */
extern GSList *config_menu_files;
diff --git a/openbox/event.c b/openbox/event.c
index a1c7e1f5..0c843ac7 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -531,7 +531,7 @@ static void event_process(const XEvent *ec, gpointer data)
menu_can_hide = FALSE;
ob_main_loop_timeout_add(ob_main_loop,
- G_USEC_PER_SEC / 4,
+ config_menu_hide_delay * 1000,
menu_hide_delay_func,
NULL, NULL);
diff --git a/openbox/menuframe.c b/openbox/menuframe.c
index 03e61621..a0547935 100644
--- a/openbox/menuframe.c
+++ b/openbox/menuframe.c
@@ -217,11 +217,15 @@ void menu_frame_move_on_screen(ObMenuFrame *self)
if (dx || dy) {
ObMenuFrame *f;
- for (f = self; f; f = f->parent)
+ menu_frame_move(self, self->area.x + dx, self->area.y + dy);
+ if (!config_menu_xorstyle)
+ dy = 0;
+ for (f = self->parent; f; f = f->parent)
menu_frame_move(f, f->area.x + dx, f->area.y + dy);
for (f = self->child; f; f = f->child)
menu_frame_move(f, f->area.x + dx, f->area.y + dy);
- XWarpPointer(ob_display, None, None, 0, 0, 0, 0, dx, dy);
+ if (config_menu_warppointer)
+ XWarpPointer(ob_display, None, None, 0, 0, 0, 0, dx, dy);
}
}