* Added the <moveButton> option for moving dock apps around inside the
dock.
* Made the "Desktop" action show the pager/desktop dialog.
+ * Add the <dialog> section to allow the disabling of the focus and
+ pager/desktop dialogs.
3.0-beta6:
* Added _OB_WM_STATE_UNDECORATED hint, which can be read and controlled
<moveButton>A-Left</moveButton>
</dock>
+<dialog>
+ <focus>yes</focus>
+ <desktop>yes</desktop>
+</dialog>
+
<keyboard>
<chainQuitKey>C-g</chainQuitKey>
<xs:element name="desktops" type="ob:desktops"/>
<xs:element name="resize" type="ob:resize"/>
<xs:element name="dock" type="ob:dock"/>
+ <xs:element name="dialog" type="ob:dialog"/>
<xs:element name="keyboard" type="ob:keyboard"/>
<xs:element name="mouse" type="ob:mouse"/>
<xs:element name="menu" type="ob:menu"/>
<xs:element name="moveButton" type="ob:button"/>
</xs:sequence>
</xs:complexType>
+ <xs:complexType name="dialog">
+ <xs:sequence>
+ <xs:element name="focus" type="ob:yesorno"/>
+ <xs:element name="desktop" type="ob:yesorno"/>
+ </xs:sequence>
+ </xs:complexType>
<xs:complexType name="action">
<xs:sequence>
<xs:element minOccurs="0" name="menu" type="xs:string"/>
gint config_mouse_threshold;
gint config_mouse_dclicktime;
+gboolean config_dialog_focus;
+gboolean config_dialog_desktop;
+
GSList *config_menu_files;
gint config_resist_win;
}
}
+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) {
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);
/*! 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;
static void popup_cycle(ObClient *c, gboolean show)
{
- if (!show) {
+ if (!show || !config_dialog_focus) {
icon_popup_hide(focus_cycle_popup);
} else {
Rect *a;
{
Rect *a;
- if (!show) {
+ if (!show || !config_dialog_desktop) {
pager_popup_hide(desktop_cycle_popup);
} else {
a = screen_physical_area_monitor(0);