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;
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);
}
}
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);
/*! 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;
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);
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);
}
}