Permalink
Browse files

respect the active/mouse options for monitor placement, and use ObMon…

…itorPlace for per-app too
  • Loading branch information...
1 parent 4aade63 commit 8a975cb10051e8da0420275a43f1b49d3cce2678 @danakj danakj committed Oct 16, 2011
Showing with 13 additions and 16 deletions.
  1. +5 −5 openbox/config.c
  2. +1 −8 openbox/config.h
  3. +7 −3 openbox/place.c
View
@@ -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);
View
@@ -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;
View
@@ -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;
}

0 comments on commit 8a975cb

Please sign in to comment.