summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-09-26 08:22:49 +0000
committerDana Jansens <danakj@orodu.net>2003-09-26 08:22:49 +0000
commit4e8eff328cf9f99f833ce01997621d3817074ab1 (patch)
tree8017d8955768acf37dbfd9a3df246f0344354cef /openbox
parent71030a2bd24224a797b41683ccf5292df9f0142a (diff)
add <dialog><focus/><desktop/> to allow disabling popups
Diffstat (limited to 'openbox')
-rw-r--r--openbox/config.c21
-rw-r--r--openbox/config.h5
-rw-r--r--openbox/focus.c2
-rw-r--r--openbox/screen.c2
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);