add <dialog><focus/><desktop/> to allow disabling popups
This commit is contained in:
parent
71030a2bd2
commit
4e8eff328c
7 changed files with 42 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -51,6 +51,11 @@
|
|||
<moveButton>A-Left</moveButton>
|
||||
</dock>
|
||||
|
||||
<dialog>
|
||||
<focus>yes</focus>
|
||||
<desktop>yes</desktop>
|
||||
</dialog>
|
||||
|
||||
<keyboard>
|
||||
<chainQuitKey>C-g</chainQuitKey>
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue