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 * Added the <moveButton> option for moving dock apps around inside the
dock. dock.
* Made the "Desktop" action show the pager/desktop dialog. * 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: 3.0-beta6:
* Added _OB_WM_STATE_UNDECORATED hint, which can be read and controlled * Added _OB_WM_STATE_UNDECORATED hint, which can be read and controlled

View file

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

View file

@ -46,6 +46,7 @@
<xs:element name="desktops" type="ob:desktops"/> <xs:element name="desktops" type="ob:desktops"/>
<xs:element name="resize" type="ob:resize"/> <xs:element name="resize" type="ob:resize"/>
<xs:element name="dock" type="ob:dock"/> <xs:element name="dock" type="ob:dock"/>
<xs:element name="dialog" type="ob:dialog"/>
<xs:element name="keyboard" type="ob:keyboard"/> <xs:element name="keyboard" type="ob:keyboard"/>
<xs:element name="mouse" type="ob:mouse"/> <xs:element name="mouse" type="ob:mouse"/>
<xs:element name="menu" type="ob:menu"/> <xs:element name="menu" type="ob:menu"/>
@ -111,6 +112,12 @@
<xs:element name="moveButton" type="ob:button"/> <xs:element name="moveButton" type="ob:button"/>
</xs:sequence> </xs:sequence>
</xs:complexType> </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:complexType name="action">
<xs:sequence> <xs:sequence>
<xs:element minOccurs="0" name="menu" type="xs:string"/> <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_threshold;
gint config_mouse_dclicktime; gint config_mouse_dclicktime;
gboolean config_dialog_focus;
gboolean config_dialog_desktop;
GSList *config_menu_files; GSList *config_menu_files;
gint config_resist_win; 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) static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d)
{ {
for (node = node->children; node; node = node->next) { for (node = node->children; node; node = node->next) {
@ -526,6 +542,11 @@ void config_startup(ObParseInst *i)
parse_register(i, "resistance", parse_resistance, NULL); 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; config_menu_files = NULL;
parse_register(i, "menu", parse_menu, 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 */ /*! Number of pixels to resist while crossing a screen's edge */
extern gint config_resist_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 */ /*! User-specified menu files */
extern GSList *config_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) static void popup_cycle(ObClient *c, gboolean show)
{ {
if (!show) { if (!show || !config_dialog_focus) {
icon_popup_hide(focus_cycle_popup); icon_popup_hide(focus_cycle_popup);
} else { } else {
Rect *a; Rect *a;

View file

@ -572,7 +572,7 @@ void screen_desktop_popup(guint d, gboolean show)
{ {
Rect *a; Rect *a;
if (!show) { if (!show || !config_dialog_desktop) {
pager_popup_hide(desktop_cycle_popup); pager_popup_hide(desktop_cycle_popup);
} else { } else {
a = screen_physical_area_monitor(0); a = screen_physical_area_monitor(0);