]>
Dogcows Code - chaz/openbox/blob - openbox/per_app_settings.c
1 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
3 client.h for the Openbox window manager
4 Copyright (c) 2006 Mikael Magnusson
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 See the COPYING file for a copy of the GNU General Public License.
19 #include "per_app_settings.h"
22 GSList
*per_app_settings
;
24 ObAppSetting
*get_client_settings(ObClient
*client
)
26 GSList
*a
= per_app_settings
;
29 ObAppSetting
*app
= (ObAppSetting
*) a
->data
;
31 if (!strcmp(app
->name
, client
->name
)) {
32 ob_debug("Window matching: %s\n", app
->name
);
34 return (ObAppSetting
*) a
->data
;
42 void place_window_from_settings(ObAppSetting
*setting
, ObClient
*client
, gint
*x
, gint
*y
)
47 /* Find which head the pointer is on, partly taken from place.c */
48 if (setting
->head
== -1) {
49 screen_pointer_pos(&px
, &py
);
51 for (i
= 0; i
< screen_num_monitors
; i
++) {
52 screen
= screen_area_monitor(client
->desktop
, i
);
53 if (RECT_CONTAINS(*screen
, px
, py
))
57 if (i
== screen_num_monitors
)
58 screen
= screen_area_monitor(client
->desktop
, 0);
61 screen
= screen_area_monitor(client
->desktop
, setting
->head
);
63 if (setting
->position
.x
== -1 && setting
->center_x
)
64 *x
= screen
->x
+ screen
->width
/ 2 - client
->area
.width
/ 2;
65 else if (setting
->position
.x
!= -1)
66 *x
= screen
->x
+ setting
->position
.x
;
68 if (setting
->position
.y
== -1 && setting
->center_y
)
69 *y
= screen
->y
+ screen
->height
/ 2 - client
->area
.height
/ 2;
70 else if (setting
->position
.y
!= -1)
71 *y
= screen
->y
+ setting
->position
.y
;
This page took 0.040282 seconds and 5 git commands to generate.