summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2009-12-09 17:03:37 -0500
committerDana Jansens <danakj@orodu.net>2009-12-09 17:03:37 -0500
commit5f2182c33ba5e716885f096bfe498620d111908c (patch)
treeda8aaaa96424c51332e0b6f19309985c9fbe737c /openbox
parentd3976a51fb4a43edfddf1938e249232301b9c8b5 (diff)
Revert "Show desktop switch popup on every monitor"
This reverts commit 2e1adce628ee3234accc5d88cafb57672800cae0.
Diffstat (limited to 'openbox')
-rw-r--r--openbox/screen.c103
1 files changed, 31 insertions, 72 deletions
diff --git a/openbox/screen.c b/openbox/screen.c
index b16bb17b..cf2a6db7 100644
--- a/openbox/screen.c
+++ b/openbox/screen.c
@@ -77,7 +77,7 @@ static GSList *struts_left = NULL;
static GSList *struts_right = NULL;
static GSList *struts_bottom = NULL;
-static ObPagerPopup **desktop_popup;
+static ObPagerPopup *desktop_popup;
/*! The number of microseconds that you need to be on a desktop before it will
replace the remembered "last desktop" */
@@ -353,22 +353,15 @@ void screen_startup(gboolean reconfig)
guint32 d;
gboolean namesexist = FALSE;
- if (reconfig) {
- guint i;
- desktop_popup = g_new(ObPagerPopup*, screen_num_monitors);
- for (i = 0; i < screen_num_monitors; i++) {
- desktop_popup[i] = pager_popup_new();
- pager_popup_height(desktop_popup[i], POPUP_HEIGHT);
-
- /* update the pager popup's width */
- pager_popup_text_width_to_strings(desktop_popup[i],
- screen_desktop_names,
- screen_num_desktops);
- }
+ desktop_popup = pager_popup_new();
+ pager_popup_height(desktop_popup, POPUP_HEIGHT);
+ if (reconfig) {
+ /* update the pager popup's width */
+ pager_popup_text_width_to_strings(desktop_popup,
+ screen_desktop_names,
+ screen_num_desktops);
return;
- } else {
- desktop_popup = NULL;
}
/* get the initial size */
@@ -458,12 +451,7 @@ void screen_startup(gboolean reconfig)
void screen_shutdown(gboolean reconfig)
{
- guint i;
-
- for (i = 0; i < screen_num_monitors; i++) {
- pager_popup_free(desktop_popup[i]);
- }
- g_free(desktop_popup);
+ pager_popup_free(desktop_popup);
if (reconfig)
return;
@@ -943,52 +931,39 @@ static guint translate_row_col(guint r, guint c)
static gboolean hide_desktop_popup_func(gpointer data)
{
- guint i;
-
- for (i = 0; i < screen_num_monitors; i++) {
- pager_popup_hide(desktop_popup[i]);
- }
+ pager_popup_hide(desktop_popup);
return FALSE; /* don't repeat */
}
void screen_show_desktop_popup(guint d)
{
Rect *a;
- guint i;
/* 0 means don't show the popup */
if (!config_desktop_popup_time) return;
- for (i = 0; i < screen_num_monitors; i++) {
- a = screen_physical_area_monitor(i);
- pager_popup_position(desktop_popup[i], CenterGravity,
- a->x + a->width / 2, a->y + a->height / 2);
- pager_popup_icon_size_multiplier(desktop_popup[i],
- (screen_desktop_layout.columns /
- screen_desktop_layout.rows) / 2,
- (screen_desktop_layout.rows/
- screen_desktop_layout.columns) / 2);
- pager_popup_max_width(desktop_popup[i],
- MAX(a->width/3, POPUP_WIDTH));
- pager_popup_show(desktop_popup[i], screen_desktop_names[d], d);
-
- ob_main_loop_timeout_remove(ob_main_loop, hide_desktop_popup_func);
- ob_main_loop_timeout_add(ob_main_loop, config_desktop_popup_time * 1000,
- hide_desktop_popup_func, desktop_popup[i],
- g_direct_equal, NULL);
- g_free(a);
- }
+ a = screen_physical_area_active();
+ pager_popup_position(desktop_popup, CenterGravity,
+ a->x + a->width / 2, a->y + a->height / 2);
+ pager_popup_icon_size_multiplier(desktop_popup,
+ (screen_desktop_layout.columns /
+ screen_desktop_layout.rows) / 2,
+ (screen_desktop_layout.rows/
+ screen_desktop_layout.columns) / 2);
+ pager_popup_max_width(desktop_popup,
+ MAX(a->width/3, POPUP_WIDTH));
+ pager_popup_show(desktop_popup, screen_desktop_names[d], d);
+
+ ob_main_loop_timeout_remove(ob_main_loop, hide_desktop_popup_func);
+ ob_main_loop_timeout_add(ob_main_loop, config_desktop_popup_time * 1000,
+ hide_desktop_popup_func, NULL, NULL, NULL);
+ g_free(a);
}
void screen_hide_desktop_popup(void)
{
- guint i;
-
- for (i = 0; i < screen_num_monitors; i++) {
- ob_main_loop_timeout_remove_data(ob_main_loop, hide_desktop_popup_func,
- desktop_popup[i], FALSE);
- pager_popup_hide(desktop_popup[i]);
- }
+ ob_main_loop_timeout_remove(ob_main_loop, hide_desktop_popup_func);
+ pager_popup_hide(desktop_popup);
}
guint screen_find_desktop(guint from, ObDirection dir,
@@ -1223,11 +1198,9 @@ void screen_update_desktop_names(void)
}
/* resize the pager for these names */
- for (i = 0; i < screen_num_monitors; i++) {
- pager_popup_text_width_to_strings(desktop_popup[i],
- screen_desktop_names,
- screen_num_desktops);
- }
+ pager_popup_text_width_to_strings(desktop_popup,
+ screen_desktop_names,
+ screen_num_desktops);
}
void screen_show_desktop(gboolean show, ObClient *show_only)
@@ -1357,20 +1330,6 @@ void screen_update_areas(void)
g_free(monitor_area);
extensions_xinerama_screens(&monitor_area, &screen_num_monitors);
- if (!desktop_popup) {
- desktop_popup = g_new(ObPagerPopup*, screen_num_monitors);
- for (i = 0; i < screen_num_monitors; i++) {
- desktop_popup[i] = pager_popup_new();
- pager_popup_height(desktop_popup[i], POPUP_HEIGHT);
-
- if (screen_desktop_names)
- /* update the pager popup's width */
- pager_popup_text_width_to_strings(desktop_popup[i],
- screen_desktop_names,
- screen_num_desktops);
- }
- }
-
/* set up the user-specified margins */
config_margins.top_start = RECT_LEFT(monitor_area[screen_num_monitors]);
config_margins.top_end = RECT_RIGHT(monitor_area[screen_num_monitors]);