]>
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"
23 GSList
*per_app_settings
;
25 ObAppSetting
*get_client_settings(ObClient
*client
)
27 GSList
*a
= per_app_settings
;
30 ObAppSetting
*app
= (ObAppSetting
*) a
->data
;
32 if (!strcmp(app
->name
, client
->name
)) {
33 ob_debug("Window matching: %s\n", app
->name
);
35 return (ObAppSetting
*) a
->data
;
43 void place_window_from_settings(ObAppSetting
*setting
, ObClient
*client
, gint
*x
, gint
*y
)
48 /* Find which head the pointer is on, partly taken from place.c */
49 if (setting
->head
== -1) {
50 screen_pointer_pos(&px
, &py
);
52 for (i
= 0; i
< screen_num_monitors
; i
++) {
53 screen
= screen_area_monitor(client
->desktop
, i
);
54 if (RECT_CONTAINS(*screen
, px
, py
))
58 if (i
== screen_num_monitors
)
59 screen
= screen_area_monitor(client
->desktop
, 0);
62 screen
= screen_area_monitor(client
->desktop
, setting
->head
);
64 if (setting
->position
.x
== -1 && setting
->center_x
)
65 *x
= screen
->x
+ screen
->width
/ 2 - client
->area
.width
/ 2;
66 else if (setting
->position
.x
!= -1)
67 *x
= screen
->x
+ setting
->position
.x
;
69 if (setting
->position
.y
== -1 && setting
->center_y
)
70 *y
= screen
->y
+ screen
->height
/ 2 - client
->area
.height
/ 2;
71 else if (setting
->position
.y
!= -1)
72 *y
= screen
->y
+ setting
->position
.y
;
This page took 0.034189 seconds and 4 git commands to generate.