add <dialog><focus/><desktop/> to allow disabling popups

This commit is contained in:
Dana Jansens 2003-09-26 08:22:49 +00:00
parent 71030a2bd2
commit 4e8eff328c
7 changed files with 42 additions and 2 deletions

View file

@ -3,6 +3,8 @@
* 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

View file

@ -51,6 +51,11 @@
<moveButton>A-Left</moveButton>
</dock>
<dialog>
<focus>yes</focus>
<desktop>yes</desktop>
</dialog>
<keyboard>
<chainQuitKey>C-g</chainQuitKey>

View file

@ -46,6 +46,7 @@
<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"/>
@ -111,6 +112,12 @@
<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"/>

View file

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

View file

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

View file

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

View file

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