diff options
Diffstat (limited to 'openbox')
| -rw-r--r-- | openbox/config.c | 21 | ||||
| -rw-r--r-- | openbox/config.h | 5 | ||||
| -rw-r--r-- | openbox/focus.c | 2 | ||||
| -rw-r--r-- | openbox/screen.c | 2 |
4 files changed, 28 insertions, 2 deletions
diff --git a/openbox/config.c b/openbox/config.c index 97accc01..d72cce8d 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -56,6 +56,9 @@ guint config_keyboard_reset_state; gint config_mouse_threshold; gint config_mouse_dclicktime; +gboolean config_dialog_focus; +gboolean config_dialog_desktop; + GSList *config_menu_files; gint config_resist_win; @@ -340,6 +343,19 @@ static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d) } } +static void parse_dialog(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, + void *d) +{ + xmlNodePtr n; + + node = node->children; + + if ((n = parse_find_node("focus", node))) + config_dialog_focus = parse_bool(doc, n); + if ((n = parse_find_node("desktop", node))) + config_dialog_desktop = parse_bool(doc, n); +} + static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d) { for (node = node->children; node; node = node->next) { @@ -526,6 +542,11 @@ void config_startup(ObParseInst *i) parse_register(i, "resistance", parse_resistance, NULL); + config_dialog_focus = TRUE; + config_dialog_desktop = TRUE; + + parse_register(i, "dialog", parse_dialog, NULL); + config_menu_files = NULL; parse_register(i, "menu", parse_menu, NULL); diff --git a/openbox/config.h b/openbox/config.h index 0c14b376..c8c85eb8 100644 --- a/openbox/config.h +++ b/openbox/config.h @@ -93,6 +93,11 @@ extern gint config_resist_win; /*! Number of pixels to resist while crossing a screen's edge */ extern gint config_resist_edge; +/*! Show a dialog while cycling focus between windows */ +extern gboolean config_dialog_focus; +/*! Show a dialogs while switching between desktops */ +extern gboolean config_dialog_desktop; + /*! User-specified menu files */ extern GSList *config_menu_files; diff --git a/openbox/focus.c b/openbox/focus.c index 740ce07b..eac0dce1 100644 --- a/openbox/focus.c +++ b/openbox/focus.c @@ -237,7 +237,7 @@ void focus_fallback(ObFocusFallbackType type) static void popup_cycle(ObClient *c, gboolean show) { - if (!show) { + if (!show || !config_dialog_focus) { icon_popup_hide(focus_cycle_popup); } else { Rect *a; diff --git a/openbox/screen.c b/openbox/screen.c index 7f0c70c9..8a9475ad 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -572,7 +572,7 @@ void screen_desktop_popup(guint d, gboolean show) { Rect *a; - if (!show) { + if (!show || !config_dialog_desktop) { pager_popup_hide(desktop_cycle_popup); } else { a = screen_physical_area_monitor(0); |
