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
|
* 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
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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"/>
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue