diff options
author | Vincent Untz <vuntz@gnome.org> | 2006-03-06 18:53:59 +0000 |
---|---|---|
committer | Vincent Untz <vuntz@src.gnome.org> | 2006-03-06 18:53:59 +0000 |
commit | 327a8a7a5cd81654de03c027d4f234c0bd6fec39 (patch) | |
tree | d7ba9c9d591a4408d546447aa22a49dae13e3924 | |
parent | b31785b64438f810fa6cc5e9bb2d2a70d9034c2c (diff) | |
download | libwnck-327a8a7a5cd81654de03c027d4f234c0bd6fec39.tar.gz |
don't minimize the window when it's on another desktop and it was the last
2006-03-06 Vincent Untz <vuntz@gnome.org>
* libwnck/tasklist.c: (wnck_tasklist_activate_task_window): don't
minimize the window when it's on another desktop and it was the last
active window. Activate it instead. Fix bug #331661
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | libwnck/tasklist.c | 18 |
2 files changed, 14 insertions, 10 deletions
@@ -1,3 +1,9 @@ +2006-03-06 Vincent Untz <vuntz@gnome.org> + + * libwnck/tasklist.c: (wnck_tasklist_activate_task_window): don't + minimize the window when it's on another desktop and it was the last + active window. Activate it instead. Fix bug #331661 + 2006-02-27 Vincent Untz <vuntz@gnome.org> * configure.in: post-release bump to 2.13.92 diff --git a/libwnck/tasklist.c b/libwnck/tasklist.c index fe6a85f..fc14609 100644 --- a/libwnck/tasklist.c +++ b/libwnck/tasklist.c @@ -2276,6 +2276,8 @@ wnck_tasklist_activate_task_window (WnckTask *task, { WnckTasklist *tasklist; WnckWindowState state; + WnckWorkspace *active_ws; + WnckWorkspace *window_ws; tasklist = task->tasklist; @@ -2284,13 +2286,11 @@ wnck_tasklist_activate_task_window (WnckTask *task, state = wnck_window_get_state (task->window); + active_ws = wnck_screen_get_active_workspace (tasklist->priv->screen); + window_ws = wnck_window_get_workspace (task->window); + if (state & WNCK_WINDOW_STATE_MINIMIZED) { - WnckWorkspace *active_ws; - WnckWorkspace *window_ws; - - active_ws = wnck_screen_get_active_workspace (tasklist->priv->screen); - window_ws = wnck_window_get_workspace (task->window); if (window_ws && active_ws != window_ws && !tasklist->priv->switch_workspace_on_unminimize) @@ -2300,8 +2300,9 @@ wnck_tasklist_activate_task_window (WnckTask *task, } else { - if (task->was_active || - wnck_window_transient_is_most_recently_activated (task->window)) + if ((task->was_active || + wnck_window_transient_is_most_recently_activated (task->window)) && + (window_ws && active_ws == window_ws)) { task->was_active = FALSE; wnck_window_minimize (task->window); @@ -2309,13 +2310,10 @@ wnck_tasklist_activate_task_window (WnckTask *task, } else { - WnckWorkspace *window_ws; - /* FIXME: THIS IS SICK AND WRONG AND BUGGY. See the end of * http://mail.gnome.org/archives/wm-spec-list/2005-July/msg00032.html * There should only be *one* activate call. */ - window_ws = wnck_window_get_workspace (task->window); if (window_ws) wnck_workspace_activate (window_ws, timestamp); |