respect the active/mouse options for monitor placement, and use ObMonitorPlace for per-app too
This commit is contained in:
parent
4aade63604
commit
8a975cb100
3 changed files with 13 additions and 16 deletions
|
@ -111,7 +111,7 @@ ObAppSettings* config_create_app_settings(void)
|
|||
settings->type = -1;
|
||||
settings->decor = -1;
|
||||
settings->shade = -1;
|
||||
settings->monitor_type = 0;
|
||||
settings->monitor_type = OB_PLACE_MONITOR_ANY;
|
||||
settings->monitor = -1;
|
||||
settings->focus = -1;
|
||||
settings->desktop = 0;
|
||||
|
@ -136,7 +136,7 @@ void config_app_settings_copy_non_defaults(const ObAppSettings *src,
|
|||
copy_if(type, (ObClientType)-1);
|
||||
copy_if(decor, -1);
|
||||
copy_if(shade, -1);
|
||||
copy_if(monitor_type, 0);
|
||||
copy_if(monitor_type, OB_PLACE_MONITOR_ANY);
|
||||
copy_if(monitor, -1);
|
||||
copy_if(focus, -1);
|
||||
copy_if(desktop, 0);
|
||||
|
@ -297,13 +297,13 @@ static void parse_per_app_settings(xmlNodePtr node, gpointer d)
|
|||
gchar *s = obt_xml_node_string(c);
|
||||
if (!g_ascii_strcasecmp(s, "mouse"))
|
||||
settings->monitor_type =
|
||||
OB_APP_SETTINGS_MONITOR_MOUSE;
|
||||
OB_PLACE_MONITOR_MOUSE;
|
||||
else if (!g_ascii_strcasecmp(s, "active"))
|
||||
settings->monitor_type =
|
||||
OB_APP_SETTINGS_MONITOR_ACTIVE;
|
||||
OB_PLACE_MONITOR_ACTIVE;
|
||||
else if (!g_ascii_strcasecmp(s, "primary"))
|
||||
settings->monitor_type =
|
||||
OB_APP_SETTINGS_MONITOR_PRIMARY;
|
||||
OB_PLACE_MONITOR_PRIMARY;
|
||||
else
|
||||
settings->monitor = obt_xml_node_int(c);
|
||||
g_free(s);
|
||||
|
|
|
@ -33,13 +33,6 @@
|
|||
|
||||
typedef struct _ObAppSettings ObAppSettings;
|
||||
|
||||
typedef enum {
|
||||
OB_APP_SETTINGS_MONITOR_FIXED,
|
||||
OB_APP_SETTINGS_MONITOR_PRIMARY,
|
||||
OB_APP_SETTINGS_MONITOR_ACTIVE,
|
||||
OB_APP_SETTINGS_MONITOR_MOUSE
|
||||
} ObAppSettingsMonitor;
|
||||
|
||||
struct _ObAppSettings
|
||||
{
|
||||
GPatternSpec *class;
|
||||
|
@ -56,7 +49,7 @@ struct _ObAppSettings
|
|||
gint shade;
|
||||
gint decor;
|
||||
gint focus;
|
||||
ObAppSettingsMonitor monitor_type;
|
||||
ObPlaceMonitor monitor_type;
|
||||
gint monitor;
|
||||
gint iconic;
|
||||
gint skip_pager;
|
||||
|
|
|
@ -193,21 +193,25 @@ static Rect *pick_head(ObClient *c, gboolean foreground,
|
|||
if (config_place_monitor == OB_PLACE_MONITOR_PRIMARY)
|
||||
choice[i].flags |= HEAD_PLACED;
|
||||
if (settings &&
|
||||
settings->monitor_type == OB_APP_SETTINGS_MONITOR_PRIMARY)
|
||||
settings->monitor_type == OB_PLACE_MONITOR_PRIMARY)
|
||||
choice[i].flags |= HEAD_PERAPP;
|
||||
}
|
||||
|
||||
i = screen_monitor_active();
|
||||
if (i < screen_num_monitors) {
|
||||
if (config_place_monitor == OB_PLACE_MONITOR_ACTIVE)
|
||||
choice[i].flags |= HEAD_PLACED;
|
||||
if (settings &&
|
||||
settings->monitor_type == OB_APP_SETTINGS_MONITOR_ACTIVE)
|
||||
settings->monitor_type == OB_PLACE_MONITOR_ACTIVE)
|
||||
choice[i].flags |= HEAD_PERAPP;
|
||||
}
|
||||
|
||||
i = screen_monitor_pointer();
|
||||
if (i < screen_num_monitors) {
|
||||
if (config_place_monitor == OB_PLACE_MONITOR_MOUSE)
|
||||
choice[i].flags |= HEAD_PLACED;
|
||||
if (settings &&
|
||||
settings->monitor_type == OB_APP_SETTINGS_MONITOR_MOUSE)
|
||||
settings->monitor_type == OB_PLACE_MONITOR_MOUSE)
|
||||
choice[i].flags |= HEAD_PERAPP;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue