some nice options for the menus, warpPointer, xorStyle (better name wanted for this :), hilightFirst and hideDelay (this was hardcoded to .25 secs earlier)

This commit is contained in:
Mikael Magnusson 2004-03-20 22:53:16 +00:00
parent cd0204d626
commit bc04408517
4 changed files with 32 additions and 3 deletions

View file

@ -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);

View file

@ -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;

View file

@ -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);

View file

@ -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);
}
}