From 8a975cb10051e8da0420275a43f1b49d3cce2678 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sat, 15 Oct 2011 20:07:57 -0400 Subject: [PATCH] respect the active/mouse options for monitor placement, and use ObMonitorPlace for per-app too --- openbox/config.c | 10 +++++----- openbox/config.h | 9 +-------- openbox/place.c | 10 +++++++--- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/openbox/config.c b/openbox/config.c index 9067011a..0d9eb689 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -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); diff --git a/openbox/config.h b/openbox/config.h index 1802179d..730dc39a 100644 --- a/openbox/config.h +++ b/openbox/config.h @@ -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; diff --git a/openbox/place.c b/openbox/place.c index a73a8bfb..2cd21bb0 100644 --- a/openbox/place.c +++ b/openbox/place.c @@ -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; } -- 2.39.2