diff options
author | Mark McLoughlin <mark@skynet.ie> | 2004-09-21 14:51:11 +0000 |
---|---|---|
committer | Mark McLoughlin <markmc@src.gnome.org> | 2004-09-21 14:51:11 +0000 |
commit | 32d0ab91654e39e53da0fe51b3e6bfe3a04ea3f7 (patch) | |
tree | 7e531be3f3207c8e357c7ec99490e41b39d5739d | |
parent | 43305237fd37039d667f42347a74e4bfb7aac31c (diff) | |
download | libwnck-32d0ab91654e39e53da0fe51b3e6bfe3a04ea3f7.tar.gz |
Fix some runtime warning spew reported in bug #149313
2004-09-21 Mark McLoughlin <mark@skynet.ie>
Fix some runtime warning spew reported in bug #149313
* libwnck/tasklist.c:
(wnck_task_get_demands_attention): impl. handling task
groups as well as individual tasks.
(wnck_task_update_visible_state),
(wnck_task_create_widgets): use get_demands_attention()
* libwnck/window.[ch]: (update_actions): handle the minimize
and fullscreen actions.
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | libwnck/tasklist.c | 44 | ||||
-rw-r--r-- | libwnck/window.c | 16 | ||||
-rw-r--r-- | libwnck/window.h | 3 |
4 files changed, 65 insertions, 11 deletions
@@ -1,3 +1,16 @@ +2004-09-21 Mark McLoughlin <mark@skynet.ie> + + Fix some runtime warning spew reported in bug #149313 + + * libwnck/tasklist.c: + (wnck_task_get_demands_attention): impl. handling task + groups as well as individual tasks. + (wnck_task_update_visible_state), + (wnck_task_create_widgets): use get_demands_attention() + + * libwnck/window.[ch]: (update_actions): handle the minimize + and fullscreen actions. + 2004-09-21 Ross Burton <ross@burtonini.com> * libwnck/window.h: Add prototypes for wnck_window_set_fullscreen diff --git a/libwnck/tasklist.c b/libwnck/tasklist.c index 37a3c51..7f03f9e 100644 --- a/libwnck/tasklist.c +++ b/libwnck/tasklist.c @@ -2234,6 +2234,44 @@ wnck_task_get_icon (WnckTask *task) return pixbuf; } +static gboolean +wnck_task_get_demands_attention (WnckTask *task) +{ + GList *l; + WnckTask *win_task; + gboolean demands_attention; + + demands_attention = FALSE; + + switch (task->type) + { + case WNCK_TASK_CLASS_GROUP: + l = task->windows; + while (l) + { + win_task = WNCK_TASK (l->data); + + if (wnck_window_get_state (win_task->window) & WNCK_WINDOW_STATE_DEMANDS_ATTENTION) + { + demands_attention = TRUE; + break; + } + + l = l->next; + } + break; + + case WNCK_TASK_WINDOW: + demands_attention = + wnck_window_get_state (task->window) & WNCK_WINDOW_STATE_DEMANDS_ATTENTION; + break; + + case WNCK_TASK_STARTUP_SEQUENCE: + break; + } + + return demands_attention != FALSE; +} static void wnck_task_update_visible_state (WnckTask *task) @@ -2251,8 +2289,7 @@ wnck_task_update_visible_state (WnckTask *task) if (text != NULL) { gtk_label_set_text (GTK_LABEL (task->label), text); - if (wnck_window_get_state (task->window) & - WNCK_WINDOW_STATE_DEMANDS_ATTENTION) + if (wnck_task_get_demands_attention (task)) eel_gtk_label_make_bold ((GTK_LABEL (task->label))); else wnck_gtk_label_make_normal ((GTK_LABEL (task->label))); @@ -2491,8 +2528,7 @@ wnck_task_create_widgets (WnckTask *task) text = wnck_task_get_text (task); task->label = gtk_label_new (text); - if (wnck_window_get_state (task->window) & - WNCK_WINDOW_STATE_DEMANDS_ATTENTION) + if (wnck_task_get_demands_attention (task)) eel_gtk_label_make_bold ((GTK_LABEL (task->label))); gtk_widget_show (task->label); diff --git a/libwnck/window.c b/libwnck/window.c index 3cce520..02fb59a 100644 --- a/libwnck/window.c +++ b/libwnck/window.c @@ -1795,7 +1795,8 @@ update_actions (WnckWindow *window) WNCK_WINDOW_ACTION_MAXIMIZE | WNCK_WINDOW_ACTION_UNMAXIMIZE | WNCK_WINDOW_ACTION_MINIMIZE | - WNCK_WINDOW_ACTION_UNMINIMIZE; + WNCK_WINDOW_ACTION_UNMINIMIZE | + WNCK_WINDOW_ACTION_FULLSCREEN; return; } @@ -1816,6 +1817,10 @@ update_actions (WnckWindow *window) window->priv->actions |= WNCK_WINDOW_ACTION_STICK | WNCK_WINDOW_ACTION_UNSTICK; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_MINIMIZE")) + window->priv->actions |= WNCK_WINDOW_ACTION_MINIMIZE | + WNCK_WINDOW_ACTION_UNMINIMIZE; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_MAXIMIZE_HORZ")) window->priv->actions |= WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY | WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY; @@ -1829,6 +1834,10 @@ update_actions (WnckWindow *window) else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_CLOSE")) window->priv->actions |= WNCK_WINDOW_ACTION_CLOSE; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_FULLSCREEN")) + window->priv->actions |= WNCK_WINDOW_ACTION_FULLSCREEN; + else { const char *name = _wnck_atom_name (atoms [i]); @@ -1845,11 +1854,6 @@ update_actions (WnckWindow *window) window->priv->actions |= WNCK_WINDOW_ACTION_MAXIMIZE | WNCK_WINDOW_ACTION_UNMAXIMIZE; - - /* These are always enabled */ - window->priv->actions |= - WNCK_WINDOW_ACTION_MINIMIZE | - WNCK_WINDOW_ACTION_UNMINIMIZE; } static void diff --git a/libwnck/window.h b/libwnck/window.h index 8ef6c88..6e960f7 100644 --- a/libwnck/window.h +++ b/libwnck/window.h @@ -63,7 +63,8 @@ typedef enum WNCK_WINDOW_ACTION_MINIMIZE = 1 << 12, WNCK_WINDOW_ACTION_UNMINIMIZE = 1 << 13, WNCK_WINDOW_ACTION_MAXIMIZE = 1 << 14, - WNCK_WINDOW_ACTION_UNMAXIMIZE = 1 << 15 + WNCK_WINDOW_ACTION_UNMAXIMIZE = 1 << 15, + WNCK_WINDOW_ACTION_FULLSCREEN = 1 << 16 } WnckWindowActions; typedef enum |