~ubuntu-branches/ubuntu/wily/window-picker-applet/wily

« back to all changes in this revision

Viewing changes to src/task-list.c

  • Committer: Bazaar Package Importer
  • Author(s): Steve Kowalik
  • Date: 2009-03-09 12:26:58 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20090309122658-pdhcumymgpq72ibi
Tags: 0.4.19-0ubuntu1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
118
118
 
119
119
  current = wnck_screen_get_active_workspace (priv->screen);
120
120
 
 
121
  if (!WNCK_IS_WORKSPACE (current))
 
122
    return FALSE;
 
123
 
121
124
  children = gtk_container_get_children (GTK_CONTAINER (list));
122
125
  for (c = children; c; c = c->next)
123
126
  { 
124
127
    GtkWidget *widget = c->data;
125
128
    WnckWindow *window = g_object_get_data (G_OBJECT (widget), "WnckWindow");
126
129
 
127
 
    if (priv->show_all_windows || wnck_window_is_on_workspace (window, current))
 
130
    if (priv->show_all_windows 
 
131
        || (wnck_window_is_on_workspace (window, current)
 
132
            && wnck_window_is_in_viewport (window, current)))
128
133
    {
129
134
      if (!wnck_window_is_skip_tasklist (window))
130
135
        gtk_widget_show (widget);
196
201
    GtkWidget *menu = wnck_action_menu_new (window);
197
202
    gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 
198
203
                    event->button, event->time);
199
 
    gtk_widget_destroy (menu);
200
 
 
201
204
    return TRUE;
202
205
  }
203
206
 
376
379
    wnck_screen_get_active_window (priv->screen) == window);
377
380
 
378
381
  /* Re-set minimize hints */
 
382
  ensure_list (list);
379
383
  set_minimize_hints (list);
380
384
}
381
385
 
 
386
static void
 
387
on_workspace_changed (WnckWindow *window, TaskList *list)
 
388
{
 
389
  g_return_if_fail (TASK_IS_LIST (list));
 
390
 
 
391
  ensure_list (list);
 
392
}
382
393
 
383
394
static void
384
395
on_window_opened (WnckScreen *screen, 
405
416
                         "image", gtk_image_new_from_pixbuf (
406
417
                                    wnck_window_get_mini_icon (window)),
407
418
                         "name", "tasklist-button2", 
 
419
                         "relief", GTK_RELIEF_NONE,
408
420
                         NULL);
409
421
  /* D&D */
410
422
        gtk_widget_add_events (GTK_WIDGET (button),GDK_ALL_EVENTS_MASK);
431
443
                    G_CALLBACK (on_icon_changed), button);
432
444
  g_signal_connect (window, "state-changed",
433
445
                    G_CALLBACK (on_state_changed), list);
434
 
 
 
446
  g_signal_connect (window, "workspace-changed",
 
447
                    G_CALLBACK (on_workspace_changed), list);
 
448
  
435
449
  g_hash_table_insert (priv->win_table, window, button);
436
450
  g_object_set_data (G_OBJECT (button), "WnckWindow", window);
437
451
 
490
504
  {
491
505
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (act_button), TRUE);
492
506
  }
 
507
 
 
508
  ensure_list (list);
493
509
}
494
510
 
495
511
static void
502
518
  ensure_list (list);
503
519
}
504
520
 
 
521
static void
 
522
on_active_viewport_changed (WnckScreen    *screen,
 
523
                            TaskList      *list)
 
524
{
 
525
  g_return_if_fail (TASK_IS_LIST (list));
 
526
 
 
527
  ensure_list (list);
 
528
}
505
529
/* GObject stuff */
506
530
static void
507
531
task_list_finalize (GObject *object)
602
626
                    G_CALLBACK (on_window_closed), list);
603
627
  g_signal_connect (priv->screen, "active-workspace-changed",
604
628
                    G_CALLBACK (on_active_workspace_changed), list);
 
629
  g_signal_connect (priv->screen, "viewports-changed",
 
630
                    G_CALLBACK (on_active_viewport_changed), list);
605
631
  g_signal_connect (priv->screen, "active-window-changed",
606
632
                    G_CALLBACK (on_active_window_changed), list);
607
633
}
632
658
 
633
659
  return list;
634
660
}
 
661
 
 
662
gboolean    
 
663
task_list_get_desktop_visible (TaskList *list)
 
664
{
 
665
  GList *children, *c;
 
666
  gboolean all_minimised = TRUE;
 
667
 
 
668
  g_return_val_if_fail (TASK_IS_LIST (list), TRUE);
 
669
 
 
670
  children = gtk_container_get_children (GTK_CONTAINER (list));
 
671
  for (c = children; c; c = c->next)
 
672
  {
 
673
    WnckWindow *window;
 
674
    
 
675
    window = g_object_get_data (G_OBJECT (c->data), "WnckWindow");
 
676
 
 
677
    if (WNCK_IS_WINDOW (window) && !wnck_window_is_minimized (window))
 
678
      all_minimised = FALSE;
 
679
  }
 
680
  g_list_free (children);
 
681
 
 
682
  return all_minimised;
 
683
}
 
684